This method allows the addition of the appropriate authentication header(s)
to the request that was challenged with a challenge response without needing
the creation and/or maintenance of the AuthInfo object.
This overloaded method of cancel() provides a way to specify the reason
for cancelling this Proxy by including the appropriate Reason headers [RFC 3326].
This overloaded method of cancel() provides a way to specify the reason
for cancelling this Proxy by including the appropriate Reason headers [RFC 3326].
Deprecated.usage of this method is deprecated. Setting the sameCallId flag to "true" actually breaks the provisions of [RFC 3261] where the Call-ID value is to be unique accross dialogs. Instead use a more general method defined on the B2buaHelper B2buaHelper.createRequest(SipServletRequest)
Creates a new request object belonging to a new SipSession.
The new request is similar to the specified origRequest in that the method and the majority of header fields are copied from origRequest to the new request.
The SipSession created for the new request also shares the same SipApplicationSession associated with the original request.
This method satisfies the following rules:
The From header field of the new request has a new tag chosen by the container.
The To header field of the new request has no tag.
If the sameCallId argument is false, the new request (and the corresponding SipSession)
is assigned a new Call-ID. Record-Route and Via header fields are not copied.
As usual, the container will add its own Via header field to the request
when it's actually sent outside the application server.
For non-REGISTER requests, the Contact header field is not copied but is populated by the container as usual.
This method provides a convenient and efficient way of constructing the second "leg" of a B2BUA application.
It is used only for the initial request.
Subsequent requests in either leg must be created using SipSession.createRequest(java.lang.String) as usual.
The request that results in creation of a SipSession is termed as the
original request, a response to this original request can be created by
the application even if the request was committed and application does
not have a reference to this Request.
Deprecated.Encodes the ID of this SipApplicationSession into the specified URI. The container must then be prepared to associate this application session with an incoming request which was triggered by activating the encoded URI.
In the case of SIP and SIPS URIs, the container may also rewrite the host, port, and transport protocol components of the URI based on its knowledge of local listen points. When doing so it should take existing settings as a hint as to which listen point to select when it has more than one.
This method allow applications to correlate events which would otherwise be treated as being independent, that is, as belonging to different application sessions. For example, an application might send an instant message with an HTML body to someone. The IM body may then contain a SIP URI pointing back to the SIP servlet container and the application session in which the IM was generated, thus ensuring that an INVITE triggered by the IM recipient triggering that URI is associated with this application session when received by the container.
Containers are required to support rewriting of SIP and SIPS URIs.
Converts the given relative path to an absolute URL by prepending the contextPath for the current ServletContext, the given scheme ("http" or "https"), and the host:port, and then encoding the resulting URL with the jsessionid.
Encode specified URL to include the application session ID in a way such that
the parameter used to encode the application session ID should be unique across implementations.
Returns an Iterator over Locale objects indicating, in decreasing order starting with the preferred locale, the locales that are acceptable to the sending UA based on the Accept-Language header.
Returns the parent SipApplicationSession if it exists, if none exists then a new one is created and returned after associating it with the converged http session.
If a new request is created based on an existing one with the link
argument true using or using the new request gets implicitly linked with
the original request.
Returns true if this message is committed, that is, if one of the following conditions is true: This message is an incoming request for which a final response has already been generated.
Invoked by the servlet container to notify an application that no ACK was received for an INVITE transaction for which a final response has been sent upstream.
Deprecated.in favor of using the "javax.servlet.sip.supported" attribute
The string "javax.servlet.sip.100rel". This is the name of the ServletContext attribute whose value suggests whether the container supports the 100rel extension i.e. RFC 3262.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
Constructs a new parse exception with the specified cause and a detail message of (cause==null ? null : cause.toString()) (which typically contains the class and detail message of cause).
Deprecated.Sets the sequential search timeout value for this Proxy object. This is the amount of time the container waits for a final response when proxying sequentially. When the timer expires the container CANCELs the current branch and proxies to the next element in the target set.
The container is free to ignore this parameter.
Deprecated.Specifies whether the server should proxy statelessly or not, that is whether it should maintain transaction state whilst the proxying operation is in progress.
This proxy parameter is a hint only. Implementations may choose to maintain transaction state regardless of the value of this flag, but if so the application will not be invoked again for this transaction.
The @SipApplicationKey annotation is used when the application wants to associate
the incoming request (and SipSession) with a certain SipApplicationSession
The method annotated with the @SipApplicationKey annotation MUST have the
following restrictions:
It MUST be public and static
It MUST return a String
It MUST have a single argument of type SipServletRequest
It MUST not modify the SipServletRequest passed in
If the annotated method signature does not comply with the first three rules,
deployment of such an application MUST fail.
The SipApplicationRouterInfo class encapsulates the different pieces of
information that the application router returns to the container when the
container calls the SipApplicationRouter.getNextApplication() method.
This class is used by the SIP Servlet container to load and instanciate the application router.
The application router must be packaged in accordance with the rules specified in the Service Provider document.
Objects that are bound to a SipApplicationSession may listen to container events
notifying them when the application session to which they are bound will
be passivated or activated.
Events of this type are either sent to an object that implements SipApplicationSessionBindingListener when it is bound or unbound from an application session, or to a SipApplicationSessionAttributeListener that has been configured in the deployment descriptor when any attribute is bound, unbound or replaced in an application session.
Implementations of this interface can receive notifications about invalidated and/or activated SipApplicationSession objects in the SIP application they are part of.
Events of this type are sent to objects implementing the SipErrorListener
interface when an error occurs which is related to the applications processing
of a SIP transaction.
The @SipListener annotation allows the application developer to specify a listener
without declaring it in the deployment descriptor of the application.
This listener interface can be implemented in order to get notifications of changes to the attribute lists of sessions within this SIP servlet application.
Events of this type are either sent to an object that implements SipSessionBindingListener when it is bound or unbound from a session, or to a SipSessionAttributeListener that has been configured in the deployment descriptor when any attribute is bound, unbound or replaced in a session.
The SipTargetedRequestInfo class encapsulates the information that the container
provides to the application router when the container calls the SipApplicationRouter.getNextApplication()
method and the initial request is a targeted one.
Creates a SipTargetedRequestInfo object containing information necessary to help the application router make its application selection decision when the request is targeted.
Constructs a new TooManyHopsException exception with the specified cause and a detail message of (cause==null ? null : cause.toString()) (which typically contains the class and detail message of cause).