This is the root of the JAIN implementation of SIP. It contains an implementation of the Provider, Listener and Stack. Implementation of the headers is contained in header and implementation of the parser in the parser subdirectory. The SIP Protocol specific abstractions are implemented in the stack subdirectory.

The RI contains several additional Features that are not required by the JAIN-SIP spec and that can be enabled by RI-specific properties that are specified when the SipStack is created. The purpose of these additional properties is to enable the following:

- Message Logging features - permits the application to log messages in a format that are suitable for trace viewing using the trace viewer facility.
- TCP starvation attack prevention - Limit the size and timeout for tcp connections.
- UDP Flooding attack prevention -- limit the size of queues and transaction table size.
- TCP message size limitation -- limit the size of TCP messages to prevent TCP flooding attacks.
- Connection caching and reuse for TCP connections -- reduce latency by re-using TCP connections on client and server transactions.
- Address resolution -- resolve addresses that are not direct DNS lookups or IP addresses using a custom address resolver.
- Network Layer -- allows your application code to have direct access to the Sockets that are used by the stack (use this feature with caution!).

See the javadoc for gov.nist.javax.sip.SipStackImpl for a detailed explanation of these features.

The interfaces that are suffixed with Ext in this package will not be altered and will be included in the next specification revision. These are provided here for those who wish to use these extensions and do not want to wait until the next spec revision becomes available.