The SIP Codec API provides functions to encode and decode SIP headers and their fields. It converts SIP messages from the UTF-8 ASCII format to the API implementations internal structure and from the API implementations internal structure to the UTF-8 ASCII format. This implementation validates the SIP message syntax according to the SIP BNF definition and supports serialization and de-serialization of objects belonging to the SIP message structure.

This implementation is provided in a shared DLL and is run in the context of the user. It creates class instances in the user heap area which means the instances cannot be shared between different users.

Architectural relationships

The SIP Codec API does not require any interfaces.

Capability information

There is no capability required when you use the SIP Codec API. This API is valid for all platforms running Symbian OS version 9.1.

Extending the API

SIP Codec API cannot be extended.

Class structure

The logical type of the SIP Codec API is Library API. This interface contains synchronous functions that do not block, but return immediately and it uses only local objects.

The following illustration shows the relationships of the SIP Codec API classes.

Figure: Relationships of the SIP Codec classes - Part 1

Figure: Relationships of the SIP Codec classes - Part 2

The SIP Codec API defines the functions required to create the SIP headers of a SIP message. CSIPHeaderBase is the base class for all SIP headers. A client creates a new instance of the CSIPXHeader class, where “X” is the name of the header required, and sets the values of the header with the setter functions of this class.

Memory used

The amount of memory used by every header object of the SIP Codec API is equivalent to the memory used by the header as text (class + the size of SIP headers).