Asterisk

How to Fix “Extension Not Registered” in FreePBX: Complete Troubleshooting Guide

Himanshu Pal

Himanshu Pal

How to Fix “Extension Not Registered” in FreePBX: Complete Troubleshooting Guide

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:

  1. Extension (or phone) sends a SIP REGISTER request to the PBX.

  2. PBX validates the username and SIP secret.

  3. 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 authenticate

This 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 -rvvv

For Chan_SIP:

sip show peers

Sample 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        UNKNOWN

For PJSIP:

pjsip show endpoints

Sample Output:

Endpoint:  101/101  Not in use  Unavailable
Aor:       101      1
Contact:   101/sip:101@192.168.1.50:5060  Avail  14.334

Interpretation:

  • 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 on

For PJSIP:

pjsip set logger on

Example 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 asterisk

Example 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/asterisk

Firewall rules:

iptables -L -n | grep 5060

Network 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.conf

  • sip_general_additional.conf

CLI Test:

rtp set debug on

NAT 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 reload

If unresolved, restart services:

systemctl restart asterisk
fwconsole restart

9. 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 logs

11. 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.


Community Comments

0 comments