JAIN SIP 1.1 Reference implementation Description

The packages with the prefix gov.nist.javax.sip in distribution collectively form the official reference implementation (RI) for JAIN SIP 1.1. JAIN -SIP is a JAVA standard API for low level access to a SIP protocol stack. The organization of the implementation is slightly different from that of the jain interfaces. Here is a brief description of the JAIN-SIP implelemetnation packages.

The Parser Package (gov.nist.javax.sip.parser)

The parser is intended to be embedded in a SIP protocol stack or test tool and for building sip extensions.   The parser takes as input either a buffer or an input stream and produces as output a parsed message structure. The stream (PipelinedMsgParser) based parser is intended to be used when TCP is used as the transport and the buffer based parser is intended to be used when UDP is used as the transport mechanism (the RI can be used over both TCP and UDP but does not yet implement sips). This package also contains parsers for each of the headers defined in the JAIN SIP specification.

The Stack package (gov.nist.javax.sip.stack)

The function function of the stack is to listen for incoming messages, parse such messages and call a handler to do the appropriate thing with the parsed message. The handler creates a JAIN event and hands it off to the registered JAIN listener. The stack package includes a Transaction and a Dialog layer. The Transaction layer takes care of retransmission and matching requests to responses and other gory details. The Dialog layer groups dialogs and is of use in building Dialog stateful components such as User Agents and Proxy servers. These implement the corresponding JAIN SIP interfaces directly.

The JAIN Header package implementation (gov.nist.javax.sip.header)

This package contains implementations of the header interfaces in the corresponding JAIN package as well as the header factory implementation.

The JAIN Message package implementation (gov.nist.javax.sip.header)

This package implements SIP Request and Response interfaces and the Message Factory interface.

The JAIN Address package implementation (gov.nist.javax.sip.address)

This package contains classes that implement the JAIN-SIP Address factory and classes that implement the URI's defined in the JAIN-SIP spec.

The SDP package

The hierarchy contained in gov.nist.javax.sdp contains an implementation of the JAIN SDP API (JSR 141). As such this is a stand-alone package; however, its primary use here is so that it can be used in conjunction with the SIP packages described above.

Backward Compatiblity Notice

JAIN-SIP 1.1 is not backward compatible with JAIN-SIP 1.0 and consequently NIST-SIP 1.2 is not backward compatible with NIST-SIP 1.1 (which implemented JAIN-SIP 1.0). However, JAIN-SIP 1.1 supports many features that were not supported by the previous API and more over NIST-SIP 1.1 has some protocol bugs which have hopefully been resolved here.