| 1 Objectives and Scope |
Java™ API's for the Integrated Network (JAIN™) Framework brings Service Portability and Network Convergence into the Telephony Network. JAIN encompasses a standard set of interfaces for service creation and a number of standard interfaces for service execution. The service creation interfaces allow new services to be described as JavaBeans™ [3], which can be connected using standard graphics tools to create new services. The service execution environment includes Java interfaces to a number of telephony protocols, such as the Signaling System No. 7 ISDN User Part (ISUP) and the Media Gateway Control Protocol (MGCP). How the development of JAIN SIP fits into overall JAIN program management is specified in Figure 1: JAIN Consortium Layout.
Figure 1: JAIN Consortium Layout
The reason we need JAIN is the technological roadblock presented by interfaces to switches, computers, and services. The problem, which is deep inside the network, is that services cannot be transported from one system to another. The JAIN specification defines an interface into the specific domain of each vendor’s SS7 stack and IP protocols, and provides a programming interface (API) to any vendor’s stack for use by application developers.
The need to define a standard API specification has become paramount as users of the telephone and the Internet demand better, coherent services. Java provides a perfect environment for developing such a standard. The Java “write once, run anywhere” philosophy promotes interoperability between JAIN SIP stack providers, enabling Network Equipment Providers and Call Processing Software Providers to choose between JAIN SIP vendors and to provide services compatible with any system.
A Java approach to telephony offers telephone service providers interoperability between hardware and software network elements. As a consequence, Network Equipment Providers and Call Processing Software Providers will be able to bring their true value to the market unimpeded by issues of incompatibility and lack of interoperability.
The scope of JAIN SIP is to define a Java Application Programming Interface (API) for the Session Initiation Protocol [2]. The JAIN SIP design concept provides a high-level common interface, which supplies the functionality of all the supported variants. A specific implementation of the API can then be mapped to a specific protocol variant.
This document is laid out in the following format:
Chapter 1 Objectives and Scope: This chapter provides an insight to JAIN, why we need JAIN, and what needs to be achieved in order to provide JAIN SIP.
Chapter 2 Introduction: This chapter provides an introduction to the Session Initiation Protocol, how it operates, and how its operation can be mapped logically to the real world.
Chapter 3 Requirements Definition: This chapter defines the requirements necessary to develop version 1.0 of the JAIN SIP API. Each requirement is stated succinctly, followed by an explanatory statement that provides any additional information that may be needed for full understanding of the requirement.
Chapter 4 External Requirements: This chapter outlines the requirements that don’t directly affect an implementation of the JAIN SIP API, but that may affect the development of the API.
Chapter 5 Appendix I: This chapter lists the reference materials that are cited throughout this document.
Chapter 6 Appendix II: This chapter lists the abbreviations used throughout the document, as well as any terms that may need additional explanation.
Chapter 7 Appendix III: This chapter lists the figures and tables that appear in this document.
Chapter 8 Appendix IV: This chapter provides a brief summary of the partner companies involved in the development of version 1.0 of the JAIN SIP API.
Chapter 9 Appendix V: This chapter outlines the control, distribution, and history of this document.
Chapter 10 Change Log: This chapter is used to document any changes that may be incorporated into this document after it has been approved.
1.1 JAIN SIP API Specification
The JAIN SIP API specification is to provide a standard portable interface for the transfer of information between SIP Clients and SIP Servers, which enable applications for converged networks by providing call control elements. The purpose of this document is to define the requirements on for the JAIN SIP API specification. This document contains a concise list of all the requirements that need to be satisfied for public release of the JAIN SIP API specification. It is important to note the syntax of the requirements, in that:
If the wording of a specific requirement includes ‘shall’ then the incorporation of this requirement in the JAIN SIP API specification is mandatory.
If the wording of a specific requirement includes ‘should’ then the incorporation of this requirement in the JAIN SIP API specification is strongly recommended, but is not mandatory.
The deliverables of the JAIN SIP API specification will encompass:
A Java API specification, which will define a common interface for accessing the functionality of proprietary implementations of the SIP.
The Reference Implementation (RI) is the "proof of concept" implementation of the Specification. The RI will emulate or simulate the functions of a SIP stack in order to verify the requirements in this specification. The intention of the RI is not to implement a SIP stack or to replace vendor SIP stacks. The purpose of the RI is to provide a means for demonstrating that a Java application written to the JAIN SIP API specification is compatible with that specification.
The Technology Compatibility Kit (TCK) tests the implementation of JAIN interfaces for compliance to the JAIN SIP Specification. The purpose of the JAIN TCK is to verify that a Java SIP protocol implementation is compatible to the JAIN SIP API Specification.
The RI and the TCK do not have to be delivered until the public release of the JAIN SIP API specification.
The Participant who’s Expert is chosen, as Specification Lead is typically responsible for obtaining the appropriate rights to the TCK and the RI to fulfill the Java Specification Participant Agreement (JSPA).
The JAIN SIP API specification will follow the Java language naming convention and strictly follow the functionality of the SIP specifications used. The Java specification definition and process can be found at http://java.sun.com/aboutJava/communityprocess/