Before you start
3CX is the phone system; the SIP trunk is the connection that carries calls to and from the public telephone network. You need three things from your provider before you touch the Admin Console: the registrar host, a set of SIP credentials, and at least one DID number in E.164 format.
- A running 3CX instance (self-hosted or hosted) with admin access.
- The public IP address of that instance, so it can be allowed on the trunk.
- SIP ALG disabled on the router - it rewrites SIP headers and is the single most common cause of one-way audio.
- Outbound UDP 5060 (or TCP 5061 for TLS) and the RTP range 9000-10999 permitted through the firewall.
Step 1 - Add the SIP trunk
In the 3CX Admin Console open Voice & Chat (listed as SIP Trunks on older builds), choose Add SIP Trunk, and select the Generic SIP Trunk template. Another provider's preset will apply header rewrites that do not match our platform. Then complete the fields below.
| Field | Value | Notes |
|---|---|---|
| Provider | Generic SIP Trunk | Use the generic template - do not pick another provider's preset. |
| Registrar / Server | Supplied with your account | The SIP host we issue when your trunk is provisioned. |
| Transport | UDP or TLS | Choose TLS where your firewall allows it; pair it with SRTP for encrypted media. |
| SIP port | 5060 (UDP) / 5061 (TLS) | Match the port to the transport you selected. |
| Authentication | Register / SIP credentials | Username and password are issued per trunk, never shared between sites. |
| Simultaneous calls | Your channel count | Defaults to 2 channels; set this to the number of channels on your account. |
| Outbound caller ID | Your DID in E.164 | For example +442079460958 - digits only, with the leading plus. |
| Codecs | G.711A, G.729, Opus | Keep G.711A first for UK termination quality. |
Save the trunk and wait for the status to change to Registered. If it stays offline, jump to the troubleshooting section below before changing any other setting.
Step 2 - Set your channels
Channels, not numbers, decide how many calls can run at once. Every VoIP account starts with 2 channels, so two concurrent calls in total across every number you own. Buying more DIDs does not raise that ceiling - adding channels does.
Set the trunk's simultaneous calls value in 3CX to the same number of channels on your account. Setting it higher lets 3CX offer calls the trunk will reject; setting it lower wastes capacity you are paying for. A ten-agent sales team typically needs eight to ten channels; a small office answering a handful of international numbers is usually fine on two to four.
Step 3 - Outbound rules for international calls
Under Call Routing → Outbound Rules, create a rule that matches calls starting with 00 or +, strip the dialled prefix so the number leaves the system in E.164 form (+442079460958, digits only after the plus), and set the trunk as route 1.
Order matters. Place emergency-services and internal-range rules above the international rule so they are evaluated first, and consider a separate rule per destination group if you want to restrict premium-rate or satellite ranges to specific extension groups.
Step 4 - Inbound DID routing
Add each of your numbers to the trunk's DID list in E.164, then open Inbound Rules and create one rule per DID. Each rule sets an office-hours destination and an out-of-hours destination: an extension, ring group, queue, digital receptionist, or voicemail.
A common pattern for multi-country teams is one DID per market, each routing to the same queue but with a different caller-ID prefix or language prompt so agents know which country the caller dialled.
Step 5 - Test both directions
Place an outbound international call and confirm the caller ID presented at the far end is the DID you configured, not the extension number. Then call each DID from an external phone and check it lands on the intended destination in and out of office hours. Finally, run a call while a second call is already up to confirm your channel count behaves as expected.
Troubleshooting
- Trunk will not register - check SIP ALG is off, the public IP of the instance is allowed on the trunk, and the transport and port match (UDP 5060 or TLS 5061).
- One-way audio - almost always RTP being blocked or rewritten. Allow the RTP range outbound and disable any SIP helper on the firewall.
- Outbound calls rejected - the dialled number is probably not in E.164. Check the outbound rule strips the prefix rather than prepending to it.
- Calls fail once two are up - you have hit your channel limit. Add channels rather than raising the 3CX simultaneous call value on its own.
- Wrong caller ID - set the outbound caller ID on the trunk and confirm no extension-level override is in place. Some countries only allow a verified local number to be presented.
Frequently asked questions
How do I add a SIP trunk in 3CX?
In the 3CX Admin Console go to Voice & Chat (SIP Trunks in older builds), select Add SIP Trunk, choose the Generic SIP Trunk template, and enter the registrar host, SIP credentials, and main DID supplied with your Telappliant account. Set the simultaneous call limit to match the number of channels on your account, then save and confirm the trunk shows as Registered.
How many simultaneous calls can a 3CX SIP trunk handle?
That is set by the channels on your VoIP account, not by 3CX or by how many numbers you own. Every account starts with 2 channels, which means two concurrent calls in total across all your numbers. Add channels to raise concurrency, then update the simultaneous call limit on the trunk in 3CX so the two figures agree.
Why is my 3CX SIP trunk not registering?
The usual causes are a firewall blocking SIP signalling or RTP, a SIP ALG left enabled on the router, or an IP address that has not been allowed on the trunk. Disable SIP ALG, open UDP 5060 (or TCP 5061 for TLS) plus the RTP range 9000-10999 outbound, and confirm the public IP of the 3CX instance matches the one registered against your trunk.
How do I route international calls in 3CX?
Create an outbound rule under Call Routing, match on calls beginning with 00 or +, strip the prefix so the number leaves in E.164 form, and set your Telappliant trunk as route 1. Put more specific rules (emergency services, internal ranges) above the international rule so they are evaluated first.
How do I point an international DID at a 3CX extension?
Add the number to the trunk's DID list in E.164, then open Inbound Rules, create a rule for that DID, and choose the destination - an extension, ring group, queue, or the digital receptionist. Office-hours and out-of-hours destinations are configured on the same rule.
Can I keep my existing numbers when moving to 3CX?
In most countries yes. Porting moves your existing numbers onto our network, after which they terminate on your 3CX trunk exactly like a newly ordered number. Availability and lead times vary by country, so raise porting at quote stage and we will confirm what is possible for each range.
Does 3CX work with numbers from multiple countries?
Yes. A single trunk can carry DIDs from many countries at once, so one 3CX instance can answer a London, New York, and Sydney number on the same system. Concurrency is still governed by the channels on the account, shared across every number.
Related reading
Numbers for your 3CX system
Local, mobile, toll-free, and national numbers in 125+ countries, delivered over a single SIP trunk with channels you can scale as your call volume grows.