VOIP.com - Internet Phone Service

Voip > blog

Voip Blog

Touch Tones and VoIP

Saturday, May 10, 2008

A standard analog telephone line is capable of transmitting all kinds of things, ranging from the human voice to music to data--think fax machines and analog models. The Bell System's focus on audio quality early on in the development of the phone system made this possible.

In the 1950s, AT&T was using specific tones--multifrequency tones--on telephone lines in order to route calls between switching facilities. This practice of in-band signaling was used well into the 1980s, but has since been replaced with much more secure out-of-band signaling.

The Bell System created a derivative system for use by telephone customers called dual-tone multifrequency, or DTMF. They began marketing this service under the trade name Touch-Tone in 1963. This allowed people to push buttons to dial their phone instead of using a rotary dial.

While the touch tone phone could be used to dial a telephone number, it could also be used to signal the remote end of the call in some way-the reason they created the * and # keys. They also created explicit A, B, C, and D keys, but they were never widely used.

While not entirely common back in the 1960s, using your touch tone telephone to navigate a telephone tree is a fairly common occurrence today. Therefore, if your using a VoIP telephone service, touch tone service had better work.

On VoIP, you can signal touch tones one of two-ways: in-band or out-of-band. In-band signaling only works with G.711 and even so, it's generally not recommended. The preferred method is therefore out-of-band signaling for touch tones, and is the only method supported with codecs like G.729.

There are two standards for DTMF signaling out-of-band in VoIP: RFC 2833, which is the common method, and SIP INFO, which can also signal this information. In both cases, they transmit when a particular touch tone has been activated and when the touch tone has been deactivated.

The challenge with both methods is correctly indicating when a particular button has been pressed and, more importantly, when it has been released. Both RFC 2833 and SIP INFO take this into account, but use different methods. RFC 2833 is the most common method and seems to be a bit more reliable than SIP INFO, based on my experience.