Buni.aiDocs
Voice (IVR)
Early accessVoice (IVR)

Carrier setup

Bind a phone number to your Voice (IVR) project and point your Twilio, Infobip or Africa's Talking account at its webhook.

Calls run on your carrier account: you keep the carrier relationship, the number and the carrier's bill. Supported carriers are Twilio, Infobip and Africa's Talking. See Voice carriers for the carrier-side details.

Bind the number

  1. Save your carrier account as a credential on the project. A route cannot answer calls without one.
  2. Open Routes in the workspace navigation and select Import route.
  3. Set Type to Phone number (voice) and fill in Phone number, Provider, Project, Environment and Credential.

See Routes for the rest of the page.

The two things a carrier needs

On Routes, open Webhook details on the number's row:

  • Webhook URL: where the carrier sends call events.
  • Shared secret: sent as the x-buni-voice-secret header. Where your carrier uses it, requests without it are rejected, so calls will not connect until it is set.

The same details are on the canvas under the Publish menu, as Voice webhook URL.

The voice webhook dialog showing the Webhook URL and Shared secret fields with copy buttons
Webhook details for a number bound to a Voice (IVR) project.

The URL contains the carrier's name, because that decides which adapter reads the request. Re-binding a number to a different carrier changes the URL, so copy it again from Routes rather than reusing an old one.

Environments

Each route points at one environment:

  • Live: the published flow.
  • Draft: the working copy.

Keeping a second number on Draft lets you dial a flow before customers can. It is the closest thing to a staging phone line.

Per carrier

Infobip

  1. Point your Infobip calls configuration's inbound call events at the Webhook URL.
  2. Send the shared secret as the x-buni-voice-secret header.

Infobip does not take call control in the webhook response; it delivers events, and Buni.ai answers and drives the call through Infobip's Calls API.

Twilio

  1. In your number's configuration, set the incoming-call webhook to the Webhook URL, method POST.
  2. Twilio requests are verified by Twilio's own signature.

Africa's Talking

  1. Set the number's callback URL to the Webhook URL.
  2. Africa's Talking has no signature scheme, so the unguessable URL is what authenticates it.

What each carrier can do

TwilioInfobipAfrica's Talking
Keypad inputYesYesYes
Speech inputYesYesNo
Text to speechYesYesYes
Play audio filesYesYesYes
Voicemail recordingYesYesYes
Background whole-call recordingYesYesNo
TransferYesYesYes
Keypress during a promptYesNoYes
Repeating hold audio in a queueYesYesNo
Streaming audioYesYesNo

The canvas warns you when a flow asks for something the number's carrier cannot do. On Africa's Talking, a Collect Input set to speech lets callers press keys but not speak, so use Keypad only there. On Infobip, keys pressed while a prompt is still playing are ignored, so keep menu prompts short.

Verifying the connection

Call the number, then open the project's Activity tab. If the call is not listed, the carrier never reached the webhook: check the URL, the secret and the credential on the route.

Last reviewed 24 September 2026

On this page