No telephone-event codec in Janus reply

Good day, we are facing a simple issue when Janus is getting a reinvite and not adding the dtmf capability in his reply

Step 1 Janus makes outgoing call witho following lines:

a=rtpmap:110 telephone-event/48000
a=rtpmap:126 telephone-event/8000

Step 2 Janus gets an invite from provider with this SDP

a=rtpmap:101 telephone-event/8000

Step 3 Janus sends OK without DTMF
Content-Type: application/sdp
Content-Disposition: session
Content-Length: 182

v=0
o=- 3175601461649885722 8275215708989408841 IN IP4 10.233.83.123
s=-
t=0 0
m=audio 38640 RTP/AVP 8
c=IN IP4 10.233.83.123
a=rtpmap:8 PCMA/8000
a=rtcp-fb:111 transport-cc

Step 4 Janus still sends DTMF as rfc2833 as it was in his initial invite; but provider do not accepts it as it was removed from the codec list by Janus

image

We are using latest unistream version, we can update to latest multistream but i am not sure that it will fix the issue

Global scheme

I am not exacly sure why it is happening, normally Janus should reply with something like
a=rtpmap:126 telephone-event/8000 in SDP of the 200 OK
Any idea how to fix that ?

Thank you

Global scheme

If Janus sends X as payload type for DTMF and the SIP endpoint replies with a different payload type, then that’s the reason why it’s removed. You mentioned 110 and 101, which are different payload types.

They both uses a dynamic payload type of 126 and 101 i am not sure why Janus do not accepts it and stripts from reply, this normally means that codec is not compatible.
I am not sure where should i correct that, a provider has a right to reinvite, and as there is not DTMF in codec list it will never work. There are two solution for this

1: Quick and dirty
Change Janus 126 rtpmap to 101 in initial invite, which is not that bad as the number is still dynamic range, and looks like a lot of systems are still at rfc2833 which assumed 101
2: Make in sort that Janus accepts the 101 in Reinvite, and reply with 101 in 200 ok, which is a proper way.

I have compared a SNOM and Yealink phone, they do solution 2.

There’s good chances that it’s the browser that’s rejecting that payload type change, and you can’t change browsers. If you want to do 1., you still need to do that in browsers (e.g., via SDP munging), not Janus.

Yes you are right, i will try with sdp initial patch sending 101 in webrtc and let you know.

Hey what do you mean by SDP munging?