A SIP destination is a saved SIP URI, such as your LiveKit Cloud inbound address or your PBX, that Edesy dials when a call arrives on one of your numbers. You save it once with a name and a transport, test it with one click, and then pick it from a dropdown on as many numbers as you like.
How it works#
- Your platform gives you an inbound SIP URI (for example, LiveKit shows one when you create an inbound trunk).
- You save it in Edesy as a destination.
- You click Test call to confirm it answers.
- You choose it as the inbound target on one or more numbers. See Route a Number to SIP.
Add a destination in the portal#
Open SIP → Inbound destinations → New destination:
| Field | What to enter |
|---|---|
| Name | A label shown in the routing dropdown, such as My LiveKit Cloud |
| SIP URI | Starts with sip: or sips:, for example sip:[email protected] |
| Transport | Auto (recommended), UDP, TCP or TLS |
| Notes | Optional, for your team |
Tip Include a user part (the number before @). Most agent platforms, including Retell, Vapi and LiveKit, pick the agent from the dialled number, so a bare host often will not connect. The portal warns you when the user part is missing.
Note TLS signalling and SRTP media are available on request. Contact support before saving a destination that only accepts TLS.
With the API#
| Method | Path | Purpose |
|---|---|---|
| GET | /v1/sip-destinations |
List saved destinations |
| POST | /v1/sip-destinations |
Create a destination |
| PATCH | /v1/sip-destinations/:id |
Update name, URI, transport or notes |
| DELETE | /v1/sip-destinations/:id |
Delete a destination |
| POST | /v1/sip-destinations/:id/test-call |
Place a test call to it |
curl -X POST https://voice-api.edesy.in/v1/sip-destinations \
-H "Authorization: Bearer sk_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "My LiveKit Cloud",
"sip_uri": "sip:[email protected]",
"transport": "auto",
"notes": "Production project"
}'
| Field | Type | Required | Description |
|---|---|---|---|
name |
string | Required | Label for the destination |
sip_uri |
string | Required | sip: or sips: URI |
transport |
string | Optional | auto (default), udp, tcp or tls |
notes |
string | Optional | Free text |
The URI is forwarded as saved, including a non-standard port (:9060) or a ;transport= parameter.
Platform-specific values#
| Platform | Typical SIP URI | Notes |
|---|---|---|
| LiveKit Cloud | sip:<number>@<project>.sip.livekit.cloud |
From your LiveKit inbound trunk. See LiveKit Cloud. |
| xAI Grok | sip:<number>@sip.voice.x.ai |
Leave Transport on Auto. See xAI Grok. |
| Retell | sip:<number>@sip.retellai.com |
See Vapi, Retell and Bolna. |
| Vapi | The SIP URI shown in Vapi | Usually needs credentials or an X-Vapi-Secret header, set on the number |
| Dograh | From Dograh's SIP connectivity panel | See Dograh. |
| Your PBX | sip:<number>@pbx.example.com:5060 |
Allow Edesy's signalling IP on the PBX firewall |
FAQ#
Can one destination serve many numbers?#
Yes. That is the point of saving it. When the URI changes, edit the destination once.
Where do I set a username and password for the destination?#
On each number's inbound routing, under SIP authentication. See Route a Number to SIP.
Does the caller hear ringing before my agent answers?#
The call is bridged with answer-on-bridge, so the caller is connected only when your endpoint answers.
What happens if my endpoint does not answer?#
The call fails on the caller's side with the response your endpoint returned. Check it with a test call.