Upload
molinat4613
View
110
Download
0
Tags:
Embed Size (px)
Citation preview
The Enhanced Presence Model
Mohammad N. Vakil
Sr. Program Manager
Office Communications Group
Microsoft Corporation
Published: September 2007
Abstract
The Microsoft Office Communicator 2007 enhanced presence model is specifically designed to
meet the requirements of information workers in the enterprise. The primary purpose of presence
awareness is to enhance the communication and collaboration experience. Enhanced presence
awareness helps users make informed decisions about the availability and willingness of
colleagues to communicate at any given time. All presence information is collected and published
in the least intrusive manner possible by employing automatic sensors to detect a user’s
presence status. However, users can also manually set their own presence status when desired.
The information contained in this document represents the current view of Microsoft Corporation on the issues discussed
as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted
to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented
after the date of publication.
This White Paper is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR
STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT.
Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright,
no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or
by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express
written permission of Microsoft Corporation.
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering
subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the
furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual
property.
Unless otherwise noted, the companies, organizations, products, domain names, e-mail addresses, logos, people, places,
and events depicted in examples herein are fictitious. No association with any real company, organization, product,
domain name, e-mail address, logo, person, place, or event is intended or should be inferred.
©2007 Microsoft Corporation. All rights reserved.
Microsoft, Windows, Windows Mobile, Outlook, and SharePoint are either registered trademarks or trademarks of the Microsoft group of companies.
All other trademarks are property of their respective owners.
Contents
Introduction............................................................................................................................................ 2
What is Presence?.................................................................................................................................. 2
Presence Information............................................................................................................................ 2
Enhanced Presence Feature Set...........................................................................................................2
Enhanced Presence Status...............................................................................................................2
Automatic Sensing of Activities.........................................................................................................2
Access Levels................................................................................................................................... 2
Interruption Management..................................................................................................................2
Multiple Points of Presence (MPOP).................................................................................................2
Extensible Presence Status..............................................................................................................2
Integration with Office Applications...................................................................................................2
Presence Model System Overview........................................................................................................2
Architectural Components..................................................................................................................... 2
Private Branch Exchange (PBX).......................................................................................................2
Remote Call Control (RCC) Gateway................................................................................................2
Microsoft Exchange Server...............................................................................................................2
Microsoft Office Communicator.........................................................................................................2
Office Communications Server..........................................................................................................2
Office Communicator Mobile.............................................................................................................2
IP Phones.......................................................................................................................................... 2
Communicator Web Access..............................................................................................................2
Microsoft Office Applications.............................................................................................................2
Enhanced Presence System Architecture............................................................................................2
Categories............................................................................................................................................ 2
Presence State Components................................................................................................................. 2
The Aggregation Script.......................................................................................................................... 2
Summary................................................................................................................................................. 2
Related Links............................................................................................................................................ 2
Enhanced Presence Model 1
Introduction
This paper provides an in-depth look at the enhanced presence model developed for Microsoft® Office
Communicator 2007 and Microsoft Office Communications Server 2007. This paper is targeted at IT
and support professionals and includes the following topics:
An overview of presence and enhanced presence features
A system overview of the enhanced presence model, including architectural components
The aggregation process used to collect presence input from multiple sources and determine a
single presence status for a user
The role of containers and categories in the enhanced presence model to allow users to control the
type and amount of presence information that other users see
Enhanced Presence Model 1
What is Presence?
The presence icon represents a user’s availability and willingness to communicate. As Figure 1 below
shows, Available is the only state in which a user is both available and willing to communicate. In all
other cases, a user is either willing or available to communicate, but not both. For example, a user may
be online but not willing to communicate, as is the case when a user has set his or her presence status
to Do Not Disturb.
Figure 1. Presence dimensions
A user’s presence status provides contextual information to help others decide if they should try to
contact the user and whether to use IM, phone, or e-mail. Presence encourages instant communication
when possible, but also provides information about whether a user is in a meeting or out of the office,
indicating that instant communication is not possible.
To deliver an accurate representation of a user’s presence status, Office Communications Server 2007
collects input from various sources, including devices, user settings, applications, and user activities,
and then aggregates the data into a presence status. The aggregated presence status for a user is
exposed as a presence icon in Office Communicator 2007 and other presence-aware applications in the
2007 Microsoft Office system, including the Outlook® messaging and collaboration client, SharePoint®
technologies, Word, and Excel. The presence icon for a user represents the user’s current availability
and willingness to communicate.
Presence Information
In addition to presence status, which is represented by the presence icon, users have a variety of other
presence information that is collected and made available to others. In the client user interface, a user’s
aggregated presence information is exposed in the Contact Card, as shown in Figure 2.
Enhanced Presence Model 2
Figure 2. Contact Card
The Contact Card consists of the following parts:
Presence status elements, which consist of a contact’s Availability and Activity. Calendar data, which shows a contact’s free and busy information and meeting details. Contact Card data elements, such as a person’s e-mail address, title, office, phone numbers,
MySite URL, and note.
Enhanced Presence Model 3
Enhanced Presence Feature Set
In addition to collecting and reporting a user’s presence status, the enhanced presence model gives
users control over access to their presence information. For example, a user can share a mobile phone
number with his or her closest coworkers but not make the number available to the entire company.
Users can also control interruptions. For example, by setting the presence status to Do Not Disturb, a
user can block all incoming calls and instant messages, except for those from people that the user has
granted the Team access level. Figure 3 below provides an overview of Enhanced Presence model
features.
Figure 3. Enhanced presence feature set
The main features of the enhanced presence model are as follows:
Enhanced presence status
Automatic sensing of activity
Access levels
Interruption management
Multiple points of presence
Extensible presence status
Integration with Office applications
These features are described in detail in the following sections.
Enhanced Presence Model 4
Enhanced Presence Status
The enhanced presence model collects detailed information about a user and reports this information
as a presence status so that others can make informed choices about the best way to contact the user.
As shown below in Table 1, a user’s presence status is exposed through the presence icon and
presence status text, which provides detailed information about the user’s status. The enhanced
presence model also distinguishes whether a user is active while in the Available, Busy, In a Meeting,
In a Call, or In a Conference states. For example, if the user’s presence status is Available, but the
user has not provided input into his or her phone or computer within the automatically or manually
defined time period (5 to 60 minutes), the user’s presence status switches to Inactive, as shown below
in Table 1.
Table 1. Presence status options set by the user or by Communicator
Presence Icon Status Text Description
Available The contact is online and can participate in conversations.
The user can manually set this status, but the next automatic state change will override this setting.
Busy
In a Call
In a Conference
In a Meeting
The contact is available but is engaged in another activity. Possible activities include the following:
In a Call The contact is in a phone, voice, or video conversation.
In a Conference The contact is in a multiparty conversation that uses phone, voice, video, or application sharing.
In a Meeting The Outlook calendar shows that the contact has a scheduled meeting.
The user can manually set this status.
Do Not Disturb
The contact has assigned you to an access level other than Team, and the contact has manually set his or her presence status to Do Not Disturb.
Urgent interruptions only
The contact has assigned you to the Team access level and the contact has manually set his or her presence status to Do Not Disturb.
Away or Be Right Back
The contact is probably not available. This status is displayed for the following reasons:
The contact’s computer has been idle for more than the away time period setting: 15 minutes by default.
The contact has manually set his or her presence status to Away.
The contact has locked the computer.
The contact has manually set his or her presence status to Be Right Back.
Inactive The contact may be available, but his or her computer has been idle for more than the idle time period setting (5minutes by default) but not long enough for the status to change to Away. Alternatively, the user’s screen saver may have started. This status is set by Communicator.
Enhanced Presence Model 5
Presence Icon Status Text Description
Busy (Inactive)
The contact is in a meeting or a call, and the computer has been inactive for the idle time period setting, 5 minutes by default. Alternatively, the contact’s screen saver may have started while his or her status was Busy. This status is set by Communicator.
Offline The contact is not available. This status is displayed for the following reasons:
The contact has manually set his or her presence status to Appear Offline.
Communicator 2007 is not running on the contact’s computer, or the contact has not signed-in.
The contact has blocked you from seeing his or her presence status.
Presence unknown
Communicator 2007 cannot determine the status of the contact. This status is usually displayed because the contact’s presence status is stored in another computer system, such as that of an organization that is not a federated partner.
Blocked You have blocked the contact from seeing your presence status. To the person you have blocked, your status appears as Offline.
Automatic Sensing of Activities
With the enhanced presence model, user activities are automatically collected and aggregated into a
presence status that is selected on behalf of the user. No user input is required. For example, presence
status is set to In a Call when a user places or receives a phone call or In a Meeting when the user’s
Outlook calendar shows a scheduled meeting. As a user signs in to Office Communicator, attends
meetings, places or answers phone calls, or simply stops interacting with his or her phone or computer,
the presence system continues to gather information about the user’s status and distribute the
information to others.
Access Levels
Access levels provide a flexible authorization model so that users can control the amount of presence
information that others see. For example, if a user wants to make a mobile phone number available only
to close coworkers, he or she can assign those coworkers to the Team access level. As shown in Table
2, contacts in the Team access level have access to a contact’s mobile phone number, while members
of the Company access level see only the contact’s work phone number.
Enhanced Presence Model 6
Table 2. Presence information exposed for specific access levels
*If these attributes are defined in Microsoft Active Directory®, as shown above in Table 2, they are visible to all
contacts in your company, regardless of Access Level. They are also visible to federated contacts, depending on
the assigned Access Level. They are not visible to public instant messaging contacts.
Interruption Management
With the enhanced presence model, users can manage interruptions. Users can set their status to Do
Not Disturb, and this status will persist until they manually change it, sign out, or lock their computer.
Users can also select Do Not Disturb from an incoming alert or an existing instant message or audio
call. In that case, the Do Not Disturb status expires at the top of the hour. When a user’s presence
status is Do Not Disturb, by default all incoming audio, video, and instant message alerts are blocked
except for calls and instant messages from contacts who are assigned the Team access level. Users
can change this behavior if desired.
Multiple Points of Presence (MPOP)
The enhanced presence model aggregates a user’s presence status from multiple endpoints, which can
include IP phones, Office Communicator, Office Communicator Web Access, or Office Communicator
Mobile. All endpoints publish the user’s presence status. Presence statuses from multiple endpoints are
Enhanced Presence Model 7
aggregated into a single presence status by an aggregation function and then made available to other
contacts.
Extensible Presence Status
Administrators can create as many as four custom status indicators that are specific to their deployment
(for example, an Out to Lunch status). For details about creating a custom presence status, see the
Microsoft Office Communicator 2007 Deployment Guide at http://r.office.microsoft.com/r/rlidEM?
clid=1033&p1=7&p2=OC2007DeploymentGuide.
Integration with Office Applications
The enhanced presence model is integrated into Microsoft Office applications, so that users can not
only see each other’s presence status while working in Office applications, but they can also initiate
communication such as IM and phone calls from within the Office applications. For example, a user can
right-click another user’s presence icon from the To line of Office Outlook or from the Modified By
column in a SharePoint Web site and then send an instant message or place a call to that user.
Because presence is integrated throughout Office applications, users can initiate communication
without leaving the application in which they are currently working.
Enhanced Presence Model 8
Presence Model System Overview
The enhanced presence model system collects presence information from multiple presence sensors,
aggregates it, and then distributes it to Office Communications Server clients such as Communicator,
Outlook, or IP phones. Figure 4 below provides an overview of the presence model system and shows
the major system components that sense, collect, and publish elements of a user’s presence status to
the presence system. In the figure, the components to the left of Office Communications Server are
presence data sources, which provide presence data input. Office Communications Server performs
aggregation of the presence input and distributes the selected state and presence data to its clients.
Prior to revealing presence data associated with a user, Office Communications Server applies access
control list policies to determine the amount of presence information to display.
Figure 4. Presence model overview
Architectural Components
Presence data for a user can be collected from a variety of input sources, each of which is described in
more detail in the following sections.
Private Branch Exchange (PBX)
A PBX is a telephone exchange that serves a business or office, as opposed to a telephone exchange
that a telephone company operates for many businesses or for general consumers. Most legacy PSTN
desktop phones are connected to a PBX system.
Remote Call Control (RCC) Gateway
When users take phone calls on legacy phones, the RCC gateway acquires the off hook/on hook state
of the user’s desktop phone and publishes it to Office Communicator.
Microsoft® Exchange Server
Microsoft Exchange Server is a messaging and collaborative server product. Exchange Server provides
calendar information, such as a user’s working hours, Out of Office information, free and busy data, and
Enhanced Presence Model 9
meeting details to enrich the user’s presence status. Office Communicator acquires this data from MAPI
or from the Exchange Web services interface, and publishes the data to Office Communications Server.
Microsoft Office Communicator
The Microsoft Office Communicator 2007 client software integrates voice, IM, video, live data
communications, and presence awareness with other Microsoft Office applications. Microsoft Office
Communicator publishes the user’s presence status, Phone state, Calendar state, and Device state.
The phone state is acquired either through the RCC interface for phones connected to a PBX or from
Communicator when a user places or receives a VoIP call. Communicator also publishes the Device
state when a user’s computer goes from active to inactive to idle. In addition to publishing presence
information, Office Communicator 2007 consumes presence information from Office Communications
Server by subscribing to the presence status of other contacts. Office Communicator is the only client
that publishes the Calendar state of a user. While Communicator Mobile and Communicator Web
Access consume the Calendar state data and show Activity such as “In a Meeting”, Communicator is
the only client that pulls data from Microsoft Exchange Server and publishes it to Office
Communications Server.
Office Communications Server
Microsoft Office Communications Server 2007 is an enterprise-grade server that provides the backbone
for all real-time communications within Microsoft Office. Office Communications Server sits at the heart
of the unified communications platform. All the endpoints register, publish their presence status, and
subscribe to other contact’s presence information on Office Communications Server. When users
subscribe to a contact’s presence status, by adding the contact to their Communicator Contact List or
opening the contact’s Contact Card, Office Communications Server provides presence information that
is filtered based on the permissions assigned to the user.
Office Communicator Mobile
Microsoft Office Communicator Mobile is designed to extend the reach of Office Communications
Server 2007 to Windows Mobile® software-powered devices. Office Communicator Mobile publishes
User state, Device state, and Phone state, if data connectivity is available. As with Office
Communicator, Communicator Mobile subscribes to the presence status of other users.
IP Phones
A variety of IP phones are available for the unified communications system. An IP phone is connected
to the LAN through an Ethernet port. Because an IP phone is a VoIP endpoint, it can subscribe to
others’ presence information and can publish user, device, and phone states.
Communicator Web Access
Communicator Web Access provides browser-based access to Office Communications Server. It is
useful when users do not have access to Office Communicator. Communicator Web Access can be
enabled for access over the Internet or from within an organization’s firewall only.
Enhanced Presence Model 10
Microsoft Office Applications
Some Microsoft Office 2007 applications—including Microsoft Office SharePoint® services and
Microsoft Office Outlook—use enhanced presence information to enrich the user collaboration
experience. Because these applications use the Office Communicator application programming
interface (API) to retrieve enhanced presence information, Office Communicator must be installed on
the computer where the applications are running.
Enhanced Presence Model 11
Enhanced Presence System Architecture
The Enhanced Presence System relies on containers, categories, and ACE’s to collect, restrict, and
publish presence information. The following sections describe containers, categories, and ACE’s in
more detail.
Containers
The enhanced presence model system introduces the concept of containers. Containers are objects
that clients publish presence data into, as shown below in Figure 5.
Figure 5. Presence model system architecture
As shown in Figure 5 above, input from presence clients is collected by Office Communications Server,
aggregated into a single presence state and activity, and then pushed into the appropriate containers.
Enhanced Presence Model 12
Containers are used to filter the amount of presence information available for each user. Each
container, moving from the Public Container to the Personal Container, provides successively more
information about a user. Users are assigned to specific containers and the membership to the
container defines the presence data to which they have access for a particular contact. Table 3 below
shows the containers and the presence data categories that are published into those containers.
Table 3. Presence information published into containers
*If these attributes are defined in Microsoft Active Directory, as shown above in Table 3, they are visible to all
contacts in your company, regardless of Access Level. They are also visible to federated contacts, depending on
the assigned Access Level. They are not visible to public instant messaging contacts.
Containers hold categories of presence data. Clients publish data categories to containers instead of
publishing the entire presence document when a change occurs. As Figure 6 shows, containers,
moving from Personal to Public, are implemented to hold successively less presence data,
corresponding with each access level. For example, the Personal Container holds the user’s Home,
Mobile, and Work phone numbers, while the Team Container holds the Mobile and Work phone
numbers. Access to containers, and the data therein, is controlled through a membership to the
container.
Enhanced Presence Model 13
Figure 6. Containers, categories, and memberships
Example 1 Joe adds [email protected] to his Contact List. He assigns her to the Personal
access level, so Tammy is added to the membership list of the Personal Container. When Tammy
opens Joe’s Contact Card, she sees the presence data in Joe’s Personal Container.
Example 2 Joe adds [email protected] to his Contact List, without assigning her an access level.
Jane is using Microsoft Outlook and right-clicks on Joe’s presence button in an Office Outlook e-mail.
The contextual menu shows all the presence information for Joe that is available in the Company
Container.
Enhanced Presence Model 14
Access Control Entries
Access Control Entries (ACEs) provide a mapping of user groups to containers. There are five types of
ACEs:
User Explicitly identifies an individual user and overrides any other ACE. Same company Identifies the host organization. This ACE, called People in my company in
the Communicator user interface, typically resides in the Company Container. By default, every user in the organization is a member of the Company Container unless the user is explicitly given membership in another container. For example, in Figure 6 above, [email protected] and [email protected] have Team level access
Domain ACE Identifies all users who are members of a specified SIP domain. This ACE is called people in <domain name> in the Communicator user interface. As shown in Figure 6 above, msn.com is a member of the Public Container, so every member of the msn.com domain can see the user information that is included in the Public Container.
Federation ACE Identifies all users from partner organizations that are federated with the host organization. This ACE is called people in domains connected to my company in the Communicator user interface. For details about federation, see the Microsoft Office Communications Server 2007 Planning Guide.
Public Internet connectivity (PIC) ACE Identifies all users who belong to supported public IM service providers, which can include the MSN® network of Internet services, Yahoo!®, and AOL®. Public Internet connectivity requires a separate license. This ACE is called people in public domains in the Communicator user interface. For details, see the Microsoft Office Communications Server 2007 Planning Guide.
Categories
Categories identify data types published to containers. A collection of categories is published in
(category name, value) format based on the pre-agreed XML schema. These publications also identify
the container to which that category should be published in order to make it available to users who have
memberships in the containers. The following attributes must be defined in the category tag of each
published category instance by the publishing client.
categoryName The category attribute names the presence category encapsulated within the publication; in other words, the “state.”
uri The URI of the user of the published data; as in sip:[email protected]. instance A non-negative integer that identifies the specific instance of a category
being published. This attribute might indicate a specific device or any other attribute that allows the publisher to reference the category being updated, such as multiple instance’s for different device status. The instance ID might also be the same across publishing endpoints if the target being described is identical, for instance if multiple endpoints are trying to publish the same calendar data.
version Enforces ordering. container Specifies the target ACL container for the publication. The container
attribute must be in the form of a positive integer. expireType Specifies the expiration type of the publication. Values defined in Office
Communications Server are: static Never expires. Publication must be removed manually or overridden. device Expires when the device goes away (such as when registration state
expires or connection is lost). user Expires when ALL devices belonging to the user are offline.
time Expires based on the expireTime attribute. Categories published by
Enhanced Presence Model 15
endpoints which are not registered or by third parties should use expireType = ‘time’. If the expireType attribute is omitted, it is defaulted to ‘time’.
expires(MAY) A positive integer in seconds, which dictates the time to live for the published category. This attribute must be present if and only if ‘expireType’ is present as time. If not refreshed within the expire time, the published category is removed by the server.
The following is an example of a user activity category publication.
<publish xmlns="http://schemas.microsoft.com/2006/09/sip/rich-presence"> <publications> <publication categoryName="user-activity" uri=sip:[email protected] version=”2” instance="12345" expireType=”time” expires=”3600” container=”10” > <status>online</status> <activity>out-to-lunch</activity> </publication> </publications></publish>
Enhanced Presence Model 16
Presence State Components
A user’s clients publish four states that are aggregated by Office Communications Server to determine
the user’s presence status. These four states are:
User state Machine state Calendar state Phone state
User State
The User state is set manually by the user and is given precedence during the Availability phase of
aggregation. The following table shows the types of User states, along with the Availability integer value
assigned to each state.
Table 4. User states
Type Availability Description
Available 3500 User is available
Busy 6500 User is busy
DND (includes urgent interruption for people in Team container)
9500 User should not be interrupted
Be Right Back 12500 User is not currently reachable
Away 15500 User is not at their desk
Offline 18500 User is offline
Enhanced Presence Model 17
Figure 7 below depicts all the possible ways Office Communicator allows users to manually set the User state. Presence status does not automatically expire or get reset unless the user signs out or manually changes the status. Communicator provides multiple entry points to allow users to change their presence status.
Figure 7. User State sources and states
Figure 7 above shows the entry points that allow the user to manually change User state, along with the
presence status that the user can select. In Office Communications Server 2007, the only time-bound
Presence status is Do Not Disturb. In all others cases, User state transition is triggered by manual
interaction. As shown in Figure 7, the user can set his or her status in the following ways:
Systray The user can right-click the Communicator icon in the system tray, click My Status, and then manually set the Presence status.
My Status Area The user can click the Presence menu in the Communicator window, and then select a status.
Alert When the user gets an incoming alert from another user, the user can set his or her status to Do Not Disturb.
Sign in as When the user signs in using the Sign in as option, the User state is triggered and sets the User state to the Presence status selected for the Sign in as option.
The Do Not Disturb presence status is published in two ways. If a user explicitly selects Do Not
Disturb, then it is similar to other User states, which are published with a static time limit. When Do Not
Disturb is selected through an incoming instant message alert, the presence status is published with an
expiration time and remains valid until the end of the current hour. Figure 8 shows system interaction
that triggers User state.
Enhanced Presence Model 18
Figure 8. Transitions for User state
When the user has not manually set a presence status, the status is computed automatically by other
input sensors, including the Machine state, the Phone state, and the Calendar state, as described in the
following sections.
Machine State
Each presence endpoint publishes a Machine state. When a Machine state is published, the server
stamps the state with a publication time. This prevents time-skew issues that occur if client clocks are
not in sync. The presence system-aggregation script processes each device’s Machine state and
notifies the devices of the single Machine state for the most active device. In order to do this, a ranking
of (Active < Inactive < Unknown < Away < Offline) is used.
If the user does not have any published Machine states, the aggregation function aggregates the user’s
Availability by inferring a Machine state of Offline. If two devices have the same state, the device that
published most recently is considered most active. For example, if one device has an Active Machine
state published at 1:00 p.m. and another has an Active Machine state published at 1:03 p.m., the
second device should be considered most active. Only devices registered to the user should have
access to Machine state presence information. The aggregated Machine state is published to the Self
container.
Each endpoint publishes one of the following values based on whether the user is reachable on the
device:
Table 5: Machine states
Type Availability Activity Token Description
Active (Busy) 3500 NULL User is actively using the device and is reachable. This can be detected if keyboard or mouse actions have recently been sensed.
Inactive 3750 Inactive The user has not used the
Enhanced Presence Model 19
device in the last 5 minutes but is still likely to be reachable.
Away 15500 NULL The user has not used the device in the last 15 minutes and is probably not at the device and therefore not reachable.
Offline 18500 NULL The user is offline.
Figure 9 shows different clients that generate Machine states and the corresponding presence status
indicators that are generated. Devices publish a Machine state when the device becomes:
Active (the user is actively working on the device through a keyboard or other input mechanism)
Inactive (no input for more than 5 minutes)
Away (no input for more than 15 minutes)
Offline (the device is offline)
The presence model system provides Inactive and Busy (Inactive) states to provide other users with
more detailed information about a user’s presence status. The Inactive and Busy (Inactive) states are
correlated with information from the user’s Outlook calendar or phone to determine whether the user is
inactive on one endpoint while active on another, or the user is attending a meeting, in a conference, or
in a phone call. Whenever the user changes the User state, Office Communications Server verifies that
the Machine state is active. If the Machine state is not active, an active Machine state is published.
Figure 9. Machine state client sources and presence states
In addition to presence-related data, each device reports capabilities in terms of its ability to receive or
send instant messages, voice, or video. This information helps provide a better experience in a multiple
points of presence (MPOP) scenario, where the user may be active on a device that cannot provide
Enhanced Presence Model 20
services required for a communication session. For example, a user may be active on an IP phone that
cannot be used to send or receive instant messages.
Each device employs the Machine state shown below in Figure 10. The Device states shown are driven
by configurable timeout values for Inactive and Away. For example, when a user locks his or her
computer, the Device state changes immediately to Away, instead of transitioning through an Inactive
or Idle state. But when a user simply provides no keyboard or mouse input, the Device state transitions
first to Inactive and then, after the timeout period of 15 minutes (by default), to Away.
Figure 10. Transition of Machine state
Figure 11 below shows the aggregation of Machine states when a user is using more than one
endpoint. When multiple Device states are available for the same user, they are sorted by availability,
and the lowest availability on the most recently active device is selected. For example, if Communicator
Mobile reports the user as Away, but the user is actively working on Office Communicator on a desktop
computer which reports the user as Available, the data from Communicator will determine the user’s
presence status, and the user will be shown as Available instead of Away.
Figure 11. Machine state aggregation
Phone State
Enhanced Presence Model 21
The Phone state reports when a user is engaged in a phone conversation with someone, whether a
one- to-one call or a conference call. This status is reflected in the two published Phone states: In a
Call and In a Conference. The Busy status symbol is shown in either case. The Phone state is
acquired from an RCC gateway, Communicator, or a USB audio device. Table 6 below shows the
Phone states and associated Activities.
Table 6. Phone states and activities
Value Availability Activity Token Description
Busy 6500 In a call User is speaking with one person; media stream is active
Busy 6750 In a conference User is speaking with more than one person
Figure 12. Phone state sources and states
Every phone device implements the following Machine state to detect whether the user is in a call or in
a conference. When a user makes or accepts a phone call, the phone device recognizes whether it is a
one-on-one phone call or a multi-party conference call, and it publishes the state appropriately. If a user
is not in a phone call, a null Phone state is published. Note that the Phone state is not published until a
connection is made. Figure 13 below shows the interactions that trigger Phone state.
Figure 13. Transition of Phone state
Enhanced Presence Model 22
Calendar State
The fourth presence state source is Calendar state. This further empowers the presence model system,
as many activities are pre-scheduled a user’s calendar. Calendar state provides data from a user’s
Exchange calendar. The frequency of calendar data publication is a configurable parameter, as a user’s
calendar information is not updated in real time. Table 7 below shows the values published for the
Calendar state.
Table 7. Calendar states
Value Availability Activity Token Description
Free 3500 NULL User has no meeting
Tentative 3500 NULL User has a meeting they have not accepted
In a meeting 6500 In a meeting User has accepted a meeting
Out of Office 3500 Out of Office User is not in the office
Typically, by default, every 15 minutes, Calendar state is published, and if a user happens to be in a
meeting or just blocked off some time for an appointment, Presence state is published accordingly. The
published Calendar state can change an existing User state, but a user can always override an
automatically computed presence state by explicitly setting a User state. Figure 14 below shows how
the information generated in Exchange creates a presence state.
Figure 14. Calendar state sources and states
As part of the Outlook Calendar state, the following attributes are also published, which appear in the
contact’s Contact Card:
Exact information about a user’s current and future availability. Meeting details, such as meeting subject and location, which are given out only to people with a
Team access level. The user can choose not to publish meeting details. An Out of Office notice supplied through Outlook, which will override any personal note that is
provided from Communicator earlier than the Out of Office notice. Users will always see the note that has the latest publication time. After the user disables the Out of Office notice, a notice provided from Communicator is once again displayed.
Working hours, which enhance call forwarding rules.
Enhanced Presence Model 23
The Aggregation Script
The aggregation script produces the following values:
Machine State Used in multiple points of presence (MPOP) scenarios to determine which
endpoint is most active.
Availability Considers all states across all endpoints. The aggregation script must produce a value to display.
Current Activity Only one activity is shown in client user interfaces, such as in a Communicator Contact Card, and therefore needs to be aggregated, because a contact can be engaged in more than once activity at the same time.
Last Active Indicates to contacts how long the user has been away, in order to give contacts greater detail about the user’s availability.
Machine StateEach endpoint publishes, at most, one Machine state. When a Machine state is published, the server
stamps the state with a publication time. This prevents time skew issues that occur if clients whose
clocks are not in sync attempt to timestamp Machine state. The aggregation script is responsible for
processing each device’s Machine state and notifying the devices of the single Machine state for the
most active device. In order to do this, a total ordering of (Active < Inactive < Unknown < Away < Off)
should be used.
Availability
There are six availability classes, each with its own presence status icon, as shown below in Table 8.
Table 8. Availabilities
Class Ico
n
Range Description
Available 3xxx User is reachable
Busy 6xxx User is reachable but engaged in another task
DND 9xxx User is reachable but does not want to be interrupted
Inactive 12xxx User is temporarily/probably not reachable
Busy (Inactive) 12xxx User is temporarily/probably not reachable
Away 15xxx User is probably not reachable
Offline 18xxx User is not reachable
Availability dictates which presence icon is displayed for a user. The aggregation script is responsible
for producing a single availability for each user. The script does this by considering the activities in
which a user is engaged. From an availability aggregation standpoint, there are only two types of
activities, those that are set by the user and those that are set automatically. User-set activities are
treated differently to allow users to override automatic activities. Table 9 below shows the attributes
associated with an activity.
Enhanced Presence Model 24
Table 9. Activity and attributes
Attribute Description
Availability How busy this activity makes the user
Publication Time When the activity was published
Activities can have additional attributes used by the client, but the aggregation script is primarily
interested in the above attributes. In order to calculate availability, the aggregation script first creates a
set of all the activities that are currently valid. Only the aggregated Machine state from the previous step
is included. All other Machine states are removed from the set.
If a user (or custom) state exists, the aggregation script extracts the publication time of the User state,
sorts the set of all activities by publication time, and removes any states earlier than the User state from
the set. The aggregation script sorts the set by Availability, and then extracts the Availability value from
the least available state. As shown below in Figure 15, each Availability is assigned an integer value,
with the highest Availability associated with the lowest integer value.
Figure 15. Availability ranked (from top to bottom) by most available to least available
Availability is seen by any contact that has access to the user’s Personal, Team, Company, or Public
containers.
Current ActivityIn addition to availability and publication time, activities can also have an associated activity token. For
example, the Calendar activity generally has an In a Meeting activity token, as shown in Figure 16.
Enhanced Presence Model 25
.
Figure 16. Activities and associated status indicators
Custom activities have activity strings instead of tokens. But with the presence model system, not all
states have activities, so the process is not as simple as taking the least available state.
In order to calculate current activity, the aggregation script takes the sorted set from the end of the
Availability step. If a User (or Custom) state exists in the Offline availability class, the script removes
any non-User (or Custom) states that have a Device or User expireType.
The script then removes any activities from this set that lack a token or string. If the set is now empty,
the Availability class is used as the current activity. Otherwise, the activity from the least available state
is used as the current activity.
The current activity is only seen by contacts that have access to the user’s Personal or Team
containers. Contacts in the Public container see the availability class as the user’s current activity.
Contacts in the Blocked or Default containers do not see any current activity for the user.
Last Active
The aggregation script outputs a lastActive attribute for the aggregated state in the container. The value
of lastActive is based on the publication time of the state that resulted in the aggregated state. The
lastActive value is used to determine the Inactive and Away states. When a contact is in the Inactive
state, the contact is available but the activity is Inactive, meaning no input has been sensed for the past
five minutes. After 15 minutes, Inactive status transitions to Away status.
Enhanced Presence Model 26
Aggregation Examples
This section discusses the aggregation of presence inputs published from multiple devices with User
state, Phone state, and Calendar state. This aggregation process is triggered whenever any element
that contributes to a user’s presence status is newly published. First, all of the published states are
collected. All Device states are aggregated into a single Device state that corresponds to the most
active computer, as described earlier in this paper. Any state that was published before the most recent
state change is cleared. Then all the states are sorted and the least available state is selected, as
shown below in Figure 17.
Figure 17. Aggregation of Availabilities
Let’s consider a few examples to clarify how presence status aggregation works, as shown below in
Figure 18.
Figure 18. Aggregation examples
1. The user is using Communicator Mobile on his or her phone. No input has been sensed on this device for more than 15 minutes. Because the Communicator Mobile device is the only active device, the Away state displays.
Enhanced Presence Model 27
2. The user signs in to his laptop and manually sets his presence status to Available. The manually set User state overrides the Away state on the mobile device and the Available state on the laptop takes precedence.
3. The user changes the status on his laptop from Available to Do Not Disturb. The manually set Do Not Disturb User state takes precedence over the Away state on the Communicator Mobile client.
4. The user’s status is Do Not Disturb, but the Calendar state publishes a Busy state. In this case, the Do Not Disturb status takes precedence, because it is the least available status.
5. The user’s presence continues to be Do Not Disturb, but a Machine state of Inactive is published to the server. In this case, the Do Not Disturb state takes precedence, because it is the least available state.
6. The user has not provided input into his computer for over 15 minutes, so the client publishes an Away Machine state. Because the Away status is less available than the Do Not Disturb status, the Away status takes precedence.
Summary
The Enhanced Presence Model has been designed to enhance the communication and collaboration
experience and to make users more productive by allowing them to control interruptions. At the same
time, enhanced presence helps users make informed decisions about the best way, and the best time,
to contact others, thus eliminating time wasted with unsuccessful communication attempts. The
Enhanced Presence Model uses automatic sensors to collect presence input from multiple points of
presence and aggregate the multiple inputs into a single presence status and activity. While presence is
automatically detected for users of the Enhanced Presence System, users also have the flexibility to
change their presence status to best reflect their presence state.
Related Links
For the latest information about Microsoft Office Communicator, see
http://office.microsoft.com/en-us/communicator/FX101729051033.aspx.
Enhanced Presence Model 28