All fields are required
SIP trunking, PSTN connectivity, phone numbers, and media streaming on infrastructure built by the FreeSWITCH team. One platform for AI and telephony.
You built the voice AI. Now you need phone numbers, SIP trunks, PSTN connectivity, and media streaming. That means another vendor, another SDK, another invoice.
Your AI platform charges you. Your telephony provider charges your AI platform. You pay both margins on every minute.
Call drops at 2 AM. Is it the AI layer? The STT provider? The telephony vendor? The SIP trunk? When every component is a different vendor, every outage is a finger-pointing exercise.
Call state lives in the AI layer. Telephony state lives in the CPaaS layer. Transferring a call with context means rebuilding state from scratch.
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 | Details |
|---|---|
| Phone Numbers | Local, toll-free, international. 60+ countries. Provision via API. |
| Number Porting | Port from any carrier. 5 to 10 business days for US numbers. No downtime. |
| SIP Trunking | Full SIP registrar with digest auth and IP ACL. G.711, Opus, G.729. TLS/SRTP. |
| PSTN | Origination and termination. Direct carrier interconnects. |
| Media Streaming | Real-time audio via WebSocket for custom analytics and transcription. |
| WebRTC | Browser-based calling via scoped subscriber tokens. |
| Conferencing | Multi-party conferences mixing AI agents, phone callers, SIP, and WebRTC. |
| Fax | T.38 fax support over SIP. |
| Operation | Twilio API | SignalWire |
|---|---|---|
| Make a call | POST /Calls | Compatible |
| Send SMS | POST /Messages | Compatible |
| List numbers | GET /IncomingPhoneNumbers | Compatible |
| Provision number | POST /IncomingPhoneNumbers | Compatible |
| Update call | POST /Calls/{sid} | Compatible |
Create a project and get API credentials. Test with the browser-based sandbox before provisioning numbers.
Get numbers through the dashboard or API. Port existing numbers from your current carrier with no downtime.
Point numbers at AI agents, SIP endpoints, subscribers, or declarative YAML scripts. Change routing without changing the number.
Register your SIP endpoints or bring your own carrier trunks. Use platform routing, AI, and state management with your existing connectivity.
Yes. Connect your SIP trunks to SignalWire. Use the platform's routing, state management, and AI capabilities with your carrier's PSTN connectivity.
Typical timeline is 5 to 10 business days for US numbers. No downtime during the porting window. Your existing numbers continue working until the port completes.
Core operations (calls, messages, number provisioning) use Twilio-compatible patterns. Update credentials and endpoint to migrate. Native interfaces provide additional capabilities beyond the Twilio model.
G.711 u-law and a-law, Opus, G.729, and GSM. Codec negotiation is standards-compliant. TLS/SRTP for encrypted media and signaling.
Yes. Route some numbers to AI agents, others to SIP endpoints or subscribers. Transfer between AI and human agents with full context preserved. Conferencing mixes all endpoint types.
Trusted by 2,000+ companies
Phone numbers, SIP trunks, PSTN connectivity, and AI agents on infrastructure built by the FreeSWITCH team.