All fields are required
LiveKit handles video rooms well. When the use case is voice AI answering phone calls, the architecture needs native telephony, not a WebRTC bridge.
LiveKit for media processing, plus Twilio or Telnyx for phone numbers. Two contracts, two SLAs, two support teams. When the call state diverges between systems, debugging requires checking both.
A bilateral phone call gets room infrastructure designed for multi-party video. The caller becomes a 'participant.' The AI agent 'joins' the room. Audio flows through WebRTC track subscriptions.
Transferring a call moves a participant from one room to another instead of using standard SIP transfer primitives. LiveKit's SIP REFER took nine months to ship and remains fragile.
In GitHub Issue #3685, a developer reported that latency becomes 'quite unbearable' when applying LiveKit agents to inbound calls via Twilio. Others measured 1 to 2.5 seconds from the SIP-to-WebRTC bridge.
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()
| Capability | LiveKit | SignalWire |
|---|---|---|
| Native PSTN | No (requires Twilio/Telnyx) | Yes |
| Phone numbers | US only, inbound only | Global, inbound + outbound |
| SIP transfers | SIP REFER (9 months to ship, fragile) | Cold, warm, blind, attended |
| IMS compatibility | Breaks on Session Timers | Full support (FreeSWITCH heritage) |
| Call abstraction | Room with participants | First-class call object |
| Media transport | SIP-to-WebRTC bridge | Native SIP/PSTN, no bridge |
| State management | Manual (closed as 'Not Planned') | Built-in shared data layer |
| Agent SDK | 8+ coordinated packages | pip install signalwire-agents |
| Pricing model | LiveKit + CPaaS provider | One platform, one bill |
Latency becomes quite unbearable when applying LiveKit agents to inbound telephony calls via Twilio.
Teams building AI agents that handle inbound or outbound phone calls where native SIP and PSTN matter more than WebRTC rooms.
Organizations that need cold, warm, blind, and attended transfers to work without SIP REFER fragility or room migration.
Developers who want telephony and AI processing from a single platform instead of managing LiveKit plus a CPaaS provider.
Teams where 1 to 2.5 seconds of extra bridge latency is unacceptable. SignalWire's media stack has zero bridge hops for telephony.
pip install signalwire-agents. One package replaces eight LiveKit packages plus a CPaaS provider.
Inherit AgentBase, set prompts, add tools with Python decorators or YAML. Under 20 lines for a production agent.
Port existing numbers or provision new ones. Global coverage, inbound and outbound, from a single platform.
Point specific numbers at SignalWire agents while keeping other traffic on existing infrastructure. No all-or-nothing migration.
Agent logic (prompts, tools, business rules) translates directly. The SignalWire SDK uses Python decorators and YAML definitions. The platform handles telephony, not your code.
Yes. STT, TTS, and LLM providers are configured at the platform level. Bring your own API keys or use SignalWire's integrated providers.
SignalWire's typical AI response latency is 800-1200ms with no bridge overhead, as low as 600ms with speech-to-speech voice models. LiveKit adds 1 to 2.5 seconds from the SIP-to-WebRTC bridge, per developer reports.
The Python agents SDK is open source on GitHub. The platform itself is commercial infrastructure built on FreeSWITCH, which the SignalWire team created.
Voice AI at $0.16 per minute, flat rate. One bill from one vendor. No separate CPaaS charges, no hidden markup chain.
Trusted by 2,000+ companies
Native telephony, sub-second AI latency, and one platform instead of two.