JSR 289 overview
With the sipServlet-1.1 feature, Liberty includes support for SIP Servlet Specification 1.1, also referred to as Java™ Specification Request (JSR) 289. SIP is a signaling protocol that is used for creating, modifying, and terminating IP communication sessions, such as telephony, presence, and multimedia applications.
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 that were determined by industry users.
The JSR 289 specification adds the following features:
- 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. For more information, see SIP application router on Liberty and Administering Session Initiation Protocol (SIP) on Liberty.
- Annotation-based programming
Annotations provide a fast way to develop applications by embedding metadata directly in applications. For example, you 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 applicationsJSR 289 provides a new, standardized mechanism for building converged applications. A converged application contains SIP servlet components and other Java EE components such as 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 can 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.