freeswitch 接第三方服务遇到的问题总结

本文总结了使用freeswitch作为网关对接第三方sip客户端时遇到的两个问题:1) 被叫接听后延迟30秒才能通话,原因是第三方客户端在NAT后面,freeswitch无法正确传输音频包,尝试rtp地址校正无效,发现是由于第三方客户端rtp头mark标识位设置不当导致丢包。2) 当freeswitch超时挂断时,设备无法挂断通话,通过调整设备sip register时间和间隔解决了该问题。
摘要由CSDN通过智能技术生成

问题1:freeswitch 接听后,延迟30秒才能正常通话的的问题

问题描述:有一个落地电话的需求采用了freeswitch作为网关。但是在与第三方sip客户端对接的时候发现有一个问题:被叫接听后, 二十多秒后才能正常通话

问题追溯:经过抓包分析,发现收到的第三方客户端处于nat 后面,所以 invite sdp中的流媒体信息是私网IP和端口,导致freeswitch无法将音频包传输到第三方客户端。

                  理论解决方案. freeswitch 针对nat 后面的sip客户端,可以采用rtp地址校正的方法,        

<param name="disable-rtp-auto-adjust" value="true"/>

             switch_rtp.c文件中的函数rtp_common_read用于解析接收到的RTP数据包,其中实现了RTP地址检测及校正

if (bytes && rtp_session->flags[SWITCH_RTP_FLAG_AUTOADJ] && switch_sockaddr_get_port(rtp_session->rtp_from_addr))       

 

freeswitch更改上述配置后,并不能解决问题,仍然还是还是出现延迟通话。抓包分析对比能正常通话的sip客户端,发现第三方客户端的rtp头每个包mark标识位都有设置,

正常的sip客户端则是只在第一个包有设置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值