Java Call Control Resource Adaptor for SIP and MGCP protocols

The Java Call Control (JCC) resource adaptor (RA) provides JCC API (JCC 1.1) for Mobicents JAIN SLEE application server (v. 2.7.0.FINAL), adapting the JCC specification for SIP and MGCP protocols. This is a novel abstraction layer for application service implementation compliant with the JCC specifications. It simplifies creation of multimedia services based on both the Session Initiation Protocol (SIP) and the Media Gateway Control Protocol (MGCP). 

 


 

Mobicents JAIN SLEE application server

JAIN (Java API for Integrated Networks) SLEE (Service Logic Execution Environment) is a Java standard specification for creating and hosting telecom services. A JSLEE application server (AS) consists of a software container that provides non-logical features necessary for executing applications.This software container is a low latency and high throughput AS for event processing, designed for stringent requirements of core network signalling applications, providing a distributed component model and a standardized framework. This way, it can alleviate programmers from the burden of handling low-level implementation details.

Download the JAIN SLEE v1.1 Specification here

Mobicents JAIN SLEE  server (v. 2.x.x) is the only open source implementation of a JSLEE container, compliant with JSR 240 - JSLEE 1.1 specification. It is implemented as a service inside the JBoss application server 5. [see more...]

Resours Adaptor

Resource Adaptors are fundamental JSLEE components that constitute abstract interfaces with external resources. A Resource Adaptor in JSLEE is a bridge between an application model and the underlying event infrastructure. The resources are entities that represent and interact with other systems outside the JSLEE, such as network devices, protocol stacks, directories and databases. The event source could be everything emitting events implemented in whatever language and environment. The RA accepts arriving protocol signals or specific events, creates the Java representations and fires them into the JSLEE application server.

Java Call Control API Overview

The JCC APIs have been designed for creating, monitoring, controlling, manipulating and tearing down communication sessions through a variety of heterogeneous networks, hiding most of complexity of underlying network protocols. It has been created with the specific objective of lightening service developer from the burden of handling the underlying communication and signaling protocol system. Its goal is to hide most of complexity of underlying network, which can be a combination of circuit and packet-switched components, wireless or wired. It includes interfaces, classes, operations, events, capabilities, and exceptions. Four key objects are specified:

  • JCC Provider: it is the interface through which an application can access the implemented JCC functions; it includes specific methods to add and remove event listeners, to get the name and state of the Provider, to shut it down, to create a JCC Call object and to return the object given a JCC Address string.

  • JCC Call: it represents a communication between two or more parties through a dynamic collection of physical and logical entities involved in the communication;

  • JCC Connection: it is a dynamic relationship between a Call and an Address;

  • JCC Address: it is a logical endpoint, such as a directory number or an IP address.

[see more...]

 


  

JCC Resource Adaptor for SIP and MGCP overview  

The RA implementation is adoptation of Java Call Control API (JCC 1.1) for the requirements of Jain SLEE. The JCC RA has been realized as an abstraction layer on top the SIP and MGCP protocols, the former for implementing signaling and call control functions, and the latter for managing interactions with Media Server. 

The JCC RA for SIP and MGCP protocols allows service developers to realize carrier‑grade services in an easier and faster way with respect to creating the same services by directly using the SIP RA and/or MGCP RA methods. Through a higher layer abstraction provided by the JCC RA, a complex service logic does not have to include specific SIP or MGCP signaling issues, and the achievable performance results to be very promising. This RA mainly alleviates service developers from the burden of handling the complexity of the SIP and MGCP  communication and signaling protocols and architectures.

There are remarkable benefits in building complex VoIP services with using the JCC RA, such as a significant reduction of both the number of messages to be managed for establishing a call, and the number of man-months required for implementing a service. In addition, the JCC RA allows improving the achievable performance in terms of call throughputs, due to an optimized implementation of SIP and MGCP functions deployed in the RA.

The JCC RA for SIP and MGCP has been implemented as part of the Mobicents SLEE version 2.7.0.FINAL, which is compliant with the JAIN SLEE 1.1 specifications. The interaction between the RA and the underlying SIP network has been realized by using the JAIN SIP API and JAIN SIP Reference Implementation (RI) v1.2, while the MGCP part has been implemented through the JAIN MGCP RI v1.0. The same RIs have been used to implement the SIP and MGCP providers in the JCC RA.

 

