sip - 从命令行检测 VoIP 调用 - Wireshark

标签 sip voip wireshark tshark

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

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

我正在使用类似的命令

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

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

是否有命令可以从命令行显示 voip 调用列表,或者我是否必须解析输出并创建自己的列表?您建议使用其他工具来做到这一点吗?

任何帮助将不胜感激。

最佳答案

我不知道有什么方法可以让 tshark 告诉你 Wireshark GUI 的功能。您可以通过对 tshark 的输出进行后处理来完成此操作,但这将是一项相当大的工作量。一种方法是:

  • tshark 显示 SIP 数据包的完整详细信息(例如,使用 -v)
  • 将其通过管道传输到将从每个数据包中提取信息的进程。此过程需要检测数据包边界,因为输入每个数据包有多行。
  • 此流程需要存储这些数据包中选定的信息(例如“发件人”、“收件人”、“开始时间”等),并根据对话标识符将这些信息关联到各个数据包。
  • 该流程需要充分了解 SIP 协议(protocol),以确定何时确认、终止调用等。

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

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

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

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

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

关于sip - 从命令行检测 VoIP 调用 - Wireshark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21137348/

相关文章:

android - 有任何 Android Intent 可以调用 SIP 电话吗?

ios5 - iOS : Receive media in background

wireshark - 为什么这个 SPDY SYN_STREAM 样本的 header 显然未压缩?

c# - 数据包捕获 API - Wireshark 或 Microsoft 网络监视器?

ios - 编译 PJSIP 以在 iOS 5 中使用

java - Java 中的 Sip URI 验证

iphone - 我应该使用哪个 iPhone API 来传输音频?

ios - imo、whatsapp 和 skype 等 iPhone 锁定时如何实现应用程序调用?

java - 使用 Java 时隐藏 HTTP 中的发件人信息

c++ - 在通用 Linux 上构建 sipXtapi - 安装错误