千家信息网

freeswitch 使用外部directory 代替磁盘xml文件

发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,大家都知道,FreeSWITCH默认是从磁盘中xml文件,决定系统中有哪些用户的。对于一个常规的信息系统,用户信息都是存储在数据库中。以下非常简单的演示了,FreeSWITCH中的用户如何使用数据库注
千家信息网最后更新 2025年11月08日freeswitch 使用外部directory 代替磁盘xml文件


大家都知道,FreeSWITCH默认是从磁盘中xml文件,决定系统中有哪些用户的。


对于一个常规的信息系统,用户信息都是存储在数据库中。


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



准备工作:

一套LAMP或LNMP环境

编译FreeSWITCH 的mod_xml_curl 模块



Apache + php7 + MySQL 5.7 中的php脚本

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

zhouss@zhouss/var/www/html$ cat chunli_test.php 0){    while($row=$result->fetch_row())    {          foreach($row as $key=>$val)        {              $password = $val;        }      }      $result->free(); }else{    echo"查无此人{$user}\n";    exit();}mysqli_close($link);?>  
zhouss@zhouss/var/www/html$



编译FreeSWITCH 相关模块

[root@CentOS ~]# iptables -F

[root@CentOS ~]# iptables -X



编译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将    改为                


修改FreeSWITCH用户注册的方式,HTTP优先,如果请求失败了,再到本地磁盘找xml文件

[root@CentOS freeswitch]# vim autoload_configs/xml_curl.conf.xml                   


修改拨号计划,添加通话路由

[root@CentOS freeswitch]# vim dialplan/default.xml 




启动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 [1000@172.16.66.88]



如果出现以下情况,说明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来电了







0