记一次WebRTC无回铃音问题排查

记一次WebRTC无回铃音问题排查

什么是回铃音?问题现象问题排查思路网络架构问题总结

什么是回铃音?回铃音的特点

回铃音是由运营商送给手机的,而不是由被叫送给主叫的。回铃音的播放阶段是在被叫接听前播放,被叫一旦接听,回铃音则播放结束回铃音一般是450Hz, 嘟一秒,停4秒,5秒一个周期

回铃音分为三种

舒适噪音阶段:就是嘟一秒,停4秒的阶段彩铃阶段:有的手机,在接听之前,会向主叫方播放个性化的语音,例如放点流行音乐之类的定制回音阶段:例如被叫放立即把电话给拒绝了,但是主叫放这边并没有挂电话,而是在播放:对不起,您拨打的电话无人接听,请稍后再播

问题现象

WebRTC拨打出去之后,在客户接听之前,听不到任何回铃音。在客户接听之后,可以短暂的听到一点点回铃音。

问题排查思路

服务端问题客户端问题网络问题

网络架构

首先根据网络架构图,我决定在a点和b点进行抓包

抓包之后用wireshark进行分析。得出以下结论

sip服务器AB之间用的是g711编码,语音流没有加密。从b点抓的包,能够从中提取出SIP服务器B向sip服务器A发送的语音流,可以听到回铃音。说明SIP服务器A是收到了回铃音的。ab两点之间的WebRTC语音流是加密的,无法分析出其中是否含有语音流。虽然无法提取出WebRTC语音流。但是通过wireshark Statistics -> Conversation 分析,得出结论:在电话接通之前,a点收到的udp包和从b点发出的udp包的数量是是一致的。说明webrtc客户端实际上是收到了语音流。只不过客户端没有播放。然后问题定位到客户端的js库。通过分析客户端库的代码,定位到具体代码的位置。解决问题,并向开源库提交了修复bug的的pull request。实际上只是修改了一行代码。https://github.com/versatica/JsSIP/pull/669

问题总结解决问题看似很简单,但是需要的很强的问题分析能力,并且对网络协议,网络架构,wireshark抓包分析都要精通,才能真正的看到深层次的东西。

相关推荐

欧路词典|英汉-汉英词典 快点是什么意思
365bet苹果版

欧路词典|英汉-汉英词典 快点是什么意思

📅 06-28 👁️ 9242
iqoo手机发布时间列表
beat365最新版体育

iqoo手机发布时间列表

📅 07-10 👁️ 423
弱电工程师证书哪里买
365bet手机开户

弱电工程师证书哪里买

📅 07-16 👁️ 8010
地下城与勇士起源怎么快速升级 地下城与勇士起源快速升级攻略
【JVM】:线程的内存区域
beat365最新版体育

【JVM】:线程的内存区域

📅 06-29 👁️ 783
qq空间我的分享在哪里?qq空间动态设置在哪?
365bet手机开户

qq空间我的分享在哪里?qq空间动态设置在哪?

📅 06-27 👁️ 9730