Skip to main content

Documentation Index

Fetch the complete documentation index at: https://www.bolna.ai/docs/llms.txt

Use this file to discover all available pages before exploring further.

What is DTMF?

DTMF (Dual-Tone Multi-Frequency) is the system behind phone keypad input: the tones produced when a caller presses a digit key (0-9, *, #). When enabled, digit presses from the caller are captured and sent to the agent as a text message, which the LLM can read and respond to just like spoken input.

When to use it

DTMF is useful any time you want callers to enter structured numeric input without speaking it:
  • PIN or OTP verification — “Please enter your 6-digit OTP followed by #”
  • Account or order number lookup — “Enter your account number and press #”
  • Phone number capture — collecting a callback number during a call
  • Confirmation flows — “Press 1 to confirm, 2 to cancel”
  • Sensitive input — when callers are uncomfortable speaking a number aloud (e.g. a password or card number)
DTMF works alongside speech. A caller can still speak normally between keypad entries.
For branching menu flows (“press 1 for sales, press 2 for support”), use IVR Inbound Calls instead. It handles menu routing natively without an LLM.

Telephony support

ProviderSupport
PlivoSupported
TwilioSupported
SIP Trunk (BYOT)Currently not supported
ExotelCurrently not supported
VobizCurrently not supported

Enabling DTMF

From the dashboard

Toggle on Keypad Input (DTMF) in the Call Tab of your agent.
Call tab showing the Keypad Input DTMF toggle

Via the API

Set dtmf_enabled: true inside task_config when creating or updating an agent:
{
  "task_config": {
    "dtmf_enabled": true
  }
}

How it works

  1. The agent asks the caller to enter digits and press #.
  2. The caller presses keys on their keypad.
  3. Bolna accumulates the digits until # is pressed.
  4. The digits are delivered to the agent as: dtmf_number: <digits>
  5. The agent responds to the input.
# is the termination key. The agent only receives the input after the caller presses it. The # itself is not included in the value.

Writing the prompt

Tell callers to press # after their entry, and tell the agent what to do when it sees a dtmf_number: message. Example prompt snippet:
When you need the caller's phone number, say:
"Please enter your phone number on your keypad and press the hash key when you are done."

When you receive a message starting with "dtmf_number:", the digits that follow are what the caller entered.
Read them back to confirm and proceed accordingly.
What the agent receives:
dtmf_number: 9876543210
The agent treats this like any other message in the conversation. It can confirm the value, use it in a tool call, or move to the next step based on it.

Next Steps

IVR Inbound Calls

Menu-based call routing with keypad navigation

Call Tab

All call configuration options