Voip语音质量分析

目录

继续追杀VOIP语音质量不好的问题,从呼叫中心的开发同学了解到,RTP数据包本身是带有序列号的。虽然是UDP协议,但是因为有序列号所以可以通过计算知道丢包率。但是同样是因为UDP协议,发出去的包是否到达是无法知道的。所以目前在客户端的日志中记录了dump数据,但是只能知道收到的数据包丢包情况,终端上行丢包率无法统计到。这个时候就需要在服务器端抓包,分析丢包率了。

需要用到两个命令,抓包:/usr/bin/dumpcap -f 'udp portrange 19384-32468' -i eth0 -w /tmp/qos.pcap -b duration:3600, 分析:sudo tshark -qr /tmp/qos.pcap -o rtp.heuristic_rtp:TRUE -z rtp,streams。需要抓取的UDP包范围看自己的配置,需要安装抓包工具dumpcap和tshark。dumpcap是wireshark出品的抓包工具,同样适用的libpcap,之前没了解过,目测和tcpdump区别不大,tshark是wireshark的linux版本。输出内容如下:

  Src IP addr  Port    Dest IP addr  Port       SSRC          Payload  Pkts         Lost   Max Delta(ms)  Max Jitter(ms) Mean Jitter(ms) Problems?
  10.64.179.3  4408     10.86.0.21 24526 0x40C9D870 ITU-T G.711 PCMU  3714    46 (1.2%)          961.91           61.67            6.69 X

这样就能看到数据的丢包率、抖动等数据。服务器端也能抓到下行到终端的数据,不过貌似是不准的。所以上行的从服务器端抓包看,下行的从终端日志看,比较痛苦。还是的继续研究VOIP的STCP的东东,看看正经监控是怎么搞的。