SIP Overview

Purpose

The Multimedia Protocols Session Initiation Protocol (SIP) framework supports SIP, Session Description Protocol (SDP), and Signaling Compression (SigComp). SIP is an application layer signaling protocol that creates, modifies, and terminates sessions with the users. This overview describes the use of SIP as defined in RFC 3261 . It provides the information about the use of SDP, SigComp and also the implementation-specific mechanisms like the Client Resolver and Profile Agent engines.

Required background

This overview does not describe how the SIP protocol works, but assumes that the user knows about SIP, SDP, and associated protocols that set up multimedia sessions for use cases such as VoIP.

Key concepts

Session Initiation Protocol

SIP is an application layer signaling protocol used to create, modify, and terminate sessions with the users. The SIP subsystem architecture is based on the generic Session Initiation Protocol, RFC 3261 . It indicates that the 3GPP IMS specific SIP message flows. SIP message semantics are the responsibility of the clients, with the 3GPP Release 5 IMS specific security mechanism implemented as an ECOM plug-in.

The following components or subsystems are part of the Symbian SIP framework:

  • Session Description Protocol (SDP)

    SDP provides a standard representation for multimedia information and a standard method to transport that information. The SDP is implemented as an independent component and is used with transport mechanisms such as SIP. The SDP Codec subsystem provides services to convert SDP descriptions to internal representation and internal representations to SDP descriptions. SDP provides an API for its clients to encode or decode SDP descriptions and to set or get the SDP field values. For more information about the APIs supported by the SDP Codec subsystem, see SDP Codec API .

  • Signaling Compression

    The Signaling Compression component provides services to compress and decompress the text based protocols such as SIP, SDP, and Real Time Session Protocol (RTSP). Compressors that use different compression algorithms are dynamically determined and loaded at run-time using the ECOM architecture. UDVM provides the decompression functionality and runs the uploaded decompression algorithms. The component architecture allows new compressors that use a plug-in mechanism and static dictionaries to be included in the implementation.

  • SIP Client Resolver

    The SIP Client Resolver defines the architecture for resolving or identifying the target client when it receives the SIP request from a default port. For information about the SIP Client Resolver API, see SIP Client Resolver API .

API summary

The following are some of the main APIs used in SIP communication.

API name Description

SIP Client API

An API that manages SIP transactions and SIP dialogs. It sets the security mechanism parameters, receives connection state change events, queries supported security mechanism and signaling compression support. For more information, see SIP Client API .

SIP Codec API

An API that provides services for managing SIP requests and responses. This means it sets and obtains the headers and field values. For more information, see SIP Codec API .

SDP Codec API

An API that provides a mechanism to encode or decode SDP messages. For more information, see SDP Codec API .

SIP Profile API

An API that is used to get SIP profile parameters. If a profile is not configured for automatic registration it registers or deregisters the specific SIP profile. It also creates, uses, or terminates SIP transactions and dialogs using profile information. For more information, see SIP Profile API .

SIP Client Resolver API

An ECOM plug-in API that is used by applications that use the SIP stack to receive out of dialog incoming request, for example an Incoming VoP call. For more information, see SIP Client Resolver API .

SIP High Level API

An API that encapsulates the SIP call flows inside the RConnection and RSubConnection APIs. For more information, see SIP High Level API .

Typical uses

When to use which API

The following table describes when to use which API.

API name

Usage

SIP Client API

Use the SIP Client API to send and receive SIP messages, create registrations, form and tear down dialogs initiated by INVITE, REFER and SUBSCRIBE requests. For more information, see SIP Client API.

SIP Codec API

Use the SIP Codec API to encode and decode SIP headers and their fields. For more information, see SIP Codec API.

SDP Codec API

Use the SDP Codec API to encode SDP descriptions into an internal form, decode the descriptions from an internal form, set and get the SDP field values. For more information, see SDP Codec API.

SIP Profile API

Use the SIP Profile API to register through a profile. For more information, see SIP Profile API.

SIP Client Resolver API

Use the SIP Client Resolver API to resolve or identify the target client when SIP requests are received from the default port. For more information, see SIP Client Resolver API.

SIP High Level API

Use the SIP High Level API to register with the SIP server, invite a session and subscribe to events. For more information, see SIP High Level API.