Contact Sales

All fields are required

One Platform for Voice AI and Telephony | SignalWire
Voice AI + Telephony in One Stack

Build Voice AI in Python, Not Prayers.

AI agents, phone numbers, SIP, PSTN, and WebRTC on one platform. No middleware assembly. No vendor chain. One system from first ring to final disposition.

$0.16
per minute, AI processing
< 1.2s
typical AI response latency
2,000+
companies in production
2.7B
minutes processed annually
The Middleware Problem

Why Voice AI Is Harder Than It Should Be

Five Vendors for One Phone Call

A typical voice AI stack requires a telephony provider, a speech-to-text service, a language model, a text-to-speech engine, and your own state management. Each adds latency, cost, and a support ticket queue.

State Lives Nowhere and Everywhere

Your application reconstructs call state from webhooks. Multiple webhooks for the same call arrive concurrently. Race conditions, stale context, and zombie calls are structural consequences.

The Demo Works, Production Breaks

One call on a fast network hides the failure modes. At 100 concurrent calls, scaling mismatches across vendors cascade into latency spikes, dropped context, and unrecoverable state.

Debugging Requires Four Dashboards

When a call degrades, you check four vendor dashboards with different log formats. Each reports green. The caller experienced a 1.4-second delay. No single vendor can see the full picture.

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()

Multi-Vendor Pipeline vs. One Platform

Bolt-On Voice AI Stack

  • 5 vendors, 5 invoices, 5 support queues
  • State reconstructed from webhooks
  • 6+ network hops per utterance
  • Scaling mismatches cascade under load
  • Context lost on every transfer
  • $0.19-0.43 real cost per minute

SignalWire Platform

  • 1 vendor, 1 invoice, 1 team to call
  • State owned by the platform
  • AI orchestrated inside the media stack
  • Uniform scaling, same behavior at any volume
  • Context, auth state, and summary travel with transfers
  • $0.16 per minute, all AI components

Everything on One Platform

CapabilityHow It Works
AI agentsThe AI kernel orchestrates STT, LLM, and TTS from inside the media stack with direct access to the audio stream. 800-1200ms typical response.
Phone numbersLocal, toll-free, and international. Provision via API or port from any carrier.
SIP trunkingStandards-compliant SIP built on FreeSWITCH. Registration, TLS/SRTP, codec negotiation.
WebRTCBrowser-based calling via subscriber tokens. Build softphones, dashboards, or customer-facing web calling.
Programmable stateCall state, context, step transitions, and participant info owned by the platform. No reconstruction needed.
Context-preserving transfersIdentity, auth state, conversation summary, and context travel with the call on transfer.

Cross-Channel by Default

ChannelProtocolSame State?Same AI?Same Billing?
Phone callsPSTNYesYesYes
SIPSIP/RTPYesYesYes
BrowserWebRTCYesYesYes
MobileWebRTC SDKYesYesYes

From Zero to Production

1

Install the SDK

Run pip install signalwire-agents. Define your agent in Python or write a YAML definition.

2

Add tools

Connect your backend functions as tools. The AI handles natural language; your code handles business decisions.

3

Assign a phone number

Provision a number from the dashboard, port an existing number, or connect via SIP.

4

Ship to production

Deploy your agent. The platform handles state, scaling, error recovery, and observability.

💡
The same team that built FreeSWITCH, the open-source telephony engine powering carrier-grade deployments worldwide, built this platform. Trillions of voice minutes processed. Same codebase. Same team.

FAQ

What is the AI kernel?

A C-level AI runtime embedded in the media processing stack. The kernel orchestrates speech-to-text, language model inference, and text-to-speech with direct access to the audio stream, eliminating the orchestration overhead of bolt-on pipelines. One platform, one invoice. 800-1200ms typical response latency, as low as 600ms with speech-to-speech voice models.

Can I use my own language model?

Yes. The platform supports external model providers alongside the built-in inference. Bring your own model or use the platform default.

How does pricing work?

$0.16 per minute covers AI processing: speech-to-text, language model, text-to-speech, state management, and observability. Transport (PSTN, SIP) is billed separately at carrier rates. One invoice. No token math.

What languages and frameworks are supported?

Python agent framework, declarative YAML, real-time WebSocket control, and REST API. The Python SDK is the primary developer experience.

Can I migrate from my current provider?

Yes. The platform supports Twilio-compatible APIs for telephony migration. AI agents can be built incrementally alongside existing call flows.

Trusted by 2,000+ Companies

Voice AI and Telephony. One Platform.

pip install signalwire-agents. Define your agent. Add tools. Ship to production.