当前位置: 首页 > news >正文

FreeSWITCH 检查忙音

FXO 网关自带忙音检查功能,本文不予讨论

现在要讨论的是 FreeSWITCH 忙音检查怎么弄

spandsp.conf.xml 可以这样配置:

<descriptors debug-level="10"><descriptor name="86"><tone name="BUSY_TONE"><!-- 检查 2 个连续的忙音即可挂机 --><element freq1="450" freq2="0" min="300" max="400"/><element freq1="0" freq2="0" min="300" max="400"/><element freq1="450" freq2="0" min="300" max="400"/><element freq1="0" freq2="0" min="300" max="400"/>			</tone></descriptor><!-- 其他国家的配置 --><!-- North America --><descriptor name="1">...

dialplan 这样弄:

<action application="set" data="execute_on_spandsp_tone_detect_BUSY_TONE=hangup"/>
<!-- 推荐PCM,实际测试发现其他的 codec 不好用  -->
<action application="set" data="codec_string=PCMA,PCMU"/>
<action application="spandsp_start_tone_detect" data="86"/>
...

 下面是运行日志:

EXECUTE [depth=0] sofia/internal/1001@192.168.31.166 spandsp_start_tone_detect(86)
2024-06-18 15:36:34.091832 99.28% [INFO] mod_spandsp_dsp.c:905 initializing tone detector
EXECUTE [depth=0] sofia/internal/1001@192.168.31.166 echo()
2024-06-18 15:36:47.824955 99.09% [INFO] mod_spandsp_dsp.c:926 DETECTED TONE: BUSY_TONE
EXECUTE [depth=0] sofia/internal/1001@192.168.31.166 hangup()


标准的忙音是 450 hz, 350 ms on, 350 ms off。有的运营商发很多个忙音,有的只发少数几个。
一般检查到 2 个连续的忙音即可挂机。
可以多定义几个 BUSY_TONE,比如 BUSY_TONE1, BUSY_TONE2 等,满足不同的需要。

相关文章:

  • leetcode(top 100) 三数之和 相向双指针
  • C# Task 包含 await ConfigureAwait CancellationTokenSource
  • RabbitMQ快速入门
  • python包管理器--- pip、conda、mamba的比较
  • npm install 安装不成功,node-sass缺失,提示python环境缺失的解决办法
  • Kafka内外网分流配置listeners和advertised.listeners
  • Spring Cache
  • idea开发工具清除Git凭证(含Git凭证管理策略)
  • [Bug]使用gradio创建应用提示AttributeError: module ‘gradio‘ has no attribute ‘inputs‘
  • Unity2D计算两个物体的距离
  • javaswing图书管理系统
  • 从零开始! Jupyter Notebook的安装教程
  • 6.19作业
  • Redis 键(key)
  • QTday5 2024-06-19
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • docker python 配置
  • Node + FFmpeg 实现Canvas动画导出视频
  • Python爬虫--- 1.3 BS4库的解析器
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • uva 10370 Above Average
  • 浏览器缓存机制分析
  • 前端面试之闭包
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • linux 淘宝开源监控工具tsar
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • ​ubuntu下安装kvm虚拟机
  • #stm32驱动外设模块总结w5500模块
  • #数学建模# 线性规划问题的Matlab求解
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (2022 CVPR) Unbiased Teacher v2
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (八)c52学习之旅-中断实验
  • (含笔试题)深度解析数据在内存中的存储
  • (九)c52学习之旅-定时器
  • (算法)求1到1亿间的质数或素数
  • (循环依赖问题)学习spring的第九天
  • (原創) 物件導向與老子思想 (OO)
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .net refrector
  • .net中的Queue和Stack
  • @antv/x6 利用interacting方法来设置禁止结点移动的方法实现。
  • @Async注解的坑,小心
  • @Resource和@Autowired的区别
  • [<死锁专题>]
  • [001-03-007].第07节:Redis中的事务
  • [AI 大模型] Meta LLaMA-2
  • [Android 13]Input系列--获取触摸窗口
  • [Android 数据通信] android cmwap接入点