最近在一个测试中,遇到了OCS和PSTN通话之间的声音出现严重的断续问题,用户的使用体验就是听对方的声音不是完整的,有部分的语音丢失,在服务器上判断就是RTC数据包丢失了。专业术语就是Voice clipping。先看看丢包的恐怖情况:
p_w_picpath 居然达到那么17%的丢包率的数值,真是让人惊讶。经过反复排查,从编码和E1链路查起,也检查各个设备之间的参数和QoS,抓了N多的数据包。在经历多次检测无果之后最后怀疑是不是数据包的传输出了问题,难道是网关和IP PBX没有在一个网段的原因?后来把网关移到了PBX一个网段,测试后发现问题解决,丢包率大幅下降。就在1%以内,这个数值完全可以接受。打了一通电话,效果不错,没有断句这种情况发生了。
p_w_picpath要是你也有碰到类似的问题,也不妨试试这样的方法,或许也是柳暗花明又一村呢。

不过顺便说一句,在VoIP通路中,如果有太多的设备串联在中间,那么最终的语音流程还是有点复杂。看看下面的呼叫流程,才4个设备,就触发了那么多的RTC流。不过看着挺美的,不是吗?(笑)
 

p_w_picpath
最近看SIP和SDP包看得太多了,都是一边看RFC,一边看数据包。以后也考虑弄一些SIP的教程贴上来和大家分享