All integration guides
Connect 3CX to TelecomsXchange
In short: In 3CX V20, add a Generic SIP Trunk pointing at sip01.telecomsxchange.com port 5060 with authentication set to Do not require (IP based), and authorise 3CX's public IP on your TelecomsXchange account. Add an outbound rule that strips + or 00 and prepends the route's tech prefix, so calls leave as 80039#447700900123.
3CX to a purchased route
- Your 3CXGeneric SIP trunk, IP based, no registration
- then, 80039#447700900123, TelecomsXchangesip01, UDP 5060
- Seller's routeThe route you purchased
On this page
This guide connects 3CX V20 to TelecomsXchange with a generic SIP trunk: outbound calls to a purchased route, and inbound calls on numbers you bought or routes you sell. For the full list of TelecomsXchange values, see Connect a SIP platform.
Warning
TelecomsXchange does not accept SIP REGISTER. Don't pick Register/Account based authentication on the trunk. 3CX is recognised by its source IP, so set authentication to Do not require (IP based).
Before you start#
- A SIP account with 3CX's public IP, for example
203.0.113.10, in IP Address or Additional Allowed IPs. - A purchased route and its tech prefix from My Interconnections, for example
80039#. In this guideTECH_PREFIXstands for that value. - 3CX V20 with a static public IP (or a fixed NAT address) and a licence that allows a generic SIP trunk.
- To receive calls on numbers you bought: a phone number whose SIP endpoint points at 3CX, for example
sip:14165551234@203.0.113.10:5060.
How do I send calls to TelecomsXchange?#
- In the 3CX Admin Console, go to Voice & Chat and click Add Trunk. Choose the Generic country and Generic SIP Trunk as the provider, enter a Main Trunk No (any number you will present, for example one you bought), and click OK.
- On the trunk's General tab, enter:
| Field | Value |
|---|---|
| Name | TelecomsXchange |
| Registrar/Server/Gateway Hostname or IP | sip01.telecomsxchange.com |
| Port | 5060 |
| Outbound Proxy | Leave empty |
| Type of Authentication | Do not require (IP based) |
| Authentication ID / Password | Leave empty, or any placeholder if the form requires a value |
| Number of SIM calls | The number of concurrent calls you expect |
- Under the trunk's options, keep the codecs your route supports (G.729 and G.711, as listed in the Purchased Route Confirmation email). TelecomsXchange doesn't transcode, so the route and 3CX must share a codec. Save the trunk.
- Go to Outbound Rules and click Add. Create one rule for numbers dialled with
00and one for numbers dialled with+:
| Field | Rule for 00 |
Rule for + |
|---|---|---|
| Rule Name | TCXC 00 |
TCXC plus |
| Calls to numbers starting with prefix | 00 |
+ |
| Calls from extension(s) | The extensions or groups allowed to call out | Same |
| Route 1 | The TelecomsXchange trunk |
Same |
| Strip Digits | 2 |
1 |
| Prepend | 80039# (your TECH_PREFIX) |
80039# |
With these rules, a user who dials 00447700900123 or +447700900123 sends 80039#447700900123 to TelecomsXchange. 3CX may write the # as %23 in the Request-URI; TelecomsXchange decodes it.
- Move the rules above any other rule that matches the same numbers. 3CX checks outbound rules from the top and uses the first match.
Tip
To send different destinations to different routes, add one rule per destination prefix (for example 0044) with that route's tech prefix in Prepend. Or prepend a routing group prefix such as 444101# and let TelecomsXchange choose the route.
3CX records the number after Prepend, so call history and reports show 80039#447700900123. That is cosmetic: the call is routed correctly.
How do I receive calls from TelecomsXchange?#
Calls on numbers you bought, and on routes you sell, come from 174.136.44.213 over UDP, from source ports 5060 to 5072, with the number in E.164 format such as 14165551234.
- Allow
174.136.44.213on the firewall in front of 3CX for UDP 5060, and forward the 3CX RTP range (by default UDP 9000 to 10999) to 3CX. - 3CX matches an incoming INVITE to a trunk by comparing its source IP with the trunk's host.
sip01.telecomsxchange.comresolves to174.136.44.213, so calls from TelecomsXchange land on theTelecomsXchangetrunk. If they don't, enter174.136.44.213as the trunk's Registrar/Server/Gateway Hostname or IP. - On the trunk's DIDs tab, add each number TelecomsXchange delivers, in the E.164 format it arrives in, for example
14165551234. - Assign each DID to its destination: a user, a ring group, a queue or an IVR, in that object's DID settings. In V20 there is no separate inbound rules page; the DID is routed by the object it's assigned to, and unassigned DIDs follow the trunk's default route.
3CX is a PBX, not a softswitch. As a seller, it can terminate calls to its own users and numbers, but it isn't designed to carry wholesale transit traffic on to another carrier.
How do I receive calls on numbers I bought?#
Set the number's SIP Endpoint (Primary) in DID Settings to 3CX, for example sip:14165551234@203.0.113.10:5060. TelecomsXchange sends the INVITE from 174.136.44.213 with 14165551234 in the Request-URI, which 3CX matches against the trunk's DIDs tab.
How do I test it?#
- Place a call from a 3CX extension to an international number covered by the route, for example
00447700900123. - In the Admin Console, open Advanced → Activity Log and look for the call: the outbound rule that matched, the trunk it used and the SIP reply.
- For the full SIP exchange, run a capture from Advanced → Troubleshooting (or
tcpdump -n -i any udp port 5060on a Linux install) and look for the INVITE to80039#447700900123(or80039%23447700900123). - In the TelecomsXchange portal, watch the call in Live Calls and find its SIP code in Logs → CDR (Voice).
What if something goes wrong?#
| You see | What to do |
|---|---|
| 401 or 407 from TelecomsXchange, then the call fails | 3CX's source IP isn't authorised, so TelecomsXchange asks for credentials. Add 3CX's public IP to the account's IP Address or Additional Allowed IPs. |
| 403 Forbidden | The source IP isn't authorised. Compare the public IP in your capture with the account; check the account isn't blocked or out of balance. |
| 404 Not Found | Missing or wrong tech prefix, or +/00 left in the number. Check Strip Digits and Prepend on the outbound rule and the Request-URI in the capture. |
| 408 Request Timeout | No reply from sip01. Check outbound UDP 5060 on your firewall and that 3CX resolves sip01.telecomsxchange.com. |
| 503 Service Unavailable | The route is blocked or failed on the seller's side. Check My Interconnections; try another route or a routing group. |
| One-way or no audio | 3CX's public IP is wrong in its network settings, or the RTP range isn't forwarded. Check the public IP 3CX advertises and open UDP 9000 to 10999. |
| Inbound calls rejected with 407 | 3CX didn't match the call to the trunk, so it challenged it; TelecomsXchange doesn't answer challenges. Set the trunk host to 174.136.44.213 and check the firewall. |
| Inbound call arrives but goes nowhere | The number isn't on the trunk's DIDs tab in the format it arrives in, or the DID isn't assigned to a destination. |
References#
Common questions
Can 3CX register to TelecomsXchange?
No. TelecomsXchange is peering only and does not accept REGISTER. Set the trunk's authentication to Do not require (IP based); the Register/Account based option makes 3CX send REGISTER, which TelecomsXchange rejects.
Can 3CX use the VoIP login and password instead of its IP?
Use IP authentication with 3CX. Its IP-based trunk type is built for providers that recognise the PBX by source IP, and the account-based type registers. If 3CX's public IP changes, add the new one under Additional Allowed IPs.
Why do my call logs show the tech prefix?
3CX applies the outbound rule's Prepend before the call is logged, so call history shows 80039#447700900123. It's cosmetic; the call is routed correctly.
Which 3CX edition do I need?
Generic, non-template SIP trunks are limited on some 3CX editions. Check that your licence allows a generic SIP trunk before you start.
- Can 3CX register to TelecomsXchange?
- No. TelecomsXchange is peering only and does not accept REGISTER. Set the trunk's authentication to Do not require (IP based); the Register/Account based option makes 3CX send REGISTER, which TelecomsXchange rejects.
- Can 3CX use the VoIP login and password instead of its IP?
- Use IP authentication with 3CX. Its IP-based trunk type is built for providers that recognise the PBX by source IP, and the account-based type registers. If 3CX's public IP changes, add the new one under Additional Allowed IPs.
- Why do my call logs show the tech prefix?
- 3CX applies the outbound rule's Prepend before the call is logged, so call history shows 80039#447700900123. It's cosmetic; the call is routed correctly.
- Which 3CX edition do I need?
- Generic, non-template SIP trunks are limited on some 3CX editions. Check that your licence allows a generic SIP trunk before you start.
Finished this guide?
This guide matches platform build 83b4ebc9. Markdown version.