FreeSWITCH sofia senddtmf

先看这段代码:

应用调用 senddtmf,这段代码会检查 dtmf-type 这个通道变量的值

  • 如果为 DTMF_2833,那么调用核心的 queue_rfc2833 函数
  • 如果为 DTMF_INFO,如果为 w 或者 W 就延时相应的时间,或者是其它字符,那么发送 SIP INFO 请求
  • 如果为 NONE(inband),那么什么都不做(如果想发inband dtmf,不要用 sendmf,要用TGML)

为了讲述方便,还是分开来说

如果是 dtmf-type 为 DTMF_2833,调用 queue_rfc2833 函数,后者记录到通道的发送缓冲区,最后是在 switch_rtp.c 的 do_2833() 函数里面处理,有兴趣的读者可以去查阅对应的源代码。需要留意的是,这个操作是异步的,比如有些应用可能这样调用:

1.senddtmf("1234567890")

2.playback("welcome.wav")

但执行的结果出于的您的意料,senddtmf 会干扰 playback

正确的操作应该是:

1.senddtmf("1234567890")

2.sleep

3.playback("welcome.wav")

需要延时多长时间,我没做研究

下面讨论 DTMF_INFO 的情况

1. senddtmf 一次只能发送一个字符

2. 如果要连续发送多个字符,中间应该不需要延时(或者很少延时)

3. 发送 SIP INFO 要比 2833 快

4. 需要远端支持 SIP INFO,如果远端正好是 FreeSWITCH,那么建议配置  liberal-dtmf

最后还有一点需要提及的是,如果 dtmf-type 配置为 DTMF_2833, 还是可以发送 SIP INFO 的,但是不能用 senddtmf,而是用 uuid_send_info,但要记得设置通道变量 fs_send_unsupported_info 为 true

下面是例子:

# 也可以把这个变量配置为全局

uuid_setvar 2fa023f5-9bc1-4e81-9330-54a205eef06f fs_send_unsupported_info true

uuid_send_info 2fa023f5-9bc1-4e81-9330-54a205eef06f application dtmf-relay Signal=6\r\nDuration=300\r\n

发出去的 SIP 消息如下:

INFO sip:1002@192.168.43.68:1025 SIP/2.0
Via: SIP/2.0/UDP 192.168.43.68;rport;branch=z9hG4bKav8y77Q71vySQ
Max-Forwards: 70
From: "9196" <sip:9196@192.168.43.68>;tag=c6aUcg81j9gpp
To: <sip:1002@192.168.43.68>;tag=5b554b38
Call-ID: N2IyODI2NmYwYTAzMmMwZjg2N2M1MDg4ODBkMGQzMWI.
CSeq: 82334666 INFO
Contact: <sip:9196@192.168.43.68:5060;transport=udp>
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE
Supported: timer, path, replaces
Content-Type: application/dtmf-relay
Content-Length: 24

Signal=6
Duration=300

dmtf 的故事实在多了去

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

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

相关文章

程客有话说05 | 吕时有:在GIS行业深耕13年,做梦做出来了数学竞赛题,这是让我最开心的事

《程客有话说》是我们最新推出的一个访谈栏目&#xff0c;邀请了一些国内外有趣的程序员来分享他们的经验、观点与成长故事&#xff0c;我们尝试建立一个程序员交流与学习的平台&#xff0c;也欢迎大家推荐朋友或自己来参加我们的节目&#xff0c;一起加油。 本期我们邀请的程…

揭秘爬虫技术:助你打开网络数据的大门

在当今信息爆炸的时代&#xff0c;网络上蕴藏着各种宝贵的数据资源&#xff0c;而要想获取这些宝藏&#xff0c;爬虫技术无疑是最为有效的利器之一。今天我将向大家深入探讨爬虫技术的奥秘&#xff0c;并带领大家一起走进这个数据世界的大门。 文章目录 什么是爬虫技术&#xf…

轻松上手,无缝对接:详述如何接入企讯通空号检测接口API

