Mobicents Sip Servlets
JSLEE/Sip servlets Interoperability Demo
Service Goals & Description
This converged application leverages the power of the Mobicents Platform and shows how JSLEE and Sip Servlets can be used together to leverage standards for protocols outside of the scope of JSR 289 specification in using JSLEE.
This example is built using Seam, Mobicents Sip Servlets, Mobicents Media Server and Mobicents JSLEE with Media and Text To Speech Resource Adaptors and deployed on Jboss AS.
In this example, Sip Servlets is used to handle the SIP protocol, JEE is used as a gateway between Sip Servlets and JSLEE worlds, JSLEE is used to control Media through Media and Text to Speech Resource Adaptors and Media Server is used to handle Media and DTMF signals.
Media has been used here as a proof of concept of a typical need for sip servlets applications that is outside of the Sip servlets Spec and support for it is up to vendors thus the application, if built using only Sip Servlets, would be non portable between vendors and application servers.
The same kind of application could be built for accessing other standards (such as Diameter) or legacy protocols through JSLEE in a PORTABLE way without to resort to vendor proprietary extensions.
The application is aimed to deliver free beers to the Java One 2008 exhibitors (We will be there come and see us).
Just call the Mobicents Sip Servlets Container with a sip soft phone and you'll hear the following announcement Welcome to JavaOne 2008. Please enter your booth number followed by the pound sign to get some free beers. .
Follow the instructions and after the pound sign has been pressed, you'll hear the confirmation that free beers are on their way to your booth
(there might be a delay in free beer delivery though so don't worry if you don't see us bringing down the free beers right away :-) but you can still join us at the The JBoss Speakeasy Party )
UA calls (send INVITE) to an information number (sip:email@example.com:5080) on Mobicents Sip Servlets container
Mobicents Sip Servlets container initiates the Media Connection by firing up an event into the Mobicents JSLEE through a stateful CallManager EJB
When the Media connection has been initiated, Mobicents JSLEE notifies back the stateful CallManager EJB with the SDP provided by the Mobicents Media Server
CallManager EJB send the OK response with SDP from Mobicents Media Server to UA
When ACK request is received from UA, Mobicents Sip Servlets container notifies Mobicents JSLEE through the CallManager EJB that the Mobicents Media Server should play announcement and listen for DTMF
When the UA has entered its booth number followed by the pound sign. A confirmation announcement is played and Mobicents JSLEE tear down the call by calling back the CallManager EJB that will send the BYE request
How to activate it
From the source
Setup your Jboss AS to become a converged container as explained here .
Please check out the jslee sips interop demo example located under this location from the svn repository. Follow the instructions in the README.txt to build and run the example.
The DAR file for this example can be found at the root of the project. Use this as a DAR file (Service tag/darConfigurationFileLocation attribute in the jboss's server.xml): file:///E:/workspaces/sip-servlets/sip-servlets-examples/jslee-sips-interop/jslee-sips-interop-dar.properties
To understand what the dar configuration file is used for, check the Application Router Documentation .
How to play with it
Start a Sip Phone, make it register as a customer (let's say sip:firstname.lastname@example.org) to your Jboss AS SIP Connector listening point (default to 127.0.0.1:5080).
Call your server (you can use a sip address of the following form sip:email@example.com:5080)
Wait for announcement and instructions, then enter your booth number in pressing dial buttons on your UA followed by the # sign.
Wait for the confirmation announcement.