Telephony is the layer that connects your AI agent to the real phone network. Unpod abstracts away the complexity of SIP, PSTN, and WebRTC - but understanding how the pieces fit together helps you configure it correctly and debug issues faster.
The Three Components
Unpod telephony has three core concepts:| Component | What It Is | Example |
|---|---|---|
| Phone Number | A real PSTN/VoIP number | +1 415 555 0100 |
| Bridge | Routing config linking number + provider + agent | support-bridge |
| Provider | Voice infrastructure that handles media | LiveKit, Vapi |
Providers: The Voice Infrastructure
Providers handle the actual audio - WebRTC media servers, transcription, and TTS streaming.LiveKit
LiveKit is an open-source, WebRTC-based media server. Unpod’s real-time voice pipeline runs on LiveKit.- Sub-300ms end-to-end latency
- Can be self-hosted (cost control at scale)
- Supports SIP trunking for PSTN connectivity
- Best for: developers who want full control, self-hosted deployments
Vapi
Vapi is a hosted voice AI infrastructure platform.- Fully managed - no infrastructure to run
- Built-in SIP trunking and number management
- Simplified setup for faster time to production
- Best for: teams that want managed infra without ops overhead
Bridges: The Routing Layer
A Bridge is a named configuration that connects:- One provider (LiveKit or Vapi)
- One or more agents
- One or more phone numbers
Creating a Bridge via Dashboard
Go to Dev Platform → Telephony → Bridges → Create Bridge:Creating a Bridge via API
Phone Numbers
Unpod provisions real phone numbers through your connected SIP provider. Numbers are then assigned to bridges.Number Types
| Type | Description | Use Case |
|---|---|---|
| Local DID | Local area code number | Customer support, sales |
| Toll-Free | 800/888/877 numbers | Enterprise support lines |
| International | Non-US numbers | Global operations |
Provisioning a Number
Call Flow: What Happens on an Inbound Call
- Caller dials your number
- SIP provider receives the call, looks up the number’s bridge assignment
- Bridge routes call to the configured provider (LiveKit/Vapi)
- Provider streams audio to the Unpod voice pipeline
- Voice pipeline runs: STT → LLM (with your agent config) → TTS
- Audio streams back to caller in real time
- Call ends, transcript and metadata written to Call Logs
Outbound Calls
For outbound (agent-initiated) calls, create a Task via API:Multi-Agent Routing
One bridge can route to different agents based on custom logic. Use the API to update bridge routing dynamically:Debugging Common Issues
| Symptom | Likely Cause | Fix |
|---|---|---|
| Call connects but agent doesn’t respond | Provider not reachable or misconfigured | Check LiveKit URL and API key in env |
| Number provisioning fails | No SIP provider connected to bridge | Connect a provider first |
| High latency on first word | TTS model cold start | Use a faster TTS model (OpenAI TTS > ElevenLabs for latency) |
| Call drops after 30s | WebRTC ICE timeout | Check firewall rules for UDP 10000-60000 |
What’s Next
Telephony API Reference
Full API reference for bridges, numbers, and providers.
Dev Platform: Telephony
Dashboard walkthrough for telephony setup.
Providers Overview
Configure and manage voice infrastructure providers.
Create a Task (Outbound Call)
Trigger outbound AI calls via API.