zoxaAI
Homepage

Telephony Overview

Connect telephony providers to make and receive phone calls with your zoxaAI agents.

What you'll learn

How to add telephony providers to your zoxaAI account, manage phone numbers, configure inbound and outbound calling, and choose the right provider for your use case.

Telephony

Telephony providers connect your zoxaAI agents to real phone numbers. Once configured, you can place outbound calls, receive inbound calls, and run campaigns at scale -- all through the same unified platform.


Supported Providers

zoxaAI supports eight telephony providers. All providers support both inbound and outbound calling.

ProviderTypeAudio FormatSample RateCall TransferAuto-Create AppAccount ID Field
TwilioCloud APImulaw8 kHzYesNoAccount SID
VonageCloud APIL16 PCM16 kHzYesNoAPI Key
PlivoCloud APImulaw8 kHzYesYesAuth ID
TelnyxCloud APImulaw8 kHzYesYesConnection ID
CloudonixSIP / Cloudmulaw8 kHzYesYesDomain ID
VobizSIP / Cloudmulaw8 kHzYesYesAccount ID
Asterisk ARISelf-hostedmulaw8 kHzYesNo--
Tata SmartfloCloud APImulaw8 kHzYesNo--

Auto-Create App

Providers marked "Yes" under Auto-Create App will automatically create a voice application on the provider's platform when you save a configuration without specifying an Application ID. The application is pre-configured with the correct inbound webhook URL, so inbound calling works immediately.


How It Works

The telephony system has three layers:

  1. Configurations -- your provider credentials (API keys, tokens, etc.).
  2. Phone numbers -- the numbers registered under each configuration, used for caller ID and inbound routing.
  3. Default outbound -- one configuration is marked as the default for outbound calls.

When a call is placed, zoxaAI resolves the telephony provider from the configuration, initiates the call through the provider's API, and streams audio over WebSocket between the provider and the voice pipeline.


Adding a Provider

Go to Telephony in the sidebar of your zoxaAI dashboard.

Add a Configuration

Click Add Configuration to open the provider setup form.

Select Your Provider

Choose your provider from the dropdown. The form dynamically updates to show the required credential fields for that provider.

Enter Credentials

Fill in the required fields. Each provider has different credentials:

ProviderRequired Fields
TwilioAccount SID, Auth Token
VonageAPI Key, API Secret, Application ID, Private Key
PlivoAuth ID, Auth Token
TelnyxAPI Key
CloudonixBearer Token, Domain ID
VobizAccount ID, Auth Token
Asterisk ARIARI Endpoint, App Name, App Password
Tata SmartfloAuth Token (API Key optional — outbound only)

See each provider's dedicated page for details on where to find these values.

Name the Configuration

Give the configuration a descriptive name (e.g., "Twilio US Production", "Vonage India").

Save

Click Save. Your first configuration is automatically set as the default outbound configuration.

For Plivo, Telnyx, Cloudonix, and Vobiz: if you did not provide an Application ID, zoxaAI auto-creates one on the provider's side with the inbound webhook URL pre-configured.


Managing Phone Numbers

After creating a configuration, navigate into it to manage phone numbers. Phone numbers serve two purposes:

  • Outbound caller ID -- the number your contacts see when you call them. The provider selects one at random for each call, or you can specify one explicitly.
  • Inbound routing -- matching incoming calls to the right agent.

Adding Phone Numbers

Right after you create a configuration, zoxaAI opens it and fetches the voice numbers on your provider account, so you can click Add next to each one or Add all. You can fetch again any time with Fetch from <provider> in the Phone Numbers section. This works for every provider except Asterisk ARI, which has no API that lists its numbers.

To add a number by hand:

  1. Click into a telephony configuration.
  2. Click Add phone number.
  3. Enter the number in E.164 format (e.g., +14155552671, +919876543210).

Numbers linked elsewhere

A fetched number with an info icon is linked to another application or connection on your provider account. Outbound calls work; to receive inbound calls through zoxaAI, link it to this configuration's application in your provider's console.

Assigning Inbound Routing

Each phone number can be assigned to an agent for inbound call routing:

  1. Open the phone number in the configuration (or add a new one).
  2. Select an agent in the Inbound target dropdown.
  3. Save the phone number.

When an inbound call arrives on that number, zoxaAI automatically routes it to the assigned agent. For Twilio, Vobiz, and Tata Smartflo numbers you can also bind a number to an agent through the API -- see Register an inbound phone number.


Multiple Configurations

You can add multiple configurations, even from the same provider. Common patterns:

  • Geographic separation -- different providers for US, India, and EU traffic.
  • Production vs. testing -- separate credentials for development and production.
  • Provider failover -- a backup provider if your primary is down.
  • Different number pools -- separate configurations for sales and support numbers.

Default Outbound Configuration

One configuration is marked as the default outbound configuration. This is used when:

  • An API call does not specify a telephony configuration ID.
  • A test call is placed from the dashboard without selecting a specific config.

To change the default:

  1. Go to the Telephony page.
  2. Click the star icon next to the configuration you want as the default.

Configuration Cards

Each configuration appears as a card on the Telephony page showing:

ElementDescription
NameYour label for the configuration
ProviderWhich telephony provider it uses (with logo)
Default badgeIndicates which config is used for outbound calls by default
Phone number countHow many numbers are registered under this config

You can:

  • Edit a configuration to update credentials or name.
  • Delete a configuration (only if no campaigns or active inbound assignments reference it).
  • Set as default to use it for outbound calls.

Provider cannot be changed

Once a configuration is created, its provider cannot be changed. If you need to switch providers, create a new configuration and migrate your phone numbers.


How Telephony Connects to Agents

Telephony configurations are used at multiple points in the platform:

FeatureHow Telephony Is Used
Test callsUses the default config (or a user-selected config) to place a call from the agent editor
API callsThe POST /api/v1/call endpoint uses the default config or an explicitly provided telephonyConfigurationId
CampaignsEach campaign uses the organization's telephony config and phone number pool for concurrent dialing
Inbound callsThe provider sends a webhook to zoxaAI, which matches the number to a config and routes to the assigned agent

Webhook Signature Verification

For inbound calls, zoxaAI verifies webhook signatures from each provider to ensure requests are genuine. This happens automatically using the credentials stored in your configuration -- no additional setup is needed.

ProviderSignature Method
TwilioHMAC-SHA1 using Auth Token
VonageJWT token verification
PlivoHMAC verification using Auth Token
TelnyxEd25519 public key verification
CloudonixAPI key header validation
VobizHMAC-SHA256 body signature
Asterisk ARIN/A (persistent WebSocket, not HTTP webhook)
Tata SmartfloN/A (Voice Bot WebSocket, token-scoped; not HTTP webhook)

Next Steps

On this page