Setup guide · Generic SIP trunk
Connect a SIP trunk to 3CX
SIPTrunkHub is not a pre-listed 3CX provider, so you add it as a Generic SIP Trunk. You fill in the server, pick the auth mode, set caller ID and codecs, then create outbound and inbound rules. Screens below match 3CX v20.
Before you start
What you need
- 3CX v20 (v18 is similar; menu names differ) with admin access
- A 3CX license that includes the number of SIP trunks you need
- Firewall checker passing: UDP 5060 and the RTP range 9000–10999 forwarded
- Your SIPTrunkHub account details: SIP server, auth method, tech prefix if any
IP auth or register auth?
IP authentication
Choose “Do not require — IP based”. We whitelist your 3CX public IP. Best for hosted 3CX on a static IP.
Register (digest) authentication
RecommendedChoose “Register/Account based”. Works behind dynamic IPs and is the 3CX default for generic trunks.
Step by step
Configure 3CX
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
Create the trunk
Admin › Voice & Chat › Add Trunk. Choose your country, then Generic › Generic SIP Trunk. Enter a main trunk number (one of your DIDs) and click OK.
- 02
Fill in the General tab
Set the server and the authentication mode.
General tab (field → value) Name .................... SIPTrunkHub Registrar/Server/Gateway sip.example-host.net Port 5060 Outbound Proxy .......... (blank) Number of SIM calls ..... 30 (your channel limit) Type of Authentication .. Register/Account based | Do not require – IP based Authentication ID ....... YOUR_SIP_USERNAME Authentication Password . YOUR_SIP_PASSWORD Main Trunk No ........... 442079460000 - 03
Set caller ID
On the Options or Outbound Parameters tab, send the caller ID in the From user part and P-Asserted-Identity. Set it per extension or use the main trunk number as default.
Outbound Parameters "From" : User Part ......... OutboundCallerId "P-Asserted-Identity" ...... OutboundCallerId Request Line URI : User Part CalledNum - 04
Order codecs
On the Codecs tab keep PCMU (G.711 u-law) and PCMA (G.711 a-law) at the top, then G.729. Remove codecs you do not need.
- 05
Add an outbound rule
Admin › Outbound Rules › Add. Match numbers starting with 00, route to SIPTrunkHub, strip 2 digits. Prepend your tech prefix if you have one.
Outbound rule (field → value) Rule Name ................. International via SIPTrunkHub Calls to Numbers starting with 00 Route 1 ................... SIPTrunkHub Strip Digits .............. 2 Prepend ................... (blank, or 1234# tech prefix) - 06
Map DIDs
On the trunk DIDs tab add each DID in E.164 without +. Then on Inbound Rules create a rule per DID pointing to an extension, ring group or IVR.
Media
Codec order
- PCMU/PCMA first, then G.729 for low-bandwidth sites.
- 3CX transcodes when a phone and the trunk disagree. Keep phones on G.711 to avoid it.
- T.38 fax is set per trunk under Options › Enable T.38.
NAT notes
- Run Dashboard › Firewall checker. It must pass for 5060 and the RTP range.
- Turn off SIP ALG on the router. 3CX documentation says the same.
- If 3CX is behind NAT, the public IP must be detected correctly under Settings › Network.
Verify
Test the trunk
Dashboard › Trunks shows a green dot when the trunk is registered (register auth) or reachable (IP auth). Place a test call and check Dashboard › Activity Log and the SIP trace.
Dashboard › Trunks ........ status dot
Dashboard › Activity Log .. call flow and response codes
Dashboard › Services ...... restart "3CX PhoneSystem SIP Server" after major changesTroubleshooting
Common SIP errors
What each response means and what to check first on 3CX. If you still need help, send the Call-ID and timestamp to the NOC.
| Code | Meaning | Likely cause | Fix on 3CX |
|---|---|---|---|
| 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. | Authentication ID and password are case-sensitive. Re-paste them without spaces. |
| 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 Outbound Parameters. If From user part is blank, we see no valid caller ID. |
| 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. | Strip Digits on the outbound rule is wrong. You should be sending 44..., not 0044... |
| 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. | Firewall checker failing or SIP ALG on. Fix those first. |
| 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
3CX questions
Why is SIPTrunkHub not in the 3CX provider list?
3CX lists certified providers. Generic SIP Trunk gives you the same features with manual settings.
Can I run 3CX on IP authentication?
Yes, if your 3CX has a static public IP. Choose “Do not require – IP based” and send us that IP.
How do I present a different caller ID per user?
Set Outbound Caller ID on each extension. 3CX puts it in the From user part.
Related
Other setup guides
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?