Ultravox Realtime is a “BYOT” (bring your own telephony) platform and integrates with major telephony providers to enable AI-powered voice applications that work with regular phone numbers. Your AI agents can make outbound calls and answer inbound calls through traditional phone networks.

Connection Methods

Ultravox supports multiple ways to connect to phone networks:

Learn more: Supported Providers →

Learn more: SIP Guide →

Key Capabilities

Create AI agents that can handle both directions of phone communication:

You can also enable your agents to handle more advanced tasks:

  • Call Transfers - Route calls between agents and humans.
  • IVR Flows - Interactive voice response with keypad input using Ultravox’s native support for DTMF.

Connecting Ultravox to a Phone Call

”Calls” is Overloaded

It can be a bit confusing because Ultravox Realtime uses the concept of a “call” to mean a voice session between an AI agent and another party. For phone calls, you will accept inbound or make outbound calls via your chosen telephony provider and then connect those calls to an Ultravox call.

Creating an Ultravox call that you can connect with a phone call requires specific parameters in the Create Call command:

medium
object
default:"{'webRtc': {}}"

Tells Ultravox which protocol to use. For phone calls, must be set to one of:

{"telnyx": {}}, {"twilio": {}}, or {"plivo": {}}.

Defaults to {"webRtc": {}}.

firstSpeakerSettings
object
default:"agent: {}"

Tells Ultravox who should speak first.

For outbound calls, typically set to user: {}.

The default is agent: {}.

Example: Outbound Call via Twilio
{
  "systemPrompt": "You are a helpful assistant...",
  ...
  "medium": {
    "twilio": {} // or "telnyx": {} or "plivo": {} or "exotel": {}
  },
  "firstSpeakerSettings": { "user": {} }
}

Learn More