SIP response codes, SIP codes and SIP error codes explained in two minutes: the full 1xx to 6xx list, what each code means, and which ones to retry or fix.

Takeaways
SIP response codes are three-digit replies in six classes, 1xx to 6xx, and each one tells you whether to retry, fix your request or accept the outcome.
SIP response codes, or SIP codes, are three-digit status codes a SIP server returns when your PBX, contact center or voice app sends a request such as INVITE or REGISTER. The first digit sets the class, 1xx to 6xx, much like an HTTP status, though not every HTTP code is valid in SIP. "SIP error codes" are the same vocabulary, usually the 4xx to 6xx classes you see when your call fails.

A User Agent Client (UAC) sends the request and a User Agent Server (UAS) answers it, so your SIP phone is a UAC when calling and a UAS when answering. A Back-to-Back User Agent (B2BUA), such as a PBX, plays both roles and can rewrite the code it passes to you. As SIP trunking vs VoIP explains, the 503 on your phone may have begun as a 480 upstream.
1xx codes are provisional and can arrive more than once. Everything from 2xx upward is final and ends the transaction, and for an INVITE you answer the final response with an ACK.
A response opens with a status line, the SIP version, code and reason phrase, as in SIP/2.0 486 Busy Here. The reason phrase is only a default the sender may reword or translate, so match on the number, never the text. Five headers change what you do next.
| Header | What it tells you | Seen with |
|---|---|---|
| Contact | The new address to try | 301, 302, 305 |
| Retry-After | When to try again | 503, 603 |
| Reason | Why the call ended, with any Q.850 cause | BYE and 6xx |
| Warning | A warning code plus text | Any final response |
| Expires | How long to cache the result | 302 |
Troubleshoot codes on a trunk you can read
Telnyx SIP trunking returns standard codes on a network Telnyx owns, with a published response-codes guide.
Each class below carries the codes you will meet on a trunk.
A 1xx code tells you the far end has your request and your call is still being set up.

| Code | Reason phrase | What it means for the call |
|---|---|---|
| 100 | Trying | The next hop has your INVITE |
| 180 | Ringing | The called device is alerting |
| 181 | Call Is Being Forwarded | Forwarded to another destination |
| 182 | Queued | Your call is waiting in a queue |
| 183 | Session Progress | Early media, usually ringback or an announcement |
| 199 | Early Dialog Terminated | An early dialog ended before answer |
A call that plays an announcement and then fails shows you a 183 first, because 183 carries early media, and a 182 repeats as the queue moves.
A 2xx code means your request succeeded. 202 Accepted is deprecated in the registry, though older guides still list it for referrals.

| Code | Reason phrase | What it means for the call |
|---|---|---|
| 200 | OK | The call was answered |
| 202 | Accepted (deprecated) | Accepted for later processing, avoid in new code |
| 204 | No Notification | Succeeded, no NOTIFY coming |
A 3xx code means your next INVITE goes somewhere else, and the new address is in the Contact header.

| Code | Reason phrase | What it means for the call |
|---|---|---|
| 300 | Multiple Choices | Several targets in Contact, pick one and re-send |
| 301 | Moved Permanently | Re-send to Contact and keep using it |
| 302 | Moved Temporarily | Re-send to Contact for this call |
| 305 | Use Proxy | Re-send through the proxy named in Contact |
| 380 | Alternative Service | Failed, an alternative is in the body |
A 301 has no expiry, so update your routing for good.
A 4xx code means the request itself is the problem, usually on your side.

| Code | Reason phrase | What it means for the call |
|---|---|---|
| 400 | Bad Request | Malformed request |
| 401 | Unauthorized | A UAS or registrar wants credentials |
| 403 | Forbidden | Understood and refused |
| 404 | Not Found | No such user, or a domain the recipient does not handle |
| 407 | Proxy Authentication Required | A proxy wants credentials |
| 408 | Request Timeout | No response in time |
| 480 | Temporarily Unavailable | Reachable but not available right now |
| 486 | Busy Here | Busy at this address |
| 487 | Request Terminated | Cancelled, usually the caller hung up |
| 488 | Not Acceptable Here | The session description was refused |
A 401 on your REGISTER is the registrar challenging you, as in SIP registration with Kamailio, while a 407 comes from a proxy. 483 Too Many Hops means Max-Forwards reached 0, usually a routing loop, and an endpoint that sees 430 Flow Failed should treat it as a 400.
A 5xx code means the far end failed, not your request, so the same request may succeed later or on another server.