JCC SIP MGCP RA Featurs

  • Work on Mobicents SLEE application server version 2.7.0.FINAL

  • Allow to realize complex VoIP services in an easier and faster way

  • Allow to use the SIP and MCGP protocols under the higher layer abstraction provided by the JCC specification

  • The VoIP calls are handled as JCC Calls and JCC Connections

  • The SIP and MGCP transactions are handled internally by the JCC RA

  • Allow to use Announcement, IVR (Interactive Voice Response), Packet Relay with Announcement and Packet Relay with IVR MGCP endpoints

  • Underling successful and unsuccessful transaction processing are hidden to the service developer

  • The RA automatically choices and handles the suitable sequence of signaling messages, according to the state of the relevant JCC Connection

  • Each call leg is managed independent from each other, as a Back-To-Back fashion

  • Compliant with SIP RFC 3261 and MGCP RFC 343

 

JCC SIP MGCP RA Benefits

  • Reduction of the VoIP service creation and implementation complexity. For example, instead of programming a complete SIP exchange, only a single mandatory RouteCall() method is sufficient to establish a call

  • Avoid the error prone management of both the SIP and MGCP protocols

  • The application developers have to implement only the service logic relevant to the application. This is one of the main advantages of using the JCC abstraction layer to develop complex VoIP services.

  • Drastic reduction of the service design and developing time

  • The JCC SIP MGCP RA allows gaining up to 40% on the implementation effort, in term of code lines

  

JCC SIP MGCP RA Performance

In the follow, we show the perfomance results obtained by testing the JCC SIP MGCP RA with a complex VoIP service.

The service signaling flow is depicted in the following image and  is started by the SIP UAC, which sends a SIP INVITE message to the SIP proxy, which in turn routes the message towards the MSLEE. When this INVITE is received, the service immediately queries the DB in order to retrieve the subscriber profile. Then, the service creates the second call leg towards the UAS and establishes the media session between endpoints (represented by the JccConnection instances). The subsequent DB queries are used to update service related information, such us the residual credit for prepaid service. A final DB query, upon call termination, is used to update service-related information in the database.

 

Test-Service Signaling flow 

The JCC SIP MGCP RA has been tested with the complex VoIP service outlined above. The following image shows the very good performance results obtained by the JCC SIP MGCP RA. 

Calls have been generated by the UAC according to a deterministic arrival process. The call length was 180 seconds, and the duration of each test was 60 minutes. As performance metrics, we report the maximum call throughput (MCT, defined as the maximum input call rate generating a percentage of lost calls lower than 1%), expressed in calls per second (cps).

We also reported the MCT value corresponding to the further limitation of generating a 95-th SRD (Session Request Delay) percentile of borh 200ms and 500ms. The SRD is defined as the time interval from the initial SIP INVITE to the first non-100 provisional SIP response. SRD values are important since they are related to the latency experienced by a caller initiating a session and need to be bounded.

 

JCC RA performance results

 

Test bed

  • SIPp traffic generator for SIP UAC and UAS

  • MSLEE version 2.7.0.FINAL on a Fujitsu-Siemens PRIMERGY TX300 S4 server with dual Intel Xeon E5410 and 16 GB of RAM

  • Operating system: CentOS 32-bit v5.5 OS and Ubuntu Server 64-bit v11.10 OS

  • JVM version: 1.6.0.30 32-bit and 64-bit

  

Technical Report

Here is a short-list of the Technical Reports that show both the feasibility and the very good performance of the implemented JCC RA over SIP and MGCP:

An extended Java Call Control for Session Initiation Protocol An extended Java Call Control for Session Initiation Protocol
Enhancing Java Call Control with Media Server Control functions Introduction of Media Gateway Control functions in Java Call Control

 

 


 

 Trial Version

Thank you for your interest in evaluating JCC RA for SIP and MGCP protocols. The trial version is fully functional and offers every feature of the product for you to test. The trial version is limited to only handle one call at a time.

 To try the product, you have to download all the following software:

Mobicents JAIN SLEE Server 2.7.0.FINAL Binary Realese
JCC-SIP-MGCP-RA Trial Version
JCC-SIP Back-To-Back Example Service

 

 

 

 

 

System requirements

Before starting the installation, make sure your system has the Sun/Oracle JSE Development Kit 6 installed. Notice that OpenJDK, which is shipped in many Linux distribution, cannot be used.

If your system already has a Java runtime, you can execute the following command to find it out.

$ java -version

java version "1.6.0_30"
Java(TM) SE Runtime Environment (build 1.6.0_30-b12)
Java HotSpot(TM) Client VM (build 20.5-b03, mixed mode, sharing)

 

Installation

Download the Mobicents JAIN SLEE Server 2.7.0.FINAL Binary Realese from the link above. The file to download has the form mobicents-jainslee-2.7.0.FINAL-jboss-5.1.0.GA.zip.

Extract the file by executing the following command in your desired destination directory

