freeswitch的2833和inband对接方案

news2024/11/20 23:38:10

 

概述

freeswitch支持三种模式的DTMF传输方式,分别时inband、INFO、2833。

在传统的PSTN网络中,所有的DTMF码都是inband模式,所以VOIP网络和PSTN网络对接中,需要将DTMF码做格式转换,通常是2833和inband之间的转换。

freeswitch作为VOIP和PSTN网络中间的媒体服务器时,AB路会协商为不同的DTMF按键格式,我们需要一种可以将2833和inband格式互转的方案。

环境

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

freeswitch:v1.10.7

GCC:4.8.5

2833和inband的转换接口

freeswitch中有两个inband到2833格式的转换接口,分别是“start_dtmf”和“spandsp_start_dtmf”。根据之前的测试结果,我们选择“spandsp_start_dtmf”。

<action application="spandsp_start_dtmf"/>

而2833到inband格式的转换接口只有一个“start_dtmf_generate”。

<action application="start_dtmf_generate" />

fs内部默认在没有2833的情况下使用info传递DTMF,需要设置通道变量“rtp_info_when_no_2833”。

<action application="export" data="rtp_info_when_no_2833=false"/>

配置方案

在我们的模拟场景中,A路使用2833,B路使用inband。

修改拨号计划如下。

<include>

       <context name="out2in">

              <extension name="sbc-out2in" continue="true">

                     <condition field="destination_number" expression="^(\d+)$">

                            <action application="export" data="rtp_info_when_no_2833=false"/>

                            <action application="set" data="execute_on_media=start_dtmf_generate" />

                            <action application="export" data="nolocal:execute_on_media=spandsp_start_dtmf" />

                            <action application="bridge" data="{sip_invite_call_id=${sip_call_id}

                                 }sofia/external5066/sip:${destination_number}@10.55.55.138:5090"/>

                     </condition>

              </extension>

       </context>

</include>

其中,A路使用2833,对A路设置了“start_dtmf_generate”接口,将A路的2833转换为B路的inband。

B路使用inband,对B路设置了“spandsp_start_dtmf”接口,将B路的inband转换为A路的2833。

测试

测试的架构,A(2833)->fs->B(inband)。预期的DTMF流程描述如下。

A路发起呼叫,B路接听并echo媒体流。

A路发送DTMF(2833)到fs,fs转换为DTMF(inband)转发B路,B路终端echo反射媒体流DTMF(inband)到fs,fs转换为DTMF(2833)返回A路。

测试结果如下。

信令流程截图。红框中是A路的DTMF(2833)。

 

媒体流截图。红框中是B路的DTMF(inband)。

 

测试结果基本符合预期。

总结

使用拨号计划的app组合,实现了fs支持AB路不同的DTMF格式的转换。

freeswitch的DTMF从inband转换为2833的功能仍然有缺陷,表现为inband中的波形过滤不完全,会造成后续节点识别DTMF时重码的问题。

空空如常

求真得真

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

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

相关文章

《思考致富》制造借口是一个根深蒂固的习惯

目录 经典摘录 领导方式有两种 拖拉 决心&#xff1a;克服拖拉的坏习惯&#xff08;通往致富之路的第七步&#xff09; 毅力&#xff1a;催生信念的持久努力&#xff08;通往致富之路的第八步&#xff09; 智囊团的力量&#xff1a;致富驱动力&#xff08;通往致富之路的第…

【分享】你用免费的GPT4了嘛?

哈喽&#xff0c;大家好&#xff0c;我是木易巷~ 现在OpenAI的ChatGPT4需要升级为plus会员使用&#xff0c;对于国内的用户来说&#xff0c;不仅需要魔法&#xff0c;还需要有一张外网的信用卡来开通会员&#xff0c;真的麻烦。 最近木易巷发现了一个项目&#xff0c;是GitHu…

基于欧式距离的聚类算法的Kmeans作业

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 基于欧式距离的聚类算法&#xff0c;其认为两个目标的距离越近&#xff0c;相似度越大。 该实验产生的点为二维空间中的点。 环境配置 java环境&#xff0c;使用原生的Java UI组件JPanel和JFrame 算法原理 基于欧式距离的聚…

问卷调查类型全面解析

调查问卷是从人们那里收集反馈和意见的强大工具。通过提出结构化问题&#xff0c;研究人员、组织和企业可以获得大量有关如何改进产品或服务、解决问题或做出明智决策的信息。但在设计调查问卷之前&#xff0c;必须首先了解不同的类型以及何时使用它们。 1、结构化问卷 结构化…

秀场、卖场、生态场,长沙为何连展会也与众不同?

文 | 智能相对论 作者 | 易不二 第三届长沙国际工程机械展览会已经完美落下帷幕。 依托长沙作为“工程机械之都”的硬核产业实力&#xff0c;又经过了多年耕耘&#xff0c;长沙国际工程机械展已经达到了跻身全球一流展会的水平。 4天的展期里&#xff0c;全球1502家企业参展…

【产品经理】产品体验报告准备

假如你已经决定为一个app写一份产品体验报告了&#xff0c;那么&#xff0c;我想说的是&#xff0c;不要急着动笔&#xff01; 下面就进入正题&#xff0c;在写产品体验报告之前&#xff0c;我会先去做哪些准备工作&#xff1a; &#xff08;1&#xff09;下载、把玩并熟悉app…

15-03 软件安全