| Code | Reason phrase | What it means for the call |
|---|---|---|
| 500 | Server Internal Error | Unexpected failure at the server |
| 501 | Not Implemented | Method not implemented |
| 502 | Bad Gateway | Invalid response from downstream |
| 503 | Service Unavailable | Overloaded or in maintenance, may carry Retry-After |
| 504 | Server Time-out | Upstream server did not respond |
| 505 | Version Not Supported | SIP version not supported |
| 513 | Message Too Large | Too large to process |
| 555 | Push Notification Service Not Supported | Push service unsupported |
| 580 | Precondition Failure | Media preconditions could not be met |
A 501 means the server does not implement your method at all, while a 405 means it knows the method and disallows it here.
A 6xx code means your request will fail anywhere, not only at this address.

| Code | Reason phrase | What it means for the call |
|---|---|---|
| 600 | Busy Everywhere | Busy, no other location will answer |
| 603 | Decline | The callee declined, no alternative available |
| 603 | Network Blocked | Blocked by network analytics |
| 604 | Does Not Exist Anywhere | The user does not exist anywhere |
| 606 | Not Acceptable | Session description or request not acceptable anywhere |
| 607 | Unwanted | A human rejected the call as unwanted |
| 608 | Rejected | An intermediary machine or process rejected it |
Registered codes run from 100 to 608, and twelve of them cover most of what your trunk returns.
Which SIP code are you looking at?
These twelve cover most lines in your trunk CDRs, with the move each one calls for.
| Code | Reason phrase | What to do |
|---|---|---|
| 100 | Trying | Wait |
| 180 | Ringing | Wait, play local ringback if no 183 |
| 183 | Session Progress | Wait and play the early media |
| 200 | OK | Send the ACK and start media |
| 302 | Moved Temporarily | Re-send to the Contact address |
| 401 | Unauthorized | Answer the challenge with credentials |
| 403 | Forbidden | Check credentials, policy and the source IP |
| 404 | Not Found | Check the dialled number and Request-URI domain |
| 408 | Request Timeout | Retry later, unchanged |
| 486 | Busy Here | Accept the outcome |
| 487 | Request Terminated | Accept the outcome, the caller cancelled |
| 503 | Service Unavailable | Retry after Retry-After |
Every registered code in numeric order, including 425 Bad Alert Message, which most lookup pages omit.
| Code | Reason phrase | One-line meaning |
|---|---|---|
| 100 | Trying | Request received, locating the callee |
| 180 | Ringing | Callee is being alerted |
| 181 | Call Is Being Forwarded | Call forwarded elsewhere |
| 182 | Queued | Callee unavailable, call queued |
| 183 | Session Progress | Early media or progress detail |
| 199 | Early Dialog Terminated | An early dialog ended before answer |
| 200 | OK | Request succeeded |
| 202 | Accepted (deprecated) | Accepted for later processing |
| 204 | No Notification | Succeeded, no NOTIFY will follow |
| 300 | Multiple Choices | Several targets in Contact |
| 301 | Moved Permanently | Use the Contact address from now on |
| 302 | Moved Temporarily | Use the Contact address for now |
| 305 | Use Proxy | Send through the proxy in Contact |
| 380 | Alternative Service | Failed, alternative in the body |
| 400 | Bad Request | Malformed request |
| 401 | Unauthorized | Authenticate with the UAS or registrar |
| 402 | Payment Required (reserved) | Reserved for future use |
| 403 | Forbidden | Understood and refused |
| 404 | Not Found | The user does not exist at the domain in the Request-URI, or the domain is not one the recipient handles |
| 405 | Method Not Allowed | Method known but not allowed here |
| 406 | Not Acceptable | No response matches the Accept headers |
| 407 | Proxy Authentication Required | Authenticate with the proxy |
| 408 | Request Timeout | No response from the far end in time |
| 409 | Conflict (deprecated) | RFC 2543 only, not registered |
| 410 | Gone | Resource permanently gone |
| 411 | Length Required (deprecated) | RFC 2543 only, not registered |
| 412 | Conditional Request Failed | Precondition on a PUBLISH not met |
| 413 | Request Entity Too Large | Body too large |
| 414 | Request-URI Too Long | Request-URI too long |
| 415 | Unsupported Media Type | Body format not supported |
| 416 | Unsupported URI Scheme | URI scheme not understood |
| 417 | Unknown Resource-Priority | Resource-Priority value unknown |
| 420 | Bad Extension | A required extension is unknown |
| 421 | Extension Required | Server needs an extension you did not offer |
| 422 | Session Interval Too Small | Session-Expires below the minimum |
| 423 | Interval Too Brief | Expires value too short |
| 424 | Bad Location Information | Location data unusable |
| 425 | Bad Alert Message | Alert-Info content rejected |
| 428 | Use Identity Header | Identity header required and missing |
| 429 | Provide Referrer Identity | Referred-By token missing |
| 430 | Flow Failed | Flow to the registered endpoint failed, proxy use |
| 433 | Anonymity Disallowed | Anonymous requests refused |
| 436 | Bad Identity-Info | Identity-Info header unusable |
| 437 | Unsupported Credential | Identity credential cannot be validated |
| 438 | Invalid Identity Header | Identity signature failed verification |
| 439 | First Hop Lacks Outbound Support | First hop does not support outbound flows |
| 440 | Max-Breadth Exceeded | Too many parallel forks |
| 469 | Bad Info Package | Info-Package not supported |
| 470 | Consent Needed | Recipient consent not granted |
| 480 | Temporarily Unavailable | Reachable but not available now |
| 481 | Call/Transaction Does Not Exist | No matching dialog or transaction |
| 482 | Loop Detected | Request looped back to this server |
| 483 | Too Many Hops | Max-Forwards reached 0 |
| 484 | Address Incomplete | Request-URI incomplete |
| 485 | Ambiguous | Request-URI matched several users |
| 486 | Busy Here | Busy at this address |
| 487 | Request Terminated | Cancelled by a CANCEL or BYE |
| 488 | Not Acceptable Here | Session description refused at this address |
| 489 | Bad Event | Event package not understood |
| 491 | Request Pending | Another request is in progress on this dialog |
| 493 | Undecipherable | Encrypted body cannot be decrypted |
| 494 | Security Agreement Required | Negotiate a security mechanism first |
| 500 | Server Internal Error | Unexpected failure at the server |
| 501 | Not Implemented | Method not implemented |
| 502 | Bad Gateway | Invalid response from downstream |
| 503 | Service Unavailable | Overloaded or in maintenance, check Retry-After |
| 504 | Server Time-out | Upstream server did not respond in time |
| 505 | Version Not Supported | SIP version unsupported |
| 513 | Message Too Large | Message too large to process |
| 555 | Push Notification Service Not Supported | Push service unsupported |
| 580 | Precondition Failure | Media preconditions cannot be met |
| 600 | Busy Everywhere | Busy, no alternative anywhere |
| 603 | Decline | Declined, no alternative anywhere |
| 603 | Network Blocked | Blocked by network analytics, see Reason |
| 604 | Does Not Exist Anywhere | User does not exist anywhere |
| 606 | Not Acceptable | Session description or part of the request not acceptable anywhere |
| 607 | Unwanted | Called human rejected the call |
| 608 | Rejected | Intermediary rejected the call, see Call-Info |
Most "SIP error codes" on a healthy trunk are not errors. 486 Busy Here, 487 Request Terminated, 480 Temporarily Unavailable and 603 Decline describe the called party, not your system, and need no fix.
403 Forbidden is often an authorisation or policy failure on your trunk, and 404, 408, 488 and 503 each point at a cause you can check.

