freeswitch的mod_xml_cdr模块

news2024/11/27 12:38:38

 

概述

freeswitch是一款简单好用的VOIP开源软交换平台。

在语音呼叫的过程中,话单是重要的计价和结算依据,话单的产生需要稳定可靠,可回溯。

fs中的mod_xml_cdr模块提供了基本话单功能之外的选择,可以输出XML格式的本地话单或通过http post接口上传web服务器。

环境

centos:CentOS  release 7.0 (Final)或以上版本

freeswitch:v1.10.7

GCC:4.8.5

模块介绍

mod_xml_cdr模块默认编译安装,但没有加载。

检查conf/autoload_configs/modules.conf.xml文件。

    <load module="mod_xml_cdr"/>

mod_xml_cdr模块会在通话结束后尝试通过http post发送xml格式的cdr到web服务器,发送失败之后写本地文件。

检查conf/autoload_configs/xml_cdr.conf.xml文件,重点关注以下几个配置。

<!-- the url to post to if blank web posting is disabled  -->

<param name="url" value="http://10.55.55.137:8080/xml_cdr"/>

HTTP POST的地址,通话结束后优先尝试post xml格式的cdr到该地址。

<!-- Log via http and on disk, default is false -->

<param name="log-http-and-disk" value="true"/>

http和本地文件方式同时记录xml_cdr。

<!-- optional: if not present we do log the b leg -->

<!-- true or false if we should create a cdr for the b leg of a call-->

<param name="log-b-leg" value="true"/>

xml_cdr的话单包括B路话单,默认只有A路话单

测试

按照上面的配置修改并重启fs,测试呼叫,查看挂机后的xml_cdr情况。正常的结果应该是xml_cdr会同时在本地文件和web服务器写话单。

查看本地文件。

ll /usr/local/freeswitch/log/xml_cdr/

total 28

-rw-r--r--. 1 root root 10568 Jul  6 15:11 4f012c6a-1bcc-11ee-a6e6-77e7bc3f377f.cdr.xml

-rw-r--r--. 1 root root 14563 Jul  6 15:11 a_4f002b94-1bcc-11ee-a6dc-77e7bc3f377f.cdr.xml

查看web服务器收到的信息。

2023-07-06 15:11:37,940 root INFO http_server.py xml_cdr request, data=cdr=<?xml version="1.0"?>

<cdr core-uuid="09337ada-1bcc-11ee-a6d9-77e7bc3f377f" switchname="pxy137">

  <channel_data>

    <state>CS_REPORTING</state>

    <direction>outbound</direction>

    <state_number>11</state_number>

    <flags>0=1;1=1;2=1;15=1;20=1;27=1;38=1;40=1;43=1;47=1;75=1;112=1;113=1;122=1</flags>

    <caps>1=1;2=1;3=1;4=1;5=1;6=1</caps>

  </channel_data>

  <call-stats></call-stats>

  <variables>

<direction>outbound</direction>

<uuid>4f012c6a-1bcc-11ee-a6e6-77e7bc3f377f</uuid>

...

2023-07-06 15:11:37,944 root INFO http_server.py xml_cdr request, data=cdr=<?xml version="1.0"?>

<cdr core-uuid="09337ada-1bcc-11ee-a6d9-77e7bc3f377f" switchname="pxy137">

  <channel_data>

    <state>CS_REPORTING</state>

    <direction>inbound</direction>

    <state_number>11</state_number>

    <flags>0=1;1=1;15=1;20=1;38=1;40=1;43=1;47=1;75=1;113=1;122=1</flags>

    <caps>1=1;2=1;3=1;4=1;5=1;6=1</caps>

  </channel_data>

  <call-stats></call-stats>

  <variables>

<direction>inbound</direction>

<uuid>4f002b94-1bcc-11ee-a6dc-77e7bc3f377f</uuid>

...

总结

mod_xml_cdr模块对基础格式的话单起到了补充的作用,可以根据需求直接推送到web服务器,配置即可使用,还是挺方便的。

xml_cdr模块还可以记录话单推送的错误日志,并可以设置定时任务重推话单。

