mod_xml_curl 动态加载号码,拨号方案

mod_xml_curl:

此模块为与Asterisk realtime 机制差不多,可以通过此模让freeswitch 需要时动态访问外部数据库或Web Server.这样可以实现动态控制freeswitch核心。
比如 分机的添加可以通过在数据库配置,freeswitch通过此模块来加载分机。
通过此模块可以绑定:
1 .dialplan
<param name="gateway-url" value="http://localhost:8080" bindings="Dialplan"/>

每次呼叫,系统都会先访问8080

freeswitch安装完成后认的是用静态配置文件的方式加载号码本

这对于动态注册用户,无法实时同步
需要系统reloadxml后号码才能呼入

对于商业系统来说这是无法接受的

动态加载
动态方式其实很简单,开发一个http接口给fs调用
fs发去http请求传参数,接口返回http相应
这样就OK了
下面给出具体配置:
第一步 找到 modules.conf.conf 文件 去掉注释

Java代码
  1. <loadmodule="mod_xml_curl"/>

第二步 修改 xml_curl.cong.xml
重点是 http://example1.com:80/fsapi 这个http接口
<configurationname="xml_curl.conf"description="cURLXMLGateway">
  • <bindings>
  • <!--Askexample1.comforadialplanconfig,ifwegetavalidresponse
  • thendon'tcontinueontoexample2.com.Howeverifwedon'tgetavalid
  • response,thencontinueontoexample2.com
  • -->
  • <bindingname="dialplan">
  • <paramname="gateway-url"value="http://example1.com:80/fsapi"bindings="dialplan"/>
  • </binding>
  • <!--Thiswillonlygetcalledifexample1.comreturnsaninvalidor
  • notfoundresponse.Ifthisgatewayalsofailstoreturnavalid
  • configuration,thenFreeSWITCHwilllookforthestaticconfiguration
  • fileondisk
  • <bindingname="dialplanbackup">
  • <paramname="gateway-url"value="http://example2.com:80/fsapi"bindings="dialplan"/>
  • foradirectoryconfig,85); font-weight:bold">ifnotfoundthenrevert
  • todisk
  • <bindingname="directory">
  • <paramname="gateway-url"value="http://example1:80/fsapi"bindings="directory"/>
  • foraconfigurationconfig,250)"> <bindingname="configuration">
  • <paramname="gateway-url"value="http://example1:80/fsapi"bindings="configuration"/>
  • foraphrasesconfig,250)"> <bindingname="phrases">
  • <paramname="gateway-url"value="http://example1:80/fsapi"bindings="phrases"/>
  • </bindings>
  • </configuration>

  • 接口的详细规范请参考 http://wiki.freeswitch.org/wiki/Mod_xml_curl

    相关文章

    php输出xml格式字符串
    J2ME Mobile 3D入门教程系列文章之一
    XML轻松学习手册
    XML入门的常见问题(一)
    XML入门的常见问题(三)
    XML轻松学习手册(2)XML概念