javax.sip.overview.html Maven / Gradle / Ivy
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.