企讯通空号检测接口API作为一款高效、精准的手机号码状态检测工具&#xff0c;能够帮助企业及开发者快速识别手机号码的有效性&#xff0c;优化通讯资源&#xff0c;提升营销效果。本篇文章将带领您一步步了解如何轻松、无缝地对接企讯通空号检测接口API&#xff0c;让您的业务…

用于自动化机器陀螺仪传感器:XV7081BB

介绍一款用于自动化机器的数字输出型陀螺仪传感器XV7081BB。这款新推出的陀螺仪XV7081BB到底有什么魅力呢?我们可以用常用款用于智能割草机的XV7011BB作对比:XV7081BB提供16位或24位分辨率的角速率输出速率范围为400s。而XV7011BB采用16位角速度输出&#xff0c;检测范围为100…

直线导轨有哪些润滑方式?

直线导轨在工业领域中是非常关键的存在&#xff0c;在日常使用中必须定期做好润滑功能&#xff0c;如果以无润滑状态使用&#xff0c;滚动系统就会更快地磨损&#xff0c;摩擦系数高&#xff0c;磨损就越严重&#xff0c;导轨和滑块因而寿命会缩短。那么&#xff0c;直线导轨有…

OpenHarmony实战开发-如何实现tabContent内容可以在tabBar上显示并且tabBar可以响应滑动事件的功能。

介绍 本示例实现了tabContent内容可以在tabBar上显示并且tabBar可以响应滑动事件的功能。 效果图预览 使用说明 1.点击播放按钮进行视频播放&#xff0c;按住进度条按钮和进度条下方区域可以拖动进度条&#xff0c;更改视频播放进度。 实现思路 原生的Tabs组件&#xff0c…

数据结构(学习笔记)王道

一、绪论 1.1 数据结构的基本概念 数据&#xff1a;是信息的载体&#xff0c;是描述客观事物属性的数、字符以及所有输入到计算机中并被计算机程序识别和处理的符号的集合。&#xff08;计算机程序加工的原料&#xff09;数据元素&#xff1a;数据的基本单位&#xff0c;由若干…

信阳市不动产登记业务技能大练兵竞赛活动方案

为做好第一届“信阳市不动产登记业务技能大练兵活动”相关工作&#xff0c;确保比赛公平、公正、公开&#xff0c;现将规则公布如下&#xff1a; 本次比赛设团体奖和个人奖&#xff0c;团体奖以“团体笔试总分现场知识竞答总分视答题分”之和确定分数高低及名次&#xff1b;个人…

同旺科技 USB TO SPI / I2C适配器读写24LC256--字节写

所需设备&#xff1a; 1、USB 转 SPI I2C 适配器&#xff1b;内附链接 2、24LC256芯片 适应于同旺科技 USB TO SPI / I2C适配器升级版、专业版&#xff1b; 00地址写入一个字节数据AA&#xff0c;并读回验证&#xff1b; 单字节写时序&#xff1a; 读字节时序&#xff1a; …

详解Mixtral-8x7B背后的MoE!

高端的模型往往只需最朴素的发布方式。 这个来自欧洲的大模型团队在12月8日以一条磁力链接的方式发布了Mixtral-8x7B,这是一种具有开放权重的**「高质量稀疏专家混合模型」**(SMoE)。 该模型在大多数基准测试中都优于Llama2-70B,相比之下推理速度快了6倍,同时在大多数标准基…

[Windows] Bypass分流抢票 v1.16.25 五一黄金周自动抢票软件(2024.02.08更新)

五一黄金周要来了&#xff0c;火车票难买到&#xff0c;即便官网候选订票也要看运气&#xff0c;推荐使用这个靠谱的自动抢票软件&#xff0c; 该工具是目前市面上最好用口碑最好的电脑抢票软件&#xff0c;从13年到现在&#xff0c;作者依旧在更新&#xff0c;可以自动识别123…

海外社媒营销:创新内容与互动形式,提升用户参与和品牌认知

