> 文章列表 > SIP/VoIP之常见的语音通话问题

SIP/VoIP之常见的语音通话问题

SIP/VoIP之常见的语音通话问题

  语音通话是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语音问题,原因有硬件问题、软件问题和网络问题三种,硬件问题一般指声卡、麦克风、听筒/喇叭(扬声器)相关的问题,软件问题和网络问题有多种。在实际工作中,对于语音问题,基本都是从网络和软件方面开始分析。

分析问题的逻辑:

  • 抓取通话过程中双方的网络报文和日志
  • 通过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软件进行播放分析来确认是哪一个环节出现的问题
  • 声音问题属于实时性强问题,导出的声音文件播放时不一定有问题,比如语音延时问题,存储到文件中时是连续的,再次播放是正常的
  • 有的问题是偶现的,不好分析,可以尝试找到必现的复现流程或提高复现概率。如果需要增加软件日志确认原因,要一次性加更多的有效日志,有助于加快问题分析