Each cause and check follows the RFC 3261 meaning.
| Code | Likely cause | What to check |
|---|---|---|
| 403 | Authorisation or policy failure, or receiver rejection | Credentials, source IP, outbound policy |
| 404 | Wrong number or unhandled Request-URI domain | Dialled number and Request-URI domain, see SIP DIDs explained |
| 408 | Far end did not answer in time | Far-end reachability and Max-Forwards |
| 480 | Callee reachable but not available | Nothing |
| 486 | Callee busy at this address | Nothing |
| 487 | Caller cancelled before answer | Nothing |
| 488 | Offered codec or session description refused | Offered codecs, including wideband, see HD voice on SIP |
| 503 | Far end overloaded or in maintenance | Retry-After, then retry |
The carrier-specific meaning of 403 and 503 on a Telnyx trunk is on the Telnyx response codes guide.
RFC 3261 states retry behaviour for a few codes:
603 Network Blocked means the network's analytics blocked your call. A 607 Unwanted warns that your next attempt will likely be rejected too. A 608 Rejected should carry a Call-Info header with purpose jwscard and a jCard, so you can dispute the block.
428, 436, 437 and 438 relate to the Identity header used for STIR/SHAKEN. A run of them on your outbound calls means the identity is missing, unreadable or failed verification. Telnyx SIP trunking issues A-level STIR/SHAKEN attestation at the carrier, so your outbound calls go out verified rather than blocked.
The codes come from RFC 3261, the SIP specification, which also created the IANA SIP Parameters registry where every later code is recorded.
Later RFCs added codes, and old equipment on your trunk can still send codes from RFC 2543.
| Source | What it defines | Example codes |
|---|---|---|
| RFC 3261 | The six classes, base codes and the registry | 100, 200, 302, 404, 503, 603 |
| RFC 2543 | Obsolete predecessor, codes marked obsolete | 409, 411 |
| RFC 5626 | Outbound client-to-proxy flows | 430, 439 |
| ATIS-1000099 | Reason header format for network blocking | 603 Network Blocked |
| IANA SIP Parameters registry | Current authoritative list with references | 100 to 608 |
A code absent from the IANA SIP Parameters registry is deprecated.
A response can also carry a Warning header with its own three-digit code, so a 488 with Warning 304 Media type not available tells you which media was refused.
The mix of codes in your CDRs is the fastest read of trunk health. More 503s point at the far end, more 403s or 404s at your configuration, and 603, 607 or 608 at your numbers being treated as spam.

