SIP DTMF

SIP DTMF

SIP通常有三种支持DTMF的方式

一种是带外(out of band),采用SIP的INFO消息。在这种情况下,DTMF数字如0,1,3等在SIP的INFO消息里携带。

一种是带内(in band),就是通过RTP中的Codec,例如G.711。SDP中Payload Type或者Codec的定义见RFC3551

不是所有的Codec都能够携带DTMF。比如G.729,因为压缩得厉害,就不能够携带DTMF。所以RFC2833(注:RFC4733RFC2833有更新)定义了一种专门的Payload Type来传递DTMF信号。从SIP的角度看RFC2833定义的方式也是属于带内,因为它是在RTP流里面传而不是在信令里面传。但从RTP的角度看,他属于一种特殊的Payload Type,这种类型定义为“telephone-event”。RTP的角度看这种方式可能是带外,因为是在语音或视频Codec之外传DTMF。(Payload Type和Codec我认为是等价的,一回事,不知对不对。)

RFC3551定义了96-127的Payload Type是Dynamic的。就是说这个范围内的数字本身没有定义Codec或Payload Type。

下面是截取的SIP消息中的SDP Body中的Payload Type部分。其中8和101代表的是两种Payload Type。8是静态的类型,代表”PCMA/8000”。101在96-127之间,是动态类型。需要直到后面的telephone-event才知道具体的Payload Type。

m=audio 2332 RTP/AVP 8 101
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15

按惯例101代表telephone-event,但只是惯例,最初大概是因为Cisco的设备用101代表telephone-event(见这里)。如下面消息,把101换成96在逻辑上和上面的消息是等价的。

m=audio 2332 RTP/AVP 8 96
a=rtpmap:8 PCMA/8000
a=rtpmap:96 telephone-event/8000
a=fmtp:96 0-15

关于SIP的SDP Offer/Answer模型,参见RFC6337。在RFC4317中也有SIP的SDP Offer/Answer例子。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SIP中,DTMF(Dual Tone Multi-Frequency)信号的协商是通过SDP(Session Description Protocol)进行的。SDP是一种描述会话参数的协议,它用于在SIP通信中交换音频、视频和其他媒体信息。 协商DTMF的过程如下: 1. 起始方(通常是发起呼叫的一方)在SIP INVITE请求中的SDP部分中指定了自己支持的媒体传输方式(如音频编解码器、媒体传输协议等)以及DTMF传输方式的支持情况。 2. 接收方在SIP 200 OK响应中的SDP部分回复自己支持的媒体传输方式和DTMF传输方式。 3. 如果起始方和接收方都支持"inband"模式(将DTMF信号嵌入到音频信号中),则可以选择在SDP中指定"inband"作为DTMF传输方式。 4. 如果起始方和接收方都支持"out-of-band"模式(通过独立的信令通道或其他方式传输DTMF信息),则可以选择在SDP中指定"out-of-band"作为DTMF传输方式。 5. 如果起始方和接收方都支持"via signaling"模式(通过SIP信令通道传输DTMF信息),则可以选择在SDP中指定"via signaling"作为DTMF传输方式。 6. 最终,根据双方协商的结果,会话的DTMF传输方式被确定下来,并在后续的SIP消息中使用该方式进行DTMF信号的传输。 需要注意的是,DTMF的协商过程是根据双方设备和服务器的能力和配置进行的。不同设备和服务器可能支持不同的DTMF传输方式,因此在协商过程中需要确保双方都支持相同的方式。 希望这个回答对您有帮助!如果您还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值