SIP Trunking for AI Voice Agents
Edesy gives your AI voice agent a phone number on the Indian PSTN and the SIP/telephony plumbing to make and receive real calls on it. Provision an Indian DID, wire it to a carrier, and point your agent — Vapi, Retell, LiveKit, Bolna, or a custom agent — at Edesy. Inbound and outbound calls flow to and from your agent while Edesy handles SIP signalling, call routing, and media.
Open the portal → voice-app.edesy.in — sign in to provision numbers, create trunks, and generate the API keys used throughout these docs.
Base URL
All REST requests are made to:
https://voice-api.edesy.in/v1
Every request is made over HTTPS and carries an Authorization: Bearer <API_KEY> header. See Authentication.
Authentication at a glance
Authenticate as the owning tenant with either:
- a tenant API key —
Authorization: Bearer vp_<key>(keys start withvp_; recommended for machine-to-machine calls), or - a session JWT —
Authorization: Bearer <jwt>.
Numbers and trunks are tenant-scoped: you can only operate on resources your tenant owns.
Three ways to connect your agent
Pick the connection model that matches how your voice platform expects to reach a phone network.
| Model | Use when | Guide |
|---|---|---|
| SIP termination trunk | Your platform (Vapi, Retell, LiveKit) already speaks SIP and just needs a trunk URI + credentials to dial through. | SIP Termination Trunk |
| WebSocket audio streaming | You run a custom agent and want raw bidirectional audio (L16 PCM) over a WebSocket, with Edesy handling SIP. | WebSocket Streaming |
| BYOC (bring your own carrier) | You already have your own SIP trunk (Telnyx, Twilio, Vonage, Plivo, a PBX) and want to route your agent's calls over it. | BYOC |
Next
- Quick Start — provision an Indian number and place a test call end to end
- Authentication — Bearer keys, JWT, and tenant scoping
- API Reference — full endpoint documentation