SIP API overview

The Session Initiation Protocol (SIP) is an IETF signaling protocol for establishing real-time calls and conferences over Internet Protocol networks. SIP sessions may include different types of data such as audio and video or it may be used in instant (text) messaging. It is a traditional text based Internet protocol, resembling the hypertext transfer protocol (HTTP) and simple mail transfer protocol (SMTP).

SIP can use the Session Description Protocol (SDP), which is independent of the packet layer, for media description. This is not required though, and many JSR-180 use cases use their MIDlets to send proprietary SIP payloads to their peers. SIP is an open standard and scalable, having been designed to be a general-purpose protocol. However, extensions to SIP are needed to make the protocol truly functional in terms of interoperability. Among SIP basic features, the protocol also enables personal mobility by providing the capability to reach a called party at a single, location-independent address.

SIP does not provide actual services. Rather, SIP provides primitives that can be used to implement different services. For example, SIP can locate a user and deliver an opaque object to his current location. If this primitive is used to deliver a session description written in SDP, for instance, the endpoints can agree on the parameters of a session.

The first proposed standard version (SIP 2.0) was defined in RFC 2543 and further clarified in RFC 3261.

The Java API for SIP is detailed in JSR-180. It is supported in Symbian with clarifications detailed in the SIP API for Java 2 Micro Edition (JSR-180): Implementation Notes.

SIP works in concert with other protocols and is only involved in the signaling portion of a communication session, acting as a carrier for the SDP. The SDP describes the session name and purpose, time(s) the session is active, the media comprising the session, information to receive the media (addresses, ports, formats etc.). In typical use, SIP "sessions" are simply packet streams of the Real-time Transport Protocol (RTP), which functions as the carrier for the actual voice or video content itself.

For more information about SIP, see the SIP FAQ on Nokia Developer. You can also refer to the IETF homepage for the RFC documents describing the functionality of SIP and SDP.