Find JSRs
Submit this Search

Ad Banner

JSRs: Java Specification Requests
JSR 23: JAINTM MGCP API Specification

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:

Telephone Number: -

Fax Number: -

Section 1. Identification

Contact Information:

John-Luc Bakker
Telcordia Technologies
Phone: +1 973 829 5062

Original Java Specification Request (JSR)

Identification | Request | Contributions

Section 1. Identification

Contact Information:

Vito P. Jokubaitis,
Telcordia Technologies (formerly Bellcore),
Phone: +1 973 829 2386

NOTE that this information has been updated.

This JSR is being submitted and endorsed by the following Java Community Process Participants:

  • APiON Ltd
  • DynamicSoft
  • Telcordia Technologies, Inc
  • Sun Microsystems

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:

This package contains the main interfaces, classes, and exceptions required to send and receive MGCP messages.
This package contains the interfaces, classes, and exceptions representing the Session Description Protocol (SDP) used by MGCP. Note this package could also be used by the JAIN SIP API.
This package contains the interfaces, classes, and exceptions associated with the MGCP line package.
Thi?s package contains the interfaces, classes, and exceptions associated with the MGCP ASDI package.
This package contains the interfaces, classes, and exceptions associated with the MGCP announcement server package.

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

Not applicable.

2.13 Existing specifications needing revisions

Not applicable.

Section 3: Contributions

Documents describing JAIN can be found at