我们有一个情况,我们必须在出口端应用条件编解码器策略。但是我对脚本有一个问题,在初始邀请中发送有效负载类型为 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,但收到的邀请中缺少,何时以及在这种情况下应该预期 DTMF 的 fmtp,我们应该使用什么有效负载类型的动态编解码器接收?如果我从脚本中删除收到的邀请中电话事件的 fmtp 期望,该怎么办?
不知道要求,但根据 DTMF RFC,我也会删除期望。
https://www.rfc-editor.org/rfc/rfc2833第10-11页
由于所有实现都必须能够接收事件 0 到15,在 a=fmtp 行中列出这些事件是可选的。
https://www.rfc-editor.org/rfc/rfc4733第10-11页
。为了向后兼容,如果没有收到"事件"参数,发送方应该承担支持对于 DTMF 事件 0-15,但没有其他事件。