PulseAudio AirPlay sink does not play

Dear community,

My environment is Debian 10 with OpenHAB 3.2.0 executed in a virtual machine without sound card. I would like to setup a TTS engine like MaryTTS and stream the TTS audio output to my speaker system that either accepts AirPlay v1 or obtains audio from a streaming URL.

However, when invoking a playback to the configured PulseAudio sink, nothing happens. I do not find any log file entries in the syslog nor in the openhab logs. This is my test command in the Karaf console:

openhab> openhab:audio play pulseaudio:sink:local:almando doorbell.mp3          

What can be done to debug this issue?

My pulseaudio config file /etc/pulse/default.pa contains the following modifications as compared to the standard setup:

### Load the RTP sender module (also configured via paprefs, see above)
load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties="device.description='RTP Multicast Sink'"
load-module module-rtp-send source=rtp.monitor

### Automatically load loopback sound driver
.ifexists module-loopback.so
load-module module-loopback
.endif

### Automatically load driver modules for auto discovery
.ifexists module-zeroconf-discover.so
load-module module-zeroconf-discover
.endif
.ifexists module-raop-discover.so
load-module module-raop-discover
.endif

### Allow access to pulseaudio via TCP
load-module module-esound-protocol-tcp auth-anonymous=1
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/16
load-module module-simple-protocol-tcp
load-module module-cli-protocol-tcp

OpenHAB has access to pulseaudio via TCP port 4712 and I can see that the AirPlay sinks are available.

I have configured pulseaudio.things as follows and can control, for example, the volume of these AirPlay sinks which is correctly propagated to PulseAudio:

Bridge pulseaudio:bridge:local "PulseAudio" [ host="127.0.0.1", port=4712 ] {
  Things:
	Thing sink          rtp             "RTP Sink"           [name="rtp", activateSimpleProtocolSink="true", simpleProtocolSinkPort=4711]
    Thing sink          almando         "Almando"            [name="raop_output.almandomsd-501.local", activateSimpleProtocolSink="true", simpleProtocolSinkPort=4711]
    Thing sink          appletv         "Apple TV"           [name="raop_output.AppleTV-EG.local", activateSimpleProtocolSink="true", simpleProtocolSinkPort=4711]
	Thing sink-input    openhabTTS      "OpenHAB Voice"      [name="rtp"]
  }

It would be great if somebody could give me some hints as how to continue with the audio setup so that an output is provided to the AirPlay device.

Best regards,
Peter

The control operations of the PulseAudio binding as configured above are working fine for the AirPlay sinks. The corresponding Thing is online and I can adjust the volume which is properly passed over to PulseAudio. pactl mentions these AirPlay sinks as SUSPENDED with suspend cause IDLE.

Attached please find the syslog excerpt of pulseaudio when starting pulseaudio:

