Driving a Media Server from Java: JSR309

Driving a Media Server from Java: JSR309

What Is JSR309?

Java Platform, Enterprise Edition (JEE or J2EE) servers are extremely popular platforms for both enterprise and service provider applications. JEE servers offer developers a rich set of services, such as directory integration, reliable messaging, and easy-to-use SIP and HTTP protocol functions for communications. Many very successful general-purpose SIP application servers are JEE servers from companies such as Oracle, IBM, and Avaya.

Because of its popularity for use with communications applications, it is important for the JEE platform to have the ability to control an IP media server. The dilemma has been which API to use. Should it be an XML-based interface - VoiceXML, CCXML, MSML, MSCML - or mediactrl, which the IETF is currently working on?

Instead, the Java Specification Request (JSR) 309 project was initiated to define a standard Java interface for media server control. Public review of the specification has been completed, and the final release of the Specification was made available in December 2009.

JSR309 Technical Overview

The illustration on this page shows the JSR309 architecture, how it would work with the Dialogic® IP Media Server, and the relationship between the JEE application server, application, JSR309 connector, and other network entities.

JSR309 (also referred to as JSR 309 and the JSR 309 API) defines an abstract Java interface for the manipulation of audio and video streams and conferences. By design, the interface is very rich and general. Vendors of IP media servers, such as Dialogic, provide implementations that work with their IP media servers. If needed, vendors can develop their own JSR309 interfaces separately or over existing media server interfaces, such as MSML, MSCML, or mediactrl.

The JSR309 architecture assumes a distributed or IMS-like model where the JEE server and IP media server reside on separate physical servers. Communications devices interact with the JEE server and application through the SIP protocol. SIP Servlets (JSR289) enable JEE applications to communicate easily using the SIP protocol. The application uses the JSR309 connector to control the remote media server.

JSR309 makes the use and adoption of media servers significantly easier for Java developers, delivering the control they need within a familiar environment to reduce development time.