Согласование SIP SDP — как не поддерживать события телефонии RFC-2833

У нас есть обстоятельства, когда мы хотим использовать тоны DTMF вместо телефонных событий RFC2833 для обнаружения цифр DTMF. Мы пытаемся избежать обнаружения двойных цифр DTMF, отвечая на приглашение SIP (которое включает поддержку событий телефонии в его SDP) с 200 OK, которое не поддерживает события телефонии.

e.g.

Session Initiation Protocol (INVITE)
    Request-Line: INVITE sip:[email protected]: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.


person Craig    schedule 27.11.2017    source источник


Ответы (1)


Я не думаю, что вы делаете что-то неправильно.

Ответ SDP содержит кодеки, которые UA готов/способен обработать. Ваш ответ SDP содержит только звук PCMA, и одноранговый UA (или SIP-сервер) должен учитывать это. Тот факт, что это не означает, что это плохо реализовано (имхо).

Большинство SIP-серверов имеют свойство указывать, какой тип DTMF-сигнализации должен использоваться (RFC 2833/4733, SIP INFO, внутриполосное аудио). Я думаю, вам следует искать это свойство, если вы хотите контролировать тип используемой сигнализации DTMF.

person Bucq    schedule 27.11.2017