Sedrick
03/13/2025, 7:20 PMVapi Support Bot
03/13/2025, 7:21 PMjson
{
"model": {
"provider": "openai",
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "system",
"content": "You are an assistant that will hit menu options using the dtmf function."
}
],
"tools": [
{
"type": "dtmf"
}
]
}
}
Option 2: Use Twilio as Middleware
For more reliable DTMF handling, consider using Twilio to handle the IVR navigation first, then transfer to Vapi. This approach requires:
1. Setting up a gather endpoint in Twilio:
javascript
twiml.gather({
numDigits: 3,
method: "POST",
action: `${process.env.NEXT_PUBLIC_VAPI_SERVER_URL}/api/twilio/gather`,
});
2. After gathering DTMF, transfer to Vapi using a conference call to maintain the proper call status:
javascript
twiml.redirect({ method: "POST" }, "https://api.vapi.ai/twilio/inbound_call");
Option 3: Adjust DTMF TimingVapi Support Bot
03/13/2025, 7:21 PMCallStatus must be one of the following values: ringing
) occurs because after Twilio gathers DTMF tones, the call status changes to "in-progress," but Vapi expects it to be "ringing" when redirected back. This is a known integration challenge between the two systems.
Would you like me to provide more specific guidance on implementing any of these solutions? Or do you have any other questions about DTMF handling in Vapi?
Sources:
- [Discord Thread on DTMF Issues](https://discord.com/channels/1211482211119796234/1211483291191083018/threads/1338841147077820487)
- [Vapi Default Tools Documentation](https://docs.vapi.ai/tools/default-tools)
- [Discord Thread on Twilio Integration](https://discord.com/channels/1211482211119796234/1211483291191083018/threads/1342459464346767492)
- [Discord Thread on Call Status Issues](https://discord.com/channels/1211482211119796234/1211483291191083018/threads/1341108728115757138)cw
03/13/2025, 8:00 PMShubham Bajaj
03/15/2025, 1:53 PMKyle Plonks
03/21/2025, 1:47 AM