VoIP & SIP
DTMFAlso known as Dual-Tone Multi-Frequency, Touch tones, RFC 4733
Definition
DTMF (dual-tone multi-frequency) is the signalling used when you press keys on a phone keypad. Each key sends two simultaneous tones, one from a low-frequency group and one from a high-frequency group. In VoIP, DTMF can travel as audio, as RFC 4733 telephone-event RTP packets, or as SIP INFO messages.
DTMF frequencies
The frequency pairs are standardised in ITU-T Q.23 and Q.24:
| 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 |
DTMF methods in VoIP
- In-band (inband audio): tones are carried inside the voice stream. Works with G.711, but compressed codecs such as G.729 distort them, and packet loss breaks digits.
- RFC 4733 (RFC 2833) telephone-event: each digit is sent as special RTP packets with its own payload type (often 101). The most reliable and most widely supported method.
- SIP INFO: digits are sent as SIP messages on the signalling path. Useful when media is relayed by equipment that drops telephone-events.
Both ends of a trunk must agree on the method. A mismatch is the most common reason an IVR “does not hear” key presses.
DTMF over mobile gateways
Timing matters too: each tone and each gap between tones must last long enough to be detected, typically at least 40 ms, which is why RFC 4733 events carry an explicit duration.
On a call leaving through a GSM gateway, RFC 4733 digits from the PBX must be regenerated as tones on the mobile leg, and tones from the mobile side detected and sent back as events. Use RFC 4733 on the trunk between your PBX and GSMCalls unless your provider specifies otherwise; see the FreePBX setup guide.
Frequently asked questions
What is the difference between RFC 2833 and RFC 4733?
RFC 4733 replaced RFC 2833 in 2006 with clarifications; they describe the same telephone-event mechanism and interoperate.
Why are my DTMF digits doubled or missing?
Usually because two methods are active at once (digits doubled) or the ends disagree on the method or payload type (digits missing).
Can DTMF be sent with G.729?
Yes, but use RFC 4733 events rather than in-band audio, because G.729 compression distorts the tones.