freeswitch 动态加载号码

freeswitch安装完成后默认的是用静态配置文件的方式加载号码本
这对于动态注册的用户,无法实时同步
需要系统reloadxml后号码才能呼入

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


动态加载
动态方式其实很简单,开发一个http接口给fs调用
fs发去http请求传参数,接口返回http相应
这样就OK了

下面给出具体配置:
第一步 找到 modules.conf.conf 文件 去掉注释
 <load module="mod_xml_curl"/>


第二步 修改 xml_curl.cong.xml
重点是 http://example1.com:80/fsapi 这个http接口

<configuration name="xml_curl.conf" description="cURL XML Gateway">
  <bindings>
    <!-- Ask example1.com for a dialplan config, if we get a valid response
         then don't continue onto example2.com. However if we don't get a valid
         response, then continue onto example2.com 
    -->
    <binding name="dialplan">
      <param name="gateway-url" value="http://example1.com:80/fsapi" bindings="dialplan"/>
    </binding>

    <!-- This will only get called if example1.com returns an invalid or
         not found response. If this gateway also fails to return a valid
         configuration, then FreeSWITCH will look for the static configuration 
         file on disk
    -->
    <binding name="dialplan backup">
      <param name="gateway-url" value="http://example2.com:80/fsapi" bindings="dialplan"/>
    </binding>

    <!-- Ask example1.com for a directory config, if not found then revert
         to disk
    -->
    <binding name="directory">
      <param name="gateway-url" value="http://example1:80/fsapi" bindings="directory"/>
    </binding>

    <!-- Ask example1.com for a configuration config, if not found then revert
         to disk
    -->
    <binding name="configuration">
      <param name="gateway-url" value="http://example1:80/fsapi" bindings="configuration"/>
    </binding>

    <!-- Ask example1.com for a phrases config, if not found then revert
         to disk
    -->
    <binding name="phrases">
      <param name="gateway-url" value="http://example1:80/fsapi" bindings="phrases"/>
    </binding>
  </bindings>
</configuration>


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

猜你喜欢

转载自xuliangyong.iteye.com/blog/1744905