SIP is basically a call and response protocol. You send a message. You get a response. With most SIP requests, you get a single response.
However, sometimes you may even get multiple responses for a single message.
A SIP response is more than simply an acknowledgement to a request. It can, and often does, carry a lot of useful information.
SIP responses specify a three-digit integer response code.
4xx—Client Failure Responses
5xx—Server Failure Responses
6xx—Global Failure Responses
See below for a list of all known SIP responses.
1xx = Informational SIP Responses
100 Trying – Extended search is being perform 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 the call.
181 Call Is Being Forwarded – Server can optionally send this response to indicate a call is being forwarded.
182 Queued – Indicates that the destination was temporarily unavailable, the server has queued the call until 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 dialog has been terminated.
2xx = Success Responses
200 OK – Shows that the request was successful
202 Accepted – Indicates that the request has been accepted for processing , but the processing has not been completed.
204 No Notification – Indicates that the request was successful but no response will be received.
3xx = Redirection Responses
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. The client should update any records of the original Request-URI with the new value
302 Moved Temporarily – The client should try at the address in the Contact field. If an Expires field is present, the client may cache the result for that period of time
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.
4xx = Request Failures
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 fulfill 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).
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 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 “outbound” feature.
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 dialog 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 dialog.
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.
5xx = Server Errors
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.
580 Precondition Failure – The server is unable or unwilling to meet some constraints specified in the offer.
6xx = Global Failures
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.