Find JSRs
Submit this Search

Ad Banner

JSRs: Java Specification Requests
JSR 21: JAINTM JCC Specification

Updates to the Original Java Specification Request (JSR)

This section contains updates to the original request.

2013.04.15: Ericsson AB has become the Maintenance Lead.

Maintenance Lead: Christer Boberg, Ericsson AB

E-Mail Address:

Telephone Number: -

Fax Number: -

Note: The scope of JSR 000021 is to focus on the JAIN Java Call Control (JCC). Any references seen below that refer to the JAIN Coordination and Transactions (JCAT) willl be addressed in JSR 121, JAIN JCAT.

Contact Information:

John-Luc Bakker
Telcordia Technologies, Inc.
Phone: +1 973 829-3178 x5062

Original Java Specification Request (JSR)

Identification | Request | Contributions

Original Summary: The scope of JSR 21 is to focus on the JAINTM Java Call Control (JCC) Specification. Any references seen below that refer to the JAIN Coordination and Transactions (JCAT) are addressed in JSR 122.

Section 1. Identification

Contact Information:

Ravi Jain
Telcordia Technologies, Inc.
Phone: +1 973 829-3178

Note that the above information has been updated from the original request.

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

  • APiON Ltd
  • AT&T
  • British Telecom
  • IBM
  • Nokia
  • Nortel Networks
  • Oracle
  • Sun Microsystems
  • Telcordia Technologies, Inc.

Section 2: Request

This JSR is to develop the Java APIs for Integrated Networks (JAIN) Java Call Control (JCC) and Java Coordination and Transactions (JCAT). It will describe the Java standard API for call control and call coordination and transactions in the Telecommunications and Internet industry.

2.1 What is JCC/JCAT?

Java Call Control (JCC) includes the facilities required for observing, initiating, answering, processing and manipulating calls, where a call is understood to include (but is not necessarily limited to) a multimedia, multiparty session over the underlying integrated (PSTN, packet and/or wireless) network.

Java Coordination and Transaction (JCAT) includes (but is not limited to) the facilities required for applications to be invoked and return results before, during or after calls; to process call parameters or subscriber-supplied information; and to engage in further call processing and control. Note that in this context applications may be executing in a coordinated, distributed fashion across multiple general-purpose or special-purpose platforms, and the facilities required for this coordination are within the scope of the JCC/JCAT API.

2.2 Target Java Platform

The JAIN JCC/JCAT Specification is targeted towards telephony over integrated Public Switched Telephone Networks (PSTN), Internet Protocol (IP) networks, and wireless networks.

2.3 Needs of Java Community this Specification Addresses

The JAIN JCC/JCAT Specification defines an API which allows for the rapid creation and deployment of dynamic telephony services into a Java telephony platform. Traditionally, telephony applications require costly resources to develop, test, and deploy. A JAIN software component written to the JCC/JCAT API 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 telephony services.

2.4 The API being defined

The API specified by the JAIN Application Expert Group Java Community Process (JCP) participants for JCC/JCAT provides applications with a consistent mechanism for call control (or processing) and coordination and transactions (or interacting with calls.) JCC/JCAT will be a portable object-oriented application programming interface for Java-based integrated network applications. The API specification is expected to take advantage of related work in the Java Telephony API (JTAPI) being standardized by ECTF and under the JCP, particularly in the area of call control. The JCC/JCAT API will also take advantage of the rich expertise which has been developed in the telecommunications industry for call control as well as call coordination and transactions.

The JAIN JCC/JCAT API will build upon the Java Beans Component model and rely on the Java Event model for inter-component communication. The JCC/JCAT platform vendor will supply the JCC/JCAT 'provider' interface into the platform implementation, while application developers will interact with the provider and other JCC/JCAT objects via listeners and method invocation. Proprietary platform features are hidden behind a JAIN JCC/JCAT Factory. Through JAIN JCC/JCAT interfaces, a platform provider is obtained from the factory, and JAIN JCC/JCAT listeners are then attached to the providers.

2.5 Underlying technologies

The JAIN JCC/JCAT Specification will provide an interface to underlying call processing platforms (which are assumed to include coordination and transactions facilities) supplied by the JAIN JSPA members and other third-party platform implementers. It is expected that JAIN JCC/JCAT platform providers will support a variety of lower-layer signaling, coordination and transaction protocols, such as MGCP, SIP, H.323, ISUP, TCAP, etc., in order to implement the facilities provided via the JCC/JCAT API. However, the JCC/JCAT API will shield application developers from the specifics of the various networks and protocols.

A JAIN JCC/JCAT application can be written as a program, applet, servlet, or bean. The JAIN JCC/JCAT API encapsulates the functions of different vendors' call processing platforms with a standardized Java interface.

While no dependency on Java visual tools for constructing JAIN JCC/JCAT 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 components and applications written to the JAIN JCC/JCAT API.

2.6 Proposed package names

Package names being considered are:
This package contains the main interfaces, classes, and exceptions required to perform call control as well as for application invocation, coordination, and transactions.

This package contains the interfaces, classes, and exceptions associated with call control, coordination and transactions capabilities.
This package contains the interfaces, classes, and exceptions associated with call control, coordination and transactions events.

This package contains the interfaces, classes, and exceptions associated with user interaction facilities.

2.7 Possible platform dependencies

The Reference Implementation may have a dependency on RMI.

2.8 Security implications

None. JAIN JCC/JCAT expects to utilize standard JDK security.

2.9 Internationalization implications

JCC/JCAT is expected to be modular, extensible and defined at a sufficient level of abstraction so that it can be adapted to the needs of International markets.

2.10 Localization implications

JCC/JCAT is expected to be modular, extensible and defined at a sufficient level of abstraction so that it can be adapted to the needs of north American markets.

2.11 Risk assessment

JAIN JCC/JCAT moves Java into telco carrier grade service. The telecommunications industry imposes stringent performance and failure requirements on hardware and software platforms. Risks include 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