• FreeSWITCH检测DTMF数据的方法


    一、RFC2833

    1. 介绍:
    RFC2833为带内检测方式,通过RTP传输,由特殊的rtpPayloadType即TeleponeEvent来标示RFC2833数据包。同一个DTMF按键通常会对应多个RTP包,这些RTP数据包的时间戳均相同,此可以作为识别同一个按键的判断依据,最后一包RTP数据包的end标志置1表示DTMF数据结束。
    另外,很多SIP UA默认的TeleponeEvent都为101,但可以人为修改,这时要求在进行RFC2833 DTMF检测之前需事先获取SDP协商的TeleponeEvent参数。
    2. 配置:
    这是FreeSWITCH默认的DTMF检测配置。

    二、SIPINFO

    1. 介绍:
    SIPINFO为带外检测方式,通过SIP信令通道传输DTMF数据。这种方式甚至比RFC2833更有效。但是由于SIP信令和RTP收发采用的是不同的端口,所以可能会造成收到DTMF和实际的声音不同步。
    2. 配置:
    修改profile,例如sip_profiles/internal.xml。

    <param name="dtmf-type" value="info"/>

    三、INBAND

    1. 介绍:
    INBAND为带内检测方式,而且与普通的RTP语音包混在一起传送。在进行INBAND DTMF检测时唯一的办法就是提取RTP数据包进行频谱分析,经过频谱分析得到高频和低频的频率,然后查表得到对应的按键,进行频谱分析的算法一般为Goertzel,这种算法的实现也很简单,网上有很多可以下到,但建议采用定点算法,浮点算法效率很低。
    2. 配置:
    2.1 修改profile,例如sip_profiles/internal.xml。

    <param name="dtmf-type" value="inband"/>

    2.2 在需要使用的dialplan中增加

    <action name="start_dtmf"/>

    附录

    DTMF
    全称:Dual Tone Multi Frequency(双音多频)
    定义:由高频音和低频音的两个正弦波合成表示数字按键(0~9 * # A B C D)

  • 相关阅读:
    [SAP HANA] HANA 安装更新工具HDBLCM
    [SAP BASIS] [TMS] TMS相关的程序和后台作业
    [sap basis] [authorization trace] Disable/enable authorization trace
    IEEE 802.11 标准列表
    802.11 wireless 七
    802.11 wireless 六
    802.11 wireless 五
    802.11 wireless 四
    802.11 wireless 三
    802.11 wireless 二
  • 原文地址:https://www.cnblogs.com/yoyotl/p/7054428.html
Copyright © 2020-2023  润新知