philippe44 / AirConnect

Use AirPlay to stream to UPnP/Sonos & Chromecast devices

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Does not appear as airplay speaker

Lorn888 opened this issue · comments

I'm trying to get the set up working
I have :

sonos play 1
raspberry pi 4b (using Homebridge on it btw)

and after following the instructions and running Airconect on my raspberry, speaker still comes up on spotify as a wifi speaker not Airplay like my homepod or even TV.

Please tell me what I should do what info you need to be able to help me. I really want to make it work

I'd need a log to see what is being detected. Just launch it manually and copy/paste the screen or look at the command line help to log tings in a file

is that what you mean ?

./aircast-linux-arm -l 1000:2000
[01:15:22.931] main:940 Starting aircast version: v1.5.4 (Dec  4 2023 @ 17:56:30)
[01:15:22.931] main:947 no config file, using defaults
[01:15:22.933] Start:700 Binding to 10.55.0.1 [usb0] with mask 0xfffffff8
[01:15:22.950] Start:726 Starting pico HTTP server on port 55013

Yes. It seems you have launched it in a docker or behind a NAT. Per doc, it can't work, it must be on the same network as the devices. If this so docker, use host mode. Homebridge would have to be configured for that. I think AirConnect has a prebuilt HB package.

Can you tell me more about? What exactly should I do ? I'm not exactly a raspbian pro. How to launch it outside of the docker ?

I disabled all dockers on another pi and followed instructoions and still nothing

pi@CODEPI:~/Downloads/air/AirConnect-1.5.4 $ ./aircast-linux-arm -l 1000:2000 [15:48:20.111] main:940 Starting aircast version: v1.5.4 (Dec 4 2023 @ 17:56:30) [15:48:20.112] main:947 no config file, using defaults [15:48:20.113] Start:700 Binding to 10.55.0.1 [usb0] with mask 0xfffffff8 [15:48:20.203] Start:726 Starting pico HTTP server on port 45701

Can you tell me a bit how your network is configured? What is where in term of segments?

Not sure if that's what your asking but I have a router and all the devices connected to it via WiFi.

2 raspberry pi's included.
One of them I use as a homebridge
The other for code-server for my iPad

The Sonos speaker is also connected via WiFi.

Is that what you wanted to know ? Let me know what info you need.

Oh and that homebridge is also using zigbee athena for lights

No I mean are they on the same subnet or do you have a different subnet for your players versus homebridge versus other devices. If your router is subdividing your network or you did or your router is having some weird protection sets, like IGMP routing, it's preventing devices to be discovered when they are on different segments. As long as they are all on WiFi (and the searcher) then that would be fine.

Still it seems that you are launching AirConnect in a class A network which is pretty unusual unless it's dockerized or beyond some kind of NAT. That's my highest probable suspicion but it can be some thing preventing multicast traffic between branches of your network as well.

If you are not familiar with these topics, I suggest you google them

Will it help if I provide you with multicast.pcap?

Tried on my windows pc and its just seeing my TV(its already airplay) and doesnt see the sonos speaker

[15:47:35.366] main:1390 Starting airupnp version: v1.5.4 (Dec 6 2023 @ 18:22:05)
[15:47:35.366] main:1397 no config file, using defaults
[15:47:35.404] Start:1101 Binding to iface 192.168.0.65:0 [Ethernet 2]
[15:47:35.414] Start:1140 Starting pico HTTP server on port 50220
[15:47:36.575] AddMRDevice:1027 [00524290]: adding renderer (TV) with mac BBBB1CD93314
[15:47:36.591] MasterHandler:653 [00524290]: subscribe success
[15:47:36.650] ProcessEvent:457 [00524290]: UPnP Volume local change 15:-1 (master)
[15:47:45.084] rtsp_thread:333 got RTSP connection 572
[15:47:45.161] handle_rtsp:380 [00577190]: challenge 2PyTGUoMJ0dPMfJVejibZA==
[15:47:45.177] handle_rtsp:374 [00577190]: received ANNOUNCE
[15:47:45.186] handle_rtsp:587 [00577190]: responding:
RTSP/1.0 200 OK
Audio-Jack-Status: connected; type=analog
CSeq: 4

