Skip to content

Phone Won't Register

Symptom: desk phone or softphone shows "Registration Failed," "Server Unreachable," or simply doesn't appear under pjsip show endpoints as registered.

Most Likely Causes

  1. Wrong secret — most common. Re-typed by hand, special chars mangled.
  2. Wrong SIP server / domain — IP vs FQDN, with or without port.
  3. Firewall blocking SIP from the phone's source IP — UnifiedBX's Responsive Firewall hasn't seen this IP yet.
  4. Phone using chan_sip while extension is pjsip (or vice versa) — silent registration failure.
  5. Transport mismatch — phone trying TCP/TLS, extension only allows UDP.
  6. DNS not resolving the SIP server FQDN on the phone's network.

Diagnose

# Watch SIP from the specific phone:
sngrep -d any host <phone-ip>
# Look for REGISTER attempts. If absent, phone isn't even sending — DNS or routing.
# If present and answered with 401 → phone retries with auth.
# If 401 then 403/404 → wrong creds or wrong extension.

# Confirm the endpoint exists and what transport it expects:
asterisk -rx "pjsip show endpoint <ext>"
# Look at "transport" line.

# Verify firewall:
asterisk -rx "firewall trust"
# Or:
iptables -L -n | grep 5060

Fix

  • Reset the secret in User Attributes → Extensions → → Secret, regenerate, copy clean.
  • Re-provision the phone with the new secret and confirm domain matches pjsip show transports external address.
  • Trust the phone's network in firewall: fwconsole firewall trust <phone-ip> or System Admin → Firewall → Networks → Add Trusted.
  • For mobile/remote phones: ensure UnifiedBX has a public FQDN with valid SSL cert (some clients require TLS).
  • Verify transport: extension's transport setting must match what the phone uses.

When to Escalate

  • All checks pass, REGISTER from phone visible in capture, server returns 200 OK, yet pjsip show endpoints shows offline. Restart chan_pjsip:
    asterisk -rx "module reload res_pjsip.so"
    
  • Still failing? Possible Asterisk bug — check Asterisk version and recent changelogs.