Skip navigation links


javax.servlet.sip
Interface SipServletResponse

All Superinterfaces:
java.lang.Cloneable, SipServletMessage

public interface SipServletResponse
extends SipServletMessage

Represents SIP responses. Instances of this class are passed to servlets when the container receives incoming SIP responses and also, servlets acting as UA servers or proxies generates SIP responses of their own by creating SipServletResponses.

SIP responses has a three-digit status code that indicates the outcome of the corresponding request. Responses with a status code in the range of 100-199 (1xx's) are called provisional or informational and indicate progress in processing of the request. Any response with a status code of 200 or higher is a final response. A UA server may send only one final response per request but this may be preceeded by any number of provisional responses.

2xx responses indicate a successful outcome while 3xx-6xx indicate a variety of non-success conditions.

The summary of status codes is [RFC 3261]:

Note: Because of a change in Servlet spec 2.4 the setCharacterEncoding() does NOT throw the java.io.UnsupportedEncodingException as derived from SipServletMessage.setCharacterEncoding(String) but inherits a more generic setCharacterEncoding() method from the javax.servlet.ServletResponse.


Nested Class Summary

 

Nested classes/interfaces inherited from interface javax.servlet.sip.SipServletMessage
SipServletMessage.HeaderForm

 

Field Summary
static int SC_ACCEPTED
          Status code (202) indicating that the request has been accepted for processing, but the processing has not been completed.
static int SC_ADDRESS_INCOMPLETE
          Status code (484) indicating that the server received a request with a To (Section 6.37) address or Request-URI that was incomplete.
static int SC_ALTERNATIVE_SERVICE
          Status code (380) indicating alternative service.
static int SC_AMBIGUOUS
          Status code (485) indicating that the callee address provided in the request was ambiguous.
static int SC_BAD_EVENT
          Status code (489) indicating that the server did not understand the event package specified in a "Event" header field.
static int SC_BAD_EXTENSION
          Status code (420) indicating that the server did not understand the protocol extension specified in a Require (Section 6.30) header field.
static int SC_BAD_GATEWAY
          Status code (502) indicating that 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 SC_BAD_IDENTITY_INFO
          Status code (436) indicating that the Identity-Info header contains a URI that cannot be dereferenced by the verifier (either the URI scheme is unsupported by the verifier, or the resource designated by the URI is otherwise unavailable).
static int SC_BAD_REQUEST
          Status code (400) indicating Bad Request.
static int SC_BUSY_EVERYWHERE
          Status code (600) indicating that 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 SC_BUSY_HERE
          Status code (486) indicating that the callee's end system was contacted successfully but the callee is curently not willing or able to take additional call.
static int SC_CALL_BEING_FORWARDED
          Status code (181) indicating the call is being forwarded.
static int SC_CALL_LEG_DONE
          Status code (481) indicating Call Leg/Transaction does not exist.
static int SC_CALL_QUEUED
          Status code (182) indicating the call is queued.
static int SC_CONDITIONAL_REQUEST_FAILED
          Status code (412) indicating that the precondition given for the request has failed.
static int SC_DECLINE
          Status code (603) indicating that the callee's machine was successfully contacted but the user explicily does not wish to or cannot participate.
static int SC_DOES_NOT_EXIT_ANYWHERE
          Status code (604) indicating that the server has authoritative information that the user indicated in the To request field does not exist anywhere.
static int SC_EXTENSION_REQUIRED
          Status code (421) indicating that 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 SC_FORBIDDEN
          Status code (403) indicating that the caller is forbidden to make such requests.
static int SC_GONE
          Status code (410) indicating that the requested resource is no longer available at the server an no forwarding address is known.
static int SC_INTERVAL_TOO_BRIEF
          Status code (423) indicating that the server is rejecting the request because the expiration time of the resource refreshed by the request is too short.
static int SC_INVALID_IDENTITY_HEADER
          Status code (438) indicating that the verifier receives a message with an Identity signature that does not correspond to the digest-string calculated by the verifier.
static int SC_LOOP_DETECTED
          Status code (482) indicating that the server received a request with a Via (Section 6.40) path containing itself.
static int SC_MESSAGE_TOO_LARGE
          Status code (513) indicating that the server was unable to process the request since the message length exceeded its capabilities.
static int SC_METHOD_NOT_ALLOWED
          Status code (405) indicating that the method specified in the Request-Line is not allowed for the address identified byt the Request-URI.
static int SC_MOVED_PERMANENTLY
          Status code (301) indicating that the callee has moved permanantly.
static int SC_MOVED_TEMPORARILY
          Status code (302) indicating that the callee has moved temporarily.
static int SC_MULTIPLE_CHOICES
          Status code (300) indicating Multiple Choices.
static int SC_NOT_ACCEPTABLE
          Status code (406) indicating the the resource identified by the request is only capable of generating response entities which have content characteristics not acceptable according to the accept headers sent in the request.
static int SC_NOT_ACCEPTABLE_ANYWHERE
          Status code (606) indicating that 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 SC_NOT_ACCEPTABLE_HERE
          Status code (488) indicating that 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 SC_NOT_FOUND
          Status code (404) indicating that the server had definitive information that the user does not exist at the domain specified in the Request-URI.
static int SC_NOT_IMPLEMENTED
          Status code (501) indicating that the server does not support the functionality required to fulfill the request.
static int SC_OK
          Status code (200) indicating the request succeeded normally.
static int SC_PAYMENT_REQUIRED
          Status code (402) indicating that the caller needs to make a payment.
static int SC_PRECONDITION_FAILURE
          Status code (580) indicating failure to meet certain preconditions.
static int SC_PROVIDE_REFERER_IDENTITY
          Status code (429) indicating that the referee must provide a valid Referred-By token.
static int SC_PROXY_AUTHENTICATION_REQUIRED
          Status code (407) indicating that the client MUST first authenticate itself with the proxy.
static int SC_REQUEST_ENTITY_TOO_LARGE
          Status code (413) indicating that the server si refusing to process a request becaus the request entity is larger than the server is willing or able to process.
static int SC_REQUEST_PENDING
          Status code (491) indicating that the request was received by a UAS that had a pending request within the same dialog.
static int SC_REQUEST_TERMINATED
          Status code (487) indicating that the request was terminated by a BYE or CANCEL request.
static int SC_REQUEST_TIMEOUT
          Status code (408) indicating that the server could not produce a response, e.g., a user location, within the time indicated in the Expires request-header field.
static int SC_REQUEST_URI_TOO_LONG
          Status code (414) indicating that the server if refusing to service the request because the Request-URI is longer than the server is willing to interpret.
static int SC_RINGING
          Status code (180) indicating the server has located the callee, and callee user agent is Ringing the callee.
static int SC_SECURITY_AGREEMENT_REQUIRED
          Status code (494) indicating that the client must initiate a security mechanism as defined in RFC 3329.
static int SC_SERVER_INTERNAL_ERROR
          Status code (500) indicating that the server encountered an unexpected condition that prevented it from fulfilling the request.
static int SC_SERVER_TIMEOUT
          Status code (504) indicating that the server did not receive a timely response from an external server it accessed in attempting to process the request.
static int SC_SERVICE_UNAVAILABLE
          Status code (503) indicating that the server is currently unable to handle the request due to a temporary overloading or maintenance of the server.
static int SC_SESSION_INTERVAL_TOO_SMALL
          Status code (422) indicating that a request contained a Session-Expires header field with a duration below the minimum timer for the server.
static int SC_SESSION_PROGRESS
          Status code (183) carries miscellaneous call progress information.
static int SC_TEMPORARLY_UNAVAILABLE
          Status code (480) indicating that the callee's end system was contacted successfully but the callee is currently unavailable (e.g., not logged in or logged in such a manner as to preclude communication with the callee).
static int SC_TOO_MANY_HOPS
          Status code (483) indicating that the server received a request that contains more Via entries (hops) (Section 6.40) than allowed by the Max-Forwards (Section 6.23) header field.
static int SC_TRYING
          Status code (100) indicating the server is trying to locate the callee.
static int SC_UNAUTHORIZED
          Status code (401) indicating that the caller is unauthorized to make this request.
static int SC_UNDECIPHERABLE
          Status code (493) indicating that 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 SC_UNSUPPORTED_CERTIFICATE
          Status code (437) indicating that the verifier cannot validate the certificate referenced by the URI of the Identity-Info header, because, for example, the certificate is self-signed, or signed by a root certificate authority for whom the verifier does not possess a root certificate.
static int SC_UNSUPPORTED_MEDIA_TYPE
          Status code (415) indicating that the server is refusing to service the request because the message body of the request is in a format not supported by the requested resource for the requested method.
static int SC_UNSUPPORTED_URI_SCHEME
          Status code (416) indicating that the server cannot process the request because the scheme of the URI in the Request-URI is unknown to the server.
static int SC_USE_IDENTITY_HEADER
          Status code (428) indicating that the request should be re-sent with an Identity header.
static int SC_USE_PROXY
          Status code (305) indicating that he call can be better handled by the specified proxy server.
static int SC_VERSION_NOT_SUPPORTED
          Status code (505) indicating that the server does not support, the SIP protocol version that was used in the request message.

 

Method Summary
 SipServletRequest createAck()
          Returns an ACK request object corresponding to this response.
 SipServletRequest createPrack()
          Creates a PRACK request object corresponding to this response.
 java.util.Iterator<java.lang.String> getChallengeRealms()
          Returns an Iterator over all the realms associated with this challenge response.
 ServletOutputStream getOutputStream()
          Always returns null.
 Proxy getProxy()
          Returns the Proxy object associated with the transaction of this SIP response object.
 ProxyBranch getProxyBranch()
          Retruns the ProxyBranch object associated with the transaction of this SIP response object.
 java.lang.String getReasonPhrase()
          Returns the reason phrase for this response object.
 SipServletRequest getRequest()
          Returns the request associated with this response.
 int getStatus()
          Returns the status code of this response object.
 java.io.PrintWriter getWriter()
          Always returns null.
 boolean isBranchResponse()
          Returns true if this is an intermediate final response that arrived on a ProxyBranch.
 void send()
          Causes this response to be sent.
 void sendReliably()
          Requests that this response be sent reliably using the 100rel extension defined in RFC 3262.
 void setStatus(int statusCode)
          Sets the status code of this response object.
 void setStatus(int statusCode, java.lang.String reasonPhrase)
          Sets the status code and reason phrase of this response object.

 

Methods inherited from interface javax.servlet.sip.SipServletMessage
addAcceptLanguage, addAddressHeader, addHeader, addParameterableHeader, getAcceptLanguage, getAcceptLanguages, getAddressHeader, getAddressHeaders, getApplicationSession, getApplicationSession, getAttribute, getAttributeNames, getCallId, getCharacterEncoding, getContent, getContentLanguage, getContentLength, getContentType, getExpires, getFrom, getHeader, getHeaderForm, getHeaderNames, getHeaders, getInitialRemoteAddr, getInitialRemotePort, getInitialTransport, getLocalAddr, getLocalPort, getMethod, getParameterableHeader, getParameterableHeaders, getProtocol, getRawContent, getRemoteAddr, getRemotePort, getRemoteUser, getSession, getSession, getTo, getTransport, getUserPrincipal, isCommitted, isSecure, isUserInRole, removeAttribute, removeHeader, setAcceptLanguage, setAddressHeader, setAttribute, setCharacterEncoding, setContent, setContentLanguage, setContentLength, setContentType, setExpires, setHeader, setHeaderForm, setParameterableHeader

 

Field Detail

SC_TRYING

static final int SC_TRYING
Status code (100) indicating the server is trying to locate the callee.
See Also:
Constant Field Values

SC_RINGING

static final int SC_RINGING
Status code (180) indicating the server has located the callee, and callee user agent is Ringing the callee.
See Also:
Constant Field Values

SC_CALL_BEING_FORWARDED

static final int SC_CALL_BEING_FORWARDED
Status code (181) indicating the call is being forwarded.
See Also:
Constant Field Values

SC_CALL_QUEUED

static final int SC_CALL_QUEUED
Status code (182) indicating the call is queued.
See Also:
Constant Field Values

SC_SESSION_PROGRESS

static final int SC_SESSION_PROGRESS
Status code (183) carries miscellaneous call progress information. The Reason-Phrase may convey more details about the call progress.
See Also:
Constant Field Values

SC_OK

static final int SC_OK
Status code (200) indicating the request succeeded normally.
See Also:
Constant Field Values

SC_ACCEPTED

static final int SC_ACCEPTED
Status code (202) indicating that the request has been accepted for processing, but the processing has not been completed. The request might or might not eventually be acted upon, as it might be disallowed when processing actually takes place. There is no facility for re-sending a status code from an asynchronous operation such as this.
See Also:
Constant Field Values

SC_MULTIPLE_CHOICES

static final int SC_MULTIPLE_CHOICES
Status code (300) indicating Multiple Choices. i.e., user may be reached at multiple locations.
See Also:
Constant Field Values

SC_MOVED_PERMANENTLY

static final int SC_MOVED_PERMANENTLY
Status code (301) indicating that the callee has moved permanantly.
See Also:
Constant Field Values

SC_MOVED_TEMPORARILY

static final int SC_MOVED_TEMPORARILY
Status code (302) indicating that the callee has moved temporarily.
See Also:
Constant Field Values

SC_USE_PROXY

static final int SC_USE_PROXY
Status code (305) indicating that he call can be better handled by the specified proxy server.
See Also:
Constant Field Values

SC_ALTERNATIVE_SERVICE

static final int SC_ALTERNATIVE_SERVICE
Status code (380) indicating alternative service.
See Also:
Constant Field Values

SC_BAD_REQUEST

static final int SC_BAD_REQUEST
Status code (400) indicating Bad Request.
See Also:
Constant Field Values

SC_UNAUTHORIZED

static final int SC_UNAUTHORIZED
Status code (401) indicating that the caller is unauthorized to make this request.
See Also:
Constant Field Values

SC_PAYMENT_REQUIRED

static final int SC_PAYMENT_REQUIRED
Status code (402) indicating that the caller needs to make a payment.
See Also:
Constant Field Values

SC_FORBIDDEN

static final int SC_FORBIDDEN
Status code (403) indicating that the caller is forbidden to make such requests.
See Also:
Constant Field Values

SC_NOT_FOUND

static final int SC_NOT_FOUND
Status code (404) indicating that the server had definitive information that the user does not exist at the domain specified in the Request-URI. This status is also returned if the domain in the Request-URI does not match any of the domains handled by the recipent of the request.
See Also:
Constant Field Values

SC_METHOD_NOT_ALLOWED

static final int SC_METHOD_NOT_ALLOWED
Status code (405) indicating that the method specified in the Request-Line is not allowed for the address identified byt the Request-URI. The response MUST include an Allow header field containing a list of valid methods for the indicated address.
See Also:
Constant Field Values

SC_NOT_ACCEPTABLE

static final int SC_NOT_ACCEPTABLE
Status code (406) indicating the the resource identified by the request is only capable of generating response entities which have content characteristics not acceptable according to the accept headers sent in the request.
See Also:
Constant Field Values

SC_PROXY_AUTHENTICATION_REQUIRED

static final int SC_PROXY_AUTHENTICATION_REQUIRED
Status code (407) indicating that the client MUST first authenticate itself with the proxy. The proxy MUST return a Proxy-Authenticate header field (section 6.26) containing a challenge applicable to the proxy for the requested resource. The client MAY repeat the request with a suitable Proxy-Authorization header field (section 6.27). SIP access authorization is explained in section 13.2 and 14.

This status code is used for applications where access to the communication channel (e.g., a telephony gateway) rather than the callee requires authentication.

See Also:
Constant Field Values

SC_REQUEST_TIMEOUT

static final int SC_REQUEST_TIMEOUT
Status code (408) indicating that the server could not produce a response, e.g., a user location, within the time indicated in the Expires request-header field. The client MAY repeat the request without modifications at any later time.
See Also:
Constant Field Values

SC_GONE

static final int SC_GONE
Status code (410) indicating that the requested resource is no longer available at the server an no forwarding address is known. This condition is expected to be considered permanent. If the server does not know, or has no facility to determine, whether or not the codition is permanent, the status code 404 (Not Found) SHOULD be used instead.
See Also:
Constant Field Values

SC_CONDITIONAL_REQUEST_FAILED

static final int SC_CONDITIONAL_REQUEST_FAILED
Status code (412) indicating that the precondition given for the request has failed.
Since:
1.1
See Also:
Constant Field Values

SC_REQUEST_ENTITY_TOO_LARGE

static final int SC_REQUEST_ENTITY_TOO_LARGE
Status code (413) indicating that the server si refusing to process a request becaus the request entity is larger than the server is willing or able to process. The server MAY close the connection to prevent the client from continuing the request.

If the condition is temporary, teh server SHOULD include a Retry-After header field to indicate that it is temporary and after what time the client MAY try again.

See Also:
Constant Field Values

SC_REQUEST_URI_TOO_LONG

static final int SC_REQUEST_URI_TOO_LONG
Status code (414) indicating that the server if refusing to service the request because the Request-URI is longer than the server is willing to interpret.
See Also:
Constant Field Values

SC_UNSUPPORTED_MEDIA_TYPE

static final int SC_UNSUPPORTED_MEDIA_TYPE
Status code (415) indicating that the server is refusing to service the request because the message body of the request is in a format not supported by the requested resource for the requested method. The server SHOULD return a list of acceptable formats using the Accept, Accept-Encoding and Accept-Language header fields.
See Also:
Constant Field Values

SC_UNSUPPORTED_URI_SCHEME

static final int SC_UNSUPPORTED_URI_SCHEME
Status code (416) indicating that the server cannot process the request because the scheme of the URI in the Request-URI is unknown to the server.
See Also:
Constant Field Values

SC_BAD_EXTENSION

static final int SC_BAD_EXTENSION
Status code (420) indicating that the server did not understand the protocol extension specified in a Require (Section 6.30) header field.
See Also:
Constant Field Values

SC_EXTENSION_REQUIRED

static final int SC_EXTENSION_REQUIRED
Status code (421) indicating that the UAS needs a particular extension to process the request, but this extension is not listed in a Supported header field in the request.
See Also:
Constant Field Values

SC_SESSION_INTERVAL_TOO_SMALL

static final int SC_SESSION_INTERVAL_TOO_SMALL
Status code (422) indicating that a request contained a Session-Expires header field with a duration below the minimum timer for the server.
Since:
1.1
See Also:
Constant Field Values

SC_INTERVAL_TOO_BRIEF

static final int SC_INTERVAL_TOO_BRIEF
Status code (423) indicating that the server is rejecting the request because the expiration time of the resource refreshed by the request is too short.
See Also:
Constant Field Values

SC_USE_IDENTITY_HEADER

static final int SC_USE_IDENTITY_HEADER
Status code (428) indicating that the request should be re-sent with an Identity header.
Since:
1.1
See Also:
Constant Field Values

SC_PROVIDE_REFERER_IDENTITY

static final int SC_PROVIDE_REFERER_IDENTITY
Status code (429) indicating that the referee must provide a valid Referred-By token.
Since:
1.1
See Also:
Constant Field Values

SC_BAD_IDENTITY_INFO

static final int SC_BAD_IDENTITY_INFO
Status code (436) indicating that the Identity-Info header contains a URI that cannot be dereferenced by the verifier (either the URI scheme is unsupported by the verifier, or the resource designated by the URI is otherwise unavailable).
Since:
1.1
See Also:
Constant Field Values

SC_UNSUPPORTED_CERTIFICATE

static final int SC_UNSUPPORTED_CERTIFICATE
Status code (437) indicating that the verifier cannot validate the certificate referenced by the URI of the Identity-Info header, because, for example, the certificate is self-signed, or signed by a root certificate authority for whom the verifier does not possess a root certificate.
Since:
1.1
See Also:
Constant Field Values

SC_INVALID_IDENTITY_HEADER

static final int SC_INVALID_IDENTITY_HEADER
Status code (438) indicating that the verifier receives a message with an Identity signature that does not correspond to the digest-string calculated by the verifier.
Since:
1.1
See Also:
Constant Field Values

SC_TEMPORARLY_UNAVAILABLE

static final int SC_TEMPORARLY_UNAVAILABLE
Status code (480) indicating that the callee's end system was contacted successfully but the callee is currently unavailable (e.g., not logged in or logged in such a manner as to preclude communication with the callee). The response MAY indicate a better time to call in the Retry-After header. The user could also be available elsewhere (unbeknownst to this host), thus, this response does not terminate any searches. The reason phrase SHOULD be setable by the user agent. Status 486 (Busy Here) MAY be used to more precisely indicate a particular reason for the call failure.

This status is also returned by a redirect server that recognizes the user identified by the Request-URI, but does not currently have a valide forwarding location for that user.

See Also:
Constant Field Values

SC_CALL_LEG_DONE

static final int SC_CALL_LEG_DONE
Status code (481) indicating Call Leg/Transaction does not exist.

This status is returned under two conditions: The server received a BYE request that does not match any existing call leg or the server received a CANCEL request that does not match any existing transaction. (A server simply discards an ACK referring to an unknown transaction.)

See Also:
Constant Field Values

SC_LOOP_DETECTED

static final int SC_LOOP_DETECTED
Status code (482) indicating that the server received a request with a Via (Section 6.40) path containing itself.
See Also:
Constant Field Values

SC_TOO_MANY_HOPS

static final int SC_TOO_MANY_HOPS
Status code (483) indicating that the server received a request that contains more Via entries (hops) (Section 6.40) than allowed by the Max-Forwards (Section 6.23) header field.
See Also:
Constant Field Values

SC_ADDRESS_INCOMPLETE

static final int SC_ADDRESS_INCOMPLETE
Status code (484) indicating that the server received a request with a To (Section 6.37) address or Request-URI that was incomplete. Additional information SHOULD be provided.

Note: This status code allows overlapped dialing. With overlapped dialing, the client does not know the length of the dialing string. It sends strings of increasing lengths, prompting the user for more input, until it no longer receives a 484 status response.

See Also:
Constant Field Values

SC_AMBIGUOUS

static final int SC_AMBIGUOUS
Status code (485) indicating that the callee address provided in the request was ambiguous. The response MAY contain a listing of possible unambiguous addresses in Contact headers.

Revealing alternatives can infringe on privacy concerns of the user or the organization. It MUST be possible to configure a server to respond with status 404 (Not Found) or to suppress the listing of possible choices if the request with the URL lee@example.com.

 485 Ambiguous SIP/2.0
 Contact: Carol Lee <sip:carol.lee@example.com>
 Contact: Ping Lee <sip:p.lee@example.com>
 Contact: Lee M. Foote <sip:lee.foote@example.com>
 

Some email and voice mail systems provide this functionality. A status code separate from 3xx is used since the semantics are different: for 300, it is assumed that the same person or sevice will be reached by the choices provided. While an automated choice or sequential search makes sense for a 3xx response, user intervention is required for a 485 response.

See Also:
Constant Field Values

SC_BUSY_HERE

static final int SC_BUSY_HERE
Status code (486) indicating that the callee's end system was contacted successfully but the callee is curently not willing or able to take additional call.
See Also:
Constant Field Values

SC_REQUEST_TERMINATED

static final int SC_REQUEST_TERMINATED
Status code (487) indicating that the request was terminated by a BYE or CANCEL request.
See Also:
Constant Field Values

SC_NOT_ACCEPTABLE_HERE

static final int SC_NOT_ACCEPTABLE_HERE
Status code (488) indicating that 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.
See Also:
Constant Field Values

SC_BAD_EVENT

static final int SC_BAD_EVENT
Status code (489) indicating that the server did not understand the event package specified in a "Event" header field.
Since:
1.1
See Also:
Constant Field Values

SC_REQUEST_PENDING

static final int SC_REQUEST_PENDING
Status code (491) indicating that the request was received by a UAS that had a pending request within the same dialog.
See Also:
Constant Field Values

SC_UNDECIPHERABLE

static final int SC_UNDECIPHERABLE
Status code (493) indicating that 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.
See Also:
Constant Field Values

SC_SECURITY_AGREEMENT_REQUIRED

static final int SC_SECURITY_AGREEMENT_REQUIRED
Status code (494) indicating that the client must initiate a security mechanism as defined in RFC 3329.
Since:
1.1
See Also:
Constant Field Values

SC_SERVER_INTERNAL_ERROR

static final int SC_SERVER_INTERNAL_ERROR
Status code (500) indicating that the server encountered an unexpected condition that prevented it from fulfilling the request.
See Also:
Constant Field Values

SC_NOT_IMPLEMENTED

static final int SC_NOT_IMPLEMENTED
Status code (501) indicating that the server does not support the functionality required to fulfill the request.
See Also:
Constant Field Values

SC_BAD_GATEWAY

static final int SC_BAD_GATEWAY
Status code (502) indicating that 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.
See Also:
Constant Field Values

SC_SERVICE_UNAVAILABLE

static final int SC_SERVICE_UNAVAILABLE
Status code (503) indicating that the server is currently unable to handle the request due to a temporary overloading or maintenance of the server.
See Also:
Constant Field Values

SC_SERVER_TIMEOUT

static final int SC_SERVER_TIMEOUT
Status code (504) indicating that the server did not receive a timely response from an external server it accessed in attempting to process the request.
See Also:
Constant Field Values

SC_VERSION_NOT_SUPPORTED

static final int SC_VERSION_NOT_SUPPORTED
Status code (505) indicating that the server does not support, the SIP protocol version that was used in the request message.
See Also:
Constant Field Values

SC_MESSAGE_TOO_LARGE

static final int SC_MESSAGE_TOO_LARGE
Status code (513) indicating that the server was unable to process the request since the message length exceeded its capabilities.
See Also:
Constant Field Values

SC_PRECONDITION_FAILURE

static final int SC_PRECONDITION_FAILURE
Status code (580) indicating failure to meet certain preconditions.
Since:
1.1
See Also:
Constant Field Values

SC_BUSY_EVERYWHERE

static final int SC_BUSY_EVERYWHERE
Status code (600) indicating that the callee's end system was contacted successfully but the callee is busy and does not wish to take the call at this time.
See Also:
Constant Field Values

SC_DECLINE

static final int SC_DECLINE
Status code (603) indicating that the callee's machine was successfully contacted but the user explicily does not wish to or cannot participate. The response MAY indicate a better time to call in the Retry-After header.
See Also:
Constant Field Values

SC_DOES_NOT_EXIT_ANYWHERE

static final int SC_DOES_NOT_EXIT_ANYWHERE
Status code (604) indicating that the server has authoritative information that the user indicated in the To request field does not exist anywhere. Searching for the user elsewhere will not yield an results.
See Also:
Constant Field Values

SC_NOT_ACCEPTABLE_ANYWHERE

static final int SC_NOT_ACCEPTABLE_ANYWHERE
Status code (606) indicating that 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.
See Also:
Constant Field Values

Method Detail

getRequest

SipServletRequest getRequest()
Returns the request associated with this response. For responses received for proxied requests, this method returns a request object that represents the request as it was sent downstream.

Proxying applications can use the request URI obtained from the request object to correlate an incoming response to one of the several destinations it has been proxied to.

Returns:
request for which this response was generated

getStatus

int getStatus()
Returns the status code of this response object.

The Status-Code is a 3-digit integer result code that indicates the outcome of the attempt to understand and satisfy the request.

Returns:
status code of this response

setStatus

void setStatus(int statusCode)
Sets the status code of this response object.
Parameters:
statusCode - status code of this response

setStatus

void setStatus(int statusCode,
               java.lang.String reasonPhrase)
Sets the status code and reason phrase of this response object.
Parameters:
statusCode - status code of this response
reasonPhrase - short textual description of the status code
Throws:
java.lang.IllegalArgumentException - if the code is not a SIP allowable status code.

getReasonPhrase

java.lang.String getReasonPhrase()
Returns the reason phrase for this response object.
Returns:
reason phrase for this response

getOutputStream

ServletOutputStream getOutputStream()
                                    throws java.io.IOException
Always returns null. SIP is not a content transfer protocol and having stream based content accessors is of little utility.

Message content can be set using the SipServletMessage.setContent(java.lang.Object, java.lang.String) method.

Returns:
null
Throws:
java.io.IOException

getWriter

java.io.PrintWriter getWriter()
                              throws java.io.IOException
Always returns null. SIP is not a content transfer protocol and having stream based content accessors is of little utility.

Message content can be set using the SipServletMessage.setContent(java.lang.Object, java.lang.String) method.

Returns:
null
Throws:
java.io.IOException

getProxy

Proxy getProxy()
Returns the Proxy object associated with the transaction of this SIP response object. Such a Proxy object exists if this is a response for a previously proxied request. Otherwise, a Proxy object does not exist, and null is returned.

Note that the container must return the same Proxy instance whenever a servlet invokes getProxy on messages belonging to the same transaction. In particular, a response to a proxied request is associated with the same Proxy object as is the original request.

Returns:
the Proxy object associated with this response's transaction, or null if this response was not received for a previously proxied request

getProxyBranch

ProxyBranch getProxyBranch()
Retruns the ProxyBranch object associated with the transaction of this SIP response object. Such a ProxyBranch object exists if this is a response for a previously proxied request. Otherwise, a ProxyBranch object does not exist, and null is returned.

Note that the container must return the same ProxyBranch instance whenever a servlet invokes getProxyBranch on messages belonging to the same transaction. In particular, a response to a proxied request is associated with the same ProxyBranch object as was the request sent on that branch.

Returns:
the ProxyBranch object associated with this response's transaction, or null if this response was not received for a previously proxied request.

sendReliably

void sendReliably()
                  throws Rel100Exception
Requests that this response be sent reliably using the 100rel extension defined in RFC 3262. This method must only be invoked for 1xx response other than 100, and only if the UAC indicated support for the 100rel extension in the request and the container supports it.

Applications can test whether the container supports the 100rel extension by checking if the string "100rel" exists in the list of supported extensions available via the ServletContext attribute "javax.servlet.sip.supported".

Applications can also test the same using the v1.0 mechanism by checking whether an attribute with name "javax.servlet.sip.100rel" exists in the ServletContext and has a value which equals Boolean.TRUE. However, the v1.0 mechanism is being deprecated in this version in favor of checking using the "javax.servlet.sip.supported" attribute.

Throws:
Rel100Exception - if one of the conditions for using the 100rel extension is not satisfied.
java.lang.IllegalStateException - if this response was received from downstream or if it has already been sent
See Also:
RFC 3262, Reliability of Provisional Responses in the Session Initiation Protocol (SIP)

send

void send()
          throws java.io.IOException
Causes this response to be sent. This is used by servlets acting as UASs to send provisional and final responses, and by proxies when generating provisional responses.
Specified by:
send in interface SipServletMessage
Throws:
java.io.IOException - if a transport error occurs when trying to send this response
java.lang.IllegalStateException - if this response was received from downstream or if it has already been sent

createAck

SipServletRequest createAck()
Returns an ACK request object corresponding to this response. This method is used by servlets acting as UACs in order to acknowledge 2xx final responses to INVITE requests.

Please note that applications do not generate ACKs for non-2xx responses, as this is done by the container itself.

Returns:
ACK request corresponding to this response
Throws:
java.lang.IllegalStateException - if the transaction state is such that it doesn't allow an ACK to be sent now, e.g. if the original request was not an INVITE, if this response is provisional only, or if an ACK has already been generated

createPrack

SipServletRequest createPrack()
                              throws Rel100Exception
Creates a PRACK request object corresponding to this response. This method is used by servlets acting as UACs in order to acknowledge reliable provisional responses to INVITE requests with PRACK (RFC 3262).
Returns:
PRACK request corresponding to this response
Throws:
java.lang.IllegalStateException - if the transaction state is such that it doesn't allow a PRACK to be sent now, e.g. if a PRACK has already been generated.
Rel100Exception - if the response is not a reliable provisional response or if the original request was not an INVITE.
Since:
1.1

getChallengeRealms

java.util.Iterator<java.lang.String> getChallengeRealms()
Returns an Iterator over all the realms associated with this challenge response.
Returns:
Iterator over all the realms associated with this challenge response.

isBranchResponse

boolean isBranchResponse()
Returns true if this is an intermediate final response that arrived on a ProxyBranch.

This method is used by SipServlet.doResponse() to delegate handling of any intermediate final responses received on the ProxyBranch to the SipServlet.doBranchResponse() method.

Returns:
true if the response arrived on a ProxyBranch, false otherwise. The method will also return false for a best final response chosen by the Proxy.
See Also:
SipServlet.doResponse(javax.servlet.sip.SipServletResponse)

Skip navigation links

Copyright 1996, 2010, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

Java SIP Servlet API 1.1 Reference

Part Number E17883-01