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.
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.
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:
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.
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.
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.
The following are some of the main APIs used in SIP communication.
API name | Description |
---|---|
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. |
|
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. |
|
An API that provides a mechanism to encode or decode SDP messages. For more information, see SDP Codec 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. |
|
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. |
|
An API that encapsulates the SIP call flows inside the RConnection and RSubConnection APIs. For more information, see SIP High Level API. |
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 Profile Agent API |
Use the SIP Profile Agent API to receive SIP profile registrations, update and deregister events, also receive any errors reported while doing these tasks. For more information, see SIP Profile Agent 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. |
SIP NATTraversalController API |
Use the SIP NAT Traversal Controller API to establish a connection between the SIP stack and an external UNSAF protocol module. For more information, see SIP NATTraversalController API. |
System State Monitor API |
Use the System State Monitor API to provide system services such as monitoring the system state and monitoring Service Network Access Point (SNAP) availability. For more information, see System State Monitor API. |
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.