SIP – Response Codes and SIP- header methods
A SIP response is a message generated by a SFB server or SIP server to reply a request generated by a SFB client
SIP – Response Codes
1xx = Informational – SIP response Codes
- 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.
2xx = Success responses – SIP response Codes
- 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.
3xx = Redirection responses – SIP response Codes
- 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.
4xx = Request failures – SIP response Codes
- 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.
5xx = Server errors – SIP response Codes
- 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.
6xx = Global failures – SIP response Codes
- 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.
SIP- header methods:
- INVITE: Establishes a session
- ACK: Confirms INVITE request
- BYE: Ends a session
- CANCEL: Cancels establishing a session
- REGISTER: Communicates user location
- OPTIONS: Communicates info about the calling/receiving SIP phones’ capabilities
- PRACK = Provisional acknowledgment
- SUBSCRIBE = Subscribes to notifications
- NOTIFY = Notifies the subscriber of a new event
- PUBLISH = Publishes an event to the server
- INFO = Sends mid-session info
- REFER = Asks the callee to start a call transfer
- MESSAGE = Sends an instant message
- UPDATE = Changes the session’s state
Conclusion:
Post reading above blog I can understand SIP – Response Codes and SIP header methods successfully