Dealing with Touch Tones (VoIP Deployment)

The tone you hear when you press a number key on your telephone isn’t just one tone, it’s actually two different tones at the same time. The touch tones (Dual Tone Multi Frequency tones, or DTMF tones) were designed so that your carrier could easily tell that you were dialing a phone number — your carrier couldn’t mistake those tones for the sounds of a human voice.
But VoIP was designed to sample and replicate the human voice, not the DTMF tones created by your phone. This VoIP limitation doesn’t affect how you make a call because VoIP doesn’t need DTMF tones for dialing phone numbers. The destination number is actually transmitted in the overhead of the SIP messaging.
You may need DTMF tones after the call is established, though. For example, you may have to “press 0 for the operator” or navigate through the auto-attendant maze of your insurance company or utility provider.
You have three ways to transmit DTMF over VoIP:
* In-band: In-band transmission of DTMF places the audio of the touch-tone sounds into the media of the call. So, VoIP actually samples the DTMF tone, packages it up, and sends it through the RTP stream with your voice.
You can use in-band DTMF only if you’re sending your audio uncompressed (using the G.711 codec). The compression algorithms used in the other codecs can’t pick up the nuances of the DTMF, so the digits aren’t transmitted effectively. If you’re using any other codec utilizing compression (such as G.729), you must use RFC2833.
Out-of band RFC2833: RFC2833 is the industry standard for sending DTMF on compressed calls. The digits are actually transmitted in the RTP of the call as a unique transmission called an RFC 2833 RTP Event. The digit pressed is listed as a number in the message, as are the volume of the tone and the length of time the key is held down. If you press the 5 key and hold it, the RTP event packets continue to send with each new RTP event packet identifying a longer duration.
I go over the look and feel of DTMF-packet transmission in topic 11.
SIP info: The SIP info method of DTMF transmission has fallen out of favor with the VoIP community, and the (Internet Engineering Task Force) IETF officially deprecates (discourages) using it. Use RFC2833 instead. It’s much cleaner and easier, and it shows up nicely on captures if you need to troubleshoot (check out topic 11 for details).

Next post:

Previous post: