# 8. - SIP Messages - Response Codes

SIP response codes are made up of 3 digits, first digit in the code indicates the class of the response and the other two digits are used to represent a reason or 'reason phrase'.

<table border="1" id="bkmrk-1xx-this-is-an-infor" style="border-collapse: collapse; width: 100%; height: 178.8px;"><colgroup><col style="width: 5.4939%;"></col><col style="width: 94.6297%;"></col></colgroup><tbody><tr style="height: 29.8px;"><td style="height: 29.8px;">1XX  
</td><td style="height: 29.8px;">This is an informational response. The request was received and is still being processed  
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">2XX  
</td><td style="height: 29.8px;">A 2XX response is a success response, the action was received understood and accepted.  
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">3XX  
</td><td style="height: 29.8px;">A 3XX response is a redirection response, further action needs to be taken in order to complete the request.  
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">4XX  
</td><td style="height: 29.8px;">A 4XX response is a client error response, for some reason (such as bad syntax) the request cannot be fulfilled at this server.  
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">5XX  
</td><td style="height: 29.8px;">A 5XX response is a server error response, for some reason the server cannot fulfill a valid request.  
</td></tr><tr style="height: 29.8px;"><td style="height: 29.8px;">6XX  
</td><td style="height: 29.8px;">A 6XX response is a global error, the request being made is invalid at any server.</td></tr></tbody></table>

## 1xx = Informational SIP responses

<div class="fusion-text fusion-text-2" id="bkmrk-100-trying---extende">- **100 Trying** - Extended search is being performed so a forking proxy must send a 100 Trying response.
- **180 Ringing** - The Destination User Agent has received the INVITE message and is alerting the user of call.
- **181 Call Is Being Forwarded** - Optional, send by Server to indicate a call is being forwarded.
- **182 Queued** - Destination was temporarily unavailable, the server has queued the call until the destination is available.
- **183 Session Progress** - This response may be used to send extra information for a call which is still being set up.
- **199 Early Dialog Terminated** - Send by the User Agent Server to indicate that an early dialogue has been terminated.

</div>## 2xx = Success responses

<div class="fusion-text fusion-text-3" id="bkmrk-200-ok---shows-that-">- **200 OK** - Shows that the request was successful.
- **202 Accepted** - Indicates that the request has been accepted for processing, mainly used for referrals.
- **204 No Notification** - Indicates that the request was successful but no response will be received.

</div>## 3xx = Redirection responses

<div class="fusion-text fusion-text-4" id="bkmrk-300-multiple-choices">- **300 Multiple Choices** - The address resolved to one of several options for the user or client to choose between.
- **301 Moved Permanently** - The original Request URI is no longer valid, the new address is given in the Contact header.
- **302 Moved Temporarily** - The client should try at the address in the Contact field.
- **305 Use Proxy** - The Contact field details a proxy that must be used to access the requested destination.
- **380 Alternative Service** - The call failed, but alternatives are detailed in the message body.

</div>## 4xx = Request failures

