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.
1. Enabling SIP logging in 3CX
3CX logs SIP activity to its log files. Enable verbose logging for troubleshooting:
- 3CX Management Console → Settings → Network
- Under Logging, set log level to Debug
- Enable SIP Trace logging
- 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:
- 3CX Management Console → Dashboard → IP Blacklist tab → Packet Capture
- Click Start Capture, reproduce the issue, click Stop
- 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
- 3CX Management Console → Settings → Network
- Verify Public IP is set to your actual public IP (not a private RFC 1918 address)
- Verify Local IP Subnets lists all your internal network ranges
- Enable STUN if your public IP is dynamic
Common one-way audio scenarios
- External calls have one-way audio — Public IP not set or wrong in 3CX network settings
- Internal calls are fine, external are one-way — NAT issue specific to the SIP trunk leg
- Audio works then stops after transfer — re-INVITE after transfer points to wrong IP
; 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:
- SIP: CS3 (24)
- Audio RTP: EF (46)
- Video RTP: AF41 (34)
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.