distributor和gateway联合实现出中继的负载均衡+故障转移

Freeswitch是一款简单易用的VOIP开源软交换平台,在之前的文章中,我们介绍了distributor模块实现多线路分发的配置方法,但当线路发生故障时,distributor并不会自动跳过故障线路实现故障转移,为此,本节我们将利用gateway的option检测配置,实现中继线路的故障转移。 Freeswitch版本:v1.10.7 GCC版本:4.8.5
APP接口
在distributor的接口格式中,可以追加排除列表“”,当distributor选线时,会跳过排除列表中的线路。 distributor [ ] sofia接口可以检测external下所有gateway的状态,并返回“DOWN”状态的gateway列表,命令为:sofia profile external gwlist down
配置&测试
- 配置网关参数:进入conf/sip_profile/external/目录,为每个网关创建xml配置文件,如gw-138-5080.xml、gw-138-5090.xml和gw-138-15090.xml。
- 配置distributor列表:编辑conf/autoload_configs/distributor.conf.xml文件,设置distributor的线路列表。
- 设置拨号计划:修改conf/dialplan/test.xml配置文件,仅使用distributor接口进行拨号,Dialplan: sofia/external/10011@10.55.55.138 Action bridge({sip_invite_call_id=${sip_call_id}}sofia/gateway/${distributor(test-gw)}/1002)。
在测试过程中,当某个网关出现故障时,freeswitch会自动跳过该故障网关,选择其他可用网关进行通信,当gw-138-15090出现故障时,执行Dialplan中的操作会跳过该网关,选择其他正常工作的网关进行呼叫。
Freeswitch拥有丰富的功能,每个功能设计简洁、职责明确,通过灵活组合不同的功能,我们可以实现各种复杂的需求,我们介绍了如何利用gateway和distributor实现中继线路的故障转移,通过合理配置,freeswitch可以自动跳过故障线路,确保通信的连续性,最好的设计就是功能模块的高内聚、低耦合、职责单一,同时又可以灵活组合。