FreeSwitch使用mod_format_cdr模块传递json/xml进行HTTP服务接受话单

Song4058 次浏览0个评论2018年10月22日

该模块目前是mod_json_cdrmod_xml_cdr的集合, 最终将取代这两个模块。发生这种情况时,这些模块的文档将合并到此页面中。现在,请参阅它们以获取特定输出格式的详细信息。

一、安装配置mod_format_cdr

vim modules.conf

取消mod_format_cdr的注释

make mod_format_cdr-install

然后进入modules.conf.xml取消掉mod_format_cdr的注释即可自动加载。注意 安装好后建议从启freeswitch服务器,因为我使用load mod_format_cdr发现无用

<load module="mod_format_cdr"/> 

二、配置接收地址和传输数据格式

必须至少定义一个配置文件,配置接收地址,数据格式等:

vim autoload_configs/format_cdr.conf.xml 
  • format参数以指示该特定配置文件的所需输出格式(JSON/XML)。
  • 记录发生至少需要log-dirurl中的一个。
  • log-dir(文件)模式下,目标目录中的每次调用都会创建一个文件。
  • url模式下,每个CDR提交一个POST。(套接字当前未在CDR之间重复使用。)cred字段应包含login:password以进行身份​​验证。
  • 如果使用url提交CDR失败,则模块将使用每个err-log-dir回退到文件模式,保证话单不会丢失。

1、format_cdr.conf.xml指向运行PHP代码的Web服务器

<configuration name="format_cdr.conf" description="Multi Format CDR CURL logger">
 <profiles>
 <profile name="default">
  <settings>
    <param name="format" value="json"/>
    <param name="url" value="http://127.0.0.1:8000/cdr.php"/>
    <param name="encode" value="true"/>
    <param name="encode-values" value="false"/>
  </settings>
 </profile>
 </profiles>
</configuration>

2、cdr.php配置

<?php
$data = $_POST["cdr"];
$decode_data = urldecode($data);
$obj = json_decode($decode_data);

$sip_user_agent = $obj->variables->sip_user_agent;
$hangup_cause = $obj->variables->hangup_cause;

echo $sip_user_agent;
?>

提交评论

请登录后评论

用户评论

    当前暂无评价,快来发表您的观点吧...

更多相关好文

    当前暂无更多相关好文推荐...