How to Fix “Extension Not Registered” in FreePBX: Complete Troubleshooting Guide
1. Introduction
FreePBX is a popular GUI that sits on top of Asterisk, simplifying telephony management. Despite its ease of use, issues like “Extension Not Registered” are common, especially for new deployments.
What does it mean?
It indicates that a softphone or IP phone has failed to register with the PBX. In FreePBX, you’ll see the extension as unregistered, preventing inbound or outbound calls, and making presence or status unavailable.
Why this matters:
Inbound/outbound calls won’t work
Softphone presence unavailable
Call routing may fail
Quick note: Fixing this requires a combination of GUI adjustments and CLI troubleshooting using Asterisk logs and network tools.
2. How Extension Registration Works (Basics)
Understanding registration helps in diagnosing the problem. Here’s the flow:
Extension (or phone) sends a SIP REGISTER request to the PBX.
PBX validates the username and SIP secret.
If correct, PBX responds with 200 OK, marking the extension as “Registered.”
Successful Registration Example (CLI Output):
-- Registered SIP '101' at 192.168.1.50:5060
-- Added contact 'sip:101@192.168.1.50:5060' to AOR '101'Failed Registration Example:
[2025-09-22 10:15:43] NOTICE[1234]: res_pjsip/pjsip_distributor.c:676 log_failed_request:
Request 'REGISTER' from '<sip:101@pbx.local>' failed for '192.168.1.50:5060' (callid: 1A2B3C4D) - Failed to authenticateThis shows either a wrong password or a network issue.
3. Step 1 – Check Extension Settings in FreePBX GUI
Key settings to verify:
Username: Must match the extension number.
Secret/Password: Ensure no typos.
Transport Protocol: UDP, TCP, or TLS.
Device Type: Choose between chan_pjsip (modern) or chan_sip (deprecated).
NAT Settings: Critical for remote extensions behind firewalls.
💡 Tip: Even a small typo in the SIP secret can prevent registration.
4. Step 2 – Check if Extension is Showing in Asterisk
Enter the Asterisk CLI:
asterisk -rvvvFor Chan_SIP:
sip show peersSample Output:
Name/username Host Dyn Forcerport ACL Port Status
101/101 192.168.1.50 D Yes 5060 UNREACHABLE
102/102 (Unspecified) D Yes 0 UNKNOWNFor PJSIP:
pjsip show endpointsSample Output:
Endpoint: 101/101 Not in use Unavailable
Aor: 101 1
Contact: 101/sip:101@192.168.1.50:5060 Avail 14.334Interpretation:
UNREACHABLE / UNKNOWN → Extension not registered
Unavailable / Not in use → PJSIP endpoint not active
5. Step 3 – Watch Registration in Real-Time
Enable SIP/PJSIP debugging to capture live REGISTER requests:
For chan_sip:
sip set debug onFor PJSIP:
pjsip set logger onExample Packet Capture:
<--- SIP read from UDP:192.168.1.50:5060 --->
REGISTER sip:pbx.local SIP/2.0
Via: SIP/2.0/UDP 192.168.1.50:5060;branch=z9hG4bK...
From: "101" <sip:101@pbx.local>;tag=12345
To: "101" <sip:101@pbx.local>
Call-ID: 1A2B3C4D
CSeq: 102 REGISTER
Authorization: Digest username="101", realm="pbx.local", ...What to look for:
Auth errors → Wrong secret
No response → Firewall/NAT issue
Multiple retries → Transport mismatch (UDP/TCP)
6. Step 4 – Network & Firewall Checks
Check if Asterisk is listening:
netstat -tulpn | grep asteriskExample Output:
udp 0 0 0.0.0.0:5060 0.0.0.0:* 1234/asterisk
udp 0 0 0.0.0.0:5160 0.0.0.0:* 1234/asteriskFirewall rules:
iptables -L -n | grep 5060Network Connectivity:
Ping or traceroute from client to PBX to verify reachability.
💡 Pro Tip: Misconfigured firewall is one of the most common causes of registration failure.
7. Step 5 – NAT and External Clients
Check NAT settings in:
/etc/asterisk/pjsip.confsip_general_additional.conf
CLI Test:
rtp set debug onNAT Issue Indicators:
Extension registers but audio is one-way or fails completely
Remote users behind double NAT may need a STUN server
8. Step 6 – Reload and Restart Services
Reload PBX configuration without dropping calls:
core reload
pjsip reload
sip reloadIf unresolved, restart services:
systemctl restart asterisk
fwconsole restart9. Common Fix Scenarios (With Examples)
Issue | Fix |
|---|---|
Wrong password | Update SIP secret in FreePBX GUI and softphone config |
Wrong driver (chan_sip vs chan_pjsip) | Ensure extension uses correct technology |
Port conflict | Match SIP/PJSIP ports (5060/5160) |
Firewall/NAT | Open UDP ports 5060/5160, RTP 10000–20000 |
Double NAT (remote) | Use STUN in softphone, configure NAT properly in FreePBX |
10. CLI Troubleshooting Cheatsheet
asterisk -rvvv # Enter CLI
sip show peers # Chan_SIP extension status
pjsip show endpoints # PJSIP extension status
sip set debug on # SIP packet capture
pjsip set logger on # PJSIP packet capture
rtp set debug on # RTP media stream check
core set verbose 5 # Increase verbosity
tail -f /var/log/asterisk/full # Persistent logs11. Best Practices
Use strong SIP secrets, avoid simple numbers like
1234.Prefer PJSIP for modern deployments.
Tight firewall rules – allow only trusted IPs.
Regularly monitor logs to catch misregistrations early.
12. Conclusion
“Extension Not Registered” is usually caused by authentication errors, network issues, or configuration mismatches.
Use a combination of FreePBX GUI checks and Asterisk CLI logs to troubleshoot effectively.
Next Steps: Consider implementing fail2ban or intrusion detection to protect your PBX from brute-force REGISTER attempts.
With careful monitoring and configuration, keeping your FreePBX extensions registered and operational becomes a seamless process.
