JSRs: Java Specification Requests
JSR 23: JAINTM MGCP API Specification
JCP version in use: 1.0
Java Specification Participation Agreement version in use: 1.0
This work will specify the JAINTM API through which access to protocol stacks that support the Media Gateway Control Protocol (RFC 2705) may be achieved.
Please direct comments on this JSR to the Spec Lead(s)
Update to the Original Java Specification Request (JSR)
The following information has been updated from the original JSR.
2013.04.16: Ericsson AB has become the Maintenance Lead.
Maintenance Lead: Christer Boberg, Ericsson AB
E-Mail Address: christer.boberg
Telephone Number: -
Fax Number: -
Section 1. Identification
Original Java Specification Request (JSR)
Identification | Request | Contributions
Section 1. Identification
Vito P. Jokubaitis,
NOTE that this information has been updated.
This JSR is being submitted and endorsed by the following Java Community Process Participants:
Section 2: Request
This JSR is to develop the Java APIs for Integrated Networks (JAIN) Media Gateway Control Protocol (MGCP). It will describe the Java API for media gateway control in the Telecommunications and Internet industry.
2.1 What is MGCP?
The Media Gateway Control Protocol (MGCP) has been introduced to the IETF (MEGACO working group) for controlling (trunking) gateways that interconnect the Public Switched Telephone Network (PSTN) with packet networks and for controlling (residential) gateways that function as network interfaces for customer premise located equipment (e.g., phones with an RJ-11 jack). MGCP is the result of merging the Simple Gateway Control Protocol (SGCP) and Internet Protocol Device Control (IPDC). Extensive discussions are going on currently in the Internet Engineering Task Force (IETF) on the subject of standardizing the interface between the call agent and gateways. MGCP is one of the candidate protocols under consideration.
2.2 Target Java Platform
The JAIN MGCP Specification is targeted towards telephony over Internet Protocol (IP) networks.
2.3 Needs of Java Community this Specification Addresses
The JAIN MGCP Specification defines an API which allows for the rapid creation and deployment of dynamic telephony services into a Java telephony platform. Standard Telephony applications require costly resources to develop, test, and deploy. A JAIN MGCP component can be rapidly developed, tested, and integrated on a variety of platforms with access to numerous tools and utilities. A JAIN cross-platform solution gives the Carriers, Service Providers, and Network Equipment Providers a consistent, open environment where they can develop and deploy portable telephony services.
2.4 The API being defined
The API specified by the JAIN Protocol Expert Group Java Community Process Participants for MGCP are based on the MGCP Internet Drafts and the Cable Labs PacketCableTM Network-Based Call Signaling Protocol Specification. Instead of mapping the standard specifications to a Java interface, the JAIN MGCP API specification abstracts a functional definition into the variant protocol stacks.
The JAIN MGCP API is built upon the Java Beans Event model. The protocol stack vendor supplies the JAIN MGCP 'provider' interface into the protocol stack. JAIN MGCP 'listeners' may readily be rolled onto the platform by an object manager.
Proprietary stack features are hidden behind a Factory (a standard design pattern). Through a combination of common JAIN and JAIN MGCP interfaces, a protocol stack provider is obtained to which JAIN MGCP listeners can then register.
2.5 Underlying technologies
The JAIN MGCP Specification is based on underlying MGCP protocol stacks supplied by the JAIN JSPA members and on other third-party MGCP protocol stack implementations. While JAIN MGCP will adapt well to, and interwork with, other protocols such as H.323 or SIP, its initial purpose is to provide a ubiquitous, standard interface into MGCP protocol stacks.
A JAIN MGCP application can be written as a program, applet, servlet, or bean. The JAIN MGCP API encapsulates the functions of the differing versions of the MGCP protocol with a standardized Java interface, so that call-processing systems can readily communicate with Voice over IP gateways.
While no dependency on Java visual tools for constructing JAIN MGCP components is assumed, the use of a Java Bean Manager and/or visual Java bean builder can be a significant aid in the development, integration, testing, and deployment of a voice-over-IP network that employs JAIN MGCP components.
2.6 Proposed package names
Package names being considered are:
2.7 Possible platform dependencies
The Reference Implementation may have a dependency on RMI.
2.8 Security implications
None. JAIN MGCP expects to utilize standard JDK security.
2.9 Internationalization implications
Because JAIN MGCP is based on IETF specifications, the API can be readily adapted to European and Asian markets.
2.10 Localization implications
Since JAIN MGCP is based on IETF specifications, the MGCP API can be readily adapted to any North American market protocol stacks.
2.11 Risk assessment
JAIN MGCP moves Java into telco carrier grade service. The telecommunications industry imposes stringent performance and failure requirements on hardware and software platforms. Risks inclu?de failure of the Java platform due to poor performance or the inability to failover or recover. Performance evaluation and tests based on API architecture will be published with each release of the API. Failover will be measured and published based on latency to recover to a like platform and recover state data through JDBC interfaces or Transaction based tools.
2.12 Existing specifications rendered obsolete or deprecated
2.13 Existing specifications needing revisions
Section 3: Contributions
Documents describing JAIN can be found at http://java.sun.com/products/jain/index.html