Introduction
3CX is one of the most popular PBX solutions available for both Windows and Linux, offering a fully-featured phone system with a modern web-based management console. Whether you are running 3CX on-premise or in the cloud, connecting it to a reliable SIP trunk provider is essential for making and receiving calls over the PSTN.
IPComms provides a straightforward SIP trunk for 3CX that supports IP-based authentication, eliminating the need for complex registration credentials. With competitive per-minute rates for US and Canada calling, high-definition audio codecs, and optional TLS/SRTP encryption, IPComms is an excellent choice for businesses using 3CX.
This guide walks you through the complete 3CX SIP trunk setup process -- from creating the trunk to configuring outbound and inbound routing, caller ID, encryption, and troubleshooting common issues.
Prerequisites
Before you begin your 3CX trunk configuration, make sure you have the following:
- 3CX Version 20 or later installed and running (Windows or Linux/Debian)
- Admin access to the 3CX Management Console
- An active IPComms account (sign up at portal.ipcomms.net)
- At least one DID (phone number) assigned to your IPComms account
- A static public IP address on your 3CX server (required for IP-based authentication)
- Firewall rules allowing UDP traffic on port 5060 (SIP) and ports 10000-20000 (RTP media)
IP Authentication: IPComms uses IP-based authentication by default. Once your static IP is whitelisted in the IPComms portal, no username or password is required for trunk registration. This simplifies configuration and improves security.
Step 1: Create a SIP Trunk in 3CX
The first step in your 3CX SIP trunk setup is creating a new trunk in the admin console:
Log into the 3CX Management Console (typically at https://your-3cx-server:5001)
Navigate to SIP Trunks in the left sidebar
Click Add SIP Trunk
In the provider list, select Generic SIP Trunk (since IPComms is not pre-configured in the 3CX templates)
Enter a Trunk Name: IPComms
Generic SIP Trunk: Selecting "Generic SIP Trunk" gives you full control over all trunk parameters. This is the recommended approach for connecting to IPComms, as it allows you to configure IP authentication and codec preferences exactly as needed.
Step 2: Configure Trunk Settings
With the trunk created, configure the connection details for your 3CX trunk configuration:
Registrar/Server Settings
| Field | Value |
|---|---|
| Registrar/Server/Gateway Hostname | s1.ipcomms.net |
| Outbound Proxy | 34.23.59.14 |
| Port | 5060 |
| Number of Sim. Calls (Channels) | As needed (e.g., 10, 20, or unlimited) |
| Type of Authentication | Do not require - Loss Auth/IP based |
Authentication Settings
Since IPComms uses IP-based authentication, you do not need to enter a username or password. Your 3CX server's public IP must be whitelisted in the IPComms portal:
| Field | Value |
|---|---|
| Authentication ID | Leave blank |
| Authentication Password | Leave blank |
| Require Registration | No (not required for IP auth) |
Whitelist Your IP: Before testing, log into portal.ipcomms.net and add your 3CX server's public IP to the authorized IP list. Without this, calls will be rejected with a 403 Forbidden response.
Codec Priority
Configure codecs in the following priority order for optimal audio quality:
| Priority | Codec | Bandwidth | Notes |
|---|---|---|---|
| 1 | G.711a (alaw) | 87 kbps | Best quality, international standard |
| 2 | G.711u (ulaw) | 87 kbps | Best quality, North America standard |
| 3 | G.729 | 31 kbps | Low bandwidth, good for limited connections |
Step 3: Configure Outbound Rules
Outbound rules in 3CX determine how dialed numbers are matched and routed through your SIP trunk. Navigate to Outbound Rules in the 3CX console and create the following rules:
Go to Outbound Rules in the left sidebar
Click Add to create a new outbound rule
Rule Name: US-Canada-Calling
Route: Select the IPComms trunk
Dial Pattern Rules
Add these patterns for US and Canada dialing:
| Pattern | Prefix to Strip | Prepend | Description |
|---|---|---|---|
| 1NXXNXXXXXX | 0 | 11-digit US/Canada (1 + area code + number) | |
| NXXNXXXXXX | 0 | 1 | 10-digit dialing (prepends country code 1) |
| 011X. | 3 | International dialing (strips 011 prefix) | |
| 911 | 0 | Emergency services |
Pattern Syntax: In 3CX, N matches digits 2-9, X matches any digit 0-9, and . matches one or more digits. The "Prefix to Strip" removes leading digits before sending to the trunk.
Step 4: Configure Inbound Rules
Inbound rules determine how incoming calls to your DIDs are routed within 3CX. You can route calls to extensions, ring groups, IVR menus, or call queues.
Go to Inbound Rules in the left sidebar
Click Add DID Rule
Name: Main Line
DID/DDI Number: Enter your IPComms DID (e.g., 2125551234)
Trunk: Select IPComms
Set the destination for incoming calls:
- Extension -- route to a specific user
- Ring Group -- ring multiple extensions simultaneously
- IVR / Digital Receptionist -- play a menu ("Press 1 for sales...")
- Call Queue -- distribute calls among agents
Office Hours: 3CX allows you to set different routing based on time of day. Configure "Office Hours" and "Out of Hours" destinations to route after-hours calls to voicemail or an on-call extension.
Step 5: Configure Caller ID
Set your outbound Caller ID so recipients see your business phone number when you call them:
Go to SIP Trunks and edit your IPComms trunk
In the Caller ID section, set the Main Trunk No to your primary DID number (e.g., 12125551234)
For per-extension caller ID, navigate to Users, edit each extension, and set their Outbound Caller ID to a DID assigned to your account
CID Validation: IPComms validates outbound Caller ID against DIDs assigned to your account. If you send a CID that does not match one of your DIDs, the call may be rejected or the CID may be replaced with your primary number.
Testing Your Configuration
After completing the 3CX trunk configuration, test both inbound and outbound calling:
Verify Trunk Status
In the 3CX Management Console, navigate to SIP Trunks. Your IPComms trunk should show a green status indicator. For IP-authenticated trunks, it may show as "Idle" rather than "Registered" -- this is normal.
Test Outbound Calls
- Open the 3CX Web Client or pick up a provisioned desk phone
- Dial an external number (e.g., your mobile phone)
- Verify the call connects and audio works in both directions
- Check that Caller ID displays your DID number on the receiving phone
Test Inbound Calls
- From an external phone (mobile or landline), call your IPComms DID
- Verify the call rings at your configured destination (extension, ring group, IVR)
- Answer and confirm two-way audio quality
- Test call features: hold, transfer, conference
3CX Activity Log: Use Dashboard > Activity Log in the 3CX console to monitor call events in real-time. Filter by "Trunk" to see only SIP trunk activity and diagnose issues quickly.
TLS/SRTP Encryption Setup
For enhanced security, you can configure your SIP trunk for 3CX to use TLS for SIP signaling and SRTP for media encryption:
Enable TLS on the Trunk
| Setting | Value |
|---|---|
| Port | 5061 |
| Transport Protocol | TLS |
| SRTP | Enabled (Preferred or Required) |
3CX TLS Configuration Steps
Edit your IPComms trunk in SIP Trunks
Change the port from 5060 to 5061
In 3CX Settings, go to Network > Ports and ensure the SIP TLS port is enabled
Under the trunk's advanced settings, set the transport to TLS
Enable SRTP for media encryption
Certificate: 3CX manages its own TLS certificates. IPComms supports standard TLS 1.2+ connections. No additional certificate configuration is needed on the trunk side -- 3CX will handle the TLS handshake automatically.
Troubleshooting
Common issues and solutions when setting up your 3CX SIP trunk setup:
| Problem | Cause | Solution |
|---|---|---|
| Trunk shows red/offline | IP not whitelisted or firewall blocking | Verify your public IP is added in IPComms portal. Check firewall allows UDP 5060 outbound to 34.23.59.14. |
| 403 Forbidden on outbound calls | IP authentication failure | Your 3CX server's outbound IP does not match what is whitelisted. Check NAT -- ensure your public IP is static and correctly listed. |
| One-way audio | RTP ports blocked or NAT issue | Open UDP ports 10000-20000 in your firewall. In 3CX Settings, check that the public IP and STUN are configured correctly. |
| No audio in either direction | Codec mismatch | Ensure G.711a or G.711u is enabled on the trunk. Disable any codecs not supported by IPComms (e.g., Opus for SIP trunks). |
| Inbound calls not arriving | Missing inbound rule or wrong DID format | Verify inbound rule DID matches exactly (10 digits, no leading 1). Ensure the trunk is selected in the rule. |
| Calls drop after 30 seconds | Firewall closing SIP sessions | Increase SIP session timeout in your firewall. Enable SIP ALG bypass or disable SIP ALG entirely on your router. |
| Caller ID not displaying | CID not set or invalid DID | Set Main Trunk No to your full DID with country code (e.g., 12125551234). Ensure the DID is active in your IPComms account. |
Viewing SIP Logs in 3CX
To diagnose SIP-level issues:
# On Linux, view 3CX SIP logs:
tail -f /var/lib/3cxpbx/Instance1/Data/Logs/sip.log
# Filter for IPComms traffic:
grep "34.23.59.14" /var/lib/3cxpbx/Instance1/Data/Logs/sip.log
# On Windows, logs are located at:
# C:\ProgramData\3CX\Instance1\Data\Logs\sip.log
SIP ALG Warning: Many consumer routers have SIP ALG (Application Layer Gateway) enabled by default. This feature often corrupts SIP packets and causes registration failures or one-way audio. Disable SIP ALG on your router for best results with any SIP trunk.
Get Started with 3CX + IPComms
Sign up and connect your 3CX system in minutes. IP authentication means no complex credentials -- just whitelist your IP and start calling.
Related Articles
Asterisk PJSIP Trunk Setup
Configure SIP trunks directly in Asterisk with PJSIP
TutorialFreePBX SIP Trunk Setup
Step-by-step FreePBX trunk configuration guide
ComparisonSIP Trunking vs PRI
Understand the differences and when to choose each
MoreAll Blog Articles
Browse all IPComms guides and tutorials