系统安全 系统安全威胁 病毒蠕虫特洛伊木马Rootkit后门僵尸网络零日攻击Webshell 操作系统防御 杀毒软件&#xff1a;兵来将挡&#xff0c;水来土掩升级补丁&#xff1a;防止零日攻击限制&#xff1a;用户、网络、端口、程序、安全基准、不可变基础架构 杀毒软件检测机制 …

【猿人学WEB题目专解】猿人学第18题

&#x1f308;据说&#xff0c;看我文章时 关注、点赞、收藏 的 帅哥美女们 心情都会不自觉的好起来。 前言&#xff1a; &#x1f9e1;作者简介&#xff1a;大家好我是 user_from_future &#xff0c;意思是 “ 来自未来的用户 ” &#xff0c;寓意着未来的自己一定很棒~ ✨个…

财报解读 | 护肤业务乘风破浪,逸仙电商手握增长“王牌”

五年新战略计划进入第二年&#xff0c;逸仙电商能否如愿“一步、两步、三步”向前走&#xff1f; 5月16日&#xff0c;逸仙电商发布了2023年第一季度财报。财报显示&#xff0c;逸仙电商Q1实现营收8.91亿元&#xff0c;超出了此前指引上限&#xff1b;实现净利润5070万元&…

从0构建神经网络(1)从感知机到神经网络

一、前言 深度学习中有许多框架&#xff0c;包括Tensorflow、PyTorch、Keras等&#xff0c;框架中实现了各种网络&#xff0c;并且可以自动求导&#xff0c;因此构建一个完整的网络只需要十几行代码。因为框架高度封装&#xff0c;因此我们无法知道底层的原理。为了更好地理解…

【PCIE体系结构十一】部分物理层发送接收逻辑细节

&#x1f449;个人主页&#xff1a;highman110 &#x1f449;作者简介&#xff1a;一名硬件工程师&#xff0c;持续学习&#xff0c;不断记录&#xff0c;保持思考&#xff0c;输出干货内容 参考书籍&#xff1a;《PCI.EXPRESS系统体系结构标准教材 Mindshare》 目录 物理层…

我麻了,那些年,为了进阿里背过的面试题......

前言 入职阿里相信是很多软件测试人的梦想&#xff0c;我一个阿里的朋友跟我聊天时说&#xff0c;他为了入职阿里背了好多面试题。我开始还不以为然&#xff0c;当他发给我看了之后&#xff0c;我麻了&#xff01; 不废话&#xff0c;分享给你们&#xff0c;希望对你们有帮助&…

中小型局域网

配置思路&#xff1a; 1、LSW1-LSW2做链路聚合并放通所有vlan,并做VRRP实现冗余备份 #链路聚合 [Huawei]sys LSW1 [LSW1]VLAN batch 20 30 40 60 70 80 [LSW1]DHCP enable [LSW1]ospf router-id 1.1.1.1 [LSW1-ospf-1]area 0 [LSW1]int Eth-Trunk 1 …

第3章 处理机调度与死锁

3.1 作业管理 3.1.1 作业的概念及分类 1&#xff0e;作业的概念 作业是用户在一 次事务处理过程中要求计算机系统所做工作的集合。 从系统的角度讲&#xff0c;作业是一个比较广泛的概念&#xff0c;它由程序、数据和作业说明书组成。 2&#xff0e;作业的分类 依据计…

redis集群+哨兵配置实操宝典

本地安装redis 配置集群和哨兵 1、下载安装redis #wget http://download.redis.io/releases/redis-5.0.12.tar.gz #下载安装包 #yum -y install gcc #安装依赖包 #tar -zxvf redis-5.0.12.tar.gz #cd redis-5.0.12 #make 2、主备配置 我们采用一主两备的结构 主机 192.168.3.…

AITM - 多任务模型之顺序依赖性建模(美团)

文章目录 1、动机与挑战&#xff08;信用卡业务广告&#xff09;2、信用卡用户整体架构&#xff1a;3、模型结构3.1、核心部分 Modeling the Sequential Dependence among Audience Multi-step Conversions with Multi-task Learning in Targeted Display Advertising 论文发表…

【Linux的基本指令】

目录 01.ls指令02.pwd指令03.cd指令04.touch指令05.mkdir指令06.rmdir指令 && rm 指令07.*通配符08.man指令09.cp指令10.mv指令11.cat指令13.more指令14.less指令15.head指令16.tail指令17.date指令18.Cal指令19.find指令20.grep指令21.zip/unzip指令22.tar指令23.bc指…

OpenCL编程指南-5.1工作项函数-整数函数-公共函数

工作项函数 应用程序使用clEnqueueNDRangeKernel和 clEnqueueTask API将OpenCL中的数据并行和任务并行内核排队。对于一个数据并行内核&#xff08;使用clEnqueueNDRangeKernel排队等待执行)&#xff0c;应用程序会指定全局工作大小&#xff0c;即可以并行执行这个内核的工作项…

PSP - AlphaFold2 中单链 MSA 特征的源码简读

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/130752004 AlphaFold2 是基于深度学习的方法,可以根据氨基酸序列,预测蛋白质的三维结构。在 2020 年的 CASP14 竞赛中,展示了惊人的准确性,达到了原子级别…

python读取linux系统的cpu以及内存占用

直接贴代码 import subprocessdef get_system_stats():# 通过 shell 命令获取 CPU 使用率和内存使用率cpu_command "top -bn1 | grep %Cpu(s) | awk {print $2}"memory_command "free | grep Mem | awk {print $3/$2 * 100.0}"# 执行命令并获取输出结果…