# Quick Start

> Create an Edesy termination trunk, place an outbound test call, and route an Edesy number to your SIP endpoint, in the portal or with curl.

Source: https://edesy.in/docs/sip-trunking/getting-started/quick-start

This walkthrough takes you from a new account to a working SIP trunk in both directions. You create a termination trunk, copy its SIP host and credentials into your PBX or voice-agent platform, place a test call from the portal, and then point an Edesy number at your SIP endpoint for inbound calls.

## Before you start

| You need | Where |
|---|---|
| An Edesy account with wallet balance | [voice-app.edesy.in](https://voice-app.edesy.in), **Billing** |
| Completed KYC | **KYC** (PAN + Aadhaar, review takes about 24 hours) |
| At least one Edesy number | **Phone Numbers**. It is your outbound caller ID. |
| An API key (only for the API steps) | **Settings → API Keys**. Keys look like `sk_...`. |

## 1. Create a termination trunk

In the portal, open **SIP**, click **Manage** on the **Outbound trunks** card, then **New trunk**:

1. **Name**: for your reference, for example `LiveKit production`.
2. **Max concurrent calls**: defaults to 50.
3. **Authentication**: choose **IP allowlist** if your platform has fixed egress IPs, or **SIP credentials** if it does not. See [IP vs Credential Auth](https://edesy.in/docs/sip-trunking/termination-trunks/ip-vs-credential-auth).
4. Click **Create trunk** and copy the SIP server, username and password from the dialog.

The same request with the API:

```bash
curl -X POST https://voice-api.edesy.in/v1/trunks \
  -H "Authorization: Bearer sk_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "LiveKit production",
    "auth_mode": "credentials",
    "max_concurrent_calls": 50
  }'
```

The response's `data` object carries `sip_uri` (the host, such as `tk-1a2b3c4d.trunk.edesy.in`), `sip_username` and, only this once, `sip_password`.

## 2. Configure your platform

Enter these values in your PBX or platform's outbound SIP trunk settings:

| Setting | Value |
|---|---|
| SIP server | `tk-<id>.trunk.edesy.in` |
| Port | `5070` |
| Transport | UDP or TCP |
| Username / password | From step 1 (credentials mode only) |
| Caller ID (`From`) | An Edesy number you own, in E.164 |
| Codecs | G.711 μ-law and A-law only |

The trunk page has ready-made snippets for LiveKit, Vapi, Bolna, Retell and FreePBX under **Integration snippets**.

## 3. Place an outbound test call

On the trunk page, under **Test & connectivity**, enter your mobile number and click the outbound test. Edesy rings the number through this trunk and shows the status, duration and hangup cause. This checks the Edesy side on its own, before your platform is involved.

Then place a call from your platform. If it fails, look up the SIP response in [Common SIP Response Codes](https://edesy.in/docs/sip-trunking/troubleshooting/common-sip-response-codes).

## 4. Route inbound calls to your SIP endpoint

1. Open **SIP → Inbound destinations → New destination** and save your platform's SIP URI, for example `sip:+91XXXXXXXXXX@your-project.sip.example.com`.
2. Click **Test call** on the saved destination. Your agent or PBX should answer.
3. Open **Phone Numbers → your number → Inbound routing**, choose **SIP URI**, and pick the destination.

See [SIP Destinations](https://edesy.in/docs/sip-trunking/inbound/sip-destinations) and [Route a Number to SIP](https://edesy.in/docs/sip-trunking/inbound/route-a-number-to-sip).

## Next

- Platform-specific setup: [FreePBX 17](https://edesy.in/docs/sip-trunking/guides/freepbx-17-pjsip), [LiveKit Cloud](https://edesy.in/docs/sip-trunking/guides/livekit-cloud), [Vapi, Retell and Bolna](https://edesy.in/docs/sip-trunking/guides/vapi-retell-bolna)
- [Pricing and Limits](https://edesy.in/docs/sip-trunking/getting-started/pricing-and-limits)
