Overview

The SIP Profile API provides the SIP registration service for applications. This API allows an application to register through a profile. The profile holds the information to provide the required registration behaviour. The behaviour of the registration service depends on the profile type used.

Each standard has an associated profile type such as 3GPP R5 IMS, IETF, or proprietary. Each profile has a one-to-one communication with each SIP registration. The API allows more than one application to share the same profile and the same SIP registration. The implementation of the API stores SIP profiles in persistent store.

A profile stores the following main parameters:

  • The user-friendly name of the service provider.

  • The type of the profile, for example 3GPP R5 IMS, IETF or proprietary.

  • The registered public name of the user (SIP AOR).

  • The access provider identifier of the IAP used.

  • The address of the SIP registrar server, with optional connection and security parameters.

  • The address of the SIP proxy server, with optional connection and security parameters.

  • The compression and security preferences.

  • An indication if the profile is always registered automatically, or registered when it is used by an application.

  • Any extension parameters stored as key-value pairs.

Architectural Relationships

The interface allows clients to share the common resources, profiles and SIP registrations through the client-server mechanism. It also gives access to permanently stored profiles and allows the reading of profile configuration values.

All lengthy operations are asynchronous.

Capability information

The following table describes the capabilities the user must have to use the SIP Profile API.

Capability

NetworkControl

NetworkServices

ReadUserData

Extending the API

The API cannot be extended.

SIP Profile API class structure

The client must create a CSIP object, and must implement the callback functions defined by the MSIPProfileRegistryObserver class. A client of the SIP Profile API must then create a CSIPProfileRegistry object.

A CSIPProfile object is created using one of the retrieval functions that can be accessed through the CSIPProfileRegistry class. Profile data is copied from the permanent store into the new object. The copied values can be accessed using the access functions of CSIPProfile.

The client must enable a profile before you can use it. A profile can be enabled in the following ways:

  • provide an implementation of the MSIPConnectionObserver class

  • call CSIPProfileRegistry::EnableL()

When you enable a profile it is automatically registered. If the profile is not registered before it is enabled the client is notified about the registration status through the MSIPProfileRegistryObserver::ProfileRegistryEventOccurred() callback function.

When a profile is enabled, the client indicates that the profile is in use, and cannot be removed. You can update the profile but, it is not recommended.

If required, the client can disable a profile. The client can then delete the CSIPProfile object.

The following illustration shows the SDP Profile API class structure.

Memory used

The amount of memory used by a profile depends on its content. A normal usage is approximately 0.2 KB for each profile. The SIP Profile server monitors all instantiated profiles to send the asynchronous events to clients when required. It is recommended that clients create the minimum number of profiles required, and delete instances immediately when they are no longer required.