Connect Plivo SIP trunking to LiveKit to enable your voice AI applications to make and receive phone calls through Plivo’s global voice network.
Prerequisites
| Requirement | Description |
|---|
| Plivo Account | Sign up with SIP trunking enabled |
| Phone Number | Purchase a voice-enabled number |
| - India: Requires KYC verification. See Rent India Numbers. |
| LiveKit Cloud Account | Create account |
India regional requirement: If handling calls to/from India, you must select India as your LiveKit region. This is a regulatory requirement - calls will fail otherwise.
Optimize for latency: For best call quality, select a LiveKit region closest to your call traffic. This minimizes audio delay and improves conversation flow.
Part 1: Receive Incoming Calls
Route calls from your Plivo phone number to LiveKit.
Step 1: Create an Inbound Trunk in Plivo
- Go to SIP Trunking → Inbound Trunks
- Click Create New Inbound Trunk
- Enter a name (e.g.,
LiveKit-Inbound)
- Click Add New URI and configure:
| Field | Value |
|---|
| Name | LiveKit-Primary |
| SIP URI | your-project-SIP-URI;transport=tcp |
Replace your-project-SIP-URI with your LiveKit SIP URI from LiveKit Dashboard → Settings → Project.
For TLS, use ;transport=tls instead.
- Click Create Trunk
Step 2: Connect Your Phone Number
- Go to Your Numbers
- Click on your phone number
- Set Application Type to
Zentrunk
- Set Trunk to your inbound trunk
- Click Update Number
Set up an inbound trunk and dispatch rules in LiveKit. See LiveKit SIP documentation for detailed steps.
Part 2: Make Outgoing Calls
Enable LiveKit to make outbound calls through Plivo.
Step 1: Create an Outbound Trunk in Plivo
- Go to SIP Trunking → Outbound Trunks
- Click Create New Outbound Trunk
- Click Add New Credentials List and create credentials:
- Username:
livekit_trunk (or your preferred username)
- Password: Generate a strong password
- Enter a trunk name (e.g.,
LiveKit-Outbound)
- Enable Secure Trunking (recommended)
- Click Create Trunk
- Copy your Termination SIP Domain (e.g.,
XXXXXXXXXXXX.zt.plivo.com)
Use the credentials and termination domain from Plivo to configure outbound calling in LiveKit. See LiveKit outbound calls documentation for detailed steps.
Troubleshooting
| Issue | Solution |
|---|
| Call doesn’t connect | Verify SIP URI includes ;transport=tcp. Check phone number is mapped to correct trunk. |
| Authentication errors | Verify credentials match exactly in both Plivo and LiveKit. |
| India calls failing | Ensure LiveKit region is set to India. |
Debug logs:
- Inbound issues: Check Plivo logs first
- Outbound issues: Check LiveKit logs first
For error codes, see Plivo hangup codes.