FreeSWITCH 使用外部Directory 代替磁盘xml文件

大家都知道,FreeSWITCH默认是从磁盘中xml文件,决定系统中有哪些用户的。对于一个常规的信息系统,用户信息都是存储在数据库中。

以下非常简单的演示了,FreeSWITCH中的用户如何使用数据库注册。

准备工作:
一套LAMP或LNMP环境
编译FreeSWITCH 的mod_xml_curl 模块

Apache + php7 + MySQL 5.7 中的php脚本

根据实际情况,修改相关参数

编译FreeSWITCH 相关模块

编译mod_xml_curl,默认不编译
[root@CentOS 01_install]# vim freeswitch-1.6.17/modules.conf 

#xml_int/mod_xml_curl
改为
xml_int/mod_xml_curl
 
编译 ./configure && make && make mod_xml_curl-install
具体你的configure怎么设置的,自己加上原先的参数。

使FreeSWITCH自动加载mod_xml_curl
[root@CentOS freeswitch]# vim ./autoload_configs/modules.conf.xml

    <!-- <load module="mod_xml_curl"/> -->
改为
    <load module="mod_xml_curl"/>
   

修改拨号计划,添加通话路由
[root@CentOS freeswitch]# vim dialplan/default.xml 
<condition field="destination_number" expression="^(10[01][0-9]|1234|lao_wang)$">

启动FreeSWITCH

一个SIP 使用 ('lao_wang','tiger'),注册
一个SIP 使用('1234','4321'), 注册

互相拨打电话,试试

调错技巧:
按F8,打开 debug级别日志。

拨打电话,打不通,如果出现以下情况,说明HTTP请求是失败的,检查php脚本的ip,user,password参数
2017-06-29 01:21:40.705900 [WARNING] mod_voicemail.c:3487 Can't find user [[email protected]]

如果出现以下情况,说明HTTP请求被拒绝,tcpdump 查看发来的包结构。
2017-06-29 00:22:38.681206 [WARNING] mod_xml_curl.c:294 CURL returned error:[52] Server returned nothing (no headers, no data)

用户1234 拨打 lao_wang

lao_wang的电话显示1234来电了

猜你喜欢

转载自www.linuxidc.com/Linux/2017-07/145379.htm