Wednesday, June 25, 2008

Mobicents Sip Servlets 0.4 Released !

Yesterday we just released the 0.4 version of Mobicents Sip Servlets with some interesting hot new features.
It is shipped with :

To download this release and try it out, follow the following link :

Mobicents Sip Servlet 0.4 downloads

This is our latest release working on top of both containers Tomcat 6.0.14 or JBoss AS 4.2.2.GA providing some new features, bug fixes, enhancements and so on. Let's review what's new.

Load Balancing & Failover support : Load Balancing and Failover is a hot new feature that has just been added. The feature is still in its basic stage meaning that you can load balance on any number of nodes that are registered with the sip load balancer. The Sip load balancer uses a round-robin algorithm to cycle through a list of Mobicents sip Servlets nodes in order. Some other load balancing algorithms will be added such as algorithms where the health status of the servers are taken in account to avoid overloading a server already full by example.
Currently any Mobicents Sip Servlets node can act as a backup node. So if one node fails, all new calls will be redirected only on the still alive remaining nodes.
Mid-call failover where another node of the cluster could recover a dialog from a failed node is not supported yet but should be added pretty soon.

Performance improvement/Performance apps : We worked on providing some automated SIPp tests and scripts to measure, and improve over time, the performance of Mobicents Sip Servlets on Tomcat and JBoss. Here is what we achieved Tomcat 6.0.14, JDK 1.5 : Call rate was 100 calls/sec for 24h, for a total of 8.640.000 calls on a standard server with 2x AMD 2220 SE processors and 8GB of RAM. Performance on JBoss is being measured but since the core logic (just the wiring is different) is the same we should have the same kind of results on both containers.

JSLEE/SIPS interop application : As JBoss is the only vendor to implement both
specifications, JSLEE and Sip Servlets, through its Mobicents Communication Platform, this makes it a natural fit to build converged and interoperable JSLEE/SIP Servlets applications that are able to comply with standards in a portable manner. This application is a proof of concept of integration and interoperability between JSLEE and Sip servlets and has been shown at JavaOne 2008 in San Francisco (see my previous post and posts from other Mobicents team members Vladimir Ralev and Ivelin Ivanov). As we're acquiring experience with Java EE, JSLEE and SIP Servlets, this is a first step towards the process of driving a unified programming model, so stay tuned !

Facebook click to call application : This example shows how SIP Servlets can be used along with HTTP servlets to create a Facebook plugin that allows users to call real phones through a SIP-PSTN gateway provider. See Vladimir Ralev's post for more information on this killer app !

More Extensions : SUBSCRIBE/NOTIFY is now supported

We aligned on the JSR 289 Proposed Final Draft API

We merged SIP Session Management with HTTP Session Management : Our Sip Session Manager was previously completely separated from the http session management mechanism, we just moved the Sip Session Management where it should be, with the http session management. This would help us to provide more integrated Session Management and reuse some of the work done on http session clustering in JBoss for Sip session clustering.

and the usual round of various enhancements and bug fixes :
Derived Sip Sessions
Servlet-mapping still supported in 1.1
New Cancel methods on Proxy feature
Move adding of Via header to send() instead of B2buaHelper.createRequest
Routing to external application server
Application Redeployment Bug Fixed
Escaped characters not supported in SIP URI
Fix for the creation of subsequent requests for a given sip session.

See Mobicents Sip Servlets for more information.

You can also check our Mobicents Sip Servlets Roadmap to see what's coming next.

Monday, April 28, 2008

Mobicents Platform showcased @ JavaOne 2008 in San Francisco

On my last post, I presented a nice application demonstrating interoperability betwen Sip Servlets and JAIN SLEE, and this would be the demo of my talk at JavaOne 2008.

Here is the abstract of the talk I'll give :

"Mobicents Converged Application Server: JSLEE, SIP Servlets, Java EE"

"The Mobicents Communication Platform is the best architecture to create, deploy and manage services and applications integrating voice, video and data across a range of IP and communications networks. It drives convergence in leveraging the three following core capabilities :
  • Mobicents JAIN-SLEE which provides a highly scalable event-driven application server capable of bridging multiple IP and legacy protocols.
  • Mobicents Sip Servlets which delivers a consistent, open platform on which to develop and deploy portable and distributable SIP and Converged JEE services.
  • Mobicents Media Server which delivers competitive, complete, best-of-breed media gateway functionality featuring highest quality."

