Find JSRs
Submit this Search

Ad Banner

JSRs: Java Specification Requests
JSR 32: JAINTM SIP API Specification

Updates to the Original JSR

The following updates have been made to the original request since its submission:

2002.06.21: Spec Lead changed from Dynamicsoft to Sun Microsystems:

Phelim O'Doherty
Sun Microsystems
Phone: +44 28 90 369 158

2003.06.23: NIST added as a co-lead:

Mudumbai Ranganathan
Phone: +1 301 975 3664

2005.03.16: NIST becomes sole Maintenance Lead.

2005.06.22: BEA added as a co-lead:

Phelim O'Doherty
BEA Systems
Phone: +44 28 90 369 158

Original Java Specification Request (JSR)

Identification | Request | Contributions

Section 1: Identification

Contact Information:

Steve Mayer,
Phone: +1 732 741 7244

NOTE: this information has been updated from this original request.

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

  • AT&T
  • dynamicsoft
  • IBM
  • Sun Microsystems
  • Telcordia Technologies

Section 2: Request

This JSR is to develop the JavaTM APIs for Integrated Networks (JAIN) Session Initiation Protocol (SIP). It will describe the Java API for call control in the Telecommunications and Internet industry.

2.1 What Is SIP

SIP is an IETF standard protocol for IP-communication, enabling IP-Telephony gateways, client endpoints, PBXs and other communication systems or devices to communicate with each other. SIP mainly addresses the call setup and tear down mechanisms of sessions and is independent of the transmission of media streams between caller and callee.

2.2 Target Java Platform

The JAIN SIP Specification is targeted towards telephony over Internet Protocol (IP) networks.

2.3 Needs of Java Community This Specification Addresses

The JAIN SIP Specification defines an API which allows for the rapid creation and deployment of dynamic telephony services into a Java telephony platform. Telephony applications require costly resources to develop, test, and deploy. A JAIN SIP 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 to 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 SIP are based on the RFC 2543 Session Initiation Protocol published by Internet Engineering Task Force. The JAIN SIP API specification abstracts a functional definition into the variant protocol stacks.

The JAIN SIP API will leverage the Java Beans Event model. The protocol stack vendor supplies the JAIN SIP 'provider' interface into the protocol stack. JAIN SIP '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 SIP interfaces, a protocol stack provider is obtained to which JAIN SIP listeners can then register.

2.5 Underlying Technologies

The JAIN SIP Specification is based on contributions made by the JAIN JSPA. While JAIN SIP will adapt well to, and interwork with, other protocols such as H.323 and MGCP, its initial purpose is to provide a ubiquitous, standard interface into SIP protocol stacks.

A JAIN SIP application can be written as a program, applet, servlet, or bean. The JAIN SIP API encapsulates the functions of the differing versions of the SIP protocol with a standardized Java interface, so that call-processing and session initiations are readily available within the network.

While no dependency on Java visual tools for constructing JAIN SIP 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 communication service over packet network that employs JAIN SIP components.

2.6 Proposed Package Names

Package names being considered are:

This package contains the main interfaces, classes, and exceptions required to parse, construct, send and receive SIP messages.
This package contains the interfaces, classes, and exceptions representing the Session Description Protocol (SDP), as specified in RFC 2327, used by SIP. Note: this package should be shared with the JAIN MGCP API.

2.7 Possible Platform Dependencies


2.8 Security implications

None. JAIN SIP expects to utilize standard JDK security.

2.9 Internationalization Implications

Because JAIN SIP is based on IETF specifications, the API can be readily adapted to all markets.

2.10 Localization Implications

Since JAIN SIP is based on IETF specifications, the SIP API can be readily adapted to any North American market protocol stacks.

2.11 Risk Assessment

JAIN SIP moves Java into 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 fail-over or recover. Performance evaluation and tests based on API architecture will be published with each release of the API. Fail-over 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.

Section 3: Contributions

Documents describing JAIN can be found at