Search code examples
sippayloadsdp

Incorret fmpt of telephone-event in received INVITE


We have a case where we have to apply the conditional codec policy on the egress side. But I have a problem with the script where sending telephone-event with payload-type 101 and 119 in the initial INVITE but did not received any fmtp for telephone-event whereas my scripts expects it to come. I am new to this field of SIP and SDP and unable to figure out the exact problem.

I thought the script is expecting what it shouldn't, so removed the expectation and the call is successfully completing. Below is the Sending and Received INVITE.

Sending INVITE with below SDP:

v=0
o=user1 53655765 2353687637 IN IP4 192.168.205.193
s=-
c=IN IP4 192.168.205.193
t=0 0
m=audio 10000 RTP/AVP 96 97 119
a=rtpmap:96 AMR/8000
a=rtpmap:97 AMR/8000
a=rtpmap:119 telephone-event/8000
a=fmtp:97 octet-align=1

Received INVITE with SDP:

v=0
o=user1 53655765 2353687637 IN IP4 192.168.205.195
s=-
c=IN IP4 192.168.205.195
t=0 0
m=audio 13008 RTP/AVP 102 100 0 96 97 101 119
a=rtpmap:102 AMR-WB/16000/1
a=fmtp:102 mode-set=0,1,2
a=rtpmap:100 AMR/8000
a=fmtp:100 mode-set=0,2,5,7
a=rtpmap:0 PCMU/8000
a=rtpmap:96 AMR/8000
a=rtpmap:97 AMR/8000
a=fmtp:97 octet-align=1
a=rtpmap:101 telephone-event/16000
a=rtpmap:119 telephone-event/8000

My script is expecting fmtp: 101 0-15 but missing from received INVITE, When and in which case fmtp of DTMF should be expected and with what payload type of dynamic codec should we receive? What if I remove the fmtp expectation of telephone-event in the received INVITE from the script?


Solution

  • Without knowing the requirement, but according to the DTMF RFCs, I would also have removed the expectation.

    https://www.rfc-editor.org/rfc/rfc2833 Pg 10-11

    Since all implementations MUST be able to receive events 0 through 15, listing these events in the a=fmtp line is OPTIONAL.

    https://www.rfc-editor.org/rfc/rfc4733 Pg 10-11

    ... For backward compatibility, if no "events" parameter is received, the sender SHOULD assume support for the DTMF events 0-15 but for no other events.