<div class="fusion-text fusion-text-5" id="bkmrk-400-bad-request--%C2%A0th">- **400 Bad Request** - The request could not be understood due to malformed syntax.
- **401 Unauthorized** - The request requires user authentication. This response is issued by UASs and registrars.
- **402 Payment Required** - (Reserved for future use).
- **403 Forbidden** - The server understood the request, but is refusing to fulfil it.
- **404 Not Found** - The server has definitive information that the user does not exist at the (User not found).
- **405 Method Not Allowed** - The method specified in the Request-Line is understood, but not allowed.
- **406 Not Acceptable** - The resource is only capable of generating responses with unacceptable content.
- **407 Proxy Authentication Required** - The request requires user authentication.
- **408 Request Timeout** - Couldn't find the user in time.
- **409 Conflict** - User already registered (deprecated).
- **410 Gone** - The user existed once but is not available here any more.
- **411 Length Required** - The server will not accept the request without a valid content length (deprecated).
- **412 Conditional Request Failed** - The given precondition has not been met.
- **413 Request Entity Too Large** - Request body too large.
- **414 Request URI Too Long** - Server refuses to service the request, the Req-URI is longer than the server can interpret.
- **415 Unsupported Media Type** - Request body is in a non-supported format.
- **416 Unsupported URI Scheme** - Request-URI is unknown to the server.
- **417 Uknown Resource-Priority** - There was a resource-priority option tag, but no Resource-Priority header.
- **420 Bad Extension** - Bad SIP Protocol Extension used, not understood by the server.
- **421 Extension Required** - The server needs a specific extension not listed in the Supported header.
- **422 Session Interval Too Small** - The request contains a Session-Expires header field with a duration below the minimum.
- **423 Interval Too Brief** - Expiration time of the resource is too short.
- **424 Bad Location Information** - The request's location content was malformed or otherwise unsatisfactory.
- **428 Use Identity Header** - The server policy requires an Identity header, and one has not been provided.
- **429 Provide Referrer Identity** - The server did not receive a valid Referred-By token on the request.
- **430 Flow Failed** - A specific flow to a user agent has failed, although other flows may succeed.
- **433 Anonymity Disallowed** - The request has been rejected because it was anonymous.
- **436 Bad Identity Info** - The request has an Identity-Info header and the URI scheme contained cannot be de-referenced.
- **437 Unsupported Certificate** - The server was unable to validate a certificate for the domain that signed the request.
- **438 Invalid Identity Header** - Server obtained a valid certificate used to sign a request, was unable to verify the signature.
- **439 First Hop Lacks Outbound Support** - The first outbound proxy doesn't support the "outbound" feature.
- **440 Max-Breadth Exceeded** - If a SIP proxy determined a response context had insufficient Incoming Max-Breadth to carry out a desired parallel fork, and the proxy is unwilling/unable to compensate by forking serially or sending a redirect, that proxy MUST return a 440 response. A client receiving a 440 response can infer that its request did not reach all possible destinations.
- **469 Bad Info Package** - If a SIP UA receives an INFO request associated with an Info Package that the UA has not indicated willingness to receive, the UA MUST send a 469 response, which contains a Recv-Info header field with Info Packages for which UA is willing to receive INFO requests.
- **470 Consent Needed** - The source of the request did not have the permission of the recipient to make such a request.
- **480 Temporarily Unavailable** - Callee currently unavailable.
- **481 Call/Transaction Does Not Exist** - Server received a request that does not match any dialogue or transaction.
- **482 Loop Detected** - Server has detected a loop.
- **483 Too Many Hops** - Max-Forwards header has reached the value '0'.
- **484 Address Incomplete** - Request-URI incomplete.
- **485 Ambiguous** - Request-URI is ambiguous.
- **486 Busy Here** - Callee is busy.
- **487 Request Terminated** - Request has terminated by bye or cancel.
- **488 Not Acceptable Here** - Some aspects of the session description of the Request-URI are not acceptable.
- **489 Bad Event** - The server did not understand an event package specified in an Event header field.
- **491 Request Pending** - Server has some pending request from the same dialogue.
- **493 Undecipherable** - UndecipherableRequest contains an encrypted MIME body, which recipient can not decrypt.
- **494 Security Agreement Required** - The server has received a request that requires a negotiated security mechanism.

</div>## 5xx = Server errors

<div class="fusion-text fusion-text-6" id="bkmrk-500-server-internal-">- **500 Server Internal Error** - The server could not fulfill the request due to some unexpected condition.
- **501 Not Implemented** - The SIP request method is not implemented here.
- **502 Bad Gateway** - The server, received an invalid response from a downstream server while trying to fulfill a request.
- **503 Service Unavailable** - The server is in maintenance or is temporarily overloaded and cannot process the request.
- **504 Server Time-out** - The server tried to access another server while trying to process a request, no timely response.
- **505 Version Not Supported** - The SIP protocol version in the request is not supported by the server.
- **513 Message Too Large** - The request message length is longer than the server can process.
- **555 Push Notification Service Not Supported** - The server does not support the push notification serviced specified in the pn-provider SIP URI parameter.
- **580 Precondition Failure** - The server is unable or unwilling to meet some constraints specified in the offer.

</div>## 6xx = Global failures

<div class="fusion-text fusion-text-7" id="bkmrk-600-busy-everywhere-">- **600 Busy Everywhere** - All possible destinations are busy.
- **603 Decline** - Destination cannot/doen't wish to participate in the call, no alternative destinations.
- **604 Does Not Exist Anywhere** - The server has authoritative information that the requested user does not exist anywhere.
- **606 Not Acceptable** - The user's agent was contacted successfully but some aspects of the session description were not acceptable.
- **607 Unwanted** - The called party did not want his call from the calling party. Future attempts from the calling party are likely to be similarly rejected.

</div>