3CX SIP中继DNS记录解析机制

本节适用于使用FQDN作为注册商或出站代理的SIP中继提供商。

3CX根据其解析SIP中继的注册商和/或出站代理的方式来改变其行为。本节介绍3CX如何处理解析方案以及在每种情况下它将展示的行为。

在本节中,注册商“sip.contoso.com”和出站代理“outproxy.contoso.com”用作示例,对应于SIP中继设置中的“注册商”和“出站代理”。

对于“基于注册”的SIP中继,这些字段确定SIP域和3CX向其发送注册 SIP消息的IP,以及在进行出站呼叫时发送INVITE SIP消息的位置。

对于“基于IP的”SIP中继,这些字段确定发送INVITE SIP消息的位置,因为不需要注册。

3CX尝试解析DNS记录类型

以下是3CX如何解析每种类型的DNS记录以及确切顺序的说明:

NAPTR记录

  • SIPS+D2T (SIP 通过TCP-TLS)
  • SIP+D2T (SIP 通过TCP)
  • SIP+D2U (SIP 通过UDP)

3CX读取答案的权重/优先级,并使用具有最高优先级的答案。 查找所选答案作为替换值的SRV记录。

SRV记录

当3CX检查SRV记录时,它将按以下顺序执行:

  1. SIPS SRV:尝试解析“_tcp.sip.contoso.com”。 如果没有找到,继续下一步。
  2. TCP SRV:尝试解析“_tcp.sip.contoso.com”。 如果没有找到,继续下一步。
  3. UDP SRV:尝试解析“_udp.sip.contoso.com”。 如果没有找到,则继续进行AAA记录。

返回的所有SRV答案都是根据其权重/优先级排序的。 找到具有相同重量和优先级的条目以循环方式使用。

注意:目标端口也可以从替换SRV记录中确定。

AAAA / A记录

3CX尝试解析AAAA记录(IPv6)并连接到已解析的地址。 可以在3CX电话系统内禁用IPv6传输,以避免使用未完全实现的IPv6传输连接到提供商。

如果未找到AAAA DNS记录,3CX将尝试查找A记录(IPv4)并使用该记录。

注册商和出站代理方案

作为一般规则,当“出站代理”字段为空时,3CX将“注册商”值解析为目标IP。

如果填充了“出站代理”字段,3CX将解析指定的值,将消息发送到该IP并使用“注册商”值作为SIP域。

在这两种情况下,也可以指定发送消息的端口。 为了从SRV记录中读取端口,端口值必须设置为0。

场景#1

没有出站代理的FQDN注册商,注册商端口设置为0或5060

具有出站代理端口的FQDN出站代理的FQDN注册商设置为0

DNS记录按以下顺序解析:

3CX尝试连接到第一个成功解析的IP和端口。

场景#2

具有FQDN出站代理的FQDN注册商,出站代理端口不是0

具有IP出站代理的FQDN注册商

没有出站代理的FQDN注册商,注册商端口不是0或5060

DNS记录按以下顺序解析:

使用SIP通过TCP

3CX尝试使用TCP进行SIP通信:

  • 它找到以“SIP + D2T”服务为最高优先级的NAPTR记录,
  • 如果没有上述内容,则会找到TCP SRV记录。
  • 在注册商值之前添加“transport-tcp。”(这样就可以强制SIP通过TCP)。

除了使用TCP传输之外,SIP 通过TCP还有其他要求。 SIP消息还必须在所有SIP消息的SIP报头中包含“transport = TCP”参数。 这不是基于DNS解析机制自动完成的。

要使3CX在SIP消息中添加必要参数,必须在“注册商IP”前面添加“transport-tcp。”或在3CX管理控制台中的SIP中继配置中添加地址。

使用SIP-TLS

3CX检查SIPS SRV或指向一个的NAPTR,如果找到,则尝试通过SIP-TLS进行注册。 但是,在当前版本的3CX中,SIP-TLS尚未完全实现。 您可以通过完全禁用PBX中的TLS支持来禁用此功能(也会影响客户端和SBC连接)。

解析REGISTER和INVITE消息的DNS条目

3CX处理DNS条目解析的方式与尝试注册时以及尝试通过发送INVITE消息尝试发起出站呼叫时相同。 这意味着如果存在具有多个地址的A / AAAA记录或具有相同权重/优先级的多个条目的SRV条目,则可能发生3CX注册到IP A,但是当进行呼出和呼出时,INVITE被发送到 IP B.

如果正在测试的SIP中继提供商不支持此功能,请在SIP中继设置的“选项”选项卡中启用选项“强制Invites被发送到注册商的IP”,以始终将INVITE消息发送到3CX解析为的IP 发送REGISTER消息。