进入媒体开发领域的同行来说,一般都会遇到媒体流过滤的问题。那么如何进行媒体流过滤呢?
首先是在媒体服务器的网卡上抓包。其次是获取到通话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。
三、获取到通话的媒体的IP和PORT
四、根据callid和ip、port进行过滤
五、听取语音内容
六、总结
根据callid、ip及port可以过滤出媒体包,请留意,过滤式要有该通话callid相关的sip信令,您知道具体是什么原因吗?
另外还可以用ip.addr==x.x.x.x及udp.srcport或udp.dstport对某个方向做进一步的过滤。