Contact Sales

All fields are required

Twilio Alternative: CPaaS Infrastructure Built for AI | SignalWire
Migration Guide

Same CPaaS Capabilities. Built for AI.

Phone numbers, SIP trunks, PSTN, and media streaming on infrastructure where AI runs inside the call, not outside firing webhooks.

< 1.2s
typical AI response latency
$0.16
per minute, AI processing
2,000+
companies in production
5-10
business days to port US numbers
The Problem

Webhooks Were Not Designed for AI

Stateless Webhooks, Stateful Conversations

Webhooks fire and forget. AI conversations require persistent state: who is talking, what step are they on, what context has been established. You rebuild that state on every request.

AI Runs Outside the Call

Audio streams out to an STT service, transcript goes to an LLM, response goes to a TTS service, audio streams back. Each hop adds latency. Each vendor adds a failure mode.

Race Conditions at Scale

Zombie calls, double updates, phantom transfers. Webhook-based state reconstruction creates race conditions that surface under load, not in demos.

Pivoting Platforms Leave You Behind

When your telephony provider pivots to AI, core CPaaS capabilities get deprioritized. You need a platform that treats phone infrastructure as the product.

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

Platform Architecture Comparison

Webhook-Era CPaaS

  • Stateless webhooks; you reconstruct state on every request
  • AI bolted on: audio streams out to external services
  • Multi-hop latency for STT, LLM, and TTS
  • Basic CDRs with limited observability
  • No concept of multi-agent orchestration or governed inference

SignalWire

  • Platform owns call state; query by UUID, transfer with context
  • AI kernel runs inside the media stack
  • 800-1200ms typical response with zero external hops
  • Structured events, per-component latency, barge-in analytics
  • Scoped tools, enforced transitions, hidden data layer

Everything You Use Today, Plus AI

CapabilityDetails
Phone NumbersLocal, toll-free, international. 60+ countries. Provision via API.
SIP TrunkingStandards-compliant. Bring your own carrier or use ours. Full SIP registrar.
PSTNOrigination and termination. Direct carrier interconnects.
Media StreamingReal-time audio via WebSocket.
WebRTCBrowser-based calling via scoped subscriber tokens.
SMS/MMSProgrammable messaging.
REST APITwilio-compatible patterns for core operations.
AI Voice AgentsPlatform-native. Declarative YAML or Python SDK. $0.16/min AI processing.

Migration Path

1

Test with a subset

Port a few numbers. Point them at your existing webhook application. Verify everything works with compatible APIs.

2

Move remaining numbers

Port the rest. No downtime during the porting window. 5 to 10 business days for US numbers.

3

Adopt platform-native features

Replace webhook state reconstruction with platform-native state. Use declarative YAML where it fits. Add AI capabilities to new features.

4

Scale with one platform

One vendor for telephony and AI. One invoice. One support channel. No middleware margins.

💡
The team that created FreeSWITCH, the open-source telephony engine behind major carriers and contact centers worldwide, built SignalWire. Phone infrastructure is not a pivot for us. It is the product.

FAQ

Will my existing Twilio code work?

Core operations (calls, messages, number provisioning) use compatible API patterns. Update credentials and endpoint to migrate. Native interfaces provide additional capabilities beyond the compatibility layer.

How long does number porting take?

5 to 10 business days for US numbers. No downtime during the porting window. Your numbers continue working on the existing carrier until the port completes.

What about cost?

AI processing (STT, LLM inference, TTS, and orchestration) is $0.16/min. Transport (SIP, PSTN) is billed separately at carrier rates. One invoice covers everything. SIP trunking is usage-based with no per-channel fees.

Can I keep my existing carrier contracts?

Yes. Connect your SIP trunks to SignalWire. Use the platform's routing, state management, and AI capabilities with your carrier's PSTN connectivity.

What if I only need telephony, not AI?

SignalWire handles phone numbers, SIP trunking, PSTN, messaging, and media streaming without any AI. Add AI capabilities when you need them.

Trusted by 2,000+ companies

Keep Your Code. Upgrade Your Infrastructure.

Port your numbers, update your credentials, and gain platform-native AI, state management, and governed inference.