最近在做基于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中缺乏了响应的解码库,导致了解码失败。
感谢QQ群:SIP VoIP 测试交流 323827101 中的枫林晨曦 给我的建议和启发。欢迎大家一起交流讨论。