最初DTMF是模拟通信的一种信令方法,目的是通过语音线路来传递信号,从而实现终端与交换间“按键号码”识别,常用于实现IVR交互。在VoIP通信中,DTMF信号传递已衍生出多种方法(以下为简述):
SIP INFO:通过SIP信令中的INFO消息携带DTMF信号发送给交换端,交换端收到INFO消息后进行识别;
INBAND:DTMF信号以RTP音频数据的形式混在媒体中一起发给交换端,由交换端做带内媒体的检测后识别;
RFC2833:传输方式上与INBAND类似,同样以RTP包承载,区别是2833是由特殊的RTP Payload Type,即TeleponeEvent来标示该RTP包,交换端不再对RPT做频谱解析就可得到按键信号。
以上方法各有优劣,实际应用中不同厂商的通信产品对DTMF的支持也各有不同,有些全部支持,有些则部分支持,包括运营商网络。会话产生时,终端与交换间到底会采用哪种方法实现DTMF的交互,依赖双方的SDP协商而决定。
在实际的企业案例中,经常出现双方协商采用A方法,但通话中运营商线路却使用了B方法传输DTMF,导致企业的话务平台无法识别,从而出现“用户听到IVR提示音后,手机按键无效”的异常情况,影响用户的服务体验。
面对此类异常,握联SBC可轻松解决。
例如,在Sip Server与运营商线路间放置SBC。作为B2BUA,SBC对外可与运营商网络(用户端)协商采用INBAND,对内与软交换协商采用RFC2833,起到“DTMF转译”的作用。