在多个网关之间故障转移和分配来电
SIP 中继的路由决定如何处理每个来电:在一组网关中寻线、拒绝来电,或将来电转接到已验证的号码。寻线组是一份网关列表,Bird 会依次尝试其中的网关,直到有一个应答。组的顺序、优先级、权重和振铃时长决定哪个网关先振铃,以及它未应答时如何处理。本页介绍如何为故障转移和负载分担进行设置。
开始之前
- 一个已开启呼入并至少有一个网关的 SIP 中继。设置 SIP 中继 介绍了这两项。如果中继的路由从未保存过,在您添加第一个网关时,控制台会将默认路由指向 All gateways (automatic),即包含该中继所有网关的组。
- 要组合的网关,需已在中继的 Inbound routing > Gateways 标签页中添加。
寻线组如何寻线
每个来电都会启动一次寻线。Bird 为该来电对组内网关排序,先呼叫第一个网关,失败时转到下一个:
- 网关按其 Ring time 振铃,范围为 1 到 120 秒(默认 30 秒)。如果在此时间内无人应答,Bird 会转到下一个网关。
- 完全没有响应的网关会在短暂间隔后被跳过,因此宕机的网关不会让来电者等完整个振铃时长。
- 如果网关以 SIP 失败代码拒绝来电,寻线会转到下一个网关,除非该代码列在组的 Stop the hunt on 中。
- 当某个网关接听,或组内所有网关都已尝试过时,寻线结束。
Bird 对每通呼叫单独排序,不在呼叫之间保留轮转状态,因此没有轮询。均匀分配来自多通呼叫上的随机排序或加权排序。
| 顺序 | 如何为每通呼叫排列网关 | 适用场景 |
|---|---|---|
| Sequential | 按列表顺序,从上到下 | 固定的主网关和备用网关 |
| Random | 每次重新生成随机顺序 | 均匀分配呼叫 |
| Weighted | 先按 Priority 从低到高排列。同一优先级内采用随机顺序,每个网关排在首位的概率等于其权重在总权重中的占比 | 同时实现故障转移和按权重分配 |
使用自动组
中继的每个网关都属于 All gateways (automatic),除非中继已保存的路由用自己的组替代了它(见本节末尾)。您添加或移除的网关会随之加入或离开该组。该组使用 Weighted 顺序、相同的权重和 30 秒振铃时长,并按您在 Gateways 标签页中设置的 Priority 顺序尝试各网关。在组本身中,其名称、Order、振铃时长和成员都无法编辑。
如需通过该组实现故障转移,请在 Gateways 标签页中为主网关设置比备用网关更低的 Priority。Priority 相同的网关会平均分担呼叫。如需其他振铃时长、权重或 Stop the hunt on 代码,请添加一个包含相同网关的自定义组,具体见后续各节。
如果控制台在您添加第一个网关时创建了名为 All gateways 的组,那么它是您自己的组:它只包含保存时的网关。如果 Groups 标签页中没有 All gateways (automatic),说明中继已保存的路由用一个自己的组替代了它,该组通常名为 All gateways。删除这个组后,自动组会恢复到原位置:原先转到该组的呼叫随后会按 Priority 顺序、以 30 秒振铃时长呼叫所有网关。如果该组包含您需要的网关、振铃时长或 Stop the hunt on 代码,请保留它。
设置故障转移
- 打开 Voice > SIP Trunks,打开该中继,然后进入 Inbound routing > Groups。
- 打开一个自定义组,或选择 Add group 并为其命名。All gateways (automatic) 无法编辑。
- 使用 Add gateway to group 添加主网关和备用网关。
- 将 Order 设为 Sequential,并使用 Move up 和 Move down 让主网关保持在最上方。也可以将 Order 设为 Weighted,并将主网关的 Priority 设为 1、备用网关的 Priority 设为 2。
- 设置每个网关的 Ring time。主网关的振铃时间越短,未接听的呼叫就越早转到备用网关。
- 在 Rules 标签页中,将 Default route 的 Then 设为 Route to group 并选择该组,或将某条规则指向该组。没有任何路由使用的组不会接收呼叫。
- 选择 Review and save,然后确认。
在网关之间分配呼叫
- 打开该中继的 Inbound routing > Groups。打开一个自定义组,或选择 Add group 并为其命名,然后使用 Add gateway to group 添加网关。
- 将 Order 设为 Weighted,为各网关设置相同的 Priority,并将每个网关的 Weight 设为 1 到 100 之间的值。权重为 70 和 30 时,两个网关分别接收约 70% 和 30% 的呼叫。如需平均分配,请使用相同的权重,或将 Order 设为 Random。
- 如果还要保留备用网关,请将分担呼叫的网关设为 Priority 1,将备用网关设为 Priority 2。只有当所有优先级为 1 的网关都失败后,备用网关才会振铃。
- 在 Rules 标签页中,将 Default route 的 Then 设为 Route to group 并选择该组,或将某条规则指向该组。
- 选择 Review and save,然后确认。
遇到忙音时停止寻线
默认情况下,Bird 在每次失败后都会尝试下一个网关。如果某种失败意味着换一个网关也无济于事,请将其代码添加到组的 Stop the hunt on 中。例如,添加 486(Busy Here),这样正在通话的人就不会通过第二个网关再次被呼叫。可以输入 400 到 699 之间的任意代码。
将不同的呼叫路由到不同的组
一个中继可以有多个组。Default route 将未匹配任何规则的呼叫发送到一个组,Rules 标签页中的规则可以将其他呼叫发送到其他组。将呼叫送达 SIP 中继介绍了规则和默认路由。
故障排除
| 现象 | 检查内容 |
|---|---|
| 备用网关从不振铃 | 备用网关位于默认路由(或匹配的规则)所使用的组中。使用 Weighted 时,其 Priority 数值高于主网关。Stop the hunt on 中的某个代码在轮到备用网关之前就结束了寻线 |
| 使用 Weighted 时所有呼叫都由一个网关接听 | 优先级不同的网关不会分担呼叫。请为它们设置相同的 Priority |
| 呼叫在转到备用网关前振铃时间过长 | 调低主网关的 Ring time |
| 某个网关从不振铃 | 该网关不在任何规则或默认路由所使用的组中。保存时,控制台会提示 Calls never reach some gateways |