Plivo SIP Integration

Learn to connect your Plivo SIP trunk to Vapi for inbound and outbound calls

Overview

For a general introduction to SIP trunking with Vapi (concepts and architecture), see our SIP Trunking Guide.

This guide shows you how to connect your Plivo SIP trunk to your existing Vapi agents. It covers:

  • Step-by-step configuration of Plivo and Vapi for SIP trunking (outbound and inbound)
  • How to register and associate your Plivo phone numbers with Vapi
  • How to make outbound calls using the Vapi API and dashboard
  • How to assign Plivo numbers for inbound call routing through Vapi

Prerequisites

  • A Plivo account
  • Admin access to your Plivo and PBX/SIP trunk configuration
  • A phone number you want to connect to Vapi via Plivo

Indian phone numbers cannot be used with Plivo on Vapi due to TRAI regulations. These regulations require SIP termination to occur via an Indian server, which Vapi does not currently support.

Get Started

Plivo Configuration

1

Login to Plivo Console

Access the Plivo console.

2

Create IP Access Control List

  1. Navigate to: Zentrunk (SIP) → Outbound Trunks → IP Access Control List → Create New IP Group

  2. Fill out the form:

  • Name: Enter a descriptive name (for example, VAPI-IP-Group).
  • IP Address List: Add each of the following IP addresses one at a time:
44.229.228.186/32
44.238.177.138/32
  1. Click Create ACL to save.

Plivo IP Access Control List

3

Create Outbound Trunk

  1. Navigate to: Zentrunk (SIP) → Outbound Trunks → Trunks → Create New Outbound Trunk

  2. Fill out the form:

  • Trunk Name: Enter a descriptive name (for example, Vapi-Outbound-Trunk).
  • IP Access Control List: Select the IP ACL created in the previous step.
  1. Click Create Trunk to save.

Create New Outbound Trunk

4

Note Your Termination SIP Domain

After creating the trunk, locate the Termination SIP Domain in the trunk details page. It will look something like: 12700668357XXXXXX.zt.plivo.com Termination SIP Domain

You will need this value when configuring your SIP trunk in Vapi.

5

Purchase a Phone Number

Navigate to: Numbers → Buy a new number

Once purchased, note down your new phone number. You will associate this number with your SIP trunk in a later step.

Buy Phone Number

Vapi Configuration

1

Get Your Vapi API Key

Sign in to the dashboard and get your API key.

2

Create a SIP Trunk Credential

  1. Copy the following API call.
  2. Replace YOUR_PLIVO_TERMINATION_SIP_DOMAIN with your actual Plivo Termination SIP Domain (for example, 12700668357XXXXXX.zt.plivo.com).
$curl -X POST https://api.vapi.ai/credential \
> -H "Content-Type: application/json" \
> -H "Authorization: Bearer YOUR_VAPI_PRIVATE_API_KEY" \
> -d '{
> "provider": "byo-sip-trunk",
> "name": "PLIVO Trunk",
> "gateways": [
> {
> "ip": "YOUR_PLIVO_TERMINATION_SIP_DOMAIN"
> }
> ]
> }'
  1. You’ll receive a response like the one below. Note the id (credentialId) for the next step.
1{
2 "id": "d293b924-f68d-4cbc-850f-xxxxxxxxxxxxxxx",
3 "orgId": "424acf80-dbea-4015-ace8-0f3924e6000xxxx",
4 "provider": "byo-sip-trunk",
5 "createdAt": "2025-05-05T16:38:08.815Z",
6 "updatedAt": "2025-05-05T16:38:08.815Z",
7 "gateways": [
8 {
9 "ip": "1856282236xxxxxxxxxxx.zt.plivo.com"
10 }
11 ],
12 "name": "PLIVO Trunk"
13}
3

Register Your Phone Number

  1. Associate your Plivo number with the SIP trunk. Replace YOUR_PLIVO_PHONE_NUMBER and YOUR_CREDENTIAL_ID with the numbers from previous steps.
$curl -X POST https://api.vapi.ai/phone-number \
>-H "Content-Type: application/json" \
>-H "Authorization: Bearer YOUR_VAPI_PRIVATE_API_KEY" \
>-d '{
> "provider": "byo-phone-number",
> "name": "PLIVO SIP Number",
> "number": "YOUR_PLIVO_PHONE_NUMBER",
> "numberE164CheckEnabled": false,
> "credentialId": "YOUR_CREDENTIAL_ID"
>}'
  1. Your response will look like this, note the phone number ID from the response for making calls.
${
> "id": "eba2fb13-259f-4123-abfa-xxxxxxxxxxxxxxx",
> "orgId": "489ea344-c56f-4243-8723-b28362cd5a5c",
> "number": "1833684XXXX",
> "createdAt": "2025-03-05T18:31:30.389Z",
> "updatedAt": "2025-03-05T18:31:30.389Z",
> "name": "PLIVO SIP Number",
> "credentialId": "a2c815b8-03f4-40f5-813c-xxxxxxxxxxxx",
> "provider": "byo-phone-number",
> "numberE164CheckEnabled": false,
> "status": "active"
>}
4

Create a Vapi Assistant

  1. Follow this guide to create an assistant
  2. Note your Assistant ID for making calls.
5

Make Outbound Calls

Using the API

$curl --location 'https://api.vapi.ai/call/phone' \
>--header 'Authorization: Bearer YOUR_VAPI_PRIVATE_API_KEY' \
>--header 'Content-Type: application/json' \
>--data '{
> "assistantId": "29d47d31-ba3c-451c-86ce-xxxxxxxxx",
> "customer": {
> "number": "9199437XXXXX",
> "numberE164CheckEnabled": false
> },
> "phoneNumberId": "eba2fb13-259f-4123-abfa-xxxxxxxxxxx"
>}'

Using the Vapi Dashboard

  1. Select your Assistant
  2. Enter the phone number of the user you want to call VAPI Dashboard Call

Errors

  • Codec Support: Limit trunk codecs to G.711 µ‑law and A‑law only. Other codecs are not supported by Plivo SIP trunks.
  • SIP REFER Not Supported: Plivo SIP trunks do not accept SIP REFER for call transfers.
  • Origination URI Already Exists: This was previously an error on Plivo’s side and has been fixed.