What is DTMF (Dual Tone Multi Frequency)?
When you press a button on your phone it sends a combination of two audible tones (identifying the column and row of the key on the standard keyboard layout), which can be separated at the other end to determine which key you pressed. Also known as touch-tone.
DTMF tones are used for dialling a phone number, and also when you respond to an IVR (Interactive Voice Response) system, such as are becoming increasingly common for telebanking, voicemail, and automated receptionists (press 1 for sales, 2 for technical …).
What are the DTMF modes ?
On a standard PSTN phone line, the DTMF tones are always sent as part of the audio data (InBand); but the higher compression from VoIP codecs (which are designed for speech, not data tones) means that codec at the other end cannot be guaranteed to reproduce these tone signals accurately enough for automatic recognition.
VoIP offers a variety of possibilities, such as:
- Inband sends the touch-tone signals as an audible tone as part of the voice conversation. If not reliable, try using G.711 codec (which does no compression).
- Outband is a generic term for removing the touch tones from the audio data and sending the information through a separate channel.
- RFC2833 specifies a different RTP packet format for DTMF Digits, to reduce transmitted data.
- SIP INFO sends the touch tone information in SIP control messages telling which digits were pressed.
There seem to be different interpretations of Outband, and even more non-standard variations of SIP INFO 🙁
Which DTMF mode should I use ?
If all your calls are to PSTN numbers, then find out from your VoIP provider which DTMF mode their PSTN Gateway uses, and set you VoIP device to the same setting.
Unfortunately some customers find that different systems require different DTMF modes (e.g. the VoIP providers voicemail may require SIP INFO, but the customer needs to use InBand for their telebanking).
See also “DTMF Settings in Vigor Routers“