3CX技术支持做出响应:在PBX服务器上捕获SIP通信

在本文中,我们将讨论捕获和分析3CX PBX生成的SIP通信的基础知识。 本文针对的新手系统管理员或普通用户,其职责包括电话维护。 要对该主题进行深入研究,建议您完成3CX高级培训课程

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

如果3CX在Windows上运行,则必须自己在3CX服务器上安装Wireshark。 否则,当您尝试捕获时,将显示以下消息。


在Linux系统上,安装或升级3CX时会自动安装tcpdump。

流量捕获


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



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

“流量捕获”按钮在Windows上启动Wireshark或在Linux上启动tcpdump。 此时,您需要快速重现该问题,因为 Capture会加载处理器并占用足够的磁盘空间。


请注意以下调用参数:

  • 被呼叫的号码,由其他号码/呼叫参与者呼叫。
  • 问题发生在3CX服务器时钟上的确切时间。
  • 通话路线。

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

获取捕获文件


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

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

  • Windows:C:\ ProgramData \ 3CX \ Instance1 \ Data \ Logs \ dump.pcap
  • Linux:/var/lib/3cxpbx/Instance/Data/Logs/dump.pcap

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

Wireshark流量捕获


如果您想对网络流量进行更深入的分析,请手动捕获它。 从此处下载适用于您的OS的Wireshark实用程序。 在3CX服务器上安装实用程序后,转到Capture> Interfaces。 操作系统的所有网络接口将在此处显示。 接口IP地址可以显示在IPv6中。 要查看IPv4地址,请单击IPv6地址。



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



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

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


考虑发送以建立VoIP呼叫的INVITE SIP消息的主要字段,即 是分析的起点。 通常,SIP INVITE包含4到6个字段,其中包含SIP终端设备(电话,网关)和电信运营商使用的信息。 了解INVITE的内容及其后的消息通常有助于确定问题的根源。 另外,了解INVITE字段有助于将SIP运营商连接到3CX或将3CX与其他SIP交换机结合使用。

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



请求行URI:


Request-Line-URI-该字段包含呼叫的收件人。 它包含与“收件人”字段中相同的信息,但没有显示名称。

通过:


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

来自:


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

SIP RFC 3261标准规定,如果未发送显示名称,则IP电话或VoIP网关(UAC)必须使用显示名称“匿名”,例如,发件人:“匿名” <sip:10000@10.172.0.2>。

至:


收件人-此标头指示请求的收件人。 这可以是呼叫的最终接收者,也可以是中间链接。 通常,标头包含SIP URI,但其他方案也是可能的(请参阅RFC 2806 [9])。 但是,无论设备制造商如何,所有SIP实现中都必须支持SIP URI。 收件人标头也可以包含显示名称显示名称,例如,收件人:“名字姓氏” <sip:101@10.172.0.2>)。

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

联络人:


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

允许:


允许-该字段包含参数列表(SIP方法),以逗号分隔。 它们描述了该发送者(设备)支持的SIP协议的功能。 方法的完整列表:ACK,BYE,取消,信息,邀请,通知,选项,PRACK,REFER,REGISTER,SUBSCRIBE,UPDATE。 这里描述更多的SIP方法。

Source: https://habr.com/ru/post/zh-CN455381/


All Articles