So if you're somewhat interested in telecommunications, next generation applications, SIP or simply in the power of the Mobicents Platform :-) as a whole or in jboss products, please come and see us in action at Booth #734 or Join us for the JBoss Speakeasy Party next door to the Moscone Center at Jillian's inside the Metreon from 5:30-8:30 p.m. Thursday, May 8.

Don't forget to register and I may be able to bring you some of the beers you ordered through the JAIN SLEE/Sip Servlets Interop application we will demo :-)

For more information on what Jboss will present or for more insight on the other talks please click on the following link http://www.jboss.org/files/events/javaone2008events.htm

I hope to see and chat with with you there !

Update : You can find my presentation here : http://www.jboss.org/presentations/JavaOne2008_MobicentsPlatform.odp

Sip-Servlets and JAIN-SLEE : working hand in hand, is the war over ?

As you might know, there is a constant war raging between Sip Servlets and JAIN-SLEE and most see them as competing specifications/products and try to choose between one or the other.

My take is that they don't need to compete since they complete each other very well and it has been one of the leitmotiv behind building Mobicents Sip Servlets.

JAIN SLEE is a more complex specification than SIP Servlets, and it has been know as heavyweight and with a steep learning curve. However JAIN SLEE has standardized a high performing event driven application server, an execution environment with a a good concurrency model and powerful protocol agnostic capabilities thus covering a variety of telco protocols.
SIP Servlets on the other is way much simple and easier to get started with. Its focus is currently on SIP + HTTP/JEE only and is more of a programming model while JAIN SLEE is more of an application environment, a platform.
The fact that Sip Servlets is focused on SIP+JEE makes it a natural fit to build JEE converged applications and way much simpler than JAIN SLEE. To me it feels like JAIN SLEE and Sip Servlets target different audiences, different needs.

It's been a long time since I wanted to leverage the power of both and make them work hand in hand to leverage standards all the way for an application. It is now possible since the Mobicents Platform provides both JAIN SLEE and Sip Servlets implementation within the same VM.

So I hacked away, helped by my Mobicents fellows and here it is the JAIN-SLEE/Sip Servlets Interoperability Demo.

This converged application leverages the power of the Mobicents Platform and shows how JAIN-SLEE and Sip Servlets can be used together to leverage standards for protocols outside of the scope of JSR 289 specification in using JAIN-SLEE.

In this example, Mobicents Sip Servlets is used to handle the SIP protocol for which it is a natural fit, JEE is used as a gateway to communicate between Sip Servlets and JAIN SLEE worlds, Mobicents JAIN-SLEE is used to control Media through Media and Text to Speech Resource Adaptors and Mobicents 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 really 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 offered by most vendors in the same proprietary way) or legacy protocols through JAIN-SLEE in a PORTABLE way without to resort to vendor proprietary extensions.

One of the logical next steps Mobicents is already taking is to drive and create a unified model that leverages the simplicity and tight JEE integration of Sip Servlets with the power of concurrency control and protocols abstraction of JAIN-SLEE. Feel free to join us if you're interested in it !

Mobicents Sip Servlets has a new home

The Mobicents Sip Servlets project that started off at java.net to implement the SIP Servlet v1.1 (JSR 289) work in progress specification on top of Tomcat & Jboss and to develop interoperability standards between Sip Servlets and JAIN-SLEE has now moved away to join its family, the Mobicents Platform.

The project will leverage the same communications channel as the Mobicents platform :
User Forum
Contributor Forum
Mobicents google group

The source code is now accessible at http://code.google.com/p/mobicents/source/browse/trunk/servers/sip-servlets for browsing or at https://mobicents.googlecode.com/svn/trunk/servers/sip-servlets for
checkout.

Issues are available at http://code.google.com/p/mobicents/issues/list?q=label%3Acomponent%20label%3Asip-servlets&can=2

sip-servlets.dev.java.net will stay as it is for historical purposes but won't be updated anymore.

Stay tuned !