All fields are required
AI agents, phone numbers, SIP, PSTN, and WebRTC on one platform. No middleware assembly. No vendor chain. One system from first ring to final disposition.
A typical voice AI stack requires a telephony provider, a speech-to-text service, a language model, a text-to-speech engine, and your own state management. Each adds latency, cost, and a support ticket queue.
Your application reconstructs call state from webhooks. Multiple webhooks for the same call arrive concurrently. Race conditions, stale context, and zombie calls are structural consequences.
One call on a fast network hides the failure modes. At 100 concurrent calls, scaling mismatches across vendors cascade into latency spikes, dropped context, and unrecoverable state.
When a call degrades, you check four vendor dashboards with different log formats. Each reports green. The caller experienced a 1.4-second delay. No single vendor can see the full picture.
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 | How It Works |
|---|---|
| AI agents | The AI kernel orchestrates STT, LLM, and TTS from inside the media stack with direct access to the audio stream. 800-1200ms typical response. |
| Phone numbers | Local, toll-free, and international. Provision via API or port from any carrier. |
| SIP trunking | Standards-compliant SIP built on FreeSWITCH. Registration, TLS/SRTP, codec negotiation. |
| WebRTC | Browser-based calling via subscriber tokens. Build softphones, dashboards, or customer-facing web calling. |
| Programmable state | Call state, context, step transitions, and participant info owned by the platform. No reconstruction needed. |
| Context-preserving transfers | Identity, auth state, conversation summary, and context travel with the call on transfer. |
| Channel | Protocol | Same State? | Same AI? | Same Billing? |
|---|---|---|---|---|
| Phone calls | PSTN | Yes | Yes | Yes |
| SIP | SIP/RTP | Yes | Yes | Yes |
| Browser | WebRTC | Yes | Yes | Yes |
| Mobile | WebRTC SDK | Yes | Yes | Yes |
Run pip install signalwire-agents. Define your agent in Python or write a YAML definition.
Connect your backend functions as tools. The AI handles natural language; your code handles business decisions.
Provision a number from the dashboard, port an existing number, or connect via SIP.
Deploy your agent. The platform handles state, scaling, error recovery, and observability.
A C-level AI runtime embedded in the media processing stack. The kernel orchestrates speech-to-text, language model inference, and text-to-speech with direct access to the audio stream, eliminating the orchestration overhead of bolt-on pipelines. One platform, one invoice. 800-1200ms typical response latency, as low as 600ms with speech-to-speech voice models.
Yes. The platform supports external model providers alongside the built-in inference. Bring your own model or use the platform default.
$0.16 per minute covers AI processing: speech-to-text, language model, text-to-speech, state management, and observability. Transport (PSTN, SIP) is billed separately at carrier rates. One invoice. No token math.
Python agent framework, declarative YAML, real-time WebSocket control, and REST API. The Python SDK is the primary developer experience.
Yes. The platform supports Twilio-compatible APIs for telephony migration. AI agents can be built incrementally alongside existing call flows.
Trusted by 2,000+ Companies
pip install signalwire-agents. Define your agent. Add tools. Ship to production.