Appearance
Appearance
本页说明如何在 Wireshark 中查看、过滤、绘制和播放 VoIP 呼叫。它适用于排查 SIP、H.323、ISUP、MGCP、UNISTIM 及其 RTP 媒体流相关问题。
| 你想做什么 | 在哪里操作 | 容易混淆的点 |
|---|---|---|
| 找出一次通话的起止、主被叫、协议和状态 | Telephony → VoIP Calls... | VoIP Calls 列表显示的是呼叫摘要,不等同于只显示 RTP 包 |
| 只看某一次呼叫相关数据包 | 选中呼叫后使用 Prepare Filter | 该按钮只是准备显示过滤器,不会修改捕获文件 |
| 看信令交互方向与媒体流 | 选中一个或多个呼叫后使用 Graph | 图中的箭头代表消息方向,RTP 会被汇总显示 |
| 播放通话音频 | 选中呼叫后使用 Player | 能否播放取决于已安装的 codec 插件和 Wireshark 版本 |
西班牙语版本见:http://wiki.wireshark.org/VoIP_calls_spanish
VoIP Calls 对话框可识别以下 VoIP 信令协议,并关联对应的 RTP 流:
| 协议 | 说明 |
|---|---|
| SIP | 常见 VoIP 信令协议 |
| H323 | H.323 呼叫信令 |
| ISUP | 电话信令相关呼叫 |
| MGCP | 媒体网关控制协议相关呼叫 |
| UNISTIM | UNISTIM 终端相关呼叫 |
| RTP | 与上述呼叫相关的媒体流 |
VoIP 协议族概览可参考 VOIPProtocolFamily。示例捕获文件可参考 SampleCaptures/rtp_example.raw.gz,其中包含一个 H.323 呼叫示例,涉及 H225、H245、RTP 和 RTCP 数据包。
打开 Telephony → VoIP Calls... 后,列表会按呼叫展示关键信息:
| 列名 | 含义 |
|---|---|
| Start Time | 呼叫开始时间 |
| Stop Time | 呼叫结束时间 |
| Initial Speaker | 发起呼叫数据包的 IP 源地址 |
| From | H323/ISUP 中为主叫号码;SIP 中为 INVITE 的 From 字段;MGCP 中为 EndpointID 或主叫号码;UNISTIM 中为 Terminal ID |
| To | H323/ISUP 中为被叫号码;SIP 中为 INVITE 的 To 字段;MGCP 中为 EndpointID 或拨打号码;UNISTIM 中为拨打号码 |
| Protocol | 呼叫使用的信令协议 |
| Packets | 呼叫涉及的数据包数量 |
| State | 当前呼叫状态 |
| Comment | 协议相关注释;例如 H323 呼叫会显示是否使用 Fast Start 或 H245 Tunneling |
| 状态 | 含义 |
|---|---|
| CALL SETUP | 呼叫正在建立,例如 Setup、Proceeding、Progress 或 Alerting 阶段 |
| RINGING | 呼叫振铃中;仅支持 MGCP 呼叫 |
| IN CALL | 呼叫仍处于连接状态 |
| CANCELLED | 呼叫连接前由发起主叫方释放 |
| COMPLETED | 呼叫已连接并随后释放 |
| REJECTED | 呼叫连接前由目的端释放 |
| UNKNOWN | 呼叫状态未知 |
操作步骤:
这个操作在按 CIC 值关联 ISUP 呼叫时尤其有用。
操作步骤:
图形视图会显示:
| 图形元素 | 含义 |
|---|---|
| 列 | 最多十列,每列代表一个 IP 地址 |
| 颜色 | 属于同一呼叫的数据包使用相同颜色 |
| 箭头 | 表示呼叫中每个数据包的方向 |
| 箭头标签 | 显示消息类型;可用时也显示媒体编解码器 |
| RTP 宽箭头 | RTP 流量会汇总为更宽的箭头,并标注对应 codec |
| 端口信息 | 显示每个数据包的 UDP/TCP 源端口和目的端口 |
| 注释列 | 显示协议相关信息 |
不同协议的注释内容:
| 协议 | 注释内容 |
|---|---|
| H323 | Fast Start、H245 Tunneling 状态;SETUP 消息中的主叫/被叫号码;RELEASE 消息中的 Q.931 Release cause code |
| SIP | 显示消息是 Request 还是 Status;INVITE 还会显示 From 和 To 字段 |
| ISUP | 格式为 NetworkID-Originating Point Code → NetworkID-Destination Point Code, CIC |
| MGCP | MGCP Endpoint ID,以及该数据包是 Request 还是 Response |
| UNISTIM | 消息详细信息和 sequence # |
| RTP | RTP 数据包数量、持续时间(秒)和 SSRC 字段 |
Wireshark 可以播放已安装插件支持的 codec。Wireshark 也可以把解码后的音频保存为 .au 文件格式:3.2.0 之前只支持用 G.711 codec 保存音频;从 3.2.0 开始,支持使用任何 8000 Hz 采样的 codec 保存音频。
播放步骤:
播放窗口中的进度条会显示当前流位置,并在所有正在播放的 RTP 流之间同步。因 jitter buffer 被丢弃的 RTP 数据包会显示为 “Drop by Jitter Buff”,乱序数据包会显示为 “Out of Seq”。
Wireshark 支持的 codec 取决于使用的版本和构建方式。官方构建包含 Wireshark 开发者维护的所有插件;自定义构建或发行版构建可能缺少其中某些 codec。
检查步骤:
如果 rtp_example.raw.gz 对你不起作用,可以尝试 SampleCaptures/SIP_CALL_RTP_G711 中的 VoIP 呼叫捕获文件。
原页面还提到作者有一些关于使用 Wireshark 分析 VoIP 呼叫的视频。
Imported from https://wiki.wireshark.org/VoIP_calls on 2020-08-11 23:27:13 UTC