This topic provides an overview of RTC roaming features.

With the release of the RTC Client API Version 1.2, RTC now has full support for roaming profiles with contact lists. This feature enables a user to move from a client on one machine to another and retain his contacts regardless of location. Roaming is an extension to the SIP protocol that may or may not be available on all SIP servers. If you have a SIP server that supports roaming available, your client application can take advantage of roaming to store contacts (specifically groups, buddies, and watchers) in a centralized location as well as in a local store. Upon login by a registered user, the current client will be updated with this stored information accordingly. Changes to this information by the user will be likewise propagated upstream. If the server does not support the storage of roaming data, the information will be stored only locally.

To receive roaming events, the event filter must be set to allow RTCE_ROAMING events. Roaming events, as enumerated by RTC_ROAMING_EVENT_TYPE, come in four forms, as follows:

  • Buddy roaming events
  • Buddy group roaming events
  • Watcher roaming events
  • Profile roaming events

When an event of this type is handled, the IRTCRoamingEvent interface will be present on the event object, and the type of the event can be returned by calling IRTCRoamingEvent::get_EventType. Roaming events are generated when roaming for presences are enabled or encounter an error. The IRTCRoamingEvent::get_Profile method will return the profile that fired the roaming event, and the IRTCRoamingEvent::get_StatusCode method will return the status of the roaming operation. Status updates can include whether or not roaming was successfully enabled for the client user profile, or whether the roaming session failed.