Accelerating Multimedia Application Development with JSR 309 Media Server Control API
by Marc Brandt, Tomas Ericson, and Alain Comment
Learn how to build a SIP Servlet conferencing application using the JSR 309 Reference Implementation Driver running in Oracle Communications Converged Application Server and accessing the HP OpenCall Media Platform
Published April 2010
As briefly explained here, emerging open standards enable interoperable deployment of such AS-MS architecture. Both Oracle and HP have committed to driving Open Standards and their adoption. A key enabler for the success of such deployment model is to facilitate the programming of applications deployed on top.
The JSR 309 API provides the flexible programming model compatible with the richness of the underlying AS-MS decomposition. It supports the delegation of multimedia capabilities to the media server, like using VoiceXML, as well as allowing fine-grained control of the media server operations over protocols such as RFC 5022 MSCML or IETF Media Server Control protocol (see RFC 5167, 5552, 5567), among others.
Figure 1 illustrates how 3GPP has recently evolved the MRF architecture to support deployment of feature-rich media servers through an open standard media server control interface over Cr Reference Point inside the IP Multimedia Core Network subsystem (introduced in 3GPP TS 23.002 Network architecture in Release 8)
Figure 1 Excerpt from 3GPP TS 23.218 introducing the new Cr reference point with emerging standards mapped on top
JSR 309 Standardization: Controlling Media Server Resources Through Java
Oracle, spec lead of JSR 289 SIP Servlet 1.1 API, and HP, recognizing the diversity of Media Server deployment models and control protocols, joined forces in 2007 to drive the JSR 309 API for the Java Platform resulting in a programming model, which transparently to the application developer supports a wide range of protocols and delegation models.
Figure 2 illustrates the positioning of this API in the standardization landscape in a typical distributed open standards-based deployment of Application and Media servers.
Figure 2 Positioning the open API and Protocol standards efforts in the Media Server Control landscape
JSR 309 gives flexibility for supporting existing and emerging standard protocols inside driver implementations, while simplifying application programming and guaranteeing portability across AS-MS deployment models.
The JSR 309 Reference Implementation provided by HP is a driver implemented using SIP Servlet technology and widely deployed protocol IETF MSCML. IETF Mediactrl is also illustrated in the above picture and positioned as a future open standard Protocol for AS-MS interoperability.
JSR 309 Overview
JSR 309 Media Server Control API 1.0 defines a very flexible object model for controlling Media Server resources and the topology of Media streams through the join operation.
JSR 309 targets applications such as:
Figure 3 illustrates some of the interfaces of the object model, which are used throughout the sample Conferencing application.
Figure 3 Core Objects of JSR 309 typically used in the Conferencing Application
Figure 4 illustrates the JSR 309 deployment architecture used for the Conferencing Application illustrated in this article.
Figure 4. Typical JSR 309 deployment architecture
Conferencing Application Description and Setup
The Conferencing application illustrates the power and flexibility of the JSR 309 and SIP Servlet APIs in a distributed environment. Although a commercial application would normally make use of many more features of the JSR 309 API, this sample application is a functional illustration of the call control logic and media processing needed to connect and mix multiple participants in a conference.
In order to deploy and test the Conferencing application, see Deploying and Running the Conferencing Application.
The following figure describes the main components used in the application.
Figure 5. High level Conferencing Application architecture
Conferencing Application Code Walk-through
This section illustrates the use of JSR 309 through some highlights of the application flow and code. For detailed information on the SIP Servlet API and the JSR 309 Media Server Control API, please refer to the reference section.
The conferencing application is a so-called converged application, combining HTTP Servlets and SIP Servlets in a single web archive (war file). The application is controlling media resources by invoking the JSR 309 API. The SIP Servlet code is responsible for handling call control with the end points (conference participants). There is a simple web interface implemented using HTTP Servlets and JSPs, enabling users to monitor and control ongoing conferences, showing the convergence of SIP, HTTP and Media Control capabilities in the same Application Environment.
The following figure is a high level class diagram illustrating the various classes of the application.
Figure 6. High level class diagram [Click for enlarge]