Skip to main content

Set up SIP trunk

This guide walks you through configuring an Elastic SIP Trunk to work with Agent Studio for both inbound calls (customers call your AI agent) and outbound calls (your AI agent calls customers).

Prerequisites

Before you begin, ensure that you have:

  • An active Twilio account
  • A phone number that supports SIP Trunking

Understand the setup

Agent Studio supports both inbound and outbound calls through Twilio Elastic SIP Trunk, but each direction requires different configuration in both Twilio and Studio. The table below summarizes the key differences.

InboundOutbound
Use caseCustomer support hotline, IVR replacement, appointment bookingOutbound campaigns, appointment reminders, follow-up calls
Call directionExternal caller dials your Twilio number → Twilio routes to Agora → AI Agent answersAgora initiates call via Twilio → Twilio connects to external number → AI Agent speaks
Twilio configOrigination URI (Twilio sends calls to Agora)Termination URI + IP ACL (Agora sends calls to Twilio)
Studio ConfigImport number → assign to Inbound agentImport number → use in Campaign or Outbound agent

Basic setup

  1. Verify your Twilio phone number

    To confirm your phone number is ready for SIP trunk configuration:

    1. Log in to Twilio Console.
    2. Navigate to Phone Numbers → Manage → Active Numbers.
    3. Check that the number you want to use is active and supports SIP Trunking.
    4. If you do not have a number, click Buy a number and select a number from the list.
  2. Create or select an Elastic SIP Trunk

    To set up a trunk that handles inbound and outbound calls:

    1. Go to Elastic SIP Trunking → Manage → Trunks in Twilio Console.

    2. Click Create a new SIP Trunk (or select an existing one).

    3. Give it a descriptive name. For example, “Agora Studio – Production”

    info

    You can use the same trunk for both inbound and outbound calling or create separate trunks for easier management. Agora recommends using separate trunks if you have different security requirements for inbound and outbound.

  3. Assign the phone number to the Elastic SIP Trunk

    To link your phone number with the SIP trunk:

    1. Go to Phone Numbers → Manage → Active Numbers.
    2. Select the phone number.
    3. Under Voice Calling settings, set the number to use your Elastic SIP Trunk.
    4. Save changes.
  4. Check secure trunking setting

    To determine which transport protocol to use in Agent Studio:

    1. Open SIP Trunk → General Settings.
    2. Locate Secure Trunking.
    3. Check whether it is enabled or disabled:
      • Enabled: Choose TLS when in Agent Studio configuration.
      • Disabled: Choose TCP or UDP in Agent Studio configuration.
    4. Save any changes.

caution

The transport setting in Agent Studio must match Twilio’s Secure Trunking setting. A mismatch causes calls to fail silently.

Outbound calling setup

  1. Configure the Termination URI

    To set up the domain that Agora will use to reach your Twilio trunk:

    1. In your SIP Trunk, go to Termination.

    2. Set a custom Termination SIP URI. For example: yourcompany.pstn.twilio.com.

    3. This domain is required later in Agent Studio as the SIP Domain.

  2. Create an IP Access Control List (Whitelist)

    Without correct IP whitelisting, Twilio blocks Agora traffic. To allow Agora's traffic through Twilio create an Access Control List (ACL):

    1. Go to Elastic SIP Trunking → Manage → IP Access Control Lists.

    2. Click + Create new Access Control List.

    3. Give your ACL a descriptive name.

    4. Add the following Agora SIP outgoing IPs to the ACL:


      _9
      43.157.157.7
      _9
      43.157.180.46
      _9
      43.157.154.150
      _9
      43.157.147.39
      _9
      43.157.160.149
      _9
      54.232.229.20
      _9
      3.111.249.176
      _9
      43.156.6.228
      _9
      101.42.177.243

    5. Save the Access Control List.

  3. Add IP Access Control List

    1. In your SIP Trunk, go to Termination → Authentication

    2. Under IP Access Control Lists, select the authentication list you just created. If you do not see the list you created, access the list by clicking View all Authentication lists.

    3. Click Save.

  4. Credential Lists (Optional)

    You can create username and password authentication if required.

    • If you do not specify a credential list, it allows you to leave the username and password blank in Agent Studio.
    • If you configure a credential list you must specify the same username and password in Agent Studio.

    To set up a credential list:

    1. Under Authentication, find Credential Lists.
    2. Use the + button to create a new list.
    3. Give your list a descriptive name.
    4. Specify a username and password.
    5. Click Save.
  5. Import the number in Agent Studio

    Once your Twilio trunk is configured, import the number into Studio. See Import a phone number for step-by-step instructions. Use your Termination URI as the SIP Domain and match the Transport protocol to your Secure Trunking setting.

Inbound calling setup

  1. Configure Origination URI

    1. In your SIP Trunk, go to Origination
    2. Click Add new Origination URI
    3. Enter the Agora SIP Origination URI: sip:your-agora-sip-domain
    4. The exact Origination URI is provided by Agora when you import your number in Agent Studio. Copy it from the Studio UI after importing.
    5. Set Priority to 10 and Weight to 10 (default).
    6. Click Add.
  2. Configure number routing

    1. Go to Phone Numbers → Manage → Active numbers
    2. Select the number you want to use for inbound calling.
    3. Under Voice Configuration → Configure with, select SIP Trunk
    4. Choose the trunk you created in Basic setup.
    5. Click Save configuration.
  3. Import the number in Agent Studio

    Once Twilio origination and routing is configured, import the number in Agent Studio and associate it with an agent to answer inbound calls. See Handle inbound calls for step-by-step instructions.

Configuration checklist

Before testing inbound and outbound calls, make sure you address each item in the checklist:

ItemInboundOutbound
Assign phone number to SIP Trunk✅ Required✅ Required
Configure Origination URI✅ Required❌ Not needed
Configure Termination URI❌ Not needed✅ Required
IP Access Control List❌ Not needed✅ Required
Credential List❌ Not needed⚠️ Optional
Secure trunking setting matches transport in Studio✅ Required✅ Required
Import number in Studio✅ Required✅ Required
Assign number in studio✅ Assign to an agent✅ Assign to a campaign

Troubleshooting

If you encounter issues with your Twilio SIP trunk setup, use the following table to identify and resolve common problems.

SymptomCauseSolution
Inbound calls don't reach agentOrigination URI not set or incorrectVerify the Origination URI in Twilio matches what Studio shows
Outbound calls rejected by TwilioIP ACL missing or incompleteAdd all Agora SIP IPs to the Twilio IP Access Control List
Calls connect but no audioTransport mismatch (TLS vs TCP/UDP)Match the Secure Trunking setting in Twilio with the Transport setting in Studio
One-way audioFirewall or NAT issueEnsure Agora SIP IPs are whitelisted on both sides
"403 Forbidden" in Twilio logsAuthentication failedCheck Credential List or IP ACL configuration
Call drops after ~30 secondsSIP session timer timeoutCheck SIP Trunk timeout settings in Twilio

Next steps