|
||
ALR (Application Level Roaming) is a facility which allows a SIP Profile to switch between different service providers by using different IAPs (Internet Access Points). By default, all SIP clients allow the SIP profiles they are using to roam across different IAPs. You can restrict roaming for a SIP profile to a set of IAPs by configuring the profile with an SNAP (Service Network Access Point) ID. The SIP profile store must include the SNAP ID which is a unique identifier for a set of IAPs that can be used by the SIP profile while roaming.
In addition to configuring a SIP profile with an SNAP ID, it is also
necessary to use the classes, CSipProfileAlrController
and
MSipProfileAlrObserver
to control ALR.
You must use an instance of the
CSipProfileAlrController
class and implement the
MSipProfileAlrObserver
interface to be able to register
for ALR events. After registering for the ALR event, the
MSipProfileAlrObserver
interface notifies the client as
and when a SIP profile used by the client tries to migrate to another IAP. Then
the client can allow or disallow the migration request using the
CSipProfileAlrController::AllowMigrationL()
or
CSipProfileAlrController::DisallowMigrationL()
functions.
The following sequence diagram shows the call flow of enabling a SIP profile configured with an SNAP ID:
Once you register the SIP profile with an SNAP ID, you can allow the SIP profile to migrate to another IAP within the SNAP.
The following diagram shows the call flow of SIP profile migration:
As per the sequence diagram above, the SIP profile is deregistered after migrating to another IAP. To be able to use it again, you must register the profile again.