$ unzip -x mobicents-jainslee-2.7.0.FINAL-jboss-5.1.0.GA.zip

 

Download the JCC SIP MGCP RA trial version from the link above. The file to download has the form JCC-SIP-MGCP-RA-TRIAL-VERSION-DU-2.0.jar.

Copy the file to the directory mobicents-jainslee-2.7.0.FINAL-jboss-5.1.0.GA/jboss-5.1.0.GA/server/default/deploy by executing the following command

$ cp JCC-SIP-MGCP-RA-TRIAL-VERSION-DU-2.0.jar 
./mobicents-jainslee-2.7.0.FINAL-jboss-5.1.0.GA/jboss-5.1.0.GA/server/default/deploy

 

Download the JCC SIP Back-To-Back example service the link above. The file to download has the form JCC-SIP-B2B-example-service.zip. In this archive there are the binary file and the source of the example service. 

Extract the file by executing the following command and move into the JCC-SIP-B2B-example-service directory. 

Copy the file JCC-SIP-B2B-DU-2.0.jar to the directory mobicents-jainslee-2.7.0.FINAL-jboss-5.1.0.GA/jboss-5.1.0.GA/server/default/deploy

$ unzip -x JCC-SIP-B2B-example-service.zip

$ cd ./JCC-SIP-B2B-example-service

$ cp ./JCC-SIP-B2B-DU-2.0.jar
./mobicents-jainslee-2.7.0.FINAL-jboss-5.1.0.GA/jboss-5.1.0.GA/server/default/deploy

 

 Once you have deployed the MSLEE server, the JCC SIP MGCP RA and the test application, enter into the MSLEE installation directtion

$ cd mobicents-jainslee-2.7.0.FINAL-jboss-5.1.0.GA/jboss-5.1.0.GA

 

Now you can start the MSS server.

$ cd ./bin

$ ./run.sh -b <your_server_address>

 

Note: the default SIP listening port of the JCC SIP MGCP RA is the 5060 and can not be changed.

 

Test your installation

If you followed the above specified steps, then you should be able validate your installation. The test application has been designed to connect two softphones with a IP to SIP Provider call without SIP Registrar.

To use this application, you first need to obtain two softphones able to set a SIP outbound proxy and to make SIP calls without SIP registrar (e.g. Kapanga Softphone). 

Kapanga Softphone configuration for IP to SIP Provider calling:

  • click on the K icon in the upper left side of the phone, then select "Configuration" > "Call Control Settings "and then go to the "Proxy Configuration" tab

  • now configure the "Outbound Proxy" with the MSLEE server address and the SIP default port: for example 192.168.1.1:5060

  • make sure that both the "Register" and the "Direct IP to IP' checkboxes are unchecked

 

Once you have configured the two softphones, just use them to call one to another, by using the relevant SIP URI. For example: 

  • softphone 1 connected as This email address is being protected from spambots. You need JavaScript enabled to view it.:5060

  • softphone 2 connected as This email address is being protected from spambots. You need JavaScript enabled to view it.:5020

  • softphone 1 call the softphone 2 by using the following SIP URI: This email address is being protected from spambots. You need JavaScript enabled to view it.:5020

  • vice versa using the following SIP URI: This email address is being protected from spambots. You need JavaScript enabled to view it.

 

JCC SIP Back-To-Back Service description

The JCC-SIP Back-To-Back service shows the easy use of the JCC RA to create a SIP-based service. It consists of a third party call control based on a central Back to Back User Agent (B2BUA), implemented by an MSLEE, which acts as both SIP UAC and SIP UAS.

It splits each call (represented by a JccCall instance) in two SIP dialogs over two distinct call-legs (JccConnection A and JccConnection B). A signaling flow is started by the SIP UAC, which sends a SIP INVITE message to the SIP proxy, which in turn routes the message towards the MSLEE. When this INVITE is received, the MSLEE event routing subsystem is invoked and a root Service Building Block (called CallControl) is created. At this point, the SBB (Service Building Block) creates the second call leg towards the UAS and establishes the media session between endpoints (represented by the JccConnection instances). The call can be terminated by either the caller or the callee, or directly the MSLEE after 5 minutes from the begin.

The following image depitcs the signaling flow of the service (in case the MSLEE terminates the call).

 

JCC SIP B2B signaling flow

 


 

Contacts

Prof. Gianluca Reali       email: This email address is being protected from spambots. You need JavaScript enabled to view it.

Ing. Francesco Giacinti  email: This email address is being protected from spambots. You need JavaScript enabled to view it.

Dr. Mauro Femminella   email: This email address is being protected from spambots. You need JavaScript enabled to view it.

 

Monday the 11th. . Hostgator coupon