空空如常

求真得真

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/778116.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

arm day4

.text .global _start _start: /**********LED1点灯**************/bl rcc_initbl led_initbl led1_initbl led2_initloop:bl led_onbl delay_1sbl led_offbl delay_1sbl led1_onbl delay_1sbl led1_offbl delay_1sbl led2_onbl delay_1sbl led2_offbl delay_1sb looprcc_init…

数据结构和算法——快速排序(算法概述、选主元、子集划分、小规模数据的处理、算法实现)

目录 算法概述 图示 伪代码 选主元 子集划分 小规模数据的处理 算法实现 算法概述 图示 快速排序和归并排序有一些相似&#xff0c;都是用到了分而治之的思想&#xff1a; 伪代码 通过初步的认识&#xff0c;我们能够知道快速排序算法最好的情况应该是&#xff1a; 每…

前端 | ( 九)尚品汇实操练习 | 尚硅谷前端html+css零基础教程2023最新

学习来源&#xff1a;尚硅谷前端htmlcss零基础教程&#xff0c;2023最新前端开发html5css3视频 文章目录 &#x1f4da;顶部导航条&#x1f4da;头部&#x1f4da;主导航&#x1f4da;内容区_侧边导航&#x1f4da;内容区_侧边二级菜单⭐️&#x1f4da;内容区_右侧尚品快报&am…

docker安装mysql8.0+

文章目录 1.docker仓库找到需要的镜像版本2.安装Mysql镜像3.创建mysql配置文件4.创建mysql容器并运行5.建立软连接6.开放3306端口7.登录mysql8.修改mysql密码9.查看mysql日志10.重启mysql10.外部如何访问mysql 1.docker仓库找到需要的镜像版本 镜像仓库 2.安装Mysql镜像 找到所…

Redis九种数据类型及其持久化机制:探索数据存储的奇妙世界

目录 一、9种数据类型 3.1 Key操作 3.1.1 相关命令 练习&#xff1a; 3.2 String 3.2.1 结构图 3.2.2 相关命令 练习&#xff1a; 3.3 List(双向的链表) 3.3.1 结构图 3.3.2 相关命令 练习&#xff1a; 3.4 Set&#xff08;无序集合&#xff09; 3.4.1 结构图 3.4…

【GeoDa实用技巧100例】010:制作平滑地图

文章目录 一、平滑地图介绍二、加载实验数据三、平滑地图制作四、注意事项一、平滑地图介绍 平滑地图(Smooth,或称滑动平均地图)是以“平滑”的观测值(简称平滑值),而非实际的观测值编制的地图。某个地域单位的所谓平滑值是指该地域单位与周围地区观测值的平均值。地图平滑化…

精通正则表达式 - 打造高效正则表达式

目录 一、典型示例 1. 稍加修改——先迈最好使的腿 2. 效率 vs 准确性 3. 继续前进——限制匹配优先的作用范围 4. “指数级”匹配 二、全面考察回溯 1. 传统 NFA 的匹配过程 2. POSIX NFA 需要更多处理 3. 无法匹配时必须进行的工作 4. 看清楚一点 5. 多选结构的代…

zabbix 企业级监控 (5) Zabbix监控nginx

目录 简介 配置yum仓库 Web Zabbix端添加主机 启用之前自动发现的规则及动作 简介 nginx在生产环境中的应用越来越广泛&#xff0c;所以需要对nginx的性能状态做一些监控来发现出来出现的问题。zabbix监控nginx&#xff0c;首先确认nginx的监控指标&#xff0c;主要有&#…

HTML中常用的标签

注释标签&#xff1a;<!--内容--> 标题标签&#xff1a;<h1></h1>;<h2></h2>;<h3></h3>;<h4></h4>;<h5></h5>;<h6></h6> 段落标签&#xff1a;<p></p> 没有<p></p>时…

数据备份和恢复练习

创建数据库db create database db&#xff1b; 创建student和score表并插入数据 mysql> select *from student-> ; --------------------------------------------------------------- | id | name | sex | birth | department | address | ----…

