Contact Sales

All fields are required

Your AI Deserves a Real Phone System | SignalWire
Bring Your Own AI

Give Your AI a Phone Number

You built the voice AI. SignalWire connects it to the phone network with SIP, PSTN, and call control built in.

2,000+
companies in production
2.7B
minutes processed
< 1.2s
typical AI response latency
<10 min
to first phone call
The Infrastructure Gap

Your AI Speaks WebSocket. Phones Speak SIP.

SIP and RTP protocol bridging

Your WebSocket-native agent does not speak SIP signaling or RTP media streams. Bridging these protocols requires deep telephony expertise that most AI teams lack.

Phone number provisioning

Regulatory forms, identity verification, and carrier relationships. Getting a number that rings your AI is harder than building the AI itself.

Codec negotiation

G.711 at 8kHz over PSTN vs. Opus at 48kHz in your browser demo. Transcoding between them without degrading quality or adding latency.

Call control primitives

Transfers, hold, conferencing, recording, IVR fallback. Production calls need these capabilities, and your AI pipeline does not provide them.

Build a Voice AI Agent

from signalwire_agents import AgentBase
from signalwire_agents.core.function_result import SwaigFunctionResult

class SupportAgent(AgentBase):
    def __init__(self):
        super().__init__(name="Support Agent", route="/support")
        self.prompt_add_section("Instructions",
            body="You are a customer support agent. "
                 "Greet the caller and resolve their issue.")
        self.add_language("English", "en-US", "rime.spore:mistv2")

    @AgentBase.tool(name="check_order")
    def check_order(self, order_id: str):
        """Check the status of a customer order.

        Args:
            order_id: The order ID to look up
        """
        return SwaigFunctionResult(f"Order {order_id}: shipped, ETA April 2nd")

agent = SupportAgent()
agent.run()

What Changes When You Add SignalWire

DIY Telephony Stack

  • Asterisk dialplan, Perl middleware, Redis queues
  • SIP trunk configuration and codec debugging
  • Carrier negotiations and regulatory forms
  • Custom WebSocket-to-SIP bridge code
  • Separate vendors for numbers, trunking, and orchestration
  • Weeks of integration before your first call

SignalWire + Your AI

  • pip install, define your agent, assign a phone number
  • SIP, PSTN, and WebRTC handled natively
  • Phone numbers in one click, no forms
  • WebSocket, YAML, or SIP URI connection
  • One platform built by the FreeSWITCH team
  • Under 10 minutes to first production call

What You Keep, What SignalWire Handles

You KeepSignalWire Handles
Your LLM (OpenAI, Anthropic, self-hosted)SIP/RTP/PSTN connectivity
Your STT provider (Deepgram, Whisper, others)Phone number provisioning
Your TTS provider (ElevenLabs, PlayHT, others)Codec negotiation and transcoding
Your conversation logic and toolsCall transfers, hold, conferencing
Your deployment infrastructureCall recording and compliance
Your cost optimization workCarrier-grade reliability and scale

Under 10 Minutes to First Call

1

Install the SDK

pip install signalwire-agents. No trunk configuration, no carrier negotiations.

2

Define your agent

A Python class or YAML document. Your prompts, your tools, your conversation logic.

3

Get a phone number

One click for US numbers in the SignalWire dashboard. No regulatory forms.

4

Call it

Your AI answers a real phone call. SIP, PSTN, or WebRTC, all handled natively.

SignalWire was founded by the creators of FreeSWITCH, the open-source telecom stack that carriers and enterprises have relied on for two decades. This is the telephony team giving your AI a production-grade phone system.

FAQ

Does SignalWire replace my AI stack?

No. SignalWire has no opinion on which LLM, STT, or TTS you use. Your AI is the brain. SignalWire is the nervous system connecting it to the phone network.

What protocols does SignalWire support?

SIP, PSTN, and WebRTC natively. Your AI connects via WebSocket, Python SDK, or a declarative YAML document. SignalWire handles protocol translation.

How does codec negotiation work?

SignalWire transcodes between G.711 (PSTN), Opus (WebRTC), and other codecs automatically. No manual codec configuration required.

What call control features are included?

Blind and warm transfers, hold, conferencing, recording, IVR fallback, DTMF handling, and call disposition tracking. All available through the SDK or YAML.

What does it cost?

Telephony at carrier rates with no per-agent fees or orchestration surcharges. The native AI option is $0.16/min covering STT, LLM orchestration, and TTS. Transport billed separately at carrier rates. One invoice.

Trusted by 2,000+ companies

Your AI Deserves a Real Phone System

Connect your voice AI to the phone network in under 10 minutes.