freeswitch的distributor模块

 

 

概述

freeswitch 是一款简单好用的VOIP开源软交换平台。

当呼叫是同一个入中继,但是有多条出中继时,需要对出中继做负载均衡,mod_distributor模块可以完成对应的配置和路由。

mod_distributor是一个轻量级的线路分发模块,配置简单,支持权重方式分发多条出中继。

环境

centos:CentOS  release 7.0 (Final)或以上版本

freeswitch:v1.10.7

GCC:4.8.5

APP示例

distributor的APP接口使用方法“${distributor(distributor_list)”。

<action application="bridge" data="sofia/gateway/${distributor(distributor_list)}/${destination_number}"/>

<action application="bridge" data="sofia/external/${destination_number}@${distributor(distributor_list)}"/>

配置&测试

distributor模块默认不编译,需要进入目录手动编译安装。

src/mod/applications/mod_distributor

make install

 

修改conf/autoload_configs/modules.conf.xml,加载distributor模块。

<load module="mod_distributor"/>

 

配置文件conf/autoload_configs/distributor.conf.xml,设置distributor列表。

<configuration name="distributor.conf" description="Distributor Configuration">

  <lists>

    <list name="test" total-weight="5">

      <node name="10.55.55.138:5080" weight="1"/>

      <node name="10.55.55.138:5090" weight="2"/>

      <node name="10.55.55.138:15090" weight="2"/>

    </list>

  </lists>

</configuration>

 

配置文件conf/dialplan/test.xml,设置拨号计划。

<extension name="test" continue="false">

    <condition field="destination_number" expression="^(\d+)$">

        <action application="bridge" data="{sip_invite_call_id=${sip_call_id}}sofia/external/$1@${distributor(test)}"/>

    </condition>

</extension>

 

刷新distributor配置数据。

reloadxml

distributor_ctl reload

 

发起呼叫10011->1002,三次的测试日志如下。

2022-12-13 15:37:37.150797 [INFO] mod_dialplan_xml.c:637 Processing 10011 <10011>->1002 in context public

...

Dialplan: sofia/external/10011@10.55.55.138 Action bridge({sip_invite_call_id=${sip_call_id}}sofia/external/1002@${distributor(test)})

...

EXECUTE sofia/external/10011@10.55.55.138 bridge({sip_invite_call_id=db46fa8f-f55b-123b-7d99-000c29a63969}sofia/external/1002@10.55.55.138:5080)

...

EXECUTE sofia/external/10011@10.55.55.138 bridge({sip_invite_call_id=16ef92f5-f55a-123b-7d99-000c29a63969}sofia/external/1002@10.55.55.138:5090)

...

EXECUTE sofia/external/10011@10.55.55.138 bridge({sip_invite_call_id=1b811933-f55a-123b-7d99-000c29a63969}sofia/external/1002@10.55.55.138:15090)

总结

mod_distributor模块功能简单清晰,配置方便。

在拨号计划的action中使用loop标记配合distributor,可以实现多条出中继的呼叫尝试。

 

空空如常

求真得真

posted @ 2022-12-15 17:16  求真得真  阅读(262)  评论(0)    收藏  举报