FreePBX SIP trunk setup: connect a ZuteSIP number over PJSIP
Short answer: In FreePBX, go to Connectivity > Trunks, click Add Trunk and choose a SIP (chan_pjsip) trunk. Set your ZuteSIP number as the outbound caller ID, then in the PJSIP settings enter your SIP username and secret, sip.zutesipdialer.com as the server and 5060 as the port, with registration enabled. Finish with an inbound route and an outbound route.
FreePBX builds its Asterisk configuration from web forms, so you never edit pjsip.conf by hand. The trunk takes a few minutes; the routes are where most of the thinking goes.
What you need
- A ZuteSIP number and its SIP username and password from the number's page in the dashboard.
- FreePBX with the chan_pjsip driver in use (the default on current releases).
- Admin access to the FreePBX web interface and, if the PBX sits behind NAT, the ability to forward RTP ports.
Connection settings
| Setting | Value |
|---|---|
| SIP server / registrar / domain | sip.zutesipdialer.com |
| Transport and port | UDP or TCP 5060; TLS 5061 |
| Username | <SIP_USERNAME> (from the number's page in the dashboard) |
| Password | <SIP_PASSWORD> (from the same page) |
| Authentication | Digest (username + password), registration based |
| Codecs | G.711 µ-law (PCMU) and G.711 A-law (PCMA) |
| DTMF | RFC 2833 (RTP events) or SIP INFO |
| Inbound DID | <YOUR_NUMBER> in E.164 format |
Step-by-step: create the PJSIP trunk
Labels follow Sangoma's Trunks Module user guide as of September 2026; tab names can shift slightly between FreePBX versions.
- Log in to FreePBX and open Connectivity > Trunks.
- Click Add Trunk and choose Add SIP (chan_pjsip) Trunk.
- On the General tab, give the trunk a name such as zutesip and set Outbound CallerID to <YOUR_NUMBER>. Leave Maximum Channels empty or set a limit that suits you.
- Open pjsip Settings > General. Set Username to <SIP_USERNAME>, Secret to <SIP_PASSWORD>, Authentication to Outbound, Registration to Send, SIP Server to sip.zutesipdialer.com and SIP Server Port to 5060.
- Choose the transport that matches your setup (UDP is the usual choice; use a TLS transport on port 5061 if you have configured one).
- Open pjsip Settings > Codecs and enable only ulaw and alaw.
- Submit, then click Apply Config. Check Reports > Asterisk Info (or run pjsip show registrations in the Asterisk CLI) and confirm the trunk shows as Registered.
Inbound route for your DID
Go to Connectivity > Inbound Routes and add a route. Put your ZuteSIP number in the DID Number field and choose a destination, such as an extension, ring group, queue or IVR.
If calls fall through to the catch-all route, watch the Asterisk CLI while calling in. The DID shown there is the exact string the route must match; some setups see it with a leading plus and some without.
Outbound route and caller ID
Under Connectivity > Outbound Routes, create a route, add the zutesip trunk to its Trunk Sequence and write dial patterns that turn what users dial into full international numbers.
Set the route or trunk caller ID to your ZuteSIP number. Match the caller ID to the number whose credentials the trunk uses. Each number includes 1,000 outgoing minutes per month.
Test the trunk before going live
A short test plan catches most mistakes before real callers do. Run it once after setup and again after any firewall or router change.
- In the Asterisk CLI (fwconsole or asterisk -rvvv), run pjsip show registrations and confirm the zutesip trunk is Registered.
- Call your ZuteSIP number from a mobile phone. The inbound route's destination should ring, and both sides should hear each other clearly.
- During that call, press a few digits in an IVR or on a test extension to confirm DTMF is detected.
- Place an outbound call to another phone and check that it shows your ZuteSIP number as the caller ID.
- Leave a call up for at least a minute; audio that drops after about 30 seconds usually points to a NAT or firewall timeout.
Troubleshooting
- Registration rejected with 401 or 403: re-enter the username and secret from the dashboard, and check that Authentication is set to Outbound rather than Inbound.
- Registered but inbound calls never arrive: check the FreePBX firewall module or host firewall is not blocking traffic from sip.zutesipdialer.com.
- One-way audio: set the external address and local networks in Settings > Asterisk SIP Settings, forward your RTP range, and turn off SIP ALG on the router.
- Calls drop straight away with a 488 response: a codec mismatch. Keep ulaw and alaw enabled on the trunk.
- Keypad tones ignored: set DTMF to RFC 4733/2833 on the trunk, the RTP events method; switch to SIP INFO only if needed.
Frequently asked questions
Should I use chan_pjsip or chan_sip in FreePBX?
Use chan_pjsip. It is the driver current FreePBX releases are built around, and the settings on this page are written for it.
What do I put in the SIP Server field?
Enter sip.zutesipdialer.com, with port 5060 for UDP/TCP or 5061 for TLS.
Why is my trunk registered but inbound calls go to the wrong place?
The inbound route's DID does not match the number format Asterisk receives. Copy the exact DID from the CLI into the route.
Can I add several ZuteSIP numbers to one FreePBX?
Yes. Each number has its own credentials, so add a trunk and an inbound route per number.
Is voicemail included on the trunk?
Voicemail is not part of the ZuteSIP service. Anything like that would come from FreePBX itself.
Can I port my existing number into ZuteSIP for FreePBX?
Number porting is not offered. You pick a new number from 181 countries instead.
Related pages
- PBX and softphone integrations
- 3CX SIP trunk setup
- Asterisk PJSIP configuration
- FusionPBX gateway setup
- what a PBX is
- fixing one-way audio and NAT
- SIP troubleshooting
- pricing for every country
- Bria SIP account setup with a ZuteSIP number
Get a number in these countries
- United States phone number (+1)
- United Kingdom phone number (+44)
- Canada phone number (+1)
- Australia phone number (+61)
- India phone number (+91)
Sources
- Sangoma Documentation: PBX GUI - Trunks Module User Guide (as of September 2026)