3CX技术支持回应:抓包PBX服务器上的SIP流量

在本文中,我们将讨论捕获和分析 3CX PBX 生成的 SIP 流量的基础知识。 本文面向新手系统管理员或职责包括电话维护的普通用户。 为了深入研究该主题,我们建议阅读 高级3CX培训课程.

3CX V16 允许您直接通过服务器 Web 界面捕获 SIP 流量并将其保存为标准 Wireshark PCAP 格式。 您可以在联系技术支持时附加捕获文件,也可以下载该文件进行独立分析。

如果3CX在Windows上运行,您需要自己在3CX服务器上安装Wireshark。 否则,当您尝试捕获时会出现以下消息。
3CX技术支持回应:抓包PBX服务器上的SIP流量

在 Linux 系统上,安装或更新 3CX 时会自动安装 tcpdump 实用程序。

流量抓拍

要开始捕获,请转至界面部分主页 > SIP 事件,然后选择要捕获的接口。 您还可以同时捕获除 IPv6 隧道接口之外的所有接口上的流量。

3CX技术支持回应:抓包PBX服务器上的SIP流量

在 3CX for Linux 中,您可以捕获本地主机 (lo) 的流量。 此捕获用于使用技术分析 SIP 客户端连接 3CX 隧道和会话边界控制器.

流量捕获按钮在 Windows 上启动 Wireshark,在 Linux 上启动 tcpdump。 此时,您需要快速重现问题,因为... 捕获是 CPU 密集型操作,并占用大量磁盘空间。  
3CX技术支持回应:抓包PBX服务器上的SIP流量

请注意以下调用参数:

  • 发出呼叫的号码,呼叫中的其他号码/参与者也呼叫的号码。
  • 根据3CX服务器时钟,问题发生的具体时间。
  • 呼叫路线。

尽量不要单击界面中除“停止”按钮之外的任何位置。 另外,请勿单击此浏览器窗口中的其他链接。 否则,流量捕获将在后台继续进行,并会导致服务器负载增加。

接收捕获文件

“停止”按钮停止捕获并保存捕获文件。 您可以将该文件下载到您的计算机上,以便在 Wireshark 实用程序中进行分析或生成特殊文件 技术支持,其中将包括此捕获和其他调试信息。 下载或包含在支持包中后,出于安全目的,捕获文件会自动从 3CX 服务器中删除。

在 3CX 服务器上,该文件位于以下位置:

  • Windows:C:ProgramData3CXInstance1DataLogsdump.pcap
  • Linux:/var/lib/3cxpbx/Instance/Data/Logs/dump.pcap

为了避免服务器负载增加或捕获过程中丢包,捕获周期限制为 2 万个数据包。 此后,捕获自动停止。 如果您需要更长的捕获时间,请使用单独的 Wireshark 实用程序,如下所述。

使用 Wireshark 实用程序捕获流量

如果您有兴趣更深入地分析网络流量,请手动捕获它。 下载适合您操作系统的 Wireshark 实用程序 。 在 3CX 服务器上安装该实用程序后,转到“捕获”>“接口”。 操作系统的所有网络接口都将显示在这里。 接口IP地址可以按照IPv6标准显示。 要查看 IPv4 地址,请单击 IPv6 地址。

3CX技术支持回应:抓包PBX服务器上的SIP流量

选择要捕获的界面并单击“选项”按钮。 取消选中在混杂模式下捕获流量并保持其余设置不变。

3CX技术支持回应:抓包PBX服务器上的SIP流量

现在您应该重现该问题。 当问题重现时,停止捕获(菜单捕获 > 停止)。 您可以在“电话”>“SIP 流”菜单中选择 SIP 消息。

流量分析基础知识 - SIP INVITE 消息

让我们看一下 SIP INVITE 消息的主要字段,该消息是为了建立 VoIP 呼叫而发送的,即是分析的起点。 通常,SIP INVITE 包括 4 到 6 个字段,其中包含 SIP 终端设备(电话、网关)和电信运营商使用的信息。 了解 INVITE 的内容及其后面的消息通常可以帮助确定问题的根源。 此外,了解 INVITE 字段有助于将 SIP 运营商连接到 3CX 或将 3CX 与其他 SIP PBX 相结合。

在INVITE消息中,用户(或SIP设备)通过URI来标识。 通常,SIP URI 是用户的电话号码 + SIP 服务器地址。 SIP URI 与电子邮件地址非常相似,写为 sip:x@y:Port。

3CX技术支持回应:抓包PBX服务器上的SIP流量

请求行 URI:

Request-Line-URI - 该字段包含呼叫的接收者。 它包含与“收件人”字段相同的信息,但不包含用户的显示名称。

通过:

Via - INVITE 请求所通过的每个 SIP 服务器(代理)都会在 Via 列表的顶部添加其 IP 地址和接收消息的端口。 然后消息沿着路线进一步传输。 当最终接收者响应 INVITE 请求时,所有传输节点都会“查找”Via 标头,并沿着相同的路由将消息返回给发送者。 在这种情况下,中转 SIP 代理会从标头中删除其数据。

起步价

From - 标头从 SIP 服务器的角度指示请求发起者。 标头的形成方式与电子邮件地址相同(user@domain,其中user是3CX用户的分机号码,domain是3CX服务器的本地IP地址或SIP域)。 与 To 标头一样,From 标头包含 URI 和可选的用户显示名称。 通过查看 From 标头,您可以准确了解应如何处理此 SIP 请求。

SIP 标准 RFC 3261 规定,如果不传输 Display Name,则 IP 电话或 VoIP 网关 (UAC) 必须使用 Display Name“Anonymous”,例如 From:“Anonymous”[电子邮件保护]>.

转到:

To - 此标头指示请求的接收者。 这可以是呼叫的最终接收者,也可以是中间链接。 通常,标头包含 SIP URI,但其他方案也是可能的(请参阅 RFC 2806 [9])。 但是,无论硬件制造商如何,SIP 协议的所有实现都必须支持 SIP URI。 收件人标头还可以包含显示名称,例如收件人:“First Name Last Name”[电子邮件保护]>)。

通常,To 字段包含指向将处理请求的第一个(下一个)SIP 代理的 SIP URI。 这不必是请求的最终收件人。

联系我们:

联系人 - 标头包含 SIP URI,您可以通过该 URI 联系 INVITE 请求的发送者。 这是必需的标头,并且只能包含一个 SIP URI。 它是与原始 SIP INVITE 请求相对应的双向通信的一部分。 Contact 标头包含请求发送者期望响应的正确信息(包括 IP 地址),这一点非常重要。 在建立通信会话后,URI Contact 还用于进一步的通信。

允许:

允许 - 该字段包含参数列表(SIP 方法),以逗号分隔。 它们描述了给定发送者(设备)支持哪些 SIP 协议功能。 方法的完整列表:ACK、BYE、CANCEL、INFO、INVITE、NOTIFY、OPTIONS、PRACK、REFER、REGISTER、SUBSCRIBE、UPDATE。 SIP方法有更详细的描述 这里.

来源: habr.com

添加评论