Connect a FreePBX 17 PBX to the Indian phone network with an Edesy SIP trunk. Standard PJSIP settings, outbound calls to any Indian number, inbound calls on your Edesy DID, and the NAT fixes that stop one-way audio.
To connect FreePBX 17 to an Edesy SIP trunk, create a trunk at voice-app.edesy.in, then add a chan_pjsip trunk in FreePBX with the trunk's SIP host, port 5070, username and password, Registration set to Send, and only the ulaw and alaw codecs. Add an outbound route that prepends 91 and an inbound route for your DID.
Copy the exact values for your trunk from its detail page in the portal.
| Setting | Value |
|---|---|
| SIP server (host) | tk-<id>.trunk.edesy.in, one per trunk |
| Port | 5070 |
| Transport | UDP (TCP also supported) |
| Authentication | SIP credentials (registration) or IP/CIDR allowlist |
| Password | Reveal or rotate in the portal |
| Codecs | G.711 ulaw and alaw |
| DTMF | RFC 4733 |
| Number format | E.164 without the plus, for example 91XXXXXXXXXX |
| Concurrent calls | Max concurrent calls set on the trunk |
| SIP TLS + SRTP | Available on request |
| Call price | Rs 0.50/min, 60-second pulse, unanswered calls free |
| Numbers | Rs 499/mo mobile, Rs 449/mo landline, Rs 999/mo toll-free |
Outbound first, then inbound. Click Submit and Apply Config after each FreePBX change.
In voice-app.edesy.in, create a termination trunk with SIP credentials as the auth mode. Note the SIP host, the username and the password (use Reveal, or Rotate once on an older trunk).
In FreePBX go to Connectivity, Trunks, Add SIP (chan_pjsip) Trunk. Set the Outbound CallerID to your Edesy DID and Maximum Channels to your trunk's concurrent-call limit.
Username and Secret from the portal, Authentication Outbound, Registration Send, SIP Server your tk host, SIP Server Port 5070, Context from-pstn, Transport 0.0.0.0-udp.
Set Contact User and From User to your username, From Domain to the tk host, Client URI and Server URI with :5070, Match (Permit) to the Edesy signalling IP shown in the guide, Qualify Frequency 60 and DTMF Mode RFC 4733.
On the Codecs tab enable ulaw and alaw only. Matching G.711 avoids transcoding failures.
Add an outbound route that uses the Edesy trunk. Dial pattern: prepend 91 to 10-digit numbers, and pass 91XXXXXXXXXX through unchanged.
Add an inbound route for your DID (try it with and without the leading plus) and send it to an IVR, ring group or extension. With Registration set to Send, Edesy delivers calls to your registered PBX.
Check that the trunk shows Registered in FreePBX and in the portal, dial a mobile from an extension, and use the Call me button on the trunk page to test the Edesy side on its own.
An on-premise FreePBX is almost always behind NAT. These settings fix most audio problems.
In Settings, Asterisk SIP Settings, chan_pjsip, set External Address to your site's public IP or dynamic-DNS host. A wrong or missing value is the usual cause of one-way or no audio.
Add your LAN subnets, for example 192.168.0.0/24, so Asterisk knows which addresses are inside the NAT.
Many routers rewrite SIP packets with a feature called SIP ALG. It often breaks registration and audio, so disable it on the router or firewall in front of FreePBX.
Allow UDP 5070 to and from the Edesy signalling IP, and the RTP range (Asterisk default 10000 to 20000 UDP). Forward the RTP range to FreePBX if it is not the edge device.
Keep only ulaw and alaw on the trunk. A codec mismatch can connect the call with no audio, or fail it outright.
Set Match (Permit) to the Edesy signalling IP so FreePBX accepts inbound INVITEs and routes them into from-pstn.
The common symptoms and what to check first.
| Symptom | Likely cause and fix |
|---|---|
| Trunk not registered | Wrong password (Reveal or Rotate again), port 5070 blocked by the firewall, or Server URI missing :5070 |
| Outbound 401 or 403 | Authentication must be Outbound; check username and secret; set From User and From Domain |
| Outbound 404 or not routed | Number not in E.164; prepend 91 in the dial pattern |
| One-way or no audio | Set External Address and Local Networks, disable SIP ALG, open the RTP range, use ulaw and alaw only |
| Inbound never rings | DID not bound to the trunk yet, Match (Permit) missing, or inbound route DID format |
Explore more comparisons, alternatives, and resources
Guides and docs
SIP trunking
Create a trunk, paste the settings into FreePBX and place a test call. No contracts and no hardware.