Setup guide · Trunk config
Connect a SIP trunk to Issabel
Issabel uses the FreePBX 2.x style trunk screen with free-text peer details. You paste a peer definition, optionally add a register string, then build outbound and inbound routes. The firewall module needs a rule for our IPs.
Before you start
What you need
- Issabel 4 or 5 with admin access
- Your public IP, and NAT settings in PBX › Tools › Asterisk SIP Settings
- Your SIPTrunkHub account details: SIP server, auth method, tech prefix if any
- Access to Security › Firewall
IP auth or register auth?
IP authentication
RecommendedLeave the register string blank. Peer details point at our server and insecure=port,invite lets our calls in without a challenge.
Register (digest) authentication
Add username and secret to the peer details and fill in the register string.
Step by step
Configure Issabel
sip.example-host.net and 203.0.113.10 are documentation placeholders. Replace them, and the username, password and tech prefix, with the values from your account.
- 01
Add a SIP trunk
PBX › PBX Configuration › Trunks › Add SIP Trunk. Fill in the general settings.
General settings (field → value) Trunk Name ............ SIPTrunkHub Outbound CallerID ..... 442079460000 Maximum Channels ...... 30 - 02
Paste the peer details
Under Outgoing Settings set Trunk Name to siptrunkhub and paste these PEER details. Remove the username/secret lines for IP auth.
PEER Details host=sip.example-host.net type=peer insecure=port,invite disallow=all allow=ulaw&alaw&g729 dtmfmode=rfc2833 context=from-trunk qualify=yes nat=force_rport,comedia fromdomain=sip.example-host.net ; register auth only: ; username=YOUR_SIP_USERNAME ; fromuser=YOUR_SIP_USERNAME ; secret=YOUR_SIP_PASSWORD - 03
Add the register string (register auth only)
Leave USER Context and USER Details empty. Put the register string in the Registration section.
Register String YOUR_SIP_USERNAME:[email protected]/YOUR_SIP_USERNAME - 04
Create an outbound route
PBX › Outbound Routes › Add Route. Add dial patterns that strip 00 and select the SIPTrunkHub trunk in the trunk sequence.
Dial patterns prepend: (blank) prefix: 00 match: X. prepend: 44 prefix: 0 match: NXXXXXXXXX - 05
Create inbound routes
PBX › Inbound Routes › Add Incoming Route. Enter the DID in E.164 format without +, pick the destination and submit. Apply the configuration.
- 06
Allow us through the firewall
Security › Firewall › Define Ports: confirm SIP 5060 and RTP 10000–20000 are open. Then add 203.0.113.10 to the Fail2Ban whitelist so a burst of 401s during setup does not ban us.
Media
Codec order
- The allow line sets the offer order: ulaw&alaw&g729.
- Keep disallow=all first so Issabel does not offer codecs you have not tested.
- For fax use a dedicated trunk with alaw only and t38pt_udptl=yes.
NAT notes
- Set External IP and Local Networks in PBX › Tools › Asterisk SIP Settings.
- nat=force_rport,comedia in the peer details sends audio back to where it came from.
- Open RTP 10000–20000 inbound on your edge firewall.
- Disable SIP ALG on the router.
Verify
Test the trunk
From the Asterisk CLI check that the peer is OK and, for register auth, that the registry shows Registered. Then place a test call.
asterisk -rx "sip show peer siptrunkhub"
asterisk -rx "sip show registry"
asterisk -rx "sip set debug peer siptrunkhub"Troubleshooting
Common SIP errors
What each response means and what to check first on Issabel. If you still need help, send the Call-ID and timestamp to the NOC.
| Code | Meaning | Likely cause | Fix on Issabel |
|---|---|---|---|
| 401 | Unauthorized | We challenged the INVITE or REGISTER and the credentials were wrong or missing. With IP auth it usually means the call arrived from an IP we have not whitelisted. | Add fromuser= with your username. Some Issabel builds send the extension number in From and fail auth. |
| 403 | Forbidden | Authenticated, but not allowed: wrong or missing tech prefix, zero prepaid balance, destination blocked on your account, or an invalid caller ID. | Check balance and tech prefix first, then the caller ID format. If both look right, send the Call-ID to the NOC. |
| 404 | Not Found | The dialled number is not in a format we can route: missing country code, an extra 00 or +, or a local trunk prefix left in. | Send E.164 digits without the + (for example 442079460000). Strip national 0 and international 00 in your dial rules. |
| 408 | Request Timeout | No response came back. Usually a firewall, wrong port or transport, a DNS failure, or SIP ALG on the router eating packets. | Check that Fail2Ban has not banned 203.0.113.10: fail2ban-client status asterisk. |
| 480 | Temporarily Unavailable | The far end could not be reached: handset off, out of coverage, or the route for that prefix is temporarily down. | Retry later or route to another trunk. If it hits one prefix repeatedly, send examples to the NOC. |
| 486 | Busy Here | The called party is busy, or you reached the concurrent-channel limit on your account. | Treat as a normal busy. If every call returns 486, check your active channel count against your limit. |
| 503 | Service Unavailable | Capacity limit hit (calls per second or channels), or every route for that destination failed. | Pace your dialer to the agreed CPS. Configure a second trunk for failover. Ask the NOC if it persists. |
Seeing one-way audio instead of an error? Read One-Way Audio on VoIP Calls.
FAQ
Issabel questions
Issabel 5 offers PJSIP. Should I use it?
If your Issabel build exposes PJSIP trunks, follow the FreePBX guide instead. The chan_sip peer details here work on Issabel 4 and 5.
Why insecure=port,invite?
It lets INVITEs from our IP in without a password challenge and accepts them from any source port. Without it, inbound DID calls fail with 401.
Calls drop after exactly 30 seconds. Why?
The ACK is not reaching Issabel. That is almost always NAT: check External IP and disable SIP ALG.
Popular destinations
SIP Trunk United States+1
SIP Trunk United Kingdom+44
SIP Trunk Germany+49
SIP Trunk United Arab Emirates+971
SIP Trunk Philippines+63
SIP Trunk Australia+61
Stuck on a step?