1、如何通过抓包分析语音1 在服务器上运行 tcpdump 进行抓包。例 1:抓所有 UDP 包:tcpdump -w “udp” -s 0例 2:抓指定 IP 地址包:tcpdump -w host 61.183.213.83 -s 02 将抓包文件传回 PC, 用 Ethereal version 0.10.14 进行分析。3 根据 INVITE 消息的 SDP 中的端口号确定相应的 RTP 流。4 对于 LAN 中的 IP 包,Ethereal 可自动识别 RTP 流,如果客户端在 NAT 后,需要将相关包手工解码为 RTP。解码后显示为:5 选择菜单 Statistics-RTP-Show
2、 All Streams 或选中 RTP 包后直接用菜单 Statistics-RTP-Stream Analysis进行分析。图中 Payload type “97”为 iLBC(具体为何种解码可从相应的 SDP 中查到) 。根据 Src IP and Dest IP 可判断语音的方向。6 选中相应 RTP Stream 后按“Analyze”按钮。7 然后按“Save payload”按钮。选择 Format 为 raw。如果编解码为 Alaw 的,Format 选为 au,并存为.au 后缀的文件后,可由 Winamp 直接播放。选择 Channels 为 forward。填写文件名及正
3、确的后缀名,典型的后缀名:iLBC - *.ilbcG.729 - *.g729Alaw - *.alawUlaw - *.pcmGsm - *.gsm8 得到的语音文件除了*.au 的文件可由 Winamp 直接播放外,其他的必须经过 IP-PBX Server 的文件格式转换才能播放。9 文件格式转换:a) 将文件传到服务器 /tmp 目录下。b) ippbx -r 进入 IP-PBX CLI。c) 用 convert 命令进行转换:ippbx*CLI convertUsage: convert Convert the format of a voice file. The file name must include full path and not include the extension.例如:convert /tmp/sounds ilbc wav 可以将/tmp/sounds.ilbc 转换为 /tmp/sounds.wav 文件。10 波形分析。用第三方的波形分析工具可以对 wav 文件进行分析。下图为 Nero 6 Wave Editor 工具的一个例子。