Create and configure Telnyx SIP trunk

Step-by-step instructions for creating inbound and outbound SIP trunks using Telnyx.

Note

If you're using LiveKit Cloud as your SIP server and you're signed in, your SIP URI is automatically included in the code blocks where appropriate.

Creating a Telnyx SIP trunk using the API

You can use curl command to make calls to the Telnyx API V2. The commands in the steps below use the example phone number, +15105550100. To use the Telnyx console, see Creating a SIP trunk using the Telnyx UI.

Prerequisite

Purchase a Telnyx phone number.

Step 1: Create an environment variable for API key

If you don't have a key a Telnyx API V2 key, see the Telnyx guide to create one.

export TELNYX_API_KEY="<your_api_v2_key>"

Step 2: Create an FQDN connection

The following inbound and outbound commands include the required configuration settings if you plan on using only an inbound or outbound trunk for your LiveKit telephony app. However, by default, an FQDN connection creates both an inbound and outbound trunk.

  1. Creating an FQDN connection. Depending on your use case, select Inbound, Outbound, or Inbound and outbound to accept calls, make calls, or both:

    Set the caller's number format to +E.164 for inbound calls (this identifies the caller's number with a leading +):

    curl -L 'https://api.telnyx.com/v2/fqdn_connections' \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H "Authorization: Bearer $TELNYX_API_KEY" \
    -d '{
    "active": true,
    "anchorsite_override": "Latency",
    "connection_name": "My LiveKit trunk",
    "transport_protocol": "TCP",
    "inbound": {
    "ani_number_format": "+E.164",
    "dnis_number_format": "+e164"
    }
    }'
  2. Copy the FQDN connection ID from the output:

    {
    "data": {
    "id":"<connection_id>",
    ...
    }
    }
  3. Create an FQDN with your SIP URI and your FQDN connection ID:

    curl -L 'https://api.telnyx.com/v2/fqdns' \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H "Authorization: Bearer $TELNYX_API_KEY" \
    -d '{
    "connection_id": "<connection_id>",
    "fqdn": "<your SIP host>",
    "port": 5060,
    "dns_record_type": "a"
    }'

Step 3: Associate phone number and trunk

  1. Get the phone number ID for phone number 5105550100:

    curl -L -g 'https://api.telnyx.com/v2/phone_numbers?filter[phone_number]=5105550100' \
    -H 'Accept: application/json' \
    -H "Authorization: Bearer $TELNYX_API_KEY"

    Copy the phone number ID from the output:

    {
    "meta": {
    "total_pages": 1,
    "total_results": 1,
    "page_number": 1,
    "page_size": 100
    },
    "data": [
    {
    "id": "<phone_number_id>",
    ...
    }
    ]
    }
  2. Add the FQDN connection to the phone number:

    curl -L -X PATCH 'https://api.telnyx.com/v2/phone_numbers/<phone_number_id>' \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H "Authorization: Bearer $TELNYX_API_KEY" \
    -d '{
    "id": "<phone_number_id>",
    "connection_id": "<connection_id>"
    }'

Creating a SIP trunk using the Telnyx UI

  1. Sign in to the Telnyx portal.
  2. Purchase a phone number.
  3. Navigate to Voice » SIP Trunking.
  4. Create a SIP connection:
    • For inbound calls:

      • Select FQDN and save.

      • Select Add FQDN and enter <your SIP URI> from above into the FQDN field.

      • Select the Inbound tab. In the Destination Number Format field, select +E.164.

      • In the SIP Transport Protocol field, select either TCP or UDP. (we recommend TCP)

      • In the SIP Region field, select your region.

    • For outbound calls:

      • Select the Outbound tab.
      • In the Outbound Voice Profile field, select or create an outbound voice profile.
      • Select the Settings tab
      • Configure FQDN Authentication:
        • Select the Settings tab.
        • In the Authentication & Routing Configuration section, select Outbound Calls Authentication.
        • In the Authentication Method field, select Credentials and enter a username and password.
    • Select the Numbers tab and assign the purchased number to the SIP trunk.

Next steps

To accept inbound calls, use the following steps:

  1. Create a SIP inbound trunk.
  2. Create a SIP dispatch rule.
  3. Create an AI voice agent to accept phone calls.

To make outbound calls, use the following steps:

  1. Create a SIP outbound trunk.
  2. Create an AI voice agent to make phone calls or make an outbound call using the SIP API.