进入媒体开发领域的同行来说,一般都会遇到媒体流过滤的问题。那么如何进行媒体流过滤呢?

首先是在媒体服务器的网卡上抓包。其次是获取到通话SIP信令的callid。并根据callid查到sip信令中SDP的IP和PORT。然后用callid及ip和port进行过滤,如果协商的是PCMA格式,那么还能在wireshark上直接听取通话的语音内容。下面我结合实际抓包及wirshark软件进行一一介绍。

一、tcpudmp 抓包,我进行用的命令如下

tcpdump -i any -s 2048 -G 600 -Z root -n -X -tt -w %Y_%m%d_%H%M_%S.pcap &

这个是每隔10分钟会生成一个新的包。

二、获取到通话SIP信令的callid

一般是要跟主叫或被叫的trace,在业务上输出主被叫相关通话的SIP信令的trace。

如何用wireshark过滤媒体流_抓包

三、获取到通话的媒体的IP和PORT

如何用wireshark过滤媒体流_信令_02

四、根据callid和ip、port进行过滤

如何用wireshark过滤媒体流_媒体_03

如何用wireshark过滤媒体流_信令_04

五、听取语音内容

如何用wireshark过滤媒体流_媒体_05

如何用wireshark过滤媒体流_抓包_06

如何用wireshark过滤媒体流_服务器_07

如何用wireshark过滤媒体流_信令_08

六、总结

根据callid、ip及port可以过滤出媒体包,请留意,过滤式要有该通话callid相关的sip信令,您知道具体是什么原因吗?

另外还可以用ip.addr==x.x.x.x及udp.srcport或udp.dstport对某个方向做进一步的过滤。