当前位置: 首页 > news >正文

vue快速搭建网站企业如何建立网站

vue快速搭建网站,企业如何建立网站,推广app的单子都在哪里接的,上海做网站设计概述 freeswitch是一款简单好用的VOIP开源软交换平台。 mod_xml_curl模块支持从web服务获取xml配置,本文介绍如何动态获取acl配置。 环境 centos:CentOS release 7.0 (Final)或以上版本 freeswitch:v1.6.20 GCC:4.8.5 web…

 

概述

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

mod_xml_curl模块支持从web服务获取xml配置,本文介绍如何动态获取acl配置。

环境

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

freeswitch:v1.6.20

GCC:4.8.5

web服务

mod_xml_curl模块依赖于web服务,需要自己创建一个web接口并动态的返回xml配置。

下面是python3.10实现的一个简单的web服务接口函数,从基类“BaseHTTPRequestHandler”继承并实现简单的返回逻辑。

    def fsDialplan(self):

        length = int(self.headers['content-length']) 

        datas = self.rfile.read(length)

        logging.info('/fs/dialplan request, data=%s' % urllib.parse.unquote(datas))

        respcode = '''<document type="freeswitch/xml">

<section name="dialplan" description="dialplan-url">

    <include>

        <context name="public">

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

                <condition field="${acl(${network_addr} list_out)}" expression="true"/>

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

                    <action application="answer"/>

                    <action application="playback" data="/usr/local/freeswitch/sounds/dialplan-test-url.wav"/>

                </condition>

            </extension>

        </context>

    </include>

</section>

</document>

'''

        self.send_response(200)

        self.send_header('Content-Type', 'application;charset=utf-8')

        self.end_headers()

        self.wfile.write(respcode.encode('utf-8'))

        return

   

    def fsConfigAcl(self):

        length = int(self.headers['content-length']) 

        datas = self.rfile.read(length)

        # print('fsConfigAcl request, data=', datas.decode())

        logging.info('/fs/config/acl request, data=%s' % urllib.parse.unquote(datas))

        respcode = '''<document type="freeswitch/xml">

<section name="configuration" description="config-acl">

<configuration name="acl.conf" description="Network Lists">

  <network-lists>

    <list name="list_out" default="deny">

      <node type="allow" cidr="10.55.55.138/32"/>

    </list>

  </network-lists>

</configuration>

</section>

</document>

'''

        self.send_response(200)

        self.send_header('Content-Type', 'application;charset=utf-8')

        self.end_headers()

        self.wfile.write(respcode.encode('utf-8'))

        return

web服务响应消息格式注意事项,必须有“section”段,xml格式不能使用压缩格式,否则会解析错误。

fsDialplan函数的响应中增加了acl的条件判断。

fsConfigAcl函数响应添加“list_out”的acl规则。

配置

检查conf/autoload_configs/modules.conf.xml文件,mod_xml_curl模块要放在配置的顶部。

    <load module="mod_console"/>

<load module="mod_logfile"/>

<load module="mod_xml_curl"/>

修改conf/autoload_configs/xml_curl.conf.xml文件。

<configuration name="xml_curl.conf" description="cURL XML Gateway">

  <bindings>

    <binding name="dialplan">

      <param name="gateway-url" value="http://10.55.55.137:8080/fs/dialplan" bindings="dialplan"/>

</binding>

<binding name="configuration">

<param name="gateway-url" value="http://10.9.0.27:8080/fs/config-acl" bindings="configuration"/>

</binding>

  </bindings>

</configuration>

测试

configuration动态配置需要刷新生效。

freeswitch@localhost.localdomain> reloadacl

+OK acl reloaded

2023-08-04 10:37:59.117939 [NOTICE] switch_utils.c:545 Adding 10.55.55.138/32 (allow) [] to list list_out

使用10011发起呼叫,日志如下。

2023-08-04 10:38:05.277908 [INFO] mod_dialplan_xml.c:637 Processing 10011 <10011>->13712345678 in context public

Dialplan: sofia/external/10011@10.55.55.138 parsing [public->test-url] continue=false

Dialplan: sofia/external/10011@10.55.55.138 Regex (PASS) [test-url] ${acl(${network_addr} list_out)}(true) =~ /true/ break=on-false

Dialplan: sofia/external/10011@10.55.55.138 Regex (PASS) [test-url] destination_number(13712345678) =~ /^(\d+)$/ break=on-false

Dialplan: sofia/external/10011@10.55.55.138 Action answer()

Dialplan: sofia/external/10011@10.55.55.138 Action playback(/usr/local/freeswitch/sounds/dialplan-test-url.wav)

呼叫结果符合预期。

总结

mod_xml_curl模块动态获取config数据,方便对批量的fs集中统一管理配置。

未解决问题。

configuration类型的配置数据动态刷新的边界在哪里,我们可以把哪些配置数据放在web服务统一管理。

如何解决web服务不可用的本地xml配置问题,本地xml配置与web动态配置不一致的问题。

空空如常

求真得真

http://www.rdtb.cn/news/17184.html

相关文章:

  • 武汉网站seo诊断宁波网络推广平台
  • 提卡的网站怎么做营销和运营的区别是什么
  • 奉化建设局网站谷歌商店官网下载
  • 网站开发财务温州网站建设制作
  • 黄岛开发区做网站的公司推广普通话的意义50字
  • wordpress编辑使用其他模板爱站网站seo查询工具
  • 网站推广建设期宁波seo教程行业推广
  • 大气机械网站农产品营销方案
  • 四川省人民政府参事室seo教程seo优化
  • seo网站设计今日新闻头条新闻
  • 海南州公司网站建设友情链接交换群
  • 网站建设注意事项 南京免费入驻的电商平台
  • 网站不良正能量直接进入张北网站seo
  • wordpress 小手枪图标百度首页排名优化平台
  • 做家政网站公司名称网站seo优化方案策划书
  • 网站建设公司经营范围seo工具不包括
  • 企业网站搜索优化外包企业百度推广怎么收费
  • 广东网站建设包括什么一个具体网站的seo优化方案
  • 有哪些在线做图的网站舆情分析网站
  • CC wordpress 攻击新十条优化措施
  • php网站开发集合教程网站制作报价表
  • 怎么去找做网站的怎么建网站免费的
  • 制作网站的成本规划网络营销seo是什么意思
  • 石家庄网站app开发seo网络推广员招聘
  • 平面设计主要学什么软件小红书关键词排名优化
  • 徐州网站制作流程产品线上营销推广方案
  • 免费注册个网站海外seo是什么
  • 济南市做网站推广公司产品
  • 广东微信网站制作多少钱接推广怎么收费
  • 如何在word里做网站cba排名