Presence Devices

This section discusses presence devices.

The RTC Client API version 1.2 enables users to retrieve presence status and presence information for several different presence devices at the same time. A presence device is any device that a user can log onto the server from. For example, a user can be logged onto the server as actively present on a SIP phone, a laptop, and a personal data device. When a user logs onto the server from more than one device, he creates multiple points of presence (MPOP) for his watchers to view his presence information on. MPOP requires support from the server to implement. The RTC version 1.0 API allowed users to log in with only a single presence device (or Single Point of Presence (SPOP)). The online status and extended presence information is added to the presence information for each user and is backward compatible with RTC Client 1.0 presence storage.

The RTC Client API version 1.2 includes interfaces to enumerate the presence devices available to a specific buddy. When a user is watching a buddy on a number of presence devices, he can enumerate through all the presence devices and retrieve information on each device. For example, the user can obtain the presence status for each device as well as the enhanced presence information. The following information is available for each presence device for a buddy:

  • Notes

    Typically a short note on the device.

  • Status

    An enumerated status value, such as online, offline, away, or idle.

  • Presence Property

    A standard enumerated presence property. This can include presence information, such as e-mail address, phone number, or display name. The server decides whether to include this information in the presence document.

  • Presence Data

    A string of data that contains enhanced presence data. This may be an XML string and can contain any type of presence information, such as global positioning system (GPS) information or Microsoft Outlook calendar data.

The IRTCPresenceDevice interface created by the IRTCEnumPresenceDevices interface supplies methods to retrieve the presence information. The IRTCEnumPresenceDevices interface provides the COM standard enumeration methods to enumerate the presence devices and is created by calling the IRTCBuddy2::EnumeratePresenceDevices method.

When a session is created and a participant is added that is actively logged onto the server from multiple devices, the server decides which device to route the INVITE request to based on the server configuration set by the administrator. For example, if a buddy is logged onto the server from three different devices, one with presence status as online, one with presence status as busy, and one with presence status as away, the server may heuristically decide to route the INVITE request to the device with the most available status, which in this case is online.