Skip to main content
SIP Billing Starts October 27, 2025
Calls via the SIP medium will start to incur additional charges on Monday, October 27, 2025.See https://ultravox.ai/pricing for details.
Session Initiation Protocol (SIP) enables Ultravox agents to connect with your existing phone systems and SIP clients. This guide explains how to set up both incoming and outgoing SIP calls with Ultravox agents.

SIP Quickstart

The fastest way to start using SIP with Ultravox:
1

Create an Agent

Create an agent using the Ultravox Realtime console.
2

Create a SIP Call

Create an agent call using the Create Agent Call API and use the sip medium.
API Key Required
Make sure you have an Ultravox API key. You can create one in the console.

Incoming SIP Calls

For incoming calls, you can configure Ultravox to accept calls from your SIP system then send a sip invite directly to your agent. The SIP invite will create an Ultravox call and connect to it, no other requests required. Ultravox supports two setups for incoming SIP calls: IP allowlisting and SIP registration. IP allowlisting works well with dedicated PBX systems, while SIP registration is recommended for cloud PBX setups. In either setup, you can choose to allow incoming calls to all of your agents or to specific agents only. Calls will be created automatically from your agent’s call template when a SIP invite is received.

IP Allowlisting

To set up IP Allowlisting, use the sip configuration API to add your SIP system’s public IP addresses to the allowedCidrRanges list. Entries in this list must be IPv4 CIDR ranges, e.g. 0.0.0.0/0 for any IP address (not recommended) or 91.200.160.14/32 for the single 91.200.160.14 IP address. Once your SIP system’s IP address(es) are allowed, you can have them send SIP invites to your agents using the pattern agent_{agent_id}@{your_account_sip_domain}. The value for {your_account_sip_domain} is available when you view your SIP configuration.

SIP Registration

In the registration model, Ultravox acts as a SIP client (similar to a softphone) and registers with your SIP server as the user you specify. To set this up, you’ll need to create a user in your PBX, configure your PBX to send relevant calls to that user, and then create a registration for that user in Ultravox. When creating a registration, you’ll need to provide the following information:
  • username: The username of the user you created in your PBX.
  • password: The password for that user.
  • proxy: The domain or IP address of your SIP server.

Personalizing the Call

Many parts of an agent can use context to personalize a call. (See Call Template Configuration.) You can use SIP headers to populate template context for incoming SIP calls. Each header value is interpretted as JSON to allow for complex values. For example including the headers X-Customer-Name: Bob and X-Complex-Value: {"subkey": "value"} becomes {"customer_name": "Bob", "complex_value": {"subkey": "value"}}.

Outgoing SIP Calls

For outgoing calls, you can create a SIP call with Ultravox Realtime Create Agent Call or Create Call endpoints using the sip medium with outgoing property.
medium: {
  sip: {
    outgoing: {
      to: "sip:<destination>@<sip_domain>",
      from: "<your_identifier>",
      username: "<authentication_username>",
      password: "<authentication_password>"
    }
  }
}
When you create the call, Ultravox will automatically send a SIP invite using the properties provided.

Outgoing SIP Parameters

to
string
required
The target SIP URL to which the Ultravox call will connect.Examples: sip:username@domain, sip:+15551234567@carrier.com
from
string
required
The caller identifier. Must conform to what your SIP trunk allows.
username
string
Optional. Username for connecting to your SIP trunk.
password
string
Optional. Password for connecting to your SIP trunk.

Examples

Example: Creating an Outgoing SIP Call to Linphone
    medium: {
      sip: {
        outgoing: {
          to: "sip:<username>@sip.linphone.org",
          from: "<company_name>"
        }
      }
    }
Example: Creating an Outgoing SIP Call using a Twilio trunk
    medium: {
      sip: {
        outgoing: {
          to: "+15551234567@trunkname.pstn.twilio.com",
          from: "+15557654321",  // Some phone number you've purchased from Twilio
          username: "authorized_user",  // A user you've created in Twilio allowed to use this number
          password: "password_for_authorized_user"
        }
      }
    }

Supported Codecs

Ultravox Realtime supports wideband (AKA “HD audio”) and narrowband SIP via various codecs:
CodecAudio Quality
G.722HD (16kHz)
G.722.1HD (16kHz)
G.722.2HD (16kHz)
OpusPremium HD (48kHz)
G.711 (PCMU/u-law)Standard (8kHz)
G.711 (PCMA/a-law)Standard (8kHz)
iLBCStandard (8kHz)
Using any other codec will cause calls to fail.

Integrations

I