Every SIP request gets a three-digit answer, and when a call fails that number is usually the only clue you have. This SIP response code lookup explains every registered code from 100 Trying to 608 Rejected: what it means, the usual causes on Asterisk, FreePBX, 3CX and SIP trunks, what to check, and which Q.850 hangup cause it maps to. Enter a code, paste a whole status line, or search with a word such as busy or codec.
Short answer: 1xx means the call is in progress, 2xx success and 3xx redirect. 4xx means the request was wrong for that server (bad number, wrong password, no common codec) and should not be retried as it is. 5xx means the server or trunk failed, and another route may work. 6xx means the call fails everywhere. The codes you will meet most often are 401/407 (normal login challenge), 403 (refused), 404 (number not found), 408 (no response), 480 (unavailable), 486 (busy), 488 (codec mismatch) and 503 (trunk or provider unavailable).
Table of Contents
How to read a SIP response code
A SIP response starts with a status line such as SIP/2.0 486 Busy Here. The first digit is the class and is all a SIP device needs to decide what to do next; the other two digits narrow it down, and the reason phrase after the number is only for humans and can be anything. A provider that answers 503 Out of credit is still sending a 503.
| Class | Meaning | What the caller does |
|---|---|---|
| 1xx Provisional | Request received, still working (100 Trying, 180 Ringing, 183 Session Progress) | Waits for a final response |
| 2xx Success | The request worked (200 OK) | For a call, sends ACK and starts the media |
| 3xx Redirection | Try another address, given in the Contact header | Retries at the new address, if allowed |
| 4xx Client error | The request cannot be served by this server as it is | Fixes the request, or gives up |
| 5xx Server error | The server failed to handle a valid request | May try another server or retry later |
| 6xx Global failure | No server anywhere will accept this call | Gives up |
4xx, 5xx and 6xx: which side is at fault
The class tells you where to look first. A 4xx almost always points at something in your own configuration or in the number you dialled: credentials, number format, caller ID, codecs or encryption. A 5xx points at the server that answered or something behind it: an unregistered trunk, a full channel limit, a carrier outage or an empty prepaid balance. A 6xx is a deliberate global answer from the called side, such as 603 Decline when a call is rejected or blocked as spam.
One exception catches people out: 401 Unauthorized and 407 Proxy Authentication Required are a normal part of every SIP login. The client sends the request, gets a challenge, and resends it with credentials. Only a second 401 or 407 after the credentials have been sent means the password is wrong.
The SIP errors you will see most
| Code | Usual cause on a PBX or SIP trunk | First thing to check |
|---|---|---|
| 403 Forbidden | IP not on the provider allowlist, destination blocked, caller ID not allowed, account suspended | Provider portal: IP authentication, call barring, caller ID |
| 404 Not Found | Wrong number format (missing country code or +), unknown extension, DID not routed | Dial in the format the provider wants (usually E.164) |
| 408 Request Timeout | Far end offline or unreachable; replies blocked by NAT or firewall | pjsip show contacts, firewall, keepalives |
| 480 Temporarily Unavailable | Phone not registered, DND on, no route right now | Registration of the called phone |
| 486 Busy Here | Line busy, no call waiting, trunk channels full | Normal; if every call gets it, the channel limit |
| 488 Not Acceptable Here | No common codec, SRTP or T.38 mismatch | Allow ulaw/alaw on both sides; match encryption |
| 503 Service Unavailable | Trunk unregistered or down, channel limit, no route, no credit | pjsip show registrations and the provider status |
Not sure which message carries the error? Paste the whole call into the SIP trace analyzer. It finds the failing response, the codecs offered and answered, and NAT problems in the same trace.
SIP codes and Q.850 hangup causes
Asterisk turns a SIP failure into a Q.850 cause code, which you see in ${HANGUPCAUSE}, in the CDR and in many provider portals. RFC 3398 defines the mapping between the two worlds, for example 404 to cause 1 (unallocated number), 486 to cause 17 (user busy) and 408 to cause 102 (recovery on timer expiry). Enter cause 34 or just 34 in the tool to go the other way. Asterisk follows RFC 3398 for most codes but differs for a few; it reports a 503 as cause 34 (no circuit available) rather than 41.
; log the Q.850 cause and the SIP response of a failed outbound call (PJSIP)
exten => _X.,1,Dial(PJSIP/${EXTEN}@my-trunk,60)
same => n,Set(KEYS=${HANGUPCAUSE_KEYS()})
same => n,Set(PEER=${CUT(KEYS,\,,1)})
same => n,Log(NOTICE,Call to ${EXTEN}: ${DIALSTATUS} cause ${HANGUPCAUSE} (${HANGUPCAUSE(${PEER},tech)}))
SIP response codes at a glance



Official documentation: RFC 3261: SIP, RFC 3398: ISUP and SIP mapping, IANA SIP response codes.
Related: SIP trace analyzer · SIP SRV checker · Fix one-way audio · Disable SIP ALG.
Frequently asked questions
What does SIP 503 Service Unavailable mean?
The server that answered cannot handle the call right now. On a PBX it usually means the trunk is not registered or is down, the channel limit is reached, the provider has no route to that destination, or the account has no credit. Check the trunk registration first, then the provider status.
Is a 401 Unauthorized response an error?
Not on its own. SIP uses a challenge and response login, so the first request is always answered with 401 or 407 and the client then resends it with credentials. Only a second 401 after the credentials were sent means the username, password or realm is wrong.
What is the difference between 486 and 600 busy?
486 Busy Here means the called user is busy at this location and another device may still answer. 600 Busy Everywhere means the user is busy on every device and the call should not be tried elsewhere.
Why do my calls fail with 488 Not Acceptable Here?
The two sides have no codec or media setting in common. Typically one side allows only G.729 or Opus and the other only G.711, or one side requires SRTP. Allow ulaw and alaw on the trunk and match the media encryption setting.
What does Q.850 cause 16 mean?
Normal call clearing: one side hung up. It is the cause you expect on every successful call.