使用tshark过滤VoIP电话

5
我正在分析网络中的VoIP通话。目前我使用生成的.pcap文件,但以后我将实时监听。我使用tshark,可以从.pcap中轻松地过滤出一些重要数据(如“源IP地址和端口”,“目标IP地址和端口”,负载包丢失,最大Delta(ms),最大Jitter(ms),平均Jitter(ms))。命令如下:tshark -r myfile -q -z rtp,streams。
我想知道的是:如何获取呼叫的SIP地址?(客户端和服务器)我可以通过过滤所有SIP INVITE来检索一些SIP地址(仅客户端),命令如下:tshark -r myFile -R "sip.Request-Line contains INVITE"。但我无法获取服务器的地址。
我的想法是在tshark中获取这个“统计”数据,就像当我访问“Telephony>VoIP Calls”时Wireshark给我的那样。有没有办法做到这一点?如果不是用“统计”(-z),如何创建一个类似于Wireshark的“VoIPCall”函数的过滤器(-R)?
我使用tshark是因为我想处理这些数据,而不仅仅是在屏幕上分析它。谢谢。

你想要/需要的内容还不太清楚。是需要在捕获过程中提供“实时”信息的工具吗?还是只需要一个命令行界面来获取“电话 > VoIP 通话”GUI选项提供的信息? - Toote
2个回答

5

尝试:

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

这将过滤客户端发送的请求和服务器返回的相应内容。


0

我曾经遇到过类似的情况,最终通过阅读 tshark 的 man 手册解决了问题。

命令: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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接