public interface Response extends Message
The Status-Code is a 3-digit integer result code that indicates the outcome of the attempt to understand and satisfy the Request. The Reason-Phrase is intended to give a short textual description of the Status-Code. The Status-Code is intended for use by automata, whereas the Reason-Phrase is intended for the human user. The client is not required to examine or display the Reason-Phrase.
RFC3261 defines status codes in the following classes:
100rel
MUST NOT be present in any requests excepting INVITE,
although other extensions to SIP may allow its usage with other request
methods. If the UAC does not wish to insist on usage of reliable provisional
responses, but merely indicate that it supports them if the UAS needs to send
one, a Supported header MUST be included in the request with the option tag
100rel
. The UAC SHOULD include this in all INVITE requests.
A UAS MAY send any non-100 provisional response to INVITE reliably, so long
as the initial INVITE request (the request whose provisional response is
being sent reliably) contained a Supported header field with the option tag
100rel
. The provisional response to be sent reliably is
constructed by the UAS and MUST contain a Require header field containing
the option tag 100rel
, and MUST include an RSeq header field.
Retransmissions of the reliable provisional response cease when a
matching PRACK is received by the UA core. PRACK is like any other request
within a dialog, and is treated likewise. A matching PRACK is defined as one
within the same dialog as the response, and whose method, CSeq-num, and
RSeq-num in the RAck header field match, respectively, the method and
sequence number from the CSeq and the sequence number from the RSeq of the
reliable provisional response.
SIP applications are not required to understand the meaning of all registered response codes, though such understanding is obviously desirable. However, applications must understand the class of any status code, as indicated by the first digit and outlined above. Applications treat any unrecognized status code as being equivalent to the x00 status code of that class, with the exception that an unrecognized status code must not be cached. For example, if a client receives an unrecognized status code of 431, it can safely assume that there was something wrong with its request and treat the Response as if it had received a BAD_REQUEST(400) status code. In such cases, user agents should present to the user the message body returned with the Response, since that message body is likely to include human-readable information which will explain the unusual status.
This specification supports the response codes defined in RFC3261 and also the response code extensions for the event notification framework and PUBLISH, documented in RFC3265 and RFC3909, these are highlighted in italic. Class status codes (x00, i.e. 100) are are highlighted in bold.
Class | Code |
PROVISIONAL (1xx) |
|
SUCCESS (2xx) |
|
REDIRECTION (3xx) |
|
CLIENT_ERROR (4xx) |
|
SERVER_ERROR (5xx) |
|
GLOBAL_ERROR (6xx) |
|
Modifier and Type | Field and Description |
---|---|
static int |
ACCEPTED
The Acceptable extension response code signifies that the request has
been accepted for processing, but the processing has not been completed.
|
static int |
ADDRESS_INCOMPLETE
The server received a request with a Request-URI that was incomplete.
|
static int |
ALTERNATIVE_SERVICE
The call was not successful, but alternative services are possible.
|
static int |
AMBIGUOUS
The Request-URI was ambiguous.
|
static int |
BAD_EVENT
The Bad Event extension response code is used to indicate that the
server did not understand the event package specified in a "Event"
header field.
|
static int |
BAD_EXTENSION
The server did not understand the protocol extension specified in a
Proxy-Require or Require header field.
|
static int |
BAD_GATEWAY
The server, while acting as a gateway or proxy, received an invalid
response from the downstream server it accessed in attempting to
fulfill the request.
|
static int |
BAD_REQUEST
The request could not be understood due to malformed syntax.
|
static int |
BUSY_EVERYWHERE
The callee's end system was contacted successfully but the callee is
busy and does not wish to take the call at this time.
|
static int |
BUSY_HERE
The callee's end system was contacted successfully, but the callee is
currently not willing or able to take additional calls at this end
system.
|
static int |
CALL_IS_BEING_FORWARDED
A server MAY use this status code to indicate that the call is being
forwarded to a different set of destinations.
|
static int |
CALL_OR_TRANSACTION_DOES_NOT_EXIST
This status indicates that the UAS received a request that does not
match any existing dialog or transaction.
|
static int |
CONDITIONAL_REQUEST_FAILED
The server is refusing to service the PUBLISH request because the
entity-tag in the SIP-If-Match header does not match with existing
event state.
|
static int |
DECLINE
The callee's machine was successfully contacted but the user explicitly
does not wish to or cannot participate.
|
static int |
DOES_NOT_EXIST_ANYWHERE
The server has authoritative information that the user indicated in the
Request-URI does not exist anywhere.
|
static int |
EXTENSION_REQUIRED
The UAS needs a particular extension to process the request, but this
extension is not listed in a Supported header field in the request.
|
static int |
FORBIDDEN
The server understood the request, but is refusing to fulfill it.
|
static int |
GONE
The requested resource is no longer available at the server and no
forwarding address is known.
|
static int |
INTERVAL_TOO_BRIEF
The server is rejecting the request because the expiration time of the
resource refreshed by the request is too short.
|
static int |
LOOP_DETECTED
The server has detected a loop.
|
static int |
MESSAGE_TOO_LARGE
The server was unable to process the request since the message length
exceeded its capabilities.
|
static int |
METHOD_NOT_ALLOWED
The method specified in the Request-Line is understood, but not allowed
for the address identified by the Request-URI.
|
static int |
MOVED_PERMANENTLY
The user can no longer be found at the address in the Request-URI, and
the requesting client SHOULD retry at the new address given by the
Contact header field.
|
static int |
MOVED_TEMPORARILY
The requesting client SHOULD retry the request at the new address(es)
given by the Contact header field.
|
static int |
MULTIPLE_CHOICES
The address in the request resolved to several choices, each with its
own specific location, and the user (or UA) can select a preferred
communication end point and redirect its request to that location.
|
static int |
NOT_ACCEPTABLE
The resource identified by the request is only capable of generating
response entities that have content characteristics not acceptable
according to the Accept header field sent in the request.
|
static int |
NOT_ACCEPTABLE_HERE
The response has the same meaning as 606 (Not Acceptable), but only
applies to the specific resource addressed by the Request-URI and the
request may succeed elsewhere.
|
static int |
NOT_FOUND
The server has definitive information that the user does not exist at
the domain specified in the Request-URI.
|
static int |
NOT_IMPLEMENTED
The server does not support the functionality required to fulfill the
request.
|
static int |
OK
The request has succeeded.
|
static int |
PAYMENT_REQUIRED
Reserved for future use.
|
static int |
PROXY_AUTHENTICATION_REQUIRED
This code is similar to 401 (Unauthorized), but indicates that the client
MUST first authenticate itself with the proxy.
|
static int |
QUEUED
The called party is temporarily unavailable, but the server has decided
to queue the call rather than reject it.
|
static int |
REQUEST_ENTITY_TOO_LARGE
The server is refusing to process a request because the request
entity-body is larger than the server is willing or able to process.
|
static int |
REQUEST_PENDING
The request was received by a UAS that had a pending request within
the same dialog.
|
static int |
REQUEST_TERMINATED
The request was terminated by a BYE or CANCEL request.
|
static int |
REQUEST_TIMEOUT
The server could not produce a response within a suitable amount of
time, for example, if it could not determine the location of the user
in time.
|
static int |
REQUEST_URI_TOO_LONG
The server is refusing to service the request because the Request-URI
is longer than the server is willing to interpret.
|
static int |
RINGING
The User Agent receiving the INVITE is trying to alert the user.
|
static int |
SERVER_INTERNAL_ERROR
The server encountered an unexpected condition that prevented it from
fulfilling the request.
|
static int |
SERVER_TIMEOUT
The server did not receive a timely response from an external server
it accessed in attempting to process the request.
|
static int |
SERVICE_UNAVAILABLE
The server is temporarily unable to process the request due to a
temporary overloading or maintenance of the server.
|
static int |
SESSION_NOT_ACCEPTABLE
The user's agent was contacted successfully but some aspects of the
session description such as the requested media, bandwidth, or addressing
style were not acceptable.
|
static int |
SESSION_PROGRESS
The 183 (Session Progress) response is used to convey information about
the progress of the call that is not otherwise classified.
|
static int |
TEMPORARILY_UNAVAILABLE
The callee's end system was contacted successfully but the callee is
currently unavailable (for example, is not logged in, logged in but in a
state that precludes communication with the callee, or has activated the
"do not disturb" feature).
|
static int |
TOO_MANY_HOPS
The server received a request that contains a Max-Forwards header field
with the value zero.
|
static int |
TRYING
This response indicates that the request has been received by the
next-hop server and that some unspecified action is being taken on
behalf of this call (for example, a database is being consulted).
|
static int |
UNAUTHORIZED
The request requires user authentication.
|
static int |
UNDECIPHERABLE
The request was received by a UAS that contained an encrypted MIME body
for which the recipient does not possess or will not provide an
appropriate decryption key.
|
static int |
UNSUPPORTED_MEDIA_TYPE
The server is refusing to service the request because the message body
of the request is in a format not supported by the server for the
requested method.
|
static int |
UNSUPPORTED_URI_SCHEME
The server cannot process the request because the scheme of the URI in
the Request-URI is unknown to the server.
|
static int |
USE_PROXY
The requested resource MUST be accessed through the proxy given by the
Contact field.
|
static int |
VERSION_NOT_SUPPORTED
The server does not support, or refuses to support, the SIP protocol
version that was used in the request.
|
Modifier and Type | Method and Description |
---|---|
String |
getReasonPhrase()
Gets the reason phrase of this Response message.
|
int |
getStatusCode()
Gets the integer value of the status code of Response, which identifies
the outcome of the request to which this response is related.
|
void |
setReasonPhrase(String reasonPhrase)
Sets reason phrase of Response.
|
void |
setStatusCode(int statusCode)
Sets the status-code of Response.
|
addFirst, addHeader, addLast, clone, equals, getContent, getContentDisposition, getContentEncoding, getContentLanguage, getContentLength, getExpires, getHeader, getHeaderNames, getHeaders, getRawContent, getSIPVersion, getUnrecognizedHeaders, hashCode, removeContent, removeFirst, removeHeader, removeLast, setContent, setContentDisposition, setContentEncoding, setContentLanguage, setContentLength, setExpires, setHeader, setSIPVersion, toString
static final int TRYING
static final int RINGING
static final int CALL_IS_BEING_FORWARDED
static final int QUEUED
static final int SESSION_PROGRESS
static final int OK
static final int ACCEPTED
static final int MULTIPLE_CHOICES
The response MAY include a message body containing a list of resource characteristics and location(s) from which the user or UA can choose the one most appropriate, if allowed by the Accept request header field. However, no MIME types have been defined for this message body.
The choices SHOULD also be listed as Contact fields. Unlike HTTP, the SIP response MAY contain several Contact fields or a list of addresses in a Contact field. User Agents MAY use the Contact header field value for automatic redirection or MAY ask the user to confirm a choice. However, this specification does not define any standard for such automatic selection.
This status response is appropriate if the callee can be reached at several different locations and the server cannot or prefers not to proxy the request.
static final int MOVED_PERMANENTLY
static final int MOVED_TEMPORARILY
The duration of the validity of the Contact URI can be indicated through an Expires header field or an expires parameter in the Contact header field. Both proxies and User Agents MAY cache this URI for the duration of the expiration time. If there is no explicit expiration time, the address is only valid once for recursing, and MUST NOT be cached for future transactions.
If the URI cached from the Contact header field fails, the Request-URI from the redirected request MAY be tried again a single time. The temporary URI may have become out-of-date sooner than the expiration time, and a new temporary URI may be available.
static final int USE_PROXY
static final int ALTERNATIVE_SERVICE
static final int BAD_REQUEST
static final int UNAUTHORIZED
static final int PAYMENT_REQUIRED
static final int FORBIDDEN
static final int NOT_FOUND
static final int METHOD_NOT_ALLOWED
static final int NOT_ACCEPTABLE
static final int PROXY_AUTHENTICATION_REQUIRED
static final int REQUEST_TIMEOUT
static final int GONE
static final int CONDITIONAL_REQUEST_FAILED
static final int REQUEST_ENTITY_TOO_LARGE
static final int REQUEST_URI_TOO_LONG
static final int UNSUPPORTED_MEDIA_TYPE
static final int UNSUPPORTED_URI_SCHEME
static final int BAD_EXTENSION
static final int EXTENSION_REQUIRED
A UAS SHOULD NOT use this response unless it truly cannot provide any useful service to the client. Instead, if a desirable extension is not listed in the Supported header field, servers SHOULD process the request using baseline SIP capabilities and any extensions supported by the client.
static final int INTERVAL_TOO_BRIEF
static final int TEMPORARILY_UNAVAILABLE
This status is also returned by a redirect or proxy server that recognizes the user identified by the Request-URI, but does not currently have a valid forwarding location for that user.
static final int CALL_OR_TRANSACTION_DOES_NOT_EXIST
static final int LOOP_DETECTED
static final int TOO_MANY_HOPS
static final int ADDRESS_INCOMPLETE
static final int AMBIGUOUS
static final int BUSY_HERE
static final int REQUEST_TERMINATED
static final int NOT_ACCEPTABLE_HERE
static final int BAD_EVENT
static final int REQUEST_PENDING
static final int UNDECIPHERABLE
static final int SERVER_INTERNAL_ERROR
static final int NOT_IMPLEMENTED
static final int BAD_GATEWAY
static final int SERVICE_UNAVAILABLE
A client (proxy or UAC) receiving a 503 (Service Unavailable) SHOULD attempt to forward the request to an alternate server. It SHOULD NOT forward any other requests to that server for the duration specified in the Retry-After header field, if present.
Servers MAY refuse the connection or drop the request instead of responding with 503 (Service Unavailable).
static final int SERVER_TIMEOUT
static final int VERSION_NOT_SUPPORTED
static final int MESSAGE_TOO_LARGE
static final int BUSY_EVERYWHERE
static final int DECLINE
static final int DOES_NOT_EXIST_ANYWHERE
static final int SESSION_NOT_ACCEPTABLE
A message body containing a description of media capabilities MAY be present in the response, which is formatted according to the Accept header field in the INVITE (or application/sdp if not present), the same as a message body in a 200 (OK) response to an OPTIONS request.
It is hoped that negotiation will not frequently be needed, and when a new user is being invited to join an already existing conference, negotiation may not be possible. It is up to the invitation initiator to decide whether or not to act on a 606 (Not Acceptable) response.
This status response is returned only if the client knows that no other end point will answer the request. This specification renames this status code from NOT_ACCEPTABLE as in RFC3261 to SESSION_NOT_ACCEPTABLE due to it conflict with 406 (Not Acceptable) defined in this interface.
void setStatusCode(int statusCode) throws ParseException
statusCode
- the new integer value of the status code.ParseException
- which signals that an error has been reached
unexpectedly while parsing the statusCode value.int getStatusCode()
void setReasonPhrase(String reasonPhrase) throws ParseException
reasonPhrase
- the new string value of the reason phrase.ParseException
- which signals that an error has been reached
unexpectedly while parsing the reasonPhrase value.String getReasonPhrase()
Copyright © 2018. All Rights Reserved.