在当今数字化时代&#xff0c;海外社交媒体已成为企业推广品牌、吸引用户关注和建立品牌认知的重要渠道之一。然而&#xff0c;随着竞争的加剧和用户对内容的日益苛刻要求&#xff0c;企业需要不断创新&#xff0c;提供独特而吸引人的内容形式&#xff0c;以吸引海外用户的关注…

Rust Tracing 入门

Tracing 是一个强大的工具&#xff0c;开发人员可以使用它来了解代码的行为、识别性能瓶颈和调试问题。 Rust 是一种以其性能和安全保证而闻名的语言&#xff0c;在它的世界中&#xff0c;跟踪在确保应用程序平稳高效运行方面发挥着至关重要的作用。 在本文中探讨Tracing 的概…

什么?双核A7双网口核心板只要49?

“性价比之王” 触觉智能IDO-SOM2D0X系列基于SigmaStar SSD201/202 SoC的超小SOM模组&#xff0c;双核A7 1.2GHz主频&#xff0c;1080P视频解码&#xff0c;支持MIPI/RGB显示接口&#xff0c;支持双以太网&#xff0c;支持SDIO/USB/SPI/I2C/UART/DMIC/I2S&#xff0c;集成音频C…

2016年新华三杯复赛实验试题

2016年新华三杯复赛实验试题 拓扑图 配置需求 考生根据以下配置需求在 HCL 中的设备上进行相关配置。 以太网接口配置 将 S1、S2 的以太网接口 G1/0/1 至 G1/0/16 的模式用命令 combo enable copper 激活为电口。 虚拟局域网 为了减少广播&#xff0c;需要规划并配置 VLA…

数据结构(Wrong Question)

一、绪论 1.1 数据结构的基本概念 D 因为抽象数据类型&#xff08;ADT&#xff09;描述了数据的逻辑结构和抽象运算&#xff0c;通常用&#xff08;数据对象&#xff0c;数据对象&#xff0c;基本操作集&#xff09;这样的三元组来表示&#xff0c;从而可构成一个完整的数据结…

【圆桌论坛】个人作为嘉宾参与问答环节的总结,Create 2024百度AI开发者大会之AI智能体开发与应用论坛

目录 ⭐前言⭐讨论话题✨本质和价值✨端侧部署✨应用商业模式✨商业模式 ⭐主题总结⭐有趣分享 ⭐前言 首先&#xff0c;非常荣幸和开心作为开发者和创业者代表参加百度Create AI大会分论坛圆桌论坛的问答环节。 在分论坛活动开始前&#xff0c;参加了文心智能体平台&#xff…

Tomcat启动闪退疑难排解全攻略:资深技术视角详解(详细)

Tomcat 启动闪退问题是在尝试启动Apache Tomcat服务器时&#xff0c;遇到的一种情况&#xff0c;其中服务器进程无法正常运行并立即退出。这个问题可能是由于多种原因造成的&#xff0c;包括配置错误、端口冲突、类加载问题等。作为一个资深技术人员&#xff0c;解决这类问题需…

sdwan最低需要多少带宽?SD-WAN带宽配置及应用分析

SD-WAN企业网络连接技术(软件定义广域网)带来更高效、更可靠的网络性能。合理配置带宽对于企业申请SD-WAN线路至关重要。 一、SD-WAN最低带宽要求 SD-WAN的带宽需求与企业的具体情况有关&#xff0c;但一般推荐的最低带宽需求为2Mbps。然而&#xff0c;这只是一个起点&#x…

软考 系统架构设计师系列知识点之大数据设计理论与实践(13)

接前一篇文章&#xff1a;软考 系统架构设计师系列知识点之大数据设计理论与实践&#xff08;12&#xff09; 所属章节&#xff1a; 第19章. 大数据架构设计理论与实践 第4节 Kappa架构 19.4.2 Kappa架构介绍 Kappa架构由Jay Kreps提出&#xff08;Lambda由Storm之父Nayhan M…