DTMF: definition and a practical example
Short answer: DTMF (Dual-Tone Multi-Frequency) is the system that represents each phone key as the sum of two frequencies, used for dialing and for choosing options in IVRs.
In Portuguese: DTMF
What is DTMF?
DTMF (Dual-Tone Multi-Frequency) is the system of phone keypad tones. Each key generates two frequencies at the same time, one from a low group and one from a high group, and the receiver identifies the key from the combination. DTMF is how people navigate an IVR, dial an extension or confirm a PIN over the phone.
| 1209 Hz | 1336 Hz | 1477 Hz | 1633 Hz | |
|---|---|---|---|---|
| 697 Hz | 1 | 2 | 3 | A |
| 770 Hz | 4 | 5 | 6 | B |
| 852 Hz | 7 | 8 | 9 | C |
| 941 Hz | * | 0 | # | D |
In traditional telephony, the tones traveled inside the audio itself. In VoIP there are three ways to carry them:
- In the audio (in-band): the tone travels as sound inside RTP. It works well with G.711, but compressed codecs such as G.729 distort the tone and the key gets lost.
- RFC 4733 (telephone-event): each key becomes its own event in the RTP stream, with a payload type agreed in the SDP. It replaces RFC 2833 and is the most common method on SIP trunks.
- SIP INFO: the key travels as a SIP message, outside the audio. It depends on every device in the path passing the message along.
In practice
Pressing key 5 makes the phone generate 770 Hz and 1336 Hz together. A customer calls the company’s 0800 (toll-free) number and the IVR says “for billing, press 2”. What happens depends on the method:
| Phone sends | IVR expects | Result |
|---|---|---|
| RFC 4733 | RFC 4733 | Key 2 recognized |
| In the audio, G.711 | In the audio | Key 2 recognized |
| In the audio, G.729 | In the audio | Tone distorted, key ignored |
| RFC 4733 | In the audio | Key never arrives |
How Monitor uses this
On test-tone or echo circuits, Monitor sends test tones and checks that they come back. On IVRs, the test call listens for the expected greeting. See toll-free and IVR monitoring.
Frequently asked questions
Why doesn't the IVR recognize the keys I press?
Almost always because the two ends use different DTMF methods. If the phone sends RFC 4733 and the IVR expects tones inside the audio, or the other way around, the digits get lost. Compressed codecs such as G.729 also distort tones sent in the audio. Check in the SDP whether telephone-event was negotiated and use the same method on both ends.
What is the best DTMF method for VoIP?
On most SIP trunks, RFC 4733, which sends each key as an event in the RTP stream, with a payload type negotiated in the SDP. It does not depend on the codec and arrives in step with the audio. In-band DTMF is only reliable with G.711, and SIP INFO requires every device in the path to pass it along.