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

来源:互联网 发布:java返回值设置 编辑:程序博客网 时间:2024/06/06 09:01
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. <load module="mod_xml_curl"/>  


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

Java代码  收藏代码
  1. <configuration name="xml_curl.conf" description="cURL XML Gateway">  
  2.   <bindings>  
  3.     <!-- Ask example1.com for a dialplan config, if we get a valid response  
  4.          then don't continue onto example2.com. However if we don't get a valid  
  5.          response, then continue onto example2.com   
  6.     -->  
  7.     <binding name="dialplan">  
  8.       <param name="gateway-url" value="http://example1.com:80/fsapi" bindings="dialplan"/>  
  9.     </binding>  
  10.   
  11.     <!-- This will only get called if example1.com returns an invalid or  
  12.          not found response. If this gateway also fails to return a valid  
  13.          configuration, then FreeSWITCH will look for the static configuration   
  14.          file on disk  
  15.     -->  
  16.     <binding name="dialplan backup">  
  17.       <param name="gateway-url" value="http://example2.com:80/fsapi" bindings="dialplan"/>  
  18.     </binding>  
  19.   
  20.     <!-- Ask example1.com for a directory config, if not found then revert  
  21.          to disk  
  22.     -->  
  23.     <binding name="directory">  
  24.       <param name="gateway-url" value="http://example1:80/fsapi" bindings="directory"/>  
  25.     </binding>  
  26.   
  27.     <!-- Ask example1.com for a configuration config, if not found then revert  
  28.          to disk  
  29.     -->  
  30.     <binding name="configuration">  
  31.       <param name="gateway-url" value="http://example1:80/fsapi" bindings="configuration"/>  
  32.     </binding>  
  33.   
  34.     <!-- Ask example1.com for a phrases config, if not found then revert  
  35.          to disk  
  36.     -->  
  37.     <binding name="phrases">  
  38.       <param name="gateway-url" value="http://example1:80/fsapi" bindings="phrases"/>  
  39.     </binding>  
  40.   </bindings>  
  41. </configuration>  


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

0 0