# Voice AI That Speaks Carrier-Grade SIP

Session Timers, Re-INVITEs, QoS Preconditions. The SIP features every carrier network depends on, built by the team that wrote the SIP stack the industry runs on.

20+
years of production SIP engineering

< 1.2s
typical AI response latency

2,000+
companies in production

2.7B+
minutes processed on the platform

## Why WebRTC Platforms Break on Real Carriers

### Session Timers are mandatory in carrier networks

Periodic SIP re-INVITE or UPDATE messages keep a call session alive. Without them, long-running calls die silently when a network element times out.

### QoS Preconditions guarantee voice quality

IMS networks negotiate quality-of-service parameters before the media session starts. A platform built for WebRTC rooms cannot participate in this negotiation.

### Re-INVITE handling is basic telephony

Hold, resume, codec renegotiation, adding or removing media streams, and session refresh all happen through Re-INVITEs.

### SIP dialog state gets lost in translation

When a SIP call becomes a participant in a room, headers, session parameters, and authentication context get reduced to a room participant object.

## Build a Voice AI Agent

### Supported Languages
- Python
- TypeScript
- Go
- Java
- Ruby
- PHP
- Perl
- C++
- C#

### Example Code
```python
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()
```

## Room-Based Architecture vs. Telephony-Native

### Room-Based Platform
- SIP features must map to room concepts, and most have no equivalent
- SIP is a bridge feature; carrier edge cases get secondary treatment
- Session Timers and QoS Preconditions are difficult to preserve
- Re-INVITE and dialog state are reduced to participant events
- Operational behavior changes when carrier traffic increases

### SignalWire
- SIP and media processing share one telephony-native engine
- Session Timers, QoS Preconditions, and Re-INVITEs are handled natively
- AI runs inside the carrier-grade media stack
- The same behavior holds from one call to carrier scale
- Built by the team that created FreeSWITCH
- Full SIP dialog state remains available through the call lifecycle

## Deploy Voice AI on Carrier Infrastructure

### Define your agent
Write a YAML document or Python class. The same definition works whether the call arrives from an IMS carrier, SIP trunk, or PSTN line.

### Connect your SIP infrastructure
Point SIP trunks at SignalWire. Session Timers, QoS Preconditions, and Re-INVITEs are handled transparently by the FreeSWITCH-based stack.

### Test with real carrier traffic
Route test calls through your IMS or enterprise telephony environment and verify SIP compliance end-to-end.

### Scale to production
Same platform, same SIP stack, same behavior at carrier scale. No surprises when traffic increases.

## 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.

## Call recording
This call is recorded. Audio and transcripts are used to improve our AI and customer support experience, and aren't shared or sold to third parties.

Trusted by 2,000+ Companies

## Built by the team that wrote the SIP stack.

Deploy voice AI on real carrier infrastructure with full SIP compatibility from day one.