[15:47:45.197] handle_rtsp:374 [00577190]: received SETUP
[15:47:45.199] raopst_init:265 [005C3570]: UDP port-0 61381
[15:47:45.199] raopst_init:265 [005C3570]: UDP port-1 61382
[15:47:45.200] raopst_init:265 [005C3570]: UDP port-2 61383
[15:47:45.200] raopst_init:283 [005C3570]: HTTP listening port 50266
[15:47:45.200] handle_rtsp:587 [00577190]: responding:
RTSP/1.0 200 OK
Transport: RTP/AVP/UDP;unicast;mode=record;control_port=61382;timing_port=61383;server_port=61381
Session: DEADBEEF
Audio-Jack-Status: connected; type=analog
CSeq: 5

[15:47:45.209] rtp_thread_func:728 [005C3570]: 1st NTP packet received
[15:47:45.212] handle_rtsp:374 [00577190]: received RECORD
[15:47:45.216] raopst_record:378 [005C3570]: record 0 0
[15:47:45.217] HandleRAOP:295 [00524290]: Stream
[15:47:45.217] handle_rtsp:587 [00577190]: responding:
RTSP/1.0 200 OK
Audio-Jack-Status: connected; type=analog
CSeq: 6

[15:47:45.225] handle_rtsp:374 [00577190]: received SET_PARAMETER
[15:47:45.225] handle_rtsp:541 [00577190]: SET PARAMETER volume -20.000000
[15:47:45.226] CtrlSetVolume:229 [00524290]: uPNP volume 33 (cookie 00000000)
[15:47:45.231] HandleRAOP:363 [00524290]: Volume[0..100] 33
[15:47:45.232] handle_rtsp:587 [00577190]: responding:
RTSP/1.0 200 OK
Audio-Jack-Status: connected; type=analog
CSeq: 7

[15:47:45.241] handle_rtsp:374 [00577190]: received SET_PARAMETER
[15:47:45.241] handle_rtsp:541 [00577190]: SET PARAMETER volume -20.000000
[15:47:45.242] CtrlSetVolume:229 [00524290]: uPNP volume 33 (cookie 00000001)
[15:47:45.248] HandleRAOP:363 [00524290]: Volume[0..100] 33
[15:47:45.248] handle_rtsp:587 [00577190]: responding:
RTSP/1.0 200 OK
Audio-Jack-Status: connected; type=analog
CSeq: 8

[15:47:45.249] ActionHandler:544 Error in action callback -- 606 (cookie 00000000)
[15:47:45.264] ActionHandler:544 Error in action callback -- 606 (cookie 00000001)
[15:47:45.265] buffer_put_packet:519 [005C3570]: fill [level:1] [W:36197 R:36197]
[15:47:45.282] handle_rtsp:374 [00577190]: received FLUSH
[15:47:45.283] raopst_flush:346 [005C3570]: FLUSH ignored as same as RECORD (36197 - 3447729299)
[15:47:45.283] raopst_flush:362 [005C3570]: flush 36197 3447729299
[15:47:45.284] handle_rtsp:587 [00577190]: responding:
RTSP/1.0 200 OK
Audio-Jack-Status: connected; type=analog
CSeq: 9

[15:47:45.294] handle_rtsp:374 [00577190]: received TEARDOWN
[15:47:45.294] HandleRAOP:300 [00524290]: Stop
[15:47:45.318] http_thread_func:1064 [005C3570]: terminating
[15:47:45.349] rtp_thread_func:739 [005C3570]: terminating
[15:47:45.364] handle_rtsp:587 [00577190]: responding:
RTSP/1.0 200 OK
Audio-Jack-Status: connected; type=analog
CSeq: 10

[15:47:45.374] rtsp_thread:348 RTSP close 572
[15:47:48.408] rtsp_thread:333 got RTSP connection 604
[15:47:48.476] handle_rtsp:380 [00577190]: challenge KE8JFEC9olKg37gMgOAuJA==
[15:47:48.496] handle_rtsp:374 [00577190]: received ANNOUNCE
[15:47:48.505] handle_rtsp:587 [00577190]: responding:
RTSP/1.0 200 OK
Audio-Jack-Status: connected; type=analog
CSeq: 4

[15:47:48.514] handle_rtsp:374 [00577190]: received SETUP
[15:47:48.517] raopst_init:265 [005BB568]: UDP port-0 61384
[15:47:48.519] raopst_init:265 [005BB568]: UDP port-1 61385
[15:47:48.520] raopst_init:265 [005BB568]: UDP port-2 61386
[15:47:48.521] raopst_init:283 [005BB568]: HTTP listening port 50284
[15:47:48.521] handle_rtsp:587 [00577190]: responding:
RTSP/1.0 200 OK
Transport: RTP/AVP/UDP;unicast;mode=record;control_port=61385;timing_port=61386;server_port=61384
Session: DEADBEEF
Audio-Jack-Status: connected; type=analog
CSeq: 5

