Thursday, November 24, 2011

SIP DTMF Signalling

SIP DTMF Signalling

There are 3 common ways of sending DTMF on SIP calls
  • SIP INFO packets
  • As specially marked events in the RTP stream - see: RFC 2833
  • inband as normal audio tones in the RTP stream with no special coding or markers

RFC 2833 defines signalling for various events:
  • DTMF tones
  • fax-related tones
  • standard subscriber line tones
  • country-specific subscriber line tones
  • trunk events



They start out with:

EventEvent encoding (decimal)
0--90--9
*10
#11
A--D12--15
Flash16

and go on from there for other events.

From the introduction in the RFC:

This memo defines two payload formats, one for carrying dual-tone multifrequency (DTMF) digits, other line and trunk signals (Section 3), and a second one for general multi-frequency tones in RTP 1 packets (Section 4). Separate RTP payload formats are desirable since low-rate voice codecs cannot be guaranteed to reproduce these tone signals accurately enough for automatic recognition. Defining separate payload formats also permits higher redundancy while maintaining a low bit rate.

The payload formats described here may be useful in at least three applications: DTMF handling for gateways and end systems, as well as "RTP trunks". In the first application, the Internet telephony gateway detects DTMF on the incoming circuits and sends the RTP payload described here instead of regular audio packets. The gateway likely has the necessary digital signal processors and algorithms, as it often needs to detect DTMF, e.g., for two-stage dialing. Having the gateway detect tones relieves the receiving Internet end system from having to do this work and also avoids that low bit-rate codecs like G.723.1 render DTMF tones unintelligible. Secondly, an Internet end system such as an "Internet phone" can emulate DTMF functionality without concerning itself with generating precise tone pairs and without imposing the burden of tone recognition on the receiver.

No comments:

Post a Comment