Overview of Converged Applications

Developing Converged Applications 2-3

2.3.1 Modifying the SipApplicationSession

When using a replicated domain, OWLCS automatically provides concurrency control when a SIP Servlet modifies a SipApplicationSession object. In other words, when a SIP Servlet modifies the SipApplicationSession object, the SIP container automatically locks other applications from modifying the object at the same time. Non-SIP applications, such as HTTP Servlets, must themselves ensure that the application call state is locked before modifying it. This is also required if a single SIP Servlet needs to modify other call state objects, such as when a conferencing Servlet joins multiple calls. To help application developers manage concurrent access to the application session object, OWLCS extends the standard SipApplicationSession object with com.bea.wcp.sip.WlssSipApplicationSession, and adds two interfaces, Table 2–1 Deprecated com.bea.wcp.util.Sessions Methods Deprecated Method in com.bea.wcp.util.Sessions Replacement Method Description getApplicationSession javax.servlet.sip.SipSessionsUtil. getApplicationSession Obtains the SipApplicationSession object with a specified session ID. getApplicationSessionsByCal lId None. Obtains an Iterator of SipApplicationSession objects associated with the specified call ID. createHttpSession None. Applications can instead cast an HttpSession into ConvergedHttpSession. setApplicationSession javax.servlet.sip.ConvergedHttpSe ssion. getApplicationSession Associates an HTTP session with an existing SipApplicationSession. removeApplicationSession None. Removes an HTTP session from an existing SipApplicationSession. getEncodeURL javax.servlet.sip.ConvergedHttpSe ssion. encodeURL Encodes an HTTP URL with the jsessionid of an existing HTTP session object. Note: The com.bea.wcp.util.Sessions API is provided only for backward compatibility. Use the SIP Servlet APIs for all new development. OWLCS does not support converged applications that mix the com.bea.wcp.util.Sessions API and JSR 289 convergence APIs. Specifically, the deprecated Sessions.getApplicationSessionsByCallIdString callId method cannot be used with v1.1 SIP Servlets that use the session key-based targeting method for associating an initial request with an existing SipApplicationSession object. See Section 15.11.2 in the SIP Servlet Specification v1.1 http:jcp.orgenjsrdetail?id=289 for more information about this targeting mechanism.