在某些情况下,我们必须在出口端应用条件编解码器策略。但是我对脚本有问题,该脚本在初始INVITE中发送有效负载类型为101和119的电话事件,但没有收到任何用于电话事件的fmtp,而我的脚本希望它能够实现。我是SIP和SDP领域的新手,无法找出确切的问题。
我以为脚本期望的是不该发生的事情,因此删除了期望,调用成功完成。以下是发送和接收的邀请。
发送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
通过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
我的脚本期望fmtp:101 0-15,但是在收到的INVITE中缺少,应该在什么情况下以及何时期望DTMF的fmtp,以及应该使用哪种有效编解码器来接收?如果我从脚本中删除了收到的INVITE中对电话事件的fmtp期望,该怎么办?
答案 0 :(得分:0)
在不知道要求的情况下,但是根据DTMF RFC,我也会删除期望。
https://tools.ietf.org/html/rfc2833 第10-11页
由于所有实现都必须能够接收事件0到 15,在a = fmtp行中列出这些事件是可选的。
https://tools.ietf.org/html/rfc4733 第10-11页
...为了向后兼容,如果 没有收到“事件”参数,发送者应该承担支持 DTMF事件0-15,但没有其他事件。