—— 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. One system from first ring to final disposition.

$0.16

per minute, AI processing

$0.16

per minute, AI processing

< 1.2s

typical AI response latency

< 1.2s

typical AI response latency

2,000+

companies in production

2,000+

companies in production

2.7B

minutes processed annually

2.7B

minutes processed annually

—— The Middleware Problem ——

Why Voice AI Is Harder Than It Should Be

Five Vendors for One Phone Call

Telephony, STT, LLM, TTS, and your state layer each add latency, cost, and support complexity.

Five Vendors for One Phone Call

Telephony, STT, LLM, TTS, and your state layer each add latency, cost, and support complexity.

State Lives Nowhere and Everywhere

Webhook reconstruction creates race conditions, stale context, and zombie calls.

State Lives Nowhere and Everywhere

Webhook reconstruction creates race conditions, stale context, and zombie calls.

The Demo Works, Production Breaks

At concurrency, vendor scaling mismatches cascade into latency spikes and dropped context.

The Demo Works, Production Breaks

At concurrency, vendor scaling mismatches cascade into latency spikes and dropped context.

Debugging Requires Four Dashboards

Every provider shows a partial view; nobody owns the complete call.

Debugging Requires Four Dashboards

Every provider shows a partial view; nobody owns the complete call.

Build a Voice AI Agent

Python

TypeScript

Go

Java

Ruby

PHP

Perl

C++

C#

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22

from signalwire import AgentBase
from signalwire.core.function_result import FunctionResult

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 FunctionResult(f"Order {order_id}: shipped, ETA April 2nd")

agent = SupportAgent()
agent.run()

Python

TypeScript

Go

Java

Ruby

PHP

Perl

C++

C#

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22

from signalwire import AgentBase
from signalwire.core.function_result import FunctionResult

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 FunctionResult(f"Order {order_id}: shipped, ETA April 2nd")

agent = SupportAgent()
agent.run()

Python

TypeScript

Go

Java

Ruby

PHP

Perl

C++

C#

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22

from signalwire import AgentBase
from signalwire.core.function_result import FunctionResult

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 FunctionResult(f"Order {order_id}: shipped, ETA April 2nd")

agent = SupportAgent()
agent.run()

Multi-Vendor Pipeline vs. One Platform

Bolt-On Voice AI Stack

Separate telephony, STT, TTS, and LLM providers, each with its own SDK

Your glue code manages state across all four services

Each vendor adds a separate queue, invoice, and escalation path

Compliance and observability must be rebuilt across every vendor

16 to 23 months before a production call

SignalWire Platform

Telephony, STT, TTS, and LLM in one platform

AI runs inside the media stack, not outside it

800–1200ms typical response latency

One vendor, one invoice, one escalation path

Production calls in four to six weeks

State management is platform-native

—— From Zero to Production ——

From Zero to Production

Day 1: Install and build your first agent

Install signalwire-agents, define your agent class, add a prompt, and make your first phone call to a working AI agent.

Day 1: Install and build your first agent

Install signalwire-agents, define your agent class, add a prompt, and make your first phone call to a working AI agent.

Weeks 1–2: Connect your business logic

Add tool functions that call your backend: order lookups, appointment scheduling, account verification, and the tools that differentiate your product.

Weeks 1–2: Connect your business logic

Add tool functions that call your backend: order lookups, appointment scheduling, account verification, and the tools that differentiate your product.

Weeks 2–3: Structure conversation flow

Define steps with scoped prompts and scoped tools. Each step handles one phase of the conversation with focused context.

Weeks 2–3: Structure conversation flow

Define steps with scoped prompts and scoped tools. Each step handles one phase of the conversation with focused context.

Weeks 4–6: Go live

Deploy your agent as a standard HTTP microservice. Provision phone numbers, route calls, and move into production.

Weeks 4–6: Go live

Deploy your agent as a standard HTTP microservice. Provision phone numbers, route calls, and move into production.

Weeks 3–4: Test and iterate

Test with real calls. Iterate on prompts and flows. Use the sandbox environment for rapid development cycles.

Weeks 3–4: Test and iterate

Test with real calls. Iterate on prompts and flows. Use the sandbox environment for rapid development cycles.

Try it now

Sigmond Runs on SignalWire

A voice and video AI agent built on the SignalWire SDK, wired to a live knowledge base, able to see what you show him. Build the same thing on voice, phone, WhatsApp, or SIP, or an entire white-label platform with SignalWire as the network underneath.

Sigmond

Trusted by 2,000+ Companies

Voice AI and Telephony. One Platform.

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

Voice AI and Telephony. One Platform.

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

Voice AI and Telephony. One Platform.

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

Voice AI and Telephony. One Platform.

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