一.最近在做基于SIP的VoIP通信研究,使用Wireshark软件可以对网络流量进行抓包。
VoIP使用RTP协议对语音数据进行传输,语音载荷都封装在RTP包里面。要对传输中的语音进行截获和还原,需要通过Wireshark对RTP包进行分析和解码。该过程如下:
1.打开截获的pcapng文件,点击Telephony-->RTP-->Show All Streams.
2.根据发送地址和目的地址,选择要分析的语音流,点击图中的Analyze进行分析处理。Packets数太少可能会播放不出声音。
3.点击player。
4.对语音数据进行解码。点击Decode
5.得到语音波形。
6.选择语音文件后,点击Play就可以听到声音了
注意:目前我所测试的能正确解码的是G.711编码,也即是PCM编码G.722和GSM等,没有正确解码成功。个人认为是因为Wireshark中缺乏了响应的解码库,导致了解码失败。
二.我们通常都要对wireshark抓取的语音包进行筛选和过滤,比如在udp协议中我们要过滤长度一致的包,而有时
过滤语句我们不会填写,要上网上搜索,其实wireshark已经考虑到了这个问题,如下图所示,只要是wireshark中单独列出来,我们进行鼠标右键,都可以用其作为过滤的条件。如下图所示: