收到的 INVITE 中的电话事件格式不正确

Incorret fmpt of telephone-event in received INVITE

我们有一个案例,我们必须在出口端应用条件编解码器策略。但是我的脚本有问题,在初始 INVITE 中发送负载类型为 101 和 119 的电话事件,但没有收到任何电话事件的 fmtp,而我的脚本期望它来。我是SIP和SDP这个领域的新手,无法找出确切的问题。

我认为脚本有预期的结果,所以取消了预期,调用成功完成。下面是发送和接收的 INVITE。

正在发送具有以下 SDP 的 INVITE:

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 预期会怎样?

不知道要求,但根据 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 但没有其他事件。