# Acoustic echo cancellation for VoLTE speakerphone calls (journal/ims.md s43). # Creates a virtual pair: ec_sink (play here; forwarded to the speakers and # used as the AEC reference) and ec_source (mic with the speaker signal # subtracted, WebRTC AEC). capture/playback are pinned to the hardware nodes # so making ec_* the defaults cannot loop the module into itself. context.modules = [ { name = libpipewire-module-echo-cancel args = { library.name = aec/libspa-aec-webrtc source.props = { node.name = "ec_source" node.description = "Echo-cancelled microphone" } sink.props = { node.name = "ec_sink" node.description = "Echo-cancelled speakers" } capture.props = { node.name = "ec_capture" target.object = "alsa_input.platform-sound.capture.1.0" node.passive = true } playback.props = { node.name = "ec_playback" target.object = "alsa_output.platform-sound.playback.0.0" node.passive = true } } } ]