Platform Guide

3CX SIP Troubleshooting

9 min read  ·  Updated April 2026

3CX is one of the most widely deployed PBX platforms globally. When SIP trunks fail to register, calls drop, or audio is one-way, the answers are in the 3CX logs and SIP captures. Here's how to find them.

In this guide

1. Enabling SIP logging in 3CX

3CX logs SIP activity to its log files. Enable verbose logging for troubleshooting:

  1. 3CX Management Console → SettingsNetwork
  2. Under Logging, set log level to Debug
  3. Enable SIP Trace logging
  4. Logs are written to: C:\ProgramData\3CX\Data\Logs\CallServer (Windows) or /var/lib/3cxpbx/Logs (Linux)

For real-time SIP trace capture, use the built-in packet capture:

  1. 3CX Management Console → DashboardIP Blacklist tab → Packet Capture
  2. Click Start Capture, reproduce the issue, click Stop
  3. Download the PCAP file for analysis in Wireshark or SIPSymposium

2. SIP trunk registration issues in 3CX

Issue 01
Trunk shows "Not Registered" in dashboard
Check 3CX Management Console → SIP Trunks → click the trunk → Status tab. The SIP registration log shows the exact error code. 401 loops = wrong credentials. 403 = IP not allowlisted. 404 = wrong SIP server address. 503 = server unreachable.
Issue 02
Trunk registers but inbound calls fail
The DID routing is misconfigured. Go to 3CX → SIP Trunks → Inbound Rules → verify the DID number format matches what the provider sends. Providers may send +12025551234 or just 12025551234 or 2025551234 — the format must match exactly.
Issue 03
Outbound calls fail with "No trunk available"
The outbound rule isn't matching the dialed number format, or the trunk is in a failed state. Check 3CX → Outbound Rules → verify the dial pattern matches your users' dialing habits. Also check the trunk isn't blocked due to failed registration attempts.

3. One way audio in 3CX

One way audio in 3CX is almost always a NAT configuration issue. 3CX has specific NAT settings that must be configured correctly:

Check 3CX NAT settings

  1. 3CX Management Console → SettingsNetwork
  2. Verify Public IP is set to your actual public IP (not a private RFC 1918 address)
  3. Verify Local IP Subnets lists all your internal network ranges
  4. Enable STUN if your public IP is dynamic

Common one-way audio scenarios

; 3CX also generates RTCP reports in its packet capture ; Look for these in Wireshark: ; Filter: rtcp ; Check "Fraction Lost" field in RTCP Receiver Reports ; High loss on one direction = one-way audio root cause

4. Call quality troubleshooting in 3CX

Check call quality statistics: 3CX Management Console → Reports → Call Quality Statistics. This shows per-call MOS scores, jitter, and packet loss. Filter for calls with MOS below 3.5 to find problematic call paths.

Codec configuration: 3CX → Settings → VoIP → Codecs. Ensure G.711 (PCMU/PCMA) is listed first for maximum compatibility. G.729 reduces bandwidth but is susceptible to packet loss. Remove codecs not supported by your trunk provider.

QoS settings: 3CX → Settings → Network → QoS. Enable DSCP marking and set:

5. 3CX WebRTC issues

3CX Web Client uses WebRTC. Common issues:

WebRTC Issue 01
Web client calls have no audio
TURN server misconfiguration. 3CX uses its own TURN server for WebRTC NAT traversal. Go to Settings → Network → TURN Server and verify the TURN server is configured with your public IP. The TURN server must be reachable from WebRTC clients on UDP/TCP 3478 and 5349.
WebRTC Issue 02
Browser shows "Cannot access microphone"
Browser microphone permissions denied, or the site is not served over HTTPS. WebRTC requires HTTPS — check that your 3CX FQDN has a valid TLS certificate and users are accessing via https://. Check browser permissions for the 3CX domain.

6. Capturing SIP traces from 3CX

For detailed analysis beyond 3CX's built-in tools:

Method 1 — 3CX built-in packet capture

Dashboard → Packet Capture → Start Capture → reproduce issue → Stop → Download PCAP

Method 2 — tcpdump on the 3CX server (Linux)

; Capture SIP and RTP from 3CX server tcpdump -i any -w /tmp/3cx-trace.pcap port 5060 or portrange 9000-10999 ; Capture specific trunk traffic tcpdump -i any -w /tmp/trunk.pcap host TRUNK_PROVIDER_IP

Method 3 — Homer SIP capture integration

3CX supports HEP/Homer integration. Go to Settings → Syslog/SNMP → Enable Homer and point it to your Homer server. This gives you real-time SIP trace visualization with call flow diagrams.

Frequently asked questions

How do I capture SIP traces in 3CX?

In 3CX Management Console go to Dashboard → Packet Capture → Start Capture. Reproduce the issue, then click Stop and download the PCAP file. On Linux you can also use tcpdump directly on the 3CX server: tcpdump -i any -w trace.pcap port 5060. Upload the PCAP to SIPSymposium for analysis.

Why is my 3CX SIP trunk not registering?

3CX SIP trunk registration failures are caused by wrong credentials, incorrect SIP server address, IP not allowlisted by the provider, or firewall blocking port 5060. Check the trunk status in 3CX Management Console → SIP Trunks → Status tab for the exact SIP error code. 401 = credentials wrong, 403 = IP not authorized, 503 = server unreachable.

Why is there one way audio in 3CX calls?

One way audio in 3CX is almost always a NAT configuration issue. Go to 3CX Management Console → Settings → Network and verify the Public IP field shows your actual public IP address. Also verify Local IP Subnets lists all your internal network ranges. If your public IP is dynamic, enable STUN.

Troubleshooting a 3CX SIP issue?

Upload your 3CX packet capture to SIPSymposium. The analyzer identifies registration failures, NAT issues in the SDP, codec mismatches, and RTP quality problems.

Analyze my trace Create free account
Related guides