[15:47:48.531] rtp_thread_func:728 [005BB568]: 1st NTP packet received
[15:47:48.533] handle_rtsp:374 [00577190]: received RECORD
[15:47:48.535] raopst_record:378 [005BB568]: record 0 0
[15:47:48.536] HandleRAOP:295 [00524290]: Stream
[15:47:48.537] handle_rtsp:587 [00577190]: responding:
RTSP/1.0 200 OK
Audio-Jack-Status: connected; type=analog
CSeq: 6

[15:47:48.546] handle_rtsp:374 [00577190]: received SET_PARAMETER
[15:47:48.550] handle_rtsp:541 [00577190]: SET PARAMETER volume -20.000000
[15:47:48.551] CtrlSetVolume:229 [00524290]: uPNP volume 33 (cookie 00000002)
[15:47:48.552] HandleRAOP:363 [00524290]: Volume[0..100] 33
[15:47:48.553] handle_rtsp:587 [00577190]: responding:
RTSP/1.0 200 OK
Audio-Jack-Status: connected; type=analog
CSeq: 7

[15:47:48.563] rtp_thread_func:634 [005BB568]: 1st RTP packet received
[15:47:48.567] rtp_thread_func:640 [005BB568]: 1st sync packet received
[15:47:48.567] handle_rtsp:374 [00577190]: received SET_PARAMETER
[15:47:48.567] ActionHandler:544 Error in action callback -- 606 (cookie 00000002)
[15:47:48.569] handle_rtsp:541 [00577190]: SET PARAMETER volume -20.000000
[15:47:48.570] CtrlSetVolume:229 [00524290]: uPNP volume 33 (cookie 00000003)
[15:47:48.571] HandleRAOP:363 [00524290]: Volume[0..100] 33
[15:47:48.572] handle_rtsp:587 [00577190]: responding:
RTSP/1.0 200 OK
Audio-Jack-Status: connected; type=analog
CSeq: 8

[15:47:48.587] ActionHandler:544 Error in action callback -- 606 (cookie 00000003)
[15:47:48.587] buffer_put_packet:519 [005BB568]: fill [level:1] [W:16193 R:16193]
[15:47:48.686] handle_rtsp:374 [00577190]: received FLUSH
[15:47:48.686] raopst_flush:346 [005BB568]: FLUSH ignored as same as RECORD (16193 - 2278726819)
[15:47:48.688] raopst_flush:362 [005BB568]: flush 16193 2278726819
[15:47:48.689] handle_rtsp:587 [00577190]: responding:
RTSP/1.0 200 OK
Audio-Jack-Status: connected; type=analog
CSeq: 9

[15:47:48.958] search_remote_cb:632 [00577190]: found ActiveRemote for 4724A545234BEDC6 at 192.168.0.216:49482
[15:47:49.210] handle_rtsp:374 [00577190]: received TEARDOWN
[15:47:49.210] HandleRAOP:300 [00524290]: Stop
[15:47:49.251] http_thread_func:1064 [005BB568]: terminating
[15:47:49.267] rtp_thread_func:739 [005BB568]: terminating
[15:47:49.268] handle_rtsp:587 [00577190]: responding:
RTSP/1.0 200 OK
Audio-Jack-Status: connected; type=analog
CSeq: 10

[15:47:49.318] rtsp_thread:348 RTSP close 604
[15:47:52.909] rtsp_thread:333 got RTSP connection 572
[15:47:52.982] handle_rtsp:380 [00577190]: challenge wlttUR1yd3C2vO88K8wvFw==
[15:47:53.002] handle_rtsp:374 [00577190]: received ANNOUNCE
[15:47:53.011] handle_rtsp:587 [00577190]: responding:
RTSP/1.0 200 OK
Audio-Jack-Status: connected; type=analog
CSeq: 4

[15:47:53.020] handle_rtsp:374 [00577190]: received SETUP
[15:47:53.022] raopst_init:265 [005BB568]: UDP port-0 61387
[15:47:53.022] raopst_init:265 [005BB568]: UDP port-1 61388
[15:47:53.023] raopst_init:265 [005BB568]: UDP port-2 61389
[15:47:53.024] raopst_init:283 [005BB568]: HTTP listening port 50305
[15:47:53.025] handle_rtsp:587 [00577190]: responding:
RTSP/1.0 200 OK
Transport: RTP/AVP/UDP;unicast;mode=record;control_port=61388;timing_port=61389;server_port=61387
Session: DEADBEEF
Audio-Jack-Status: connected; type=analog
CSeq: 5

