У нас есть обстоятельства, когда мы хотим использовать тоны 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.