Prerequisites
Make sure you have the following ready before starting:Twilio Account
A Twilio account is required to create trunks. Sign up for Twilio if you don’t have one. A free trial can be used for initial testing.
Phone Number
You need at least one Twilio phone number. Buy a number from the Twilio Console. This will be associated with your trunk.
Bolna Account
An active Bolna account with SIP trunking access enabled. Contact enterprise@bolna.ai if you don’t have access yet.
Bolna API Key
Your Bolna API key from the Bolna Dashboard. You will need this when registering the trunk on Bolna.
Bolna’s SIP Server IP Address: You will need Bolna’s SIP media server IP throughout this guide:
13.200.45.61. Keep this handy.Step 1: Create a New SIP Trunk
Navigate to Elastic SIP Trunking
Log in to the Twilio Console and navigate to Elastic SIP Trunking > Trunks in the left sidebar. You can also go directly to twilio.com/console/sip-trunking/trunks.
Step 2: Configure Termination (Outbound Calls)
Termination settings control how Bolna sends outbound calls through Twilio to the PSTN. You need to set up a Termination URI (the address Bolna will call) and configure authentication so Twilio knows the requests are legitimate.Set the Termination URI
Go to the Termination tab in your trunk’s configuration. Enter a unique domain name in the Termination URI field:Click Save. This URI is the gateway address you will provide to Bolna when registering the trunk.
Create an IP Access Control List (ACL)
An IP ACL tells Twilio which IP addresses are allowed to send SIP traffic to your trunk. You need to add Bolna’s SIP server IP so Twilio accepts call requests from Bolna.In the Authentication section, find IP Access Control Lists:
- Click Create IP Access Control List
- Enter a friendly name:
Bolna SIP Server - Click Create, then click Add IP Address and fill in:
| Field | Value | What it means |
|---|---|---|
| Friendly Name | Bolna Production | A label for this IP entry |
| IP Address | 13.200.45.61 | Bolna’s SIP server IP |
| CIDR | 32 | Single IP address (no range) |
- Save and then associate this ACL with the trunk by selecting it from the dropdown on the Termination page
Create a Credential List (Recommended)
In addition to IP-based security, Twilio recommends also using credential-based authentication. When configured, Bolna will include a username and password with every outbound call request.In the Authentication section, find Credential Lists:
- Click Create Credential List
- Enter a friendly name:
Bolna Credentials - Add a username (e.g.,
bolna_trunk) and a strong password - Click Create, then associate the Credential List with the trunk
When both an IP ACL and Credential List are configured, Twilio enforces both: the request must come from a whitelisted IP and include valid credentials. This is the most secure setup.
Step 3: Configure Origination (Inbound Calls)
Origination settings control how Twilio delivers inbound calls (calls from the PSTN) to Bolna’s SIP server. This is what enables your AI agent to answer incoming phone calls.Add Bolna's SIP URI as the Origination URI
Go to the Origination tab in your trunk’s configuration. Click Add new Origination URI and fill in:
Click Add.
| Setting | Value | What it means |
|---|---|---|
| Origination SIP URI | sip:13.200.45.61:5060 | Where Twilio sends incoming calls (Bolna’s server) |
| Priority | 10 | Lower number = higher priority. Use 10 for primary. |
| Weight | 10 | Load balancing weight. Use 10 for a single trunk. |
| Enabled | Yes | Must be enabled for calls to route |
Step 4: General Settings
These settings apply to the entire trunk and affect both inbound and outbound calls.Disable Secure Trunking (SRTP)
Go to the General tab. Find Secure Trunking and set it to Disabled. Click Save.
Enable Symmetric RTP
Set Symmetric RTP to Enabled and save. This helps prevent one-way audio issues that can occur due to NAT (Network Address Translation) between Twilio’s and Bolna’s servers.
Configure Call Recording (Optional)
If you want Twilio to record calls on its side, choose your preference:
- Do Not Record (default): No recording on Twilio
- Record from ringing: Recording starts when the phone rings
- Record from answer: Recording starts when the call is answered
Bolna also offers its own call recording feature. You can use either or both depending on your needs.
Step 5: Associate Phone Numbers
You need to associate at least one Twilio phone number with your trunk. This tells Twilio to route calls to that number through your SIP trunk instead of handling them with TwiML or Studio.Associate an Existing Number
If you already have a Twilio phone number:
- Click Associate a Number with this Trunk
- Select your phone number from the list
- The number’s Voice configuration will automatically be updated to SIP Trunking
One number, one trunk: A Twilio phone number can only be associated with one trunk at a time. Associating it with a new trunk automatically removes it from the previous one.
Configuration Summary
Here is a complete reference of everything you configured:| Setting | Value |
|---|---|
| Trunk Name | Bolna Voice AI Trunk (or your chosen name) |
| Trunk SID | TKxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (auto-assigned) |
| Termination URI | bolna-trunk.pstn.twilio.com (your chosen domain) |
| IP ACL | Bolna IP 13.200.45.61/32 in Bolna SIP Server ACL |
| Credential List | Username + Password (saved securely) |
| Origination URI | sip:13.200.45.61:5060 (Priority: 10, Weight: 10) |
| Secure Trunking | Disabled (SRTP not supported by Bolna) |
| Symmetric RTP | Enabled |
| Transport | UDP (default) |
| Associated Numbers | Your Twilio phone number(s) |
Twilio-Specific Notes
E.164 Number Formatting
E.164 Number Formatting
Twilio requires all phone numbers to be in E.164 format (e.g.,
+12128675309). Numbers without the + prefix will be rejected with a 400 Bad Request response. Bolna’s outbound_leading_plus_enabled setting (default true) automatically ensures the + is prepended to outbound numbers.Localized Termination URIs
Localized Termination URIs
For lower latency on outbound calls, you can use Twilio’s region-specific termination URIs instead of the global one. Replace
bolna-trunk with your chosen domain name:| Region | URI |
|---|---|
| N. America (Virginia) | bolna-trunk.pstn.ashburn.twilio.com |
| N. America (Oregon) | bolna-trunk.pstn.umatilla.twilio.com |
| Europe (Ireland) | bolna-trunk.pstn.dublin.twilio.com |
| Europe (Frankfurt) | bolna-trunk.pstn.frankfurt.twilio.com |
| Asia Pacific (Singapore) | bolna-trunk.pstn.singapore.twilio.com |
| Asia Pacific (Tokyo) | bolna-trunk.pstn.tokyo.twilio.com |
| South America (Sao Paulo) | bolna-trunk.pstn.sao-paulo.twilio.com |
| Asia Pacific (Sydney) | bolna-trunk.pstn.sydney.twilio.com |
Caller ID Requirements
Caller ID Requirements
For outbound calls, Twilio requires the
from_number (caller ID) to be either a Twilio DID number on your account or a verified Caller ID number. If an invalid caller ID is used, Twilio will reject the outbound call.Trial Account Limitations
Trial Account Limitations
Trial Twilio accounts have some restrictions: you can only call verified phone numbers, and outbound calls will play a Twilio trial message before your AI agent speaks. Upgrade your account to remove these limitations.
Maximum Call Duration
Maximum Call Duration
Twilio Elastic SIP Trunking supports call durations up to 24 hours (extended from the default 4 hours). This can be configured per-trunk in the General settings tab.
Next Steps
Your Twilio Elastic SIP Trunk is fully configured. Continue with these guides:Register Trunk on Bolna
Register your Twilio trunk with Bolna and add your phone numbers via API
Make Outbound Calls
Place outbound calls through your Twilio trunk using Bolna AI agents

