NIST-SIP: The Reference Implementation for JAIN-SIP 1.2

NIST-SIP: The Reference Implementation for JAIN-SIP 1.2

This document specifies the JSIP API Specification v1.2.

See:
          Description

Packages
gov.nist.core.net Contains the Network layer classes and interfaces.
gov.nist.javax.sdp Preliminary implementation of the javax.sdp package (JSR 141 see JSR 141 )
gov.nist.javax.sdp.fields Classes for SDP Fields.
gov.nist.javax.sdp.parser  
gov.nist.javax.sip This is the root of the JAIN implementation of SIP.
gov.nist.javax.sip.address Implementation of the address package of the JAIN SIP API.
gov.nist.javax.sip.clientauthutils This package contains a set of utilities for client side Authentication Challenge handling.
gov.nist.javax.sip.header Contains implementations of the SIP headers as defined in JAIN-SIP 1.2 and an implementation of the JAIN-SIP header factory.
gov.nist.javax.sip.header.extensions  
gov.nist.javax.sip.header.ims NIST-SIP Specific support for IMS headers contributed by Jose Miguel Freitas (Aveiro University, Portugal) and Alexandre Miguel Silva Santos (PT Inovacau, Portugal).
gov.nist.javax.sip.message Class definitions for SIP messages and message factory.
gov.nist.javax.sip.parser Parsers for SIP Headers, URL's and addresses.
gov.nist.javax.sip.parser.extensions  
gov.nist.javax.sip.parser.ims Parser for IMS headers.
gov.nist.javax.sip.stack This package implements the main protocol abstractions that are defined by the SIP RFC 3261.
javax.sdp This is a preliminary version of the javax.sdp package based on the public review version JSR 141 .
javax.sip This package contains the main interfaces that model the architecture from both an application developer and a stack vendor view.
javax.sip.address This package contains interfaces that represent the Addressing components of the SIP protocol.
javax.sip.header

This package contains all the headers interfaces supported by this specification.

javax.sip.message This package contains the interfaces representing SIP messages.

 

This document specifies the JSIP API Specification v1.2.

Objective

The objective of this specification is to develop a standard interface to the Session Initiation Protocol (SIP) that can be used independently or by higher level programming entities and environments. This specification was designed to provide a developer with a standardized interface for SIP services which are functionally compatible with the RFC3261 specification. This specification is a general purpose transaction based Java interface to the SIP protocol. It is rich both semantically and in definition to the SIP protocol.

Design approach

This specification explicitly supports RFC 3261 functionality and the following SIP extensions; the INFO method (RFC 2976), Reliability of provisional responses (RFC 3262), Event Notification Framework (RFC 3265), the UPDATE method (RFC 3311), the Reason Header (RFC 3326), the Message method (RFC 3428) defined for instant messaging and the REFER method (RFC 3515), Distributing Authoritative Name Servers via Shared Unicast Addresses (RFC 3581), the PUBLISH method (RFC3903).

This specificaiton standardizes the interface to the generic transactional model defined by the SIP protocol, providing access to dialog functionality from the transaction interface. The architecture is developed for the J2SE environment therefore is event based utilizing the Listener/Provider event model. The specification is asynchronous in nature using transactional identifiers to correlate messages. It defines various factory classes for creating Request and Response messages and SIP headers.  This specification defines an interface for each Header supported, which can be added to Request or Response messages respectively. These messages are passed to the SipProvider with a transaction to be sent onto the network, while the SipListener listens for incoming Events that encapsulate messages that may be responses to initiated dialogs or new incoming dialogs.

This specification is extensible by design. It defines a generic extension header interface that can be used by applications that utilize headers that are not supported directly by this specification. The design also defines a mechanism to support future dialog creation methods via the use of Java Properties. Configuration elements can be managed statically via properties or dynamcially via ListeningPoints i.e. IP addresses, ports and transports or Router function. 

Applications built using this specification may be stateless, dialog stateful or transaction stateful components such as stateful proxy servers (without being dialog stateful). The default handling of message retransmissions is dependent on the application. All retransmissions are handled by the stack for user agents (ie. dialog stateful applications).

The updates incorporated in this release can be found in the Change-Log.

Specification Leads

Phelim O Doherty, BEA Systems Inc.
Mudumbai Ranganathan, National Instituate of Standards and Technology (NIST).

The specification leads would like to acknowledge effort and contributions to the this specification from 8x8, BEA systems, dynamicsoft, HP, IBM, Lucent, Nortel Networks, NIST, Open Cloud, Radvision, Siemens AG, Sun Microsystems. The specification leads gratefully acknowledge contributions from Jeroen van Bemmel from Lucent and Sarit Galanos from Radvision and those of the user community (members of the JAIN SIP and NIST SIP mailing lists) in defining the specification. This specification has truly been a community effort. Special thanks is also given to the Advanced Networking Technologies Division development team at NIST this specification owes alot to their commitment in developing the Reference Implementation and Technology Compatibility Kit (TCK) and to Emil Ivov from Louis Pasteur University, France also who helped develop the Technology Compatibility Kit in partnership with NIST.


NIST-SIP: The Reference Implementation for JAIN-SIP 1.2

A product of the NIST/ITL Advanced Networking Technologies Division.
See conditions of use.
Submit a bug report or feature request.