【问题标题】:Detecting VoIP Calls from command line - Wireshark从命令行检测 VoIP 呼叫 - Wireshark
【发布时间】:2014-01-15 12:23:22
【问题描述】:

我正在使用 Wireshark 嗅探网络并检测 VoIP 呼叫。可以从 GUI(电话->VoIP 呼叫)中查看检测到的 VoIP 呼叫。

现在我想从命令行获取这个列表。我搜索了wireshark文档,但找不到执行此操作的命令。

我正在使用类似的命令

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

来自这个主题: Filtering VoIP calls with tshark

是否有命令从命令行显示该 voip 呼叫列表,还是我必须解析输出并创建自己的列表?您是否建议任何其他工具来做到这一点?

任何帮助将不胜感激。

【问题讨论】:

  • 你到底想要什么作为输出?我怀疑您需要进行一些后期处理才能获得更高级别的信息。
  • 我想创建一个列表作为输出,包括每个 SIP 对话的这些字段,就像在 GUI 中一样:From、To、Initial Speaker、Start Time、Stop Time、State。

标签: sip voip wireshark tshark


【解决方案1】:

我不知道有什么方法可以哄tshark 为您提供 Wireshark GUI 的功能。您可以通过对tshark 的输出进行后处理来做到这一点,但这将是相当多的工作。一种方法是:

  • 使用 tshark 显示 SIP 数据包的完整详细信息(例如,使用 -v
  • 通过管道将其传送到将从每个数据包中提取信息的进程。此过程需要检测数据包边界,因为每个数据包的输入会有多行。
  • 此过程需要存储从这些数据包中选择的信息(例如 From、To、Start Time 等),并根据对话标识符跨数据包关联这些信息。
  • 该过程需要充分了解 SIP 协议,以确定何时确认、终止呼叫等。

这当然是可行的,但我想让你知道你在做什么。

一个单独的进程(我没有经验)的替代方法是编写一个Wireshark script in Lua,并通过tshark -Xlua_script:my_script.lua 调用它(使用一个支持Lua 编译的tshark 版本)。可以在示例“将 VoIP 呼叫转储到单独的文件中”(或类似的here on Google Code)下找到帮助您入门的示例here。优点是:

  • 您自动有权访问已解析的 SIP 消息。
  • 很容易分辨数据包的开始和结束位置。
  • 一切都在一个进程中运行。

对我来说,缺点是我必须学习一门新语言(这不是世界上最糟糕的事情)。

编辑:看起来,如果您使用 Lua 脚本方法,wireshark/tshark 中的 SIP 解析器会有所帮助;例如,您可以检查 SIP 响应上的sip.response-request 以查找匹配请求的数据包号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-29
    • 2014-10-20
    相关资源
    最近更新 更多