Buni.aiDocs
Early accessVoice (IVR)

Voice carriers

Which carriers Voice (IVR) projects work with, and how to bring a phone number onto Buni.ai with the Routes page.

Voice (IVR) projects answer and place calls on phone numbers from your own carrier account. Buni.ai does not buy numbers or resell minutes: you keep the carrier relationship, the number and the bill, and Buni.ai drives the call.

Supported carriers

CarrierNotes
TwilioRequests are also checked with Twilio's own signature.
Africa’s TalkingHas no signature scheme, so the shared secret and the unguessable URL authenticate requests.
InfobipUses Infobip's Calls API. Buni.ai drives the call through the API rather than in the webhook response.
Direct carrierA carrier connected directly rather than through one of the providers above.

Carrier-by-carrier console steps, and what each carrier supports, are on Connecting a carrier.

Bring a number onto Buni.ai

Add the carrier credential to the project

Credentials for voice are saved per project. Add a credential for your carrier to the IVR project before importing the number; calls to the number cannot be answered without one. See Credentials.

Import the number

Open Routes from the left sidebar and select Import route. In Import a route:

FieldWhat to enter
TypePhone number (voice)
Phone numberFull international format, starting with + and the country code, for example +233201234567.
ProviderTwilio, Africa's Talking, Infobip or Direct carrier
ProjectThe Voice (IVR) project that should answer. Only IVR projects are listed.
EnvironmentLive (the published flow) or Draft (the working copy)
CredentialThe carrier account this number belongs to. Pick the project first.
Label (optional)A name such as Support line

Select Import.

Copy the webhook details

On the number's row, select the link icon (Webhook details). The dialog shows the Webhook URL and the Shared secret.

Configure the carrier

In your carrier's console, point the number at the Webhook URL and send the shared secret on every request as the x-buni-voice-secret header. Requests without it are rejected, so calls will not connect until it is set. Follow the steps for your carrier in Connecting a carrier.

Call the number

Call it from any phone and check that your flow answers.

The Webhook details dialog for a voice route, showing a Webhook URL and a Shared secret with placeholder values
The details your carrier needs. Placeholder values shown; never share the real secret.

Live and Draft numbers

Each number answers on one environment. Keep a spare number on Draft to dial your working copy before customers can; it is the closest thing to a staging phone line. Switch a number between Live and Draft, or to another project, from the Routes table.

Limits

  • Your plan sets how many phone numbers you can import. When you reach it, Import says "Your plan includes N phone number(s). Upgrade to add more." Short codes do not count. See Billing and usage.
  • Removing a number from Routes stops calls reaching the project. The number stays with your carrier; to restore it, import it again and paste the webhook URL again.
  • Changing a number's carrier changes its webhook URL, because the URL names the carrier. Always copy the URL again from Webhook details.
Last reviewed 25 September 2026

On this page