I am using mediasoup 3.14.8 as an SFU with a custom browser webrtc client library. I am trying to figure out why DTMF signals sent from webrtc browser clients with the insertDTMF()
method are not being broadcast to other peers.
Both the browser peer and the mediasoup sfu appear to be exchanging the correct offers and answers with audio media that looks something like this:
a=rtpmap:111 opus/48000/2
a=rtpmap:110 telephone-event/48000
a=rtpmap:126 telephone-event/8000
On the server, the router has supported capabilities set with objects copied from the supportedRtpCapabilities.ts file, including the audio/telephone event ones. During the call, the producers are configured with rtpParameters codecs that include opus and audio/telephone-event codecs like this:
{
"clockRate": 48000,
"kind": "audio",
"mimeType": "audio/telephone-event",
"payloadType": 110,
"preferredPayloadType": 110,
"rtcpFeedback": []
},
{
"clockRate": 8000,
"kind": "audio",
"mimeType": "audio/telephone-event",
"payloadType": 126,
"preferredPayloadType": 126,
"rtcpFeedback": []
},
}
The consumers also have codec objects that look identical inside their rtpParameters.codecs
array.
Everything looks like it is configured correctly, but when I inspect the media streams with wireshark, I can see RTP type 126 event payloads being sent from one client to the server, but not being relayed to the other participants.
I was wondering if anyone has experience successfully sending and receiving RFC4733 telephone events via mediasoup? Are there any configuration requirements I’m missing?
Maybe my debugging setup is flawed, does anyone know if I should see RTP type 126 payloads being sent to the server AND forwarded to other peers in Wireshark, assuming all peers and the SFU are running locally?
Thanks in advance for any help.