介绍
本节介绍了3CX如何处理SIP中继提供商服务器之间的故障转移。 它分为两大类,代表2种提供者类型,基于注册和基于IP。
基于注册
仅当注册商和/或出站代理是FQDN并且FQDN具有NAPTR和/或SRV记录时,才能在3CX中基于注册的SIP中继提供商进行故障转移。有关详细信息,请参阅DNS解析部分。
对于本节,请将“sip.contoso.com”视为以下SRV记录的示例:
- _sip._tcp.sip.contoso.com:
SRV 记录 |
权重 |
优先级 |
端口 |
A 记录 |
_sip._tcp.sip.contoso.com |
10 |
10 |
5060 |
sip1.contoso.com |
_sip._tcp.sip.contoso.com |
20 |
20 |
5060 |
sip2.contoso.com |
- _sip._udp.sip.contoso.com:
SRV 记录 |
权重 |
优先级 |
端口 |
A 记录 |
_sip._udp.sip.contoso.com |
10 |
10 |
5060 |
sip3.contoso.com |
_sip._udp.sip.contoso.com |
20 |
20 |
5060 |
sip4.contoso.com |
故障转移机制
在SIP中继设置中使用FQDN作为注册器创建3CX中的新SIP中继,并且FQDN具有SIP SRV记录时,3CX按权重和优先级对这些进行排序。
使用上面的示例值,即针对注册器“sip.contoso.com”注册的SIP中继,它注册到“sip1.contoso.com”解析为的IP。
如果“sip1.contoso.com”停止响应,3CX然后重新评估SRV记录,按优先级选择下一个响应条目,并根据“sip2.contoso.com”解析的IP来处理。3CX然后保持注册“sip2.contoso.com”直到它失败然后重复相同的过程,选择具有最低权重/优先级的响应条目并连接到那个(“sip1.contoso.com”)。
故障转移时间
3CX故障转移到下一个SRV进入持续时间取决于它是否具有TCP SRV或UDP SRV,下面单独说明。
使用UDP SRV时的故障转移
使用本节开头的示例条目,3CX开始注册“sip3.contoso.com”。
在注册尝试之间,3CX不知道它所连接的SIP服务器的状态,因为在使用UDP传输时没有与SIP中继提供商的SIP服务器的持续连接。
每当重新注册尝试发生时,3CX可以确定SIP中继提供商的SIP服务器是否已经脱机,即,更长的重新注册时间导致更长的故障转移到下一个SRV条目的持续时间。
尝试重新注册“sip3.contoso.com”,而3CX没有收到任何SIP响应,结果如下:
一般描述 |
示例 |
|
1 |
重新发送REGISTER消息32秒 |
Resend REGISTER message for 32 seconds |
2 |
重新查询UDP SRV记录 |
Re-query _sip._udp.sip.contoso.com |
3 |
尝试注册最高优先级(最低值)的UDP SRV条目 |
Register against “sip3.contoso.com” |
4 |
重新发送REGISTER消息32秒 |
Resend REGISTER message for 32 seconds |
5 |
尝试注册下一个优先级UDP SRV条目 |
Register against “sip4.contoso.com” |
6 |
重复步骤4和5,最多可以有3个SRV条目 |
使用TCP SRV时的故障转移
使用本节开头的示例条目,3CX开始注册 “sip1.contoso.com”。
如果在注册尝试之间脱机,则3CX与SIP中继提供商SIP服务器之间的TCP连接可能会重置,从而导致3CX立即转移到下一个SRV条目。
在这种情况下,将会发生的是:
一般说明 |
示例 |
|
1 |
TCP连接丢失 |
TCP connection to “sip1.contoso.com” drops |
2 |
重新查询TCP SRV记录 |
Re-query _sip._tcp.sip.contoso.com |
3 |
尝试注册下一个优先级TCP SRV条目 |
Attempt to register against “sip2.contoso.com” |
4 |
重复步骤2和3,最多可获得3个SRV条目 |
基于IP
对于基于IP的SIP中继进行故障转移,它必须具有FQDN作为在3CX SIP中继设置中配置的注册器和/或出站代理,并且FQDN必须具有NAPTR和/或SRV记录。
故障转移机制
3CX中基于IP的SIP中继始终显示为“已注册”,这意味着3CX始终尝试为拨出呼叫发送INVITE。 如果3CX之前没有解析FQDN,它会在拨出呼叫过程中执行此操作。 如果找到SRV(或指向SRV的NAPTR),3CX按权重/优先级对SRV条目进行排序,并将INVITE发送到最高优先级条目。
如果呼叫尝试失败,则在下一次出站呼叫时,3CX将重新查询FQDN并将INVITE路由到下一个SRV条目。这意味着对于基于IP的提供商,至少有1个出站呼叫失败才会进行故障转移。