5

我正在分析网络上的 VoIP 呼叫

现在我正在使用生成的 .pcap 文件,但稍后我将实时监听。

我正在使用 tshark,我可以很容易地从 .pcap 中过滤一些重要数据(例如“源 ip 地址和端口”、“目标 ip 地址和端口”、有效负载 pckt 丢失、Max Delta(ms)、Max Jitter(毫秒),平均抖动(毫秒))与

tshark -r myfile -q -z rtp,streams

我想知道的是:我怎样才能得到一个呼叫的 sip addrs?(客户端和服务器)

我可以通过过滤所有 sip INVITE 来检索一些 sip 地址(仅限客户端),如下所示:

tshark -r myFile -R "sip.Request-Line 包含 INVITE"

但是我无法获取服务器的地址。

澄清一下,我的想法是在 tshark 中获得这个“统计信息”,就像当我访问“电话 > VoIP 呼叫”时,wireshark 给我的一样(就像 tshark -r myfile -q -z rtp,streams 返回我的统计信息一样wireshark 的电话>RTP>显示所有流),有没有办法做到这一点?如果没有“统计”(-z),我如何创建一个过滤器(-R)来做类似于wireshark的“VoIPCall”功能的事情

我正在使用 tshark,因为我想处理这些数据,而不仅仅是在我的屏幕上分析它

谢谢

4

2 回答 2

5

尝试:

tshark -r myFile -R "sip.CSeq.method eq INVITE"

这将过滤从客户端发送的请求和来自服务器的相应回复。

于 2012-08-11T01:50:02.877 回答
0

我处于类似的情况,最终浏览了 tshark 手册页。

命令:tshark -r input_file.pcap -q -z sip,stat

解释:

-r <infile> : Read packet data from infile

-q : When reading a capture file, don't print packet information; this is useful if you're using a -z option to calculate statistics and don't want the packet information printed, just the statistics.

-z <statistics> : Get TShark to collect various types of statistics and display the result after finishing reading the capture file.

您还可以将过滤器添加到过滤器中,例如,您想要汇总所有只有 SIP 480 状态代码的数据包,您可以通过以下方式进行:

tshark -r input_file.pcap -q -z sip,stat,sip.Status-Code==480

-z sip,stat[,filter] : This option will activate a counter for SIP messages. You will get the number of occurrences of each SIP Method and of each SIP Status-Code

如果您想要多个过滤器,您可以一个一个添加它们

tshark -r input_file.pcap -q -z sip,stat,sip.Status-Code==480 -z sip,stat,sip.Status-Code==500

如果要按 sip 地址进行汇总,可以按以下方式过滤:

tshark -r input_file.pcap -q -z sip,stat,sip.to.host==sip-to-host.com

参考:

  1. TShark 手册页:https ://www.wireshark.org/docs/man-pages/tshark.html
  2. SIP 过滤器:https ://www.wireshark.org/docs/dfref/s/sip.html
于 2018-05-07T13:28:49.587 回答