For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
WebsiteStatusSupportDashboard
DocumentationAPI ReferenceMCPSDKsCLI (new)What's New?
DocumentationAPI ReferenceMCPSDKsCLI (new)What's New?
  • Get started
    • Introduction
    • Phone calls
    • Web calls
    • Vapi Guides
    • Composer
    • CLI quickstart
  • Assistants
    • Quickstart
    • Tools
    • Custom keywords
    • Custom voices
    • Custom transcriber
    • Custom TTS
  • Observability
    • Boards
  • Squads
    • Quickstart
    • Overview
    • Handoff tool
    • Passing data between assistants
  • Best practices
    • Prompting guide
    • Debugging voice agents
    • Enterprise environments (DEV/UAT/PROD)
    • IVR navigation
  • Phone numbers
    • Free Vapi number
    • Inbound SMS
      • SIP telephony
      • SIP trunking
      • Networking and firewall
        • Twilio
        • Telnyx
        • Zadarma
        • Plivo
        • Amazon Chime SDK
      • Troubleshoot SIP trunk credential errors
    • Phone Number Hooks
  • Calls
    • Call end reasons
    • Troubleshoot call errors
  • Outbound Campaigns
    • Quickstart
    • Overview
  • Chat
    • Quickstart
    • Streaming
    • Non-streaming
    • OpenAI compatibility
    • Session management
    • Variable substitution
    • SMS chat
    • Web widget
    • Webhooks
  • Workflows
    • Quickstart
    • Overview
LogoLogo
WebsiteStatusSupportDashboard
On this page
  • Overview
  • Prerequisites
  • Get Started
  • Plivo Configuration
  • Vapi Configuration
  • Plivo Configuration
  • Vapi Configuration
  • Errors
Phone numbersSIP integrationProviders

Plivo SIP Integration

Learn to connect your Plivo SIP trunk to Vapi for inbound and outbound calls
Was this page helpful?
Edit this page
Previous

Amazon Chime SDK SIP Integration

How to integrate Amazon Chime SDK Voice Connector with Vapi
Next
Built with

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

Outbound (Vapi to user)
Inbound (user to Vapi)

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",
> "inboundEnabled": false
> }
> ]
> }'
  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 "inboundEnabled": false
11 }
12 ],
13 "name": "PLIVO Trunk"
14}
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.