[15:47:53.031] handle_rtsp:374 [00577190]: received RECORD
[15:47:53.036] rtp_thread_func:728 [005BB568]: 1st NTP packet received
[15:47:53.036] raopst_record:378 [005BB568]: record 0 0
[15:47:53.037] HandleRAOP:295 [00524290]: Stream
[15:47:53.038] handle_rtsp:587 [00577190]: responding:
RTSP/1.0 200 OK
Audio-Jack-Status: connected; type=analog
CSeq: 6

[15:47:53.045] handle_rtsp:374 [00577190]: received SET_PARAMETER
[15:47:53.046] handle_rtsp:541 [00577190]: SET PARAMETER volume -20.000000
[15:47:53.059] CtrlSetVolume:229 [00524290]: uPNP volume 33 (cookie 00000004)
[15:47:53.060] HandleRAOP:363 [00524290]: Volume[0..100] 33
[15:47:53.061] handle_rtsp:587 [00577190]: responding:
RTSP/1.0 200 OK
Audio-Jack-Status: connected; type=analog
CSeq: 7

[15:47:53.069] rtp_thread_func:634 [005BB568]: 1st RTP packet received
[15:47:53.069] rtp_thread_func:640 [005BB568]: 1st sync packet received
[15:47:53.071] handle_rtsp:374 [00577190]: received SET_PARAMETER
[15:47:53.071] handle_rtsp:541 [00577190]: SET PARAMETER volume -20.000000
[15:47:53.072] CtrlSetVolume:229 [00524290]: uPNP volume 33 (cookie 00000005)
[15:47:53.073] HandleRAOP:363 [00524290]: Volume[0..100] 33
[15:47:53.073] handle_rtsp:587 [00577190]: responding:
RTSP/1.0 200 OK
Audio-Jack-Status: connected; type=analog
CSeq: 8

[15:47:53.111] handle_rtsp:374 [00577190]: received FLUSH
[15:47:53.111] raopst_flush:346 [005BB568]: FLUSH ignored as same as RECORD (39963 - 2989388292)
[15:47:53.113] raopst_flush:362 [005BB568]: flush 39963 2989388292
[15:47:53.113] buffer_put_packet:519 [005BB568]: fill [level:1] [W:39963 R:39963]
[15:47:53.114] handle_rtsp:587 [00577190]: responding:
RTSP/1.0 200 OK
Audio-Jack-Status: connected; type=analog
CSeq: 9

[15:47:53.176] ActionHandler:544 Error in action callback -- 606 (cookie 00000004)
[15:47:53.177] ActionHandler:544 Error in action callback -- 606 (cookie 00000005)
[15:47:53.501] search_remote_cb:632 [00577190]: found ActiveRemote for E1F9E361756A4B5A at 192.168.0.216:49488
[15:47:54.980] HandleRAOP:330 [00524290]: uPNP setURI http://192.168.0.65:50305/stream-0.flac (cookie 00000006)
[15:47:54.980] AVTPlay:135 [00524290]: uPNP play (cookie 00000007)
[15:47:55.009] handle_rtsp:374 [00577190]: received SET_PARAMETER
[15:47:55.009] handle_rtsp:568 [00577190]: received JPEG image of 79816 bytes
[15:47:55.010] handle_rtsp:587 [00577190]: responding:
RTSP/1.0 200 OK
Audio-Jack-Status: connected; type=analog
CSeq: 10

[15:47:55.018] handle_rtsp:374 [00577190]: received SET_PARAMETER
[15:47:55.018] handle_rtsp:587 [00577190]: responding:
RTSP/1.0 200 OK
Audio-Jack-Status: connected; type=analog
CSeq: 11

[15:47:55.027] handle_rtsp:374 [00577190]: received SET_PARAMETER
[15:47:55.028] handle_rtsp:560 [00577190]: received metadata
artist: my!lane
album: Sakura's Shadows
title: This Feeling
[15:47:55.032] handle_rtsp:587 [00577190]: responding:
RTSP/1.0 200 OK
Audio-Jack-Status: connected; type=analog
CSeq: 12

[15:47:55.184] http_thread_func:949 [005BB568]: got HTTP connection 1220 (silent frames 0)
[15:47:55.185] handle_http:1080 [005BB568]: received HEAD HTTP/1.1
Connection: close
User-Agent: Neptune/1.1.3
Host: 192.168.0.65:50305

