SIP SDP谈判 - 如何不支持RFC -2833电话事件



我们有希望使用DTMF音调而不是RFC2833电话事件来检测DTMF数字的情况。我们试图通过对不支持电话事件的200个OK来响应SIP邀请(包括对SDP中的电话事件的支持)来避免双DTMF数字检测。

,例如

Session Initiation Protocol (INVITE)
    Request-Line: INVITE sip:blahblah@172.23.20.127:5060 SIP/2.0
    Message Header
    Message Body
        Session Description Protocol
            Session Description Protocol Version (v): 0
            Owner/Creator, Session Id (o): sphericall 24706 24707 IN IP4 172.23.20.122
            Session Name (s): -
            Connection Information (c): IN IP4 172.23.31.2
            Time Description, active time (t): 0 0
            Media Description, name and address (m): audio 19708 RTP/AVP 8 0 18 101
            Media Attribute (a): rtpmap:8 PCMA/8000
            Media Attribute (a): rtpmap:0 PCMU/8000
            Media Attribute (a): rtpmap:18 G729/8000
            Media Attribute (a): fmtp:18 annexb=no
            Media Attribute (a): rtpmap:101 telephone-event/8000
            Media Attribute (a): fmtp:101 0-16

我们响应;

Session Initiation Protocol (200)
    Status-Line: SIP/2.0 200 OK
    Message Header
    Message Body
        Session Description Protocol
            Session Description Protocol Version (v): 0
            Owner/Creator, Session Id (o): - 3720425649 3720425650 IN IP4 0.0.0.0
            Session Name (s): pjmedia
            Bandwidth Information (b): AS:84
            Time Description, active time (t): 0 0
            Session Attribute (a): X-nat:0
            Media Description, name and address (m): audio 20004 RTP/AVP 8
            Connection Information (c): IN IP4 172.23.20.127
            Bandwidth Information (b): TIAS:64000
            Media Attribute (a): sendrecv
            Media Attribute (a): rtpmap:8 PCMA/8000

但是,即使我们没有在反应中包括对电话事件的支持,我们仍然收到了他们。是我们做错了什么,还是不能阻止服务器通过SDP协商发送它们。

我认为您没有做错任何事情。

SDP答案包含UA愿意/能够处理的编解码器。您的SDP答案仅包含PCMA音频,并且PEER UA(或SIP Server)应该尊重这一点。这并不意味着实施不佳的事实(IMHO)。

大多数SIP服务器都有一个属性来指定必须使用哪种DTMF信号(RFC 2833/4733,SIP INFO,频段音频)。我认为,如果您想控制使用的DTMF信号的类型,您应该寻找此属性。

最新更新