Contact Sales

All fields are required

Enterprise Telephony for Voice AI | SignalWire
Enterprise Telephony

Carrier Infrastructure, Not a SIP Wrapper

IMS compatibility, Session Timers, and two decades of SIP RFCs are prerequisites for enterprise deployments. Not roadmap items.

20+
years of FreeSWITCH in production
2.7B
minutes and messages processed
< 1.2s
typical AI response latency
2,000+
companies on the platform
The problem

Enterprise SIP breaks on frameworks built for WebRTC

Session Timers (RFC 4028) break call sessions

IMS carriers mandate periodic session refresh via re-INVITE or UPDATE. LiveKit treats every INVITE as a new call, even in-dialog requests, breaking the session timer mechanism entirely.

QoS Preconditions (RFC 3312) are unsupported

IMS uses preconditions to ensure quality-of-service is established before media flows. Without this, enterprise carriers reject calls or route them through degraded paths.

NAT traversal fails in cloud environments

LiveKit's SIP implementation sent 200 OK messages to private IP addresses on Google Compute Engine, breaking UDP connectivity. The issue was closed as 'not planned.'

No trunk validation at the edge

Incoming INVITE requests that do not match any configured trunk get routed through catch-all rules. This creates phantom rooms and potential abuse vectors.

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

SIP interoperability

LiveKit SIP

  • Documentation covers Twilio and Telnyx only
  • Asterisk integration: 'We do not provide documentation for it'
  • SIP 486 (busy) completely unhandled in production
  • G711 and G722 only on SIP trunks; no Opus support
  • Dynamic IPs incompatible with enterprise firewall whitelisting

SignalWire SIP

  • Interoperability with Asterisk, FreePBX, Genesys, Cisco, and Avaya
  • 20 years of carrier and enterprise SIP integration
  • Full SIP response handling including busy, congestion, and rejection
  • Full codec range across all connection types including Opus
  • Predictable IP ranges for enterprise firewall configuration

Carrier-grade SIP compliance

RFCPurposeLiveKitSignalWire
RFC 4028Session TimersBreaks on re-INVITEFull support
RFC 3312QoS PreconditionsNot supportedFull support
RFC 3261Core SIPBasic supportComplete implementation
RFC 3263SIP Server LocationPartialComplete
RFC 3515SIP REFERAdded after 9 months, fragileNative
RFC 4579Conference Event PackageRooms model (non-standard)Native
LiveKit's SIP trunks cannot offer Opus because the codec registration code is missing. This blocks integration with platforms that require Opus, including the WhatsApp Business Calling API.

Built by the team that wrote FreeSWITCH

In-dialog re-INVITEs handled correctly

FreeSWITCH's SIP dialog state machine was built to handle in-dialog requests, not treat them as new calls. Session Timers work by default.

Every transfer type works natively

Cold, warm, blind, and attended transfers are core telephony primitives in the state machine, not features added nine months after launch.

Full codec negotiation

Every codec in production use, including Opus, G711, G722, and more. No missing init() functions blocking enterprise integrations.

Edge security and fraud prevention

Registration authentication, IP ACLs, toll fraud prevention, and call admission control built into the network edge. Not catch-all routing.

Enterprise feature comparison

RequirementLiveKitSignalWire
IMS compatibilityBreaks on Session TimersFull support
Carrier-grade NAT traversalDocumented issues in cloudProduction-grade
IP whitelistingDynamic IPs, not predictableEnterprise-grade infrastructure
SIP edge securityCatch-all accepts unmatched trunksEdge validation and ACLs
Codec range on SIPG711 and G722 onlyFull range including Opus
Enterprise SIP interopTwilio/Telnyx focusedAsterisk, Genesys, Cisco, Avaya
Transfer typesSIP REFER (fragile)Cold, warm, blind, attended
Compliance and recordingSeparate setup requiredBuilt into platform
Enterprise firewalls require predictable IPs A regulated organization needing IP whitelists for SIP and RTP traffic found LiveKit's cloud does not provide predictable IP ranges. Enterprise security policies require knowing which addresses to allow.

Connect enterprise telephony to voice AI

1

Install the SDK

pip install signalwire-agents. One package with native SIP and PSTN support.

2

Configure SIP trunking

Point your existing PBX or carrier SIP trunk at SignalWire. Interoperates with Asterisk, FreePBX, Genesys, Cisco, and Avaya.

3

Define your agent

Build voice AI agents in Python with tools, state management, and transfer logic built in.

4

Deploy with carrier-grade reliability

The same FreeSWITCH infrastructure that carriers trust with trillions of minutes runs your AI agents.

FAQ

Does SignalWire work with our existing PBX?

Yes. SignalWire interoperates with Asterisk, FreePBX, Genesys, Cisco, and Avaya through standard SIP. No proprietary protocols required.

What about IMS carrier environments?

SignalWire's FreeSWITCH heritage includes full IMS compatibility: Session Timers (RFC 4028), QoS Preconditions (RFC 3312), and correct in-dialog re-INVITE handling.

Can we get predictable IP ranges for firewall rules?

Yes. SignalWire provides stable, predictable IP ranges for SIP and RTP traffic. Enterprise firewall whitelisting works as expected.

How do transfers work between AI agents and human agents?

Transfers use standard telephony primitives: cold, warm, blind, and attended. Conversation context, session state, and AI summary transfer with the call.

Trusted by 2,000+ companies

Built by the team that wrote FreeSWITCH.

Carrier-grade SIP and IMS compatibility are not roadmap items. They are the foundation.