I want to push audio from my laptop onto another device. Both devices run PulseAudio (or PipeWire). For various reasons, the mDNS/Zeroconf modules aren’t behaving, so I need to plumb PulseAudio myself. The documentation is missing this one simple worked example, so…

On the other system:

:briar: pactl load-module module-native-protocol-tcp
45

You may need to fiddle with the auth-ip-acl parameter, a semicolon-separated list of IP addresses or CIDRs. (I assume this also works with IPv6 ACLs, but I haven’t tried — I probably should.)

On my laptop:

:lisbon: pactl load-module module-native-protocol-tcp
50
:lisbon: pactl load-module module-tunnel-sink \
             server=briar \
             sink=combined
51
:lisbon: pactl load-module module-combine-sink \
             sink_name=netcombined \
             slaves=combined,tunnel-sink.briar
52

This assumes that the other host’s sink is called combined (which is probably the case if you, like me, default to a combined sink under all circumstances).

The documentation goes into