[15:47:55.187] handle_http:1124 [005BB568]: responding: HTTP/1.0 200 OK
Server: HairTunes
Content-Type: audio/flac
Connection: close

[15:47:55.188] http_thread_func:969 HTTP close 1220
[15:47:57.184] http_thread_func:949 [005BB568]: got HTTP connection 1152 (silent frames 0)
[15:47:57.186] handle_http:1080 [005BB568]: received GET HTTP/1.1
Host: 192.168.0.65:50305
User-Agent: Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.34 Safari/537.36 WebAppManager
Connection: close
icy-metadata: 1
Range: bytes=0-

[15:47:57.187] handle_http:1124 [005BB568]: responding: HTTP/1.0 200 OK
Server: HairTunes
Content-Type: audio/flac
Connection: close

[15:47:57.188] _buffer_get_frame:891 [005BB568]: drain [level:513 gap:-2329] [W:40476 R:39963] [R:0 S:0 F:0]
[15:47:57.678] http_thread_func:969 HTTP close 1152
[15:48:01.270] buffer_put_packet:519 [005BB568]: fill [level:452] [W:40987 R:40536]
[15:48:05.011] UpdateThread:714 [00524290]: removing unresponsive player (TV+)
[15:48:05.028] rtp_thread_func:739 [005BB568]: terminating
[15:48:05.072] http_thread_func:1064 [005BB568]: terminating
[15:48:05.074] MRThread:278 [00524290] player thread exited
[15:48:07.326] AddMRDevice:1027 [00524290]: adding renderer (TV) with mac BBBB1CD93314
[15:48:07.337] MasterHandler:653 [00524290]: subscribe success
[15:48:07.393] ProcessEvent:457 [00524290]: UPnP Volume local change 15:-1 (master)
[15:48:25.310] ActionHandler:544 Error in action callback -- -207 (cookie 00000007)

I can't tell for sure but I think you have one of these wifi network system that wants to be smart but potentially interfere a lot with broadcast and multicast and that's in the way here, likely. Try any UPnP tool that discovers players and try to see, from the same Windows machine, if it sees the Sonos (I'm not talking about the Sonos app, but about a vanilla UPnP controller).

The gupnp-tools is a quite good tool for debuging UPNP stuff.

You can install it on raspian by running sudo apt-get install gupnp-tools and then list your renderers by running gssdp-discover --timeout=3 --target=urn:schemas-upnp-org:device:MediaRenderer:1

My speaker shows up as:

$ gssdp-discover --timeout=3 --target=urn:schemas-upnp-org:device:MediaRenderer:1
Using network interface eth0
Scanning for resources matching urn:schemas-upnp-org:device:MediaRenderer:1
Showing "available" messages
resource available
USN: uuid:F00DBABE-AA5E-BABA-DADA-188ED5720302::urn:schemas-upnp-org:device:MediaRenderer:1
Location: http://192.168.0.207:49154/nmrDescription.xml

Runing a discover will show what UPNP renderers are visible to your Raspbian.

It can be as Philippe said that you have a router which handles the cabled and wireless as two different network and therefore the devices cant see each other. You might have a setting for this on your router / wifi box.

I just noted that you are running aircast on your Raspbian, shouldn't it be airupnp for Sonos?

I'll try what you said asap. And yes I was trying aircast but with airpnp it was the same situation

This is what I get when I connect via eth cable

pi@CODEPI:/ $ gssdp-discover --timeout=3 --target=urn:schemas-upnp-org:device:MediaRenderer:1 Using network interface usb0 Scanning for resources matching urn:schemas-upnp-org:device:MediaRenderer:1 Showing "available" messages pi@CODEPI:/ $

This is what I get when I connect via eth cable

pi@CODEPI:/ $ gssdp-discover --timeout=3 --target=urn:schemas-upnp-org:device:MediaRenderer:1 Using network interface usb0 Scanning for resources matching urn:schemas-upnp-org:device:MediaRenderer:1 Showing "available" messages pi@CODEPI:/ $

It doesn't list any renderers, if you look at my example it listed the description URL of my renderer. I also find the interface a bit weird as it scans usb0. You might want to run a sudo ifconfig to confirm which interface is used for your wired network connection. Then you can run a gssdp-discover -i eth0 --timeout=3 --target=urn:schemas-upnp-org:device:MediaRenderer:1 where ypu replace eth0 with your device.

Is your wifi maybe acting as a "guest network" if so, then it might behave in such a way that devices are not able to see each other. What brand and model is your router?

I'm using virgin media hub 4