语音通话是SIP或VoIP应用中最重要的功能,一旦语音方面出现问题,将极大的降低产品的口碑,很容易被市场和用户淘汰。
一、常见的语音通话问题
1.1 语音双向不通
主叫方听不到被叫方声音,被叫方也听不到主叫方声音,即双方互相听不见
1.2 语音单向通
其中一方能听见另一方声音
1.3 语音变声(变慢或变快)
听见对方的声音语调不对,声音拉长(变慢)或缩短(变快)
1.4 语音丢字
在通话开始或通话过程中,(偶尔)听到对方的声音有缺失,比如对方查数1,2,3,4……过程中,部分数字丢失听不到
1.5 语音卡顿
在通话开始或通话过程中,(偶尔)听到对方的声音不连续,比如听到对方说1,2,3, 4……,2和3之间停了一会,给人一种短暂卡住的感觉,但声音没有丢失
1.6 语音有毛刺音
在通话开始或通话过程中,(偶尔)听到对方的声音不完美,比如听到对方说1,感觉1缺失了一点,不圆润,不饱满,带有”毛刺“音
1.7 语音延迟
在通话过程中,对方说完”你好“后,我方过了200毫秒以上甚至几秒才听到,这就是语音延迟现象
二、语音问题分析方法
对于SIP语音问题,原因有硬件问题、软件问题和网络问题三种,硬件问题一般指声卡、麦克风、听筒/喇叭(扬声器)相关的问题,软件问题和网络问题有多种。在实际工作中,对于语音问题,基本都是从网络和软件方面开始分析。文章来源:https://www.toymoban.com/news/detail-417641.html
分析问题的逻辑:文章来源地址https://www.toymoban.com/news/detail-417641.html
- 抓取通话过程中双方的网络报文和日志
- 通过wireshark分析网络报文,查看有无收发到RTP数据,回放一下声音是否正常
- 如果网络报文不能直接确认原因,可以看一下终端日志,如果有明显的打开声卡失败问题,一般会有明显的日志
- 如果接收方没有收到RTP数据或收到的RTP数据回放时声音异常,则需要进一步分析发送端问题
- 如果接收方收到了RTP数据,则需要进一步分析接收方问题
- 在进一步分析终端问题时,需要分析终端日志,确认是软件问题还是硬件问题
- 在分析网络报文时,如果RTP统计数据中有丢包,一般是网络丢包问题
- 在处理语音单通或双向不通问题时,需要判断媒体RTP的IP地址是否可以互通
- 终端CPU性能差或软件逻辑错误导致软件运行慢,也会引发声音问题
三、常见问题产生的原因
1.1 语音双向不通
- 双方的媒体IP网络不能互通
- 防火墙限制双方使用的RTP端口,比如10000~20000的UDP端口被防火墙禁用
- 双方的硬件(麦克风/扬声器)损坏
1.2 语音单向通
- 有一个方向的媒体IP网络不通
- 防火墙限制某一方使用的RTP端口,比如10000~20000的UDP端口被防火墙禁用
- 一方的硬件(麦克风/扬声器)损坏
1.3 语音变声(变慢或变快)
- 一般是双方协商的频率不一致,比如按8kHz播放16kHz的声音或用按16kHz播放8kHz的声音
- 终端软件运行慢
1.4 语音丢字
- 网络出现大量连续丢包
1.5 语音卡顿
- 网络出现抖动,比如网络拥塞时,不能及时收到语音数据,超过jitterBuffer机制的能力
1.6 语音有毛刺音
- 网络出现少量丢包,导致声音不完整
四、关键说明
- 文中主要从软件和网络角度分析语音问题,实际应用中也会出现由硬件导致的语音问题
- 使用wireshark软件分析网络报文(SIP/RTP)是必备技能,熟练使用则可以快速解决大部分语音问题
- SIP/RTP关于语音的协议定义以及常见的的音频知识(采样率、音频编码、声道等)需要熟练掌握
- 分析终端问题时,如果问题难定位,也会分模块、分段将声音(pcm声音数据)写入文件,导出通过CoolEditPro软件进行播放分析来确认是哪一个环节出现的问题
- 声音问题属于实时性强问题,导出的声音文件播放时不一定有问题,比如语音延时问题,存储到文件中时是连续的,再次播放是正常的
- 有的问题是偶现的,不好分析,可以尝试找到必现的复现流程或提高复现概率。如果需要增加软件日志确认原因,要一次性加更多的有效日志,有助于加快问题分析
到了这里,关于SIP/VoIP之常见的语音通话问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!