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.
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.
The following table describes the capabilities the user must have to use the SIP Profile API.
The API cannot be extended.
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
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.
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.