Telnyx runs SIP trunking on a network it owns rather than rents, so you can check a 403 or 503 against the carrier that sent it. A 404 on one of your Telnyx phone numbers means it is not assigned to a connection.
The networks your calls land on set the blocking codes. Telnyx issues STIR/SHAKEN A-level attestation at the carrier, manages CNAM and applies outbound voice profiles against fraud and spam. Usage-based pricing starts at $0.0032 per minute. If you run contact center voice or build voice for ISVs, you place the most exposed volume.
How to set up a SIP trunk
Create a connection and place a first call with the SIP trunk setup guide.
Business SIP trunking
What business SIP trunking replaces and costs.
SIP trunking vs VoIP
Where a trunk ends and a hosted seat begins, in SIP trunking vs VoIP.
Troubleshooting SIP with Wireshark
Capture a failing call when troubleshooting SIP issues.
SIP trunk registration with Kamailio
The 401 challenge and its answer, in SIP registration with Kamailio.
SIP provider comparison
Prices and network ownership across carriers in this SIP provider comparison.
SIP response codes FAQ
Telnyx SIP trunking returns standard SIP response codes from a network Telnyx owns, so when a call fails you know whether to retry, fix your request or leave it.
Get started with SIP trunking
Related articles
SIP DID numbers: what they are and how they work

HIPAA-compliant voice and fax solutions for healthcare

SIP Trunking vs VoIP: What's Actually Different

Telnyx STT against ElevenLabs Scribe on real phone audio

B300 GPU rental price per hour in 2026: what you actually pay

SMS vs MMS Explained for Developers: Limits, Cost and One API
