功能简介
在VoIP部署中,服务器冗余通常是确保话机服务连续性所必需的,例如,呼叫服务器因维护而下线、服务器故障或设备与服务器之间的连接故障。
有两种类型的冗余。在某些情况下,可以部署两者的组合:
故障转移(Failover):在这种模式下, 通过让第⼆个等效功能的呼叫服务器接替掉线/脱机的那⼀者来保留完整的话机系统功能。这种操作模式应使⽤从主服务器到辅助服务器的DNS机制来完成。因此, 如果要使⽤此模式,则必须为服务器配置域名。
回退(Fallback):在此模式下, 具有SIP功能的第⼆个功能较弱的呼叫服务器将接管呼叫控制以提供基本呼叫功能,但⼯作服务器不提供某些⾼级功能(例如, 共享线路和MWI)。这些话机⽀持每个SIP注册两个服务器的配置, 以进⾏备⽤。
image.png
对于并发注册模式,在使用某些高级功能时有一定的限制;对于连续注册模式,当服务器故障时,话机服务可能会有短暂的中断。因此,我们建议你使用故障转移模式进行服务器冗余,因为这种模式可以确保话机服务的连续性,并且在服务器故障时可以使用所有呼叫功能。
话机冗余配置示例
为了帮助解释冗余⾏为, 下⾯显⽰如何配置话机的说明性⽰例。在该⽰例中,部署了⽤于回退和故障转移⽬的的服务器冗余。每⾏注册配置了两个单独的服务器(⼯作服务器和备⽤服务器)。
image.png
⼯作服务器:服务器1配置有⼯作服务器的域名。例如:yealink.pbx.com。使⽤DNS机制, 以便将⼯作服务器解析为具有不同IP地址的多个服务器, 以进⾏故障转移。⼯作服务器以冗余对的形式部署, 称为主服务器和辅助服务器。在DNS服务器解析的服务器群集中,主服务器(例如192.168.1.13)具有最⾼优先级的服务器。当主服务器出现故障时,辅助服务器(例如192.168.1.14)将备份主服务器,并提供与主服务器相同的功能。
备用服务器:服务器2已配置了备⽤服务器的IP地址。例如:192.168.1.15。后备服务器提供的功能少于⼯作服务器。
亿联设备⽀持故障转移和后备服务器冗余类型。在某些情况下,你可以部署两种服务器冗余类型的组合。
工作服务器异常时话机的表现
当你发起呼叫时,话机将通过以下步骤连接呼叫:
将INVITE请求发送到主服务器。
如果主服务器未正确响应INVITE(即主服务器响应INVITE的消息为503或响应100 Trying消息的请求超时(64*T1秒,定义在RFC 3261中)),则尝试使用次服务器进行呼叫。
如果次服务器也不可用,话机将尝试备用服务器,直到成功呼叫或耗尽所有服务器,此时呼叫将失败。在呼叫开始时,通过SIP信令故障确定服务器的可用性。SIP信令故障取决于使用的SIP协议,如下所述:
如果使用TCP,则信令在连接或发送失败时失败。
如果使用UDP,则信令在检测到ICMP或信令超时时失败。如果信令已通过列表中的所有服务器尝试(该列表包含DNS服务器解析的所有服务器地址),这是最后一个服务器,那么在RFC 3261中定义的完整UDP超时后信令失败。如果不是列表中的最后一个服务器,最大重试次数取决于配置的重试次数(由template.X.sip_server.Y.retry_counts配置)。
Failover/Fallback的注册方法
Failover模式的注册方法:话机必须始终首先向主服务器注册,除非在故障转移条件下。如果不成功,话机将按照配置的次数重新注册,直到注册成功。当主服务器注册不可用时,次服务器将作为工作服务器。
Fallback模式的注册方法:
并发注册(默认):话机同时向两个SIP服务器(工作服务器和备用服务器)注册。在故障情况下,备用服务器可以接管基本的呼叫功能,但不包括工作服务器提供的某些高级功能(例如,共享线路、呼叫录音和MWI)。不适用于外部代理服务器。
连续注册:话机一次只向一个服务器注册。话机首先向工作服务器注册。在故障情况下,话机向备用服务器注册。
SIP服务器名称解析
如果为服务器配置了域名,则将通过DNS根据RFC 3263解析与该域名关联的IP地址。DNS查询涉及NAPTR、SRV和A查询,使话机能够适应各种部署环境。话机执行NAPTR查询以获取NAPTR指针和传输协议(UDP、TCP和TLS),对NAPTR返回的记录执行SRV查询以获取目标域名和端口号,并对IP地址执行A查询。
如果指定了显式端口(除0外)并且传输类型设置为DNS-NAPTR,则仅执行A查询。如果服务器端口设置为0并且传输类型设置为DNS-NAPTR,则在降级到A查询之前将尝试NAPTR和SRV查询。如果通过DNS查询未找到端口,将使用5060。
如果你的话机未配置DNS服务器,或者DNS查询未从DNS服务器返回结果,你可以为话机配置静态DNS缓存。话机将尝试使用静态DNS缓存解析服务器的域名。
网页配置
配置Fallback服务器备份
点击账号 > 注册。
从账号下拉菜单中选择所需的账号。
在相应字段中配置所选账号的注册参数。
在相应字段中配置SIP服务器1和SIP服务器2的参数。
image.png
如果你使用外部代理服务器,请执行以下操作:
image.png
从启用Outbound代理下拉菜单中选择启用。
在相应字段中配置外部代理服务器1和外部代理服务器2的参数。
点击确认。
配置Failover服务器备份
点击账号 > 注册。
从账号下拉菜单中选择所需的账号。
在相应字段中配置所选账号的注册参数。
在相应字段中配置SIP服务器1或SIP服务器2的参数。你必须将SIP服务器的端口设置为0以进行NAPTR、SRV和A查询。
从传输下拉菜单中选择DNS-NAPTR。
image.png
如果你使用外部代理服务器,请执行以下操作:
你必须将外部代理的端口设置为0以进行NAPTR、SRV和A查询。
从启用Outbound代理下拉菜单中选择Enabled。
在相应字段中配置外部代理服务器1和外部代理服务器2的参数。
点击确认。
配置参数
配置Fallback服务器备份
account.X.fallback.redundancy_type
account.X.fallback.timeout
参数 允许值 默认值 描述
account.X.fallback.redundancy_type[1] 0-并发注册1-连续注册 0 配置回退模式(fallback模式)下的注册模式。 说明:不适用于外部代理服务器。
account.X.fallback.timeout[1] 10到2147483647之间的整数 120 配置备用服务器接管呼叫控制后,话机通过发送注册请求检测工作服务器是否可用的时间间隔(以秒为单位)。 说明:不适用于外部代理服务器。
[1] X是账号ID。
配置Failover服务器备份
account.X.sip_server.Y.register_on_enable
sip.skip_redundant_failover_addr
account.X.sip_server.Y.only_signal_with_registered
account.X.sip_server.Y.invite_retry_counts
account.X.sip_server.Y.failback_mode
account.X.sip_server.Y.failback_timeout
account.X.sip_server.Y.failback_subscribe.enable
sip.forbidden_failover_signal.list
参数 允许值 默认值 描述
account.X.sip_server.Y.register_on_enable[1] [2] 0-禁用,话机不会尝试向次服务器注册,因为话机假设主服务器和次服务器共享注册信息。因此,话机将直接向次服务器发送请求。1-启用,话机将首先向次服务器注册,然后向其发送请求。 0 启用或禁用话机在故障转移时向次服务器发送注册请求。
sip.skip_redundant_failover_addr 0-禁用1-启用 1 启用或禁用话机在故障转移时仅向具有不同IP地址的服务器发送请求。
account.X.sip_server.Y.only_signal_with_registered[1] [2] 0-禁用1-启用 0 启用或禁用话机在故障转移时仅向注册服务器发送请求。 说明:仅当“account.X.sip_server.Y.register_on_enable”设置为1(启用)且“account.X.sip_server.Y.failback_mode”设置为1、2或3时有效。
account.X.sip_server.Y.invite_retry_counts[1] [2] 1到10之间的整数 3 配置在故障转移时发送请求到下一个可用服务器之前尝试的重试次数。
account.X.sip_server.Y.failback_mode[1] [2] 0-newRequests:所有请求首先发送到主服务器,无论最后使用的服务器。1-DNSTTL:话机将首先向最后注册的服务器发送请求。如果注册服务器上定义的DNSTTL时间过期,话机将重试向主服务器发送请求。2-注册:话机将首先向最后注册的服务器发送请求。如果注册过期,话机将重试向主服务器发送请求。3-持续时间:话机将首先向最后注册的服务器发送请求。如果account.X.sip_server.Y.failback_timeout参数定义的时间过期,话机将重试向主服务器发送请求。 0 配置话机在故障转移中重试主服务器的模式。 说明:仅当“template.X.sip_server.Y.address”设置为SIP服务器的域名时有效。
account.X.sip_server.Y.failback_timeout[1] [2] 0,60到65535之间的整数 3600 配置话机在切换到当前工作服务器后重试向主服务器发送请求的超时(以秒为单位)。如果将参数设置为0,话机将在当前工作服务器发生故障转移事件之前不会向主服务器发送请求。如果将参数设置为1到59之间,超时将为60秒。 说明:仅当“account.X.sip_server.Y.failback_mode”设置为3(持续时间)时有效。
account.X.sip_server.Y.failback_subscribe.enable[1] [2] 0-禁用1-启用,话机将立即重新订阅次服务器,以确保正常使用与订阅相关的功能(例如BLF、SCA)。 0 启用或禁用话机在故障转移时重新注册到具有不同IP地址的次服务器后重试重新订阅。 说明:仅当“account.X.sip_server.Y.failback_mode”设置为1、2或3时有效。
sip.forbidden_failover_signal.list PUBLISHINFO Null 配置是否允许RTCP执行故障转移。
[1] X是账号ID。
[2] Y是服务器ID。Y=1-2。
SIP服务器DNS域名解析
功能简介
如果为服务器配置了域名,则与该域名相关联的IP地址将通过RFC 3263指定的DNS进⾏解析。DNS查询涉及NAPTR, SRV和A查询, 这使话机可以适应各种部署环境。话机对NAPTR指针和传输协议(UDP,
TCP和TLS)执⾏NAPTR查询, 对从NAPTR返回的记录上的SRV查询进⾏⽬标域名和端⼝号的查询, 对A进⾏查询。 IP地址。如果指定了显式端⼝(0除外),则仅执⾏查询。如果服务器端⼝设置为0,并且传输类型设置为DNSNAPTR,则在进⼊A查询之前将尝试NAPTR和SRV查询。如果通过DNS查询未找到端⼝,则将使⽤5060。
网页配置
前往 账号 > 注册 > SIP 服务器Y > 传输。
image.png
参数配置
account.X.sip_server.Y.transport_type
account.X.naptr_build
sip.dns_transport_type
static.network.dns.query_timeout
static.network.dns.retry_times
M7参数 取值范围 出厂默认值 功能说明
account.X.sip_server.Y.transport_type[1] [2] 0-UDP1-TCP2-TLS3-DNS NAPTR,如果未指定服务器端口,则设备执行DNS NAPTR和SRV查询以获取服务类型和端口。 0 定义账号的传输⽅式。
account.X.naptr_build[1] 0-仅使用UDP进行SRV查询1-使用UDP、TCP和TLS进行SRV查询。 0 配置话机在NAPTR查询未返回结果时执行SRV查询的方式。
sip.dns_transport_type 0-UDP1-TCP 0 配置话机用于执行DNS查询的传输协议。
static.network.dns.query_timeout[3] 0到65535之间的整数 3 配置话机在DNS服务器不响应时重试解析域名的间隔(以秒为单位)。
static.network.dns.retry_times[3] 0到65535之间的整数 2 配置DNS服务器不响应时的重试次数。
[1] X是账号ID。
[2] Y是服务器ID。Y=1-2。
[3] 如果更改此参数,话机将重启以使更改生效。
静态DNS缓存
仅当将服务器的配置域名解析为多个IP地址时,才能利⽤故障转移冗余。如果话机没有配置DNS服务器, 或者DNS查询没有返回来⾃DNS服务器的结果,则可以在话机中静态配置⼀组DNS NAPTR/SRV/A记录。话机将尝试使⽤静态DNS缓存解析SIP服务器的域名。还提供了对RFC 2308中描述的DNS查询的负缓存支持,以允许在先前的DNS查询未从DNS服务器返回结果时更快地进行故障转移。
域名解析行为
当话机配置了DNS服务器时,它将按以下方式解析服务器的域名:
话机执行DNS查询以从DNS服务器解析域名。
如果DNS查询未返回域名的结果或返回的记录无法联系,则在配置的时间间隔未过期时使用静态DNS缓存中的值(如果已配置)。
如果配置的时间间隔已过期,话机将尝试再次执行DNS查询。
如果DNS查询返回结果,话机将使用DNS服务器返回的记录,并忽略静态配置的缓存值。
当话机未配置DNS服务器时,它将按以下方式行为:
话机尝试在静态DNS缓存中解析域名。
话机将始终使用静态DNS缓存返回的结果。
配置参数
dns_cache_naptr.X.service
account.X.static_cache_pri
account.X.dns_cache_type
dns_cache_naptr.X.name
dns_cache_naptr.X.order
dns_cache_naptr.X.preference
dns_cache_naptr.X.replace
dns_cache_naptr.X.ttl
dns_cache_srv.X.name
dns_cache_srv.X.port
dns_cache_srv.X.priority
dns_cache_srv.X.target
dns_cache_srv.X.weight
dns_cache_srv.X.ttl
dns_cache_a.X.name
dns_cache_a.X.ip
dns_cache_a.X.ttl
static.network.dns.ttl_enable
static.network.dns.last_cache_expired
static.network.dns.last_cache_expired.enable
M7参数 取值范围 出厂默认值 功能说明
account.X.dns_cache_type[1] 0-执行实时DNS查询而非使用DNS缓存。1-使用DNS缓存,但不记录附加记录。2-使用DNS缓存并缓存附加的DNS记录。 1 配置话机是否使用DNS缓存解析SIP服务器的域名,并缓存附加的DNS记录。
account.X.static_cache_pri[1] 0-优先使用服务器的域名解析1-优先使用静态DNS缓存 0 配置是否优先使用静态DNS缓存解析SIP服务器的域名。
dns_cache_naptr.X.name[2] 域名 空 配置NAPTR记录X所指向的域名。
dns_cache_naptr.X.order[2] 0到65535之间的整数 0 配置NAPTR记录X的顺序。顺序较低的NAPTR记录更优先。
dns_cache_naptr.X.preference[2] 0到65535之间的整数 0 配置NAPTR记录X的优先级。优先级较低的NAPTR记录更优先。
dns_cache_naptr.X.replace[2] 域名 空 配置NAPTR记录X中用于下一个SRV查询的域名。
dns_cache_naptr.X.service[2] SIP+D2U-SIP over UDPSIP+D2T-SIP over TCPSIPS+D2T-SIPS over TLS 空 配置NAPTR记录X中SIP服务器可用的传输协议。
dns_cache_naptr.X.ttl[2] 30到2147483647之间的整数 300 配置NAPTR记录X在缓存前可以缓存的时间间隔(以秒为单位)。
dns_cache_srv.X.name[2] 域名 空 配置SRV记录X中的域名。
dns_cache_srv.X.port[2] 0到65535之间的整数 0 配置SRV记录X中使用的端口。
dns_cache_srv.X.priority[2] 0到65535之间的整数 0 配置SRV记录X中目标主机的优先级。优先级较低的目标主机更优先。
dns_cache_srv.X.target[2] 域名 空 配置SRV记录X中目标主机的域名以进行A查询。
dns_cache_srv.X.weight[2] 0到65535之间的整数 0 配置SRV记录X中目标主机的权重。当优先级相同时,权重用于区分优先级。权重较高的更优先。
dns_cache_srv.X.ttl[2] 30到2147483647之间的整数 300 配置SRV记录X在缓存前可以缓存的时间间隔(以秒为单位)。
dns_cache_a.X.name[2] 域名 空 配置A记录X中的域名。
dns_cache_a.X.ip[2] IP地址 空 配置A记录X中的域名映射到的IP地址。
dns_cache_a.X.ttl[2] 30到2147483647之间的整数 300 配置A记录X在缓存前可以缓存的时间间隔(以秒为单位)。
static.network.dns.ttl_enable[3] 0-禁用1-启用 1 启用或禁用话机使用A记录中的TTL(生存时间)。
static.network.dns.last_cache_expired 0到65535之间的整数0-过期的DNS缓存只能使用一次。使用后,话机将再次执行DNS查询。1到65535-话机将在指定时间内使用过期的DNS缓存。之后,话机将再次执行DNS查询。 3600 配置过期DNS缓存的有效期。 说明:仅当“static.network.dns.last_cache_expired.enable”设置为1(启用)时有效。
static.network.dns.last_cache_expired.enable 0-禁用1-启用 0 启用或禁用话机在DNS服务器无法解析域名时使用DNS缓存(即使缓存已过期)。
[1] X是账号ID。
[2] X是记录ID。X=1-12。
[3] 如果更改此参数,话机将重启以使更改生效。
示例配置
以下三个示例展示了如何配置静态DNS缓存。
示例1
此示例展示了当您的DNS服务器不返回A记录时如何配置静态DNS缓存。在这种情况下,话机上的静态DNS缓存提供A记录。
当使用静态DNS缓存时,配置如下所示:
account.1.sip_server.1.address = yealink.pbx.com
account.1.sip_server.1.port = 5060
account.1.sip_server.1.transport_type = 3
dns_cache_a.1.name = yealink.pbx.com
dns_cache_a.1.ip = 192.168.1.13
dns_cache_a.1.ttl = 3600
dns_cache_a.2.name = yealink.pbx.com
dns_cache_a.2.ip = 192.168.1.14
dns_cache_a.2.ttl = 3600
示例2
此示例展示了当您的DNS服务器返回A记录但不返回SRV记录时如何配置静态DNS缓存。在这种情况下,话机上的静态DNS缓存提供SRV记录。
当使用静态DNS缓存时,配置如下所示:
account.1.sip_server.1.address = yealink.pbx.com
account.1.sip_server.1.port = 0
account.1.sip_server.1.transport_type = 3
dns_cache_srv.1.name = _sip._tcp.yealink.pbx.com
dns_cache_srv.1.port = 5060
dns_cache_srv.1.priority = 0
dns_cache_srv.1.target = server1.yealink.pbx.com
dns_cache_srv.1.weight = 1
dns_cache_srv.1.ttl = 3600
dns_cache_srv.2.name = _sip._tcp.yealink.pbx.com
dns_cache_srv.2.port = 5060
dns_cache_srv.2.priority = 0
dns_cache_srv.2.target = server2.yealink.pbx.com
dns_cache_srv.2.weight = 2
dns_cache_srv.2.ttl = 3600
参数account.1.sip_server.1.port设置为0以强制进行SRV查询。
示例3
此示例展示了当您的DNS服务器返回A和SRV记录但不返回NAPTR记录时如何配置静态DNS缓存。在这种情况下,话机上的静态DNS缓存提供NAPTR记录。
当使用静态DNS缓存时,配置如下所示:
account.1.sip_server.1.address = yealink.pbx.com
account.1.sip_server.1.port = 0
account.1.sip_server.1.transport_type = 3
dns_cache_naptr.1.name = yealink.pbx.com
dns_cache_naptr.1.flags = S
dns_cache_naptr.1.order = 90
dns_cache_naptr.1.preference = 50
dns_cache_naptr.1.replace = _sip._tcp.yealink.pbx.com
dns_cache_naptr.1.service = SIP+D2T
dns_cache_naptr.1.ttl = 3600
dns_cache_naptr.2.name = yealink.pbx.com
dns_cache_naptr.2.flags = S
dns_cache_naptr.2.order = 100
dns_cache_naptr.2.preference = 50
dns_cache_naptr.2.replace = _sip._udp.yealink.pbx.com
dns_cache_naptr.2.service = SIP+D2U
dns_cache_naptr.2.ttl = 3600
参数“account.1.sip_server.1.port”设置为0以强制进行NAPTR查询。