qt 5.12.6配置 msvc2015 32bit

qt 5.12.6配置 msvc2015 32bit 1.添加临时档案库2.安装 msvc20153. 配置 qmake 环境4.修改系统环境变量5.问题修改1.qt没有被正确的安装,请运行make install2.QT编译出错&#xff1a;rc不是内部或外部命令&#xff0c;也不是可运行的程序 或批处理文件。3.QT License check fai…

【iOS】—— block,KVC,KVO,Category等问题解答

文章目录 block1.block的原理是怎样的&#xff1f;本质是什么&#xff1f;2.__block的作用是什么&#xff1f;有什么使用注意点&#xff1f;3.block的属性修饰词为什么是copy&#xff1f;使用block有哪些使用注意&#xff1f;4.block在修改NSMutableArray&#xff0c;需不需要添…

使用langchain与你自己的数据对话(一):文档加载与切割

LangChain是一个基于大语言模型&#xff08;如ChatGPT&#xff09;用于构建端到端语言模型应用的 Python 框架。它提供了一套工具、组件和接口&#xff0c;可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。LangChain 可以轻松管理与语言模型的交互&#x…

简单理解TCP,UDP,HTTP

我们都知道TCP、UDP、HTTP内部有很复杂的过程&#xff0c;很多人没办法理解的那么深&#xff0c;只想知道这是个什么鬼。 1、TCP、UDP、HTTP 是什么? TCP/IP是个协议组&#xff0c;可分为三个层次&#xff1a;网络层、传输层和应用层。在网络层有IP协议、ICMP协议、ARP协议、…

50 Matplotlib Visualizations, Python实现,源码可复现

详情请参考博客: Top 50 matplotlib Visualizations 因编译更新问题&#xff0c;本文将稍作更改&#xff0c;以便能够顺利运行。 0 Introduction 新建项目文件夹为matplotlib_visualizations&#xff0c;以下所有的.py文件均默认在该位置。 0.2 Setup Setup.py文件内容如下&…

(双指针) 剑指 Offer 57 - II. 和为s的连续正数序列 ——【Leetcode每日一题】

❓ 剑指 Offer 57 - II. 和为s的连续正数序列 难度&#xff1a;简单 输入一个正整数 target &#xff0c;输出所有和为 target 的连续正整数序列&#xff08;至少含有两个数&#xff09;。 序列内的数字由小到大排列&#xff0c;不同序列按照首个数字从小到大排列。 示例 1…

zookeeper的应用

Zookeeper的配置文件解析: Zookeeper内部原理: 选举机制 半数机制:在集群环境中半数以上的机器存活,这个集群可用,所以在设计Zookeeper集群系统时&#xff0c;通常会选择 奇数台服务器来搭建Zookeeper的集群 虽然在配置文件中并没有指定Master和Slave。但是&#xff0c;Zookeep…

【安全狗】linux免费服务器防护软件安全狗详细安装教程

在费用有限的基础上&#xff0c;复杂密码云服务器基础防护常见端口替换安全软件&#xff0c;可以防护绝大多数攻击 第一步&#xff1a;下载服务器安全狗Linux版&#xff08;下文以64位版本为例&#xff09; 官方提供了两个下载方式&#xff0c;本文采用的是 方式2 wget安装 方…

09.计算机网络——套接字编程

文章目录 网络字节序socket编程socket 常见APIsockaddr结构 UDP编程创建socket绑定socketsendto发送数据recvform接收数据关闭socket TCP编程创建socket绑定socketlisten监听套接字accept服务端接收连接套接字connect客户端连接套接字send发送数据recv接收数据关闭socket 工具n…

算法训练营第四十六天||● 139.单词拆分 ● 关于多重背包,你该了解这些! ● 背包问题总结篇!

● 139.单词拆分 这道题和完全背包一样&#xff0c;求排列数相当于 字符串相当于背包&#xff0c;字串相当于物品 注意find方法的使用 find&#xff08;s.begin(),s.end(),"zichuan") 还有s.substr的使用s.substr(起始位置&#xff0c;截取长度&#xff09; clas…