Mar 30 20:13:02 openhab pulseaudio[10926]: This is PulseAudio 12.2
Mar 30 20:13:02 openhab pulseaudio[10926]: Page size is 4096 bytes
Mar 30 20:13:02 openhab pulseaudio[10926]: Machine ID is 33fb6051ee5e482da0eb28e48a072f1e.
Mar 30 20:13:02 openhab pulseaudio[10926]: Session ID is 25.
Mar 30 20:13:02 openhab pulseaudio[10926]: Using runtime directory /run/user/1000/pulse.
Mar 30 20:13:02 openhab pulseaudio[10926]: Using state directory /home/openhab/.config/pulse.
Mar 30 20:13:02 openhab pulseaudio[10926]: Using modules directory /usr/lib/pulse-12.2/modules.
Mar 30 20:13:02 openhab pulseaudio[10926]: Running in system mode: no
Mar 30 20:13:02 openhab pulseaudio[10926]: System supports high resolution timers
Mar 30 20:13:02 openhab pulseaudio[10926]: CPU flags: CMOV MMX SSE SSE2 SSE3 SSSE3 SSE4_1 SSE4_2
Mar 30 20:13:02 openhab pulseaudio[10926]: Initialising MMX optimized volume functions.
Mar 30 20:13:02 openhab pulseaudio[10926]: Initialising MMX optimized remappers.
Mar 30 20:13:02 openhab pulseaudio[10926]: Initialising SSE2 optimized volume functions.
Mar 30 20:13:02 openhab pulseaudio[10926]: Initialising SSE2 optimized remappers.
Mar 30 20:13:02 openhab pulseaudio[10926]: Initialising SSE2 optimized conversions.
Mar 30 20:13:02 openhab pulseaudio[10926]: Initialising ORC optimized volume functions.
Mar 30 20:13:02 openhab pulseaudio[10926]: Successfully opened database file '/home/openhab/.config/pulse/33fb6051ee5e482da0eb28e48a072f1e-device-volumes'.
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-device-restore" (index: #0; argument: "").
Mar 30 20:13:02 openhab pulseaudio[10926]: Successfully opened database file '/home/openhab/.config/pulse/33fb6051ee5e482da0eb28e48a072f1e-stream-volumes'.
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-stream-restore" (index: #1; argument: "").
Mar 30 20:13:02 openhab pulseaudio[10926]: Successfully opened database file '/home/openhab/.config/pulse/33fb6051ee5e482da0eb28e48a072f1e-card-database'.
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-card-restore" (index: #2; argument: "").
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-augment-properties" (index: #3; argument: "").
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-switch-on-port-available" (index: #4; argument: "").
Mar 30 20:13:02 openhab pulseaudio[10926]: Found 0 cards.
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-udev-detect" (index: #5; argument: "").
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-bluetooth-policy" (index: #6; argument: "").
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-bluez5-discover" (index: #8; argument: "").
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-bluetooth-discover" (index: #7; argument: "").
Mar 30 20:13:02 openhab dbus-daemon[559]: [system] Activating via systemd: service name='org.bluez' unit='dbus-org.bluez.service' requested by ':1.527' (uid=1050 pid=11926 comm="pulseaudio --log-level=3 -D ")
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-native-protocol-unix" (index: #9; argument: "").
Mar 30 20:13:02 openhab pulseaudio[10926]: Restoring volume for sink rtp: mono: 32768 /  50%
Mar 30 20:13:02 openhab pulseaudio[10926]: Created sink 0 "rtp" with sample spec s16le 1ch 16000Hz and channel map mono
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.description = "RTP Multicast Sink"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.class = "abstract"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.icon_name = "audio-card"
Mar 30 20:13:02 openhab pulseaudio[10926]: Created source 0 "rtp.monitor" with sample spec s16le 1ch 16000Hz and channel map mono
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.description = "Monitor of RTP Multicast Sink"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.class = "monitor"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.icon_name = "audio-input-microphone"
Mar 30 20:13:02 openhab pulseaudio[10926]: default_source: (unset) -> rtp.monitor
Mar 30 20:13:02 openhab pulseaudio[10926]: default_sink: (unset) -> rtp
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-null-sink" (index: #10; argument: "sink_name=rtp format=s16le channels=1 rate=16000 sink_properties="device.description='RTP Multicast Sink'"").
Mar 30 20:13:02 openhab pulseaudio[10926]: Trying to change sample rate
Mar 30 20:13:02 openhab pulseaudio[10926]: Forcing resampler 'copy', because of fixed, identical sample rates.
Mar 30 20:13:02 openhab pulseaudio[10926]: Created output 0 "RTP Monitor Stream" on rtp.monitor with sample spec s16be 1ch 16000Hz and channel map mono
Mar 30 20:13:02 openhab pulseaudio[10926]:     media.name = "RTP Monitor Stream"
Mar 30 20:13:02 openhab pulseaudio[10926]:     rtp.source = "0.0.0.0"
Mar 30 20:13:02 openhab pulseaudio[10926]:     rtp.destination = "224.0.0.56"
Mar 30 20:13:02 openhab pulseaudio[10926]:     rtp.mtu = "1280"
Mar 30 20:13:02 openhab pulseaudio[10926]:     rtp.port = "46624"
Mar 30 20:13:02 openhab pulseaudio[10926]:     rtp.ttl = "1"
Mar 30 20:13:02 openhab pulseaudio[10926]:     module-stream-restore.id = "source-output-by-media-name:RTP Monitor Stream"
Mar 30 20:13:02 openhab pulseaudio[10926]: Configured source latency of 40 ms.
Mar 30 20:13:02 openhab pulseaudio[10926]: RTP stream initialized with mtu 1280 on 224.0.0.56:46624 from 0.0.0.0 ttl=1, SSRC=0x3735fce0, payload=127, initial sequence #52214
Mar 30 20:13:02 openhab pulseaudio[10926]: SDP-Data:
Mar 30 20:13:02 openhab pulseaudio[10926]: v=0
Mar 30 20:13:02 openhab pulseaudio[10926]: o=openhab 3857652782 0 IN IP4 192.168.0.36
Mar 30 20:13:02 openhab pulseaudio[10926]: s=PulseAudio RTP Stream on openhab.local
Mar 30 20:13:02 openhab pulseaudio[10926]: c=IN IP4 224.0.0.56
Mar 30 20:13:02 openhab pulseaudio[10926]: t=3857652782 0
Mar 30 20:13:02 openhab pulseaudio[10926]: a=recvonly
Mar 30 20:13:02 openhab pulseaudio[10926]: m=audio 46624 RTP/AVP 127
Mar 30 20:13:02 openhab pulseaudio[10926]: a=rtpmap:127 L16/16000/1
Mar 30 20:13:02 openhab pulseaudio[10926]: a=type:broadcast
Mar 30 20:13:02 openhab pulseaudio[10926]: EOF
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-rtp-send" (index: #11; argument: "source=rtp.monitor").
Mar 30 20:13:02 openhab pulseaudio[10926]: Restoring default sink 'rtp'.
Mar 30 20:13:02 openhab pulseaudio[10926]: configured_default_sink: (unset) -> rtp
Mar 30 20:13:02 openhab pulseaudio[10926]: No previous default source setting, ignoring.
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-default-device-restore" (index: #12; argument: "").
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-rescue-streams" (index: #13; argument: "").
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-always-sink" (index: #14; argument: "").
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-intended-roles" (index: #15; argument: "").
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-suspend-on-idle" (index: #16; argument: "").
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-console-kit" (index: #17; argument: "").
Mar 30 20:13:02 openhab pulseaudio[10926]: Created 0 "Login Session 20"
Mar 30 20:13:02 openhab pulseaudio[10926]: Created 1 "Login Session 2"
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-systemd-login" (index: #18; argument: "").
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-position-event-sounds" (index: #19; argument: "").
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-role-cork" (index: #20; argument: "").
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-filter-heuristics" (index: #21; argument: "").
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-filter-apply" (index: #22; argument: "").
Mar 30 20:13:02 openhab pulseaudio[10926]: Choosing speex quality setting 1.
Mar 30 20:13:02 openhab pulseaudio[10926]: Created input 0 "(null)" on rtp with sample spec s16le 1ch 16000Hz and channel map mono
Mar 30 20:13:02 openhab pulseaudio[10926]:     media.role = "abstract"
Mar 30 20:13:02 openhab pulseaudio[10926]:     module-stream-restore.id = "sink-input-by-media-role:abstract"
Mar 30 20:13:02 openhab pulseaudio[10926]: Created output 1 "(null)" on rtp.monitor with sample spec s16le 1ch 16000Hz and channel map mono
Mar 30 20:13:02 openhab pulseaudio[10926]:     media.role = "abstract"
Mar 30 20:13:02 openhab pulseaudio[10926]:     module-stream-restore.id = "source-output-by-media-role:abstract"
Mar 30 20:13:02 openhab pulseaudio[10926]: Minimum possible end to end latency: 7,00 ms
Mar 30 20:13:02 openhab pulseaudio[10926]: Max request changed
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-loopback" (index: #23; argument: "").
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-zeroconf-discover" (index: #24; argument: "").
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-raop-discover" (index: #25; argument: "").
Mar 30 20:13:02 openhab pulseaudio[10926]: Modul »module-esound-protocol-tcp.so« konnte nicht geladen werden: module-esound-protocol-tcp.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden
Mar 30 20:13:02 openhab pulseaudio[10926]: Failed to open module "module-esound-protocol-tcp".
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-native-protocol-tcp" (index: #26; argument: "auth-ip-acl=127.0.0.1;192.168.0.0/16").
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-simple-protocol-tcp" (index: #27; argument: "").
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-cli-protocol-tcp" (index: #28; argument: "").
Mar 30 20:13:02 openhab pulseaudio[10926]: Daemon startup complete.
Mar 30 20:13:02 openhab pulseaudio[10926]: Restoring port latency offsets for card raop_client._192.168.0.4__7000.
Mar 30 20:13:02 openhab pulseaudio[10926]: Created 0 "raop_client._192.168.0.4__7000"
Mar 30 20:13:02 openhab pulseaudio[10926]: Created sink 1 "raop_output.AppleTV-EG.local" with sample spec s16le 2ch 44100Hz and channel map front-left,front-right
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.string = "[192.168.0.4]:7000"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.intended_roles = "music"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.description = "AppleTV EG"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.model = "AppleTV5,3"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.icon_name = "audio-card"
Mar 30 20:13:02 openhab pulseaudio[10926]: Created source 1 "raop_output.AppleTV-EG.local.monitor" with sample spec s16le 2ch 44100Hz and channel map front-left,front-right
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.description = "Monitor of AppleTV EG"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.class = "monitor"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.string = "[192.168.0.4]:7000"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.icon_name = "audio-card"
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-raop-sink" (index: #29; argument: "server=[192.168.0.4]:7000 sink_name=raop_output.AppleTV-EG.local sink_properties='device.description="AppleTV EG" device.model="AppleTV5,3"' protocol=UDP encryption=none codec=ALAC latency_msec=2000").
Mar 30 20:13:02 openhab pulseaudio[10926]: Restoring port latency offsets for card raop_client._fe80__b67_eff2_e9e0_02a4__7000.
Mar 30 20:13:02 openhab pulseaudio[10926]: Created 1 "raop_client._fe80__b67_eff2_e9e0_02a4__7000"
Mar 30 20:13:02 openhab pulseaudio[10926]: Created sink 2 "raop_output.Wohnzimmer.local" with sample spec s16le 2ch 44100Hz and channel map front-left,front-right
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.string = "[fe80::b67:eff2:e9e0:02a4]:7000"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.intended_roles = "music"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.description = "Wohn­zimmer"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.model = "AppleTV11,1"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.icon_name = "audio-card"
Mar 30 20:13:02 openhab pulseaudio[10926]: Created source 2 "raop_output.Wohnzimmer.local.monitor" with sample spec s16le 2ch 44100Hz and channel map front-left,front-right
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.description = "Monitor of Wohn­zimmer"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.class = "monitor"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.string = "[fe80::b67:eff2:e9e0:02a4]:7000"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.icon_name = "audio-card"
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-raop-sink" (index: #30; argument: "server=[fe80::b67:eff2:e9e0:02a4]:7000 sink_name=raop_output.Wohnzimmer.local sink_properties='device.description="Wohn­zimmer" device.model="AppleTV11,1"' protocol=UDP encryption=none codec=ALAC latency_msec=2000").
Mar 30 20:13:02 openhab pulseaudio[10926]: Restoring port latency offsets for card raop_client._192.168.0.157__7000.
Mar 30 20:13:02 openhab pulseaudio[10926]: Created 2 "raop_client._192.168.0.157__7000"
Mar 30 20:13:02 openhab pulseaudio[10926]: Created sink 3 "raop_output.almandomsd-501.local" with sample spec s16le 2ch 44100Hz and channel map front-left,front-right
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.string = "[192.168.0.157]:7000"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.intended_roles = "music"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.description = "almando"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.model = "Multiplay Surround"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.icon_name = "audio-card"
Mar 30 20:13:02 openhab pulseaudio[10926]: Created source 3 "raop_output.almandomsd-501.local.monitor" with sample spec s16le 2ch 44100Hz and channel map front-left,front-right
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.description = "Monitor of almando"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.class = "monitor"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.string = "[192.168.0.157]:7000"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.icon_name = "audio-card"
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-raop-sink" (index: #31; argument: "server=[192.168.0.157]:7000 sink_name=raop_output.almandomsd-501.local sink_properties='device.description="almando" device.model="Multiplay Surround"' protocol=UDP encryption=none codec=ALAC latency_msec=2000").
Mar 30 20:13:02 openhab pulseaudio[10926]: Restoring port latency offsets for card raop_client._192.168.0.4__7000.2.
Mar 30 20:13:02 openhab pulseaudio[10926]: Created 3 "raop_client._192.168.0.4__7000.2"
Mar 30 20:13:02 openhab pulseaudio[10926]: Created sink 4 "raop_output.AppleTV-EG.local.2" with sample spec s16le 2ch 44100Hz and channel map front-left,front-right
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.string = "[192.168.0.4]:7000"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.intended_roles = "music"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.description = "AppleTV EG"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.model = "AppleTV5,3"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.icon_name = "audio-card"
Mar 30 20:13:02 openhab pulseaudio[10926]: Created source 4 "raop_output.AppleTV-EG.local.2.monitor" with sample spec s16le 2ch 44100Hz and channel map front-left,front-right
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.description = "Monitor of AppleTV EG"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.class = "monitor"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.string = "[192.168.0.4]:7000"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.icon_name = "audio-card"
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-raop-sink" (index: #32; argument: "server=[192.168.0.4]:7000 sink_name=raop_output.AppleTV-EG.local sink_properties='device.description="AppleTV EG" device.model="AppleTV5,3"' protocol=UDP encryption=none codec=ALAC latency_msec=2000").
Mar 30 20:13:02 openhab pulseaudio[10926]: read(): Der Socket ist nicht verbunden
Mar 30 20:13:02 openhab pulseaudio[10926]: Restoring port latency offsets for card raop_client._192.168.0.157__7000.2.
Mar 30 20:13:02 openhab pulseaudio[10926]: Created 4 "raop_client._192.168.0.157__7000.2"
Mar 30 20:13:02 openhab pulseaudio[10926]: Created sink 5 "raop_output.almandomsd-501.local.2" with sample spec s16le 2ch 44100Hz and channel map front-left,front-right
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.string = "[192.168.0.157]:7000"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.intended_roles = "music"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.description = "almando"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.model = "Multiplay Surround"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.icon_name = "audio-card"
Mar 30 20:13:02 openhab pulseaudio[10926]: Created source 5 "raop_output.almandomsd-501.local.2.monitor" with sample spec s16le 2ch 44100Hz and channel map front-left,front-right
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.description = "Monitor of almando"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.class = "monitor"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.string = "[192.168.0.157]:7000"
Mar 30 20:13:02 openhab pulseaudio[10926]:     device.icon_name = "audio-card"
Mar 30 20:13:02 openhab pulseaudio[10926]: Loaded "module-raop-sink" (index: #33; argument: "server=[192.168.0.157]:7000 sink_name=raop_output.almandomsd-501.local sink_properties='device.description="almando" device.model="Multiplay Surround"' protocol=UDP encryption=none codec=ALAC latency_msec=2000").
Mar 30 20:13:02 openhab pulseaudio[10926]: Unexpected/Unhandled response: RTSP/1.0 403 Forbidden
Mar 30 20:13:02 openhab pulseaudio[10926]: Unexpected/Unhandled response: Content-Length: 0
Mar 30 20:13:02 openhab pulseaudio[10926]: Unexpected/Unhandled response: Server: AirTunes/605.1
Mar 30 20:13:02 openhab pulseaudio[10926]: Unexpected/Unhandled response: CSeq: 1
Mar 30 20:13:02 openhab pulseaudio[10926]: Unexpected/Unhandled response:
Mar 30 20:13:02 openhab pulseaudio[10926]: Unexpected/Unhandled response: RTSP/1.0 403 Forbidden
Mar 30 20:13:02 openhab pulseaudio[10926]: Unexpected/Unhandled response: Content-Length: 0
Mar 30 20:13:02 openhab pulseaudio[10926]: Unexpected/Unhandled response: Server: AirTunes/605.1
Mar 30 20:13:02 openhab pulseaudio[10926]: Unexpected/Unhandled response: CSeq: 1
Mar 30 20:13:02 openhab pulseaudio[10926]: Unexpected/Unhandled response:
Mar 30 20:13:04 openhab pulseaudio[10926]: Adding 40000 usec of silence to queue
Mar 30 20:13:04 openhab pulseaudio[10926]: Dropping 40000 usec of audio from queue
Mar 30 20:13:04 openhab pulseaudio[10926]: Adding 40000 usec of silence to queue
Mar 30 20:13:04 openhab pulseaudio[10926]: Dropping 40062 usec of audio from queue
Mar 30 20:13:07 openhab pulseaudio[10926]: Sink raop_output.AppleTV-EG.local idle for too long, suspending ...
Mar 30 20:13:07 openhab pulseaudio[10926]: Sink raop_output.Wohnzimmer.local idle for too long, suspending ...
Mar 30 20:13:07 openhab pulseaudio[10926]: Sink raop_output.almandomsd-501.local idle for too long, suspending ...
Mar 30 20:13:07 openhab pulseaudio[10926]: Sink raop_output.AppleTV-EG.local.2 idle for too long, suspending ...
Mar 30 20:13:07 openhab pulseaudio[10926]: Sink raop_output.almandomsd-501.local.2 idle for too long, suspending ...
Mar 30 20:13:27 openhab pulseaudio[10926]: GetManagedObjects() failed: org.freedesktop.DBus.Error.NoReply: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.

After removing the quotation mark around “true” in the parameter activateSimpleProtocolSink and making the port number in simpleProtocolSinkPort unique across the various sinks, the pulseaudio sinks were able to play.

Just Ă  little remark : you should not have to set this load directive on your config file.
The pulseaudio binding load the module-simple-protocol-tcp by itself. In fact, it is better to let it do it, as it will ensure correct parameter for the sink.

I hope the last fixes I push on the binding, following the other bug reports you pointed out in other threads, are OK now.

In fact, apart from the bug you encounter, you were totally on the right path to implement this.

I didn’t know the pulseaudio binding, in combination with the RAOP pulse module, can play on AirPlay device. It is an interresting workaround to handle the lack of an AirPlay binding. I hope it will be of some help for other users searching this subject on the forum.

1 Like