freeswitch 使用mod_xml_curl实现动态认证以及动态配置
Song •
7211 次浏览 •
0个评论 •
2018年10月24日
一、mod_xml_curl的安装
进入项目源码编辑文件modules.conf
,取消掉xml_int/mod_xml_curl
的注释。
make mod_xml_curl-install
如果你要默认启动模块,可以尝试在/usr/local/freeswitch/conf/autoload_configs/modules.conf.xml
设置默认启动,也可以在freeswitch
服务器load mod_xml_curl
。
二、mod_xml_curl的使用
该模块分为4个不同的部分,它们是;
- configuration - 配置项,例如mod_sofia
- directory - 用户目录(用户身份验证)
- dialplan - 拨号方案项目(呼叫路由)
- phrases - SAY api的短语(语音短语管理)
您可以根据需要在多个不同的网关上指定绑定某一个配置,也可以绑定多个在一个API
中。
1、修改
在./freeswitch/conf/autoload_configs/xml_curl.conf.xml
中修改配置:
<configuration name="xml_curl.conf" description="cURL XML Gateway">
<bindings>
<!-- 拨号计划 -->
<binding name="dialplan">
<param name="gateway-url" value="http://example1.com:80/fsapi" bindings="dialplan"/>
</binding>
<!-- 上一个拨号计划报错或者无返回就调用这个,还没有就调用系统配置 -->
<binding name="dialplan backup">
<param name="gateway-url" value="http://example2.com:80/fsapi" bindings="dialplan"/>
</binding>
<!-- 配置用户目录 -->
<binding name="directory">
<param name="gateway-url" value="http://example1:80/fsapi" bindings="directory"/>
</binding>
<!-- 配置项 -->
<binding name="configuration">
<param name="gateway-url" value="http://example1:80/fsapi" bindings="configuration"/>
</binding>
<!-- 语音短语管理 -->
<binding name="phrases">
<param name="gateway-url" value="http://example1:80/fsapi" bindings="phrases"/>
</binding>
</bindings>
</configuration>
也可以合并到一起:
<configuration name="xml_curl.conf" description="cURL XML Gateway">
<bindings>
<binding name="all configs">
<param name="gateway-url" value="http://example1.com:80/fsapi" bindings="dialplan|configuration|directory|phrases"/>
</binding>
<binding name="all configs backup">
<param name="gateway-url" value="http://example2.com:80/fsapi" bindings="dialplan|configuration|directory|phrases"/>
</binding>
</bindings>
</configuration>
您还可以提供一些其它的参数,比如登陆账号密码,方便接口安全认证:
<configuration name="xml_curl.conf" description="cURL XML Gateway">
<bindings>
<binding name="all configs">
<param name="gateway-url" value="http://example1.com:7111/fsapi" bindings="dialplan|configuration|directory|phrases"/>
<param name="gateway-credentials" value="muser:mypass"/>
<param name="auth-scheme" value="basic"/>
</binding>
</bindings>
</configuration>
auth-scheme
默认为basic
即可,name
可以随意定义。比如你想传name
为auth
,账号密码为root:123
就用<param name="auth" value="root:123"/>
三、API提示和技巧
您可以使用以下freeswitch命令来帮助调试配置。它将返回一个文件名,其中包含每个xml_curl查询的结果XML。
xml_curl debug_on
如果要从磁盘包含本地文件,可以使用以下方法;
<param name="dialplan" value="XML,XML:/path/to/custom/dialplan.xml"/>
这里要注意的一点是在xml_curl
配置中使用timeout param
来防止sofia
配置文件对REGISTER
请求没有响应。
用户评论
-
2018-11-16 07:55:24
api返回的xml需要按照格式拼接,如: ``` <?xml version="1.0" encoding="UTF-8" standalone="no"?> ```更多相关好文
当前暂无更多相关好文推荐...
-
微信公众号文章/菜单添加小程序时路径如何获取? 2021-12-22
-
如何轻松获取微信小程序路径path? 2021-12-22
-
cannot import name 'CUDA_HOME' from 'mmcv.utils' 2021-12-05
-
vgg的loss一轮达到ln(1/n)阈值,如何解决 2021-11-21
-
如何下载使用utils库 2021-10-27
热门文章
-
微信公众号文章/菜单添加小程序时路径如何获取? 2021-12-22
-
如何轻松获取微信小程序路径path? 2021-12-22
-
python/MySQL分页查询方法与性能优化 2021-06-23
-
mitmproxy & python 忽略所有的https/ssl请求 2021-04-19
-
如何使用邮件/邮箱推广微信公众号/小程序? 2021-01-28
栏目最新文章
公告提示
- pytorch中文文档
- pytorch官方文档
提交评论