WAS v8.5 > Develop applications > Develop SIP applications > Develop SIP applications > SIP servletsJSR 289 overview
v8.5 includes support for SIP Servlet Specification 1.1, also referred to as Java Specification Request (JSR) 289.
The SIP Servlet Specification provides the Java API standards for Session Initiation Protocol (SIP). JSR 289 is an update to the existing SIP Servlet specification that addresses new requirements determined by industry users.
SIP is a signaling protocol used for creating, modifying, and terminating IP communication sessions such as telephony and presence applications. SIP is not limited to voice communication and can mediate any type of communication session, such as multimedia.
The following is a brief description of new features available in the JSR 289 specification.
- Application router for application selection
Application routing enables developers to build complex services out of smaller applications. On initial requests the container calls the application router to determine which application to invoke based on the type of request. The application router is the central hub for selecting application order. See the topic on configuring a SIP application router for more information.
- Annotation-based programming
Annotations provide a fast way to develop applications by embedding metadata directly in applications. For example, we can use the @SipServlet annotation to indicate that a class is a SIP servlet. The @SipApplication is a package level annotation. All servlets in the package belong to the same application unless the servlet uses @SipServlet(applicationName). For more information on annotations, see section 18 of the JSR 289.
- Converged applications
JSR 289 provides a new, standardized mechanism for building converged applications. A converged application contains SIP servlet components and other Java EE components, like HTTP servlets and enterprise beans. The specification includes two new classes to support convergence.
- ConvergedHttpSession is an extension to HttpSession for converged applications.
- SipSessionUtil handles session management for converged applications.
For more information on converged applications, see section 13 of the JSR 289.
- Back-to-back user agent (B2BUA) APIs
JSR 289 simplifies the B2BUA pattern in applications with the use of the B2BUA helper class. The B2BUA is a frequently used application pattern. The B2BUA acts as an endpoint for two or more dialogs and forwards requests and responses between those dialogs. The B2BUA helper has the ability to create a copy of an incoming request. It also automatically maintains links between sessions on both sides of the B2BUA. For more information on B2BUAs, see section 12 of the JSR 289.
Support for the Session Initiation Protocol (SIP) session key-based targeting mechanism described in JSR 289 section 15.11.2 is only supported in stand-alone environments. The session key-based targeting mechanism is not supported in clustered environments. Alternatively, we can use one of the other targeting mechanisms that are described in JSR 289 within a clustered environment:
- Encode the URI mechanism described in section 15.11.3.
- Join and replace the targeting mechanism described in section 15.11.4.
Subtopics
- SIP application router
The SIP application router is used by the SIP container to select the order in which applications are run within the container.- Tune considerations using the JSR 289 Application Router with multiple applications
This topic describes performance adjustments and considerations using the JSR 289 Application Routerâ„¢ with multiple applications.
Related concepts:
SIP application router
Related information: