首页 > 其他分享 >freeswitch的distributor模块

freeswitch的distributor模块

时间:2022-12-15 17:24:57浏览次数:35  
标签:sofia 55.138 10.55 distributor external 模块 freeswitch mod

 

 

概述

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/[email protected] Action bridge({sip_invite_call_id=${sip_call_id}}sofia/external/1002@${distributor(test)})

...

EXECUTE sofia/external/[email protected] bridge({sip_invite_call_id=db46fa8f-f55b-123b-7d99-000c29a63969}sofia/external/[email protected]:5080)

...

EXECUTE sofia/external/[email protected] bridge({sip_invite_call_id=16ef92f5-f55a-123b-7d99-000c29a63969}sofia/external/[email protected]:5090)

...

EXECUTE sofia/external/[email protected] bridge({sip_invite_call_id=1b811933-f55a-123b-7d99-000c29a63969}sofia/external/[email protected]:15090)

总结

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

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

 

空空如常

求真得真

标签:sofia,55.138,10.55,distributor,external,模块,freeswitch,mod
From: https://www.cnblogs.com/qiuzhendezhen/p/16985585.html

相关文章

  • PayCloud 企业付款功能模块正式发布 V2.0
     场景企业付款为企业提供付款至用户零钱的能力,支持通过API接口付款。付款目前PayCloud已接入支付宝、微信付款功能,客户可以通过平台对用户进行转账操作,也可以通过系统......
  • requests模块
    requests.get/post(url,params,data,headers,timeout,verify,allow_redirects,cookies)url:要下载的目标网页的URLparams:字典形式,设置URL后面的参数,比如?id=123&name=donf......
  • Python14 文件读写和编码&OS、path模块的使用
    编码文件读写操作#作者:咸瑜file=open("text.txt","r",encoding="utf-8")print(file.readlines())#['姓名:咸瑜\n','年龄:18\n','籍贯:广东·惠州']file.clo......
  • IGBT模块A2F12M12W2-F1、A2U12M12W2-F2为简化SiC逆变器而设计
    ACEPACK2电源模块是集成有SiC电源MOSFET技术的1200V模块。这些电源模块支持宽带隙碳化硅材料和高热性能基板的特性。A2F12M12W2-F1模块采用4组拓扑,A2U12M12W2-F2模块采用3......
  • CVE-2022-2639【Linux Kernel openvswitch 模块权限提升】
    漏洞影响版本:3.13≤LinuxKernel<5.18Exp地址:https://github.com/avboy1337/CVE-2022-2639-PipeVersion查看内核版本:编译exploit.c执行exp进行提权:......
  • vuex共享数据仓库的模块化使用
    一:概念: vuex是使用vue中必不可少的一部分,基于父子、兄弟组件,我们传值可能会很方便,但是如果是没有关联的组件之间要使用同一组数据,就显得很无能为力,那么vuex就很好的解决......
  • python中使用numpy模块画函数图像
    由于比较简单,只靠代码的注释就差不多了:1#导入需要的库importnumpyasnp2importmatplotlib.pyplotasplt34#定义变量和函数x=np.arange(-100,100,......
  • FreeSWITCH学习笔记:内部命令(API)
    本文更新于2022-12-14,使用FreeSWITCH1.10.7。官方文档见:https://freeswitch.org/confluence/display/FREESWITCH/mod_commands说明:下文中,部分大写为自定义变量,根据实际......
  • 模块层 模块的导入以及继承 ORM常用关键字
    今日内容详细模板层之标签#支持使用if判断for循环和while循环if判断 {%if条件1%} 条件1满足执行的代码 {%elif条件2%} 条件2满足执行的代码{......
  • 创建各个业务微服务模块
    1.创建用户模块eureka模块创建好后,我们便开始创建3个业务微服务模块。首先创建用户模块user,创建好后编辑pom.xml,如程序清单15-6所示。  接着,我们把application.pr......