Keypad tones (DTMF)
Dual-tone multi-frequency (DTMF) tones are the sounds a phone keypad makes when someone presses a key. On a Vapi phone call, tones can go in two directions: your assistant can send them to another phone system, or your caller can press keys for your assistant to receive.
DTMF works on phone calls only. Web calls and WebSocket calls don’t send or receive keypad tones.
Send tones or receive keys
Choose how to send tones
When you already know which keys to press, a setting can send them for you without involving the model. Use the DTMF tool when the model must decide.
Recommendations by scenario
- Navigate a phone menu you don’t control. We recommend the DTMF tool, with the timing and prompting advice in IVR navigation.
- Reach a known extension after a transfer on a Twilio number. We recommend the destination’s
extensionfield. Don’t add the DTMF tool to a warm-transfer assistant on Twilio for this, because the caller can stay on hold after the assistant presses a key. - Reach a known extension on a SIP system. We recommend a SIP transfer destination with the extension in the URI, such as
sip:4321@pbx.example.com. - Pass caller details to a person. We recommend SIP headers on Vapi numbers, BYO SIP trunks, and Telnyx, or a data lookup on other providers, instead of tones. A person who answers hears only beeps.
- Accept a forwarded or screened call that asks you to press a key. We recommend the DTMF tool, prompted to press the requested key right away.
- Collect keys your caller presses. We recommend keypad input.
- Collect card numbers or other sensitive keypad entries. Follow the PCI compliance guide.
Where keypad tones work
Support depends on the provider the call runs on.
- Pause characters. On Twilio and Telnyx,
wadds a 0.5-second pause andWadds a 1-second pause. Elsewhere, Vapi doesn’t support them. On Vapi numbers, the keys play back to back. - Transfer
extension. On providers other than Twilio, Vapi ignores the field and transfers the call without dialing the extension. - GPT-Live. GPT-Live assistants have their own transport support. See transfers and keypad input.
Check what was sent or pressed
With logging enabled, a call’s logs record a call.dtmfSent event for each set of tones your assistant sends and a call.dtmfReceived event for each key your caller presses. These events show what was sent or pressed. They don’t confirm that the other side received the tones. For more information about checking tones, see Verify tones were sent.