Вы находитесь на странице: 1из 30

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 users 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
Contents..................................................................................................................................................1 Introduction.............................................................................................................................................1 What is Presence?..................................................................................................................................2 Enhanced Presence Feature Set............................................................................................................4 Presence Model System Overview.........................................................................................................9 Enhanced Presence System Architecture...........................................................................................11 Presence State Components................................................................................................................16 The Aggregation Script.........................................................................................................................23 Summary................................................................................................................................................27 Related Links.........................................................................................................................................27

Enhanced Presence Model

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

What is Presence?
The presence icon represents a users 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 users 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 users 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 users 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 users aggregated presence information is exposed in the Contact Card, as shown in Figure 2.

Enhanced Presence Model

Figure 2. Contact Card The Contact Card consists of the following parts:

Presence status elements, which consist of a contacts Availability and Activity. Calendar data, which shows a contacts free and busy information and meeting details. Contact Card data elements, such as a persons e-mail address, title, office, phone numbers, MySite URL, and note.

Enhanced Presence Model

Enhanced Presence Feature Set


In addition to collecting and reporting a users 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

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 users presence status is exposed through the presence icon and presence status text, which provides detailed information about the users 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 users 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 users 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 Available Description 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. 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. 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. 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. The contact is probably not available. This status is displayed for the following reasons: The contacts 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. 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 users screen saver may have started. This status is set by Communicator.

Busy In a Call In a Conference In a Meeting

Do Not Disturb Urgent interruptions only Away or Be Right Back

Inactive

Enhanced Presence Model

Presence Icon

Status Text Busy (Inactive)

Description 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 contacts screen saver may have started while his or her status was Busy. This status is set by Communicator. 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 contacts computer, or the contact has not signed-in. The contact has blocked you from seeing his or her presence status. Communicator 2007 cannot determine the status of the contact. This status is usually displayed because the contacts presence status is stored in another computer system, such as that of an organization that is not a federated partner. You have blocked the contact from seeing your presence status. To the person you have blocked, your status appears as Offline.

Offline

Presence unknown

Blocked

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 users 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 users 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 contacts mobile phone number, while members of the Company access level see only the contacts work phone number.

Enhanced Presence Model

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 users 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 users presence status from multiple endpoints, which can include IP phones, Office Communicator, Office Communicator Web Access, or Office Communicator Mobile. All endpoints publish the users presence status. Presence statuses from multiple endpoints are

Enhanced Presence Model

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 others 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 users 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

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 users 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 users 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 users working hours, Out of Office information, free and busy data, and meeting details to enrich the users presence status. Office Communicator acquires this data from MAPI or from the Exchange Web services interface, and publishes the data to Office Communications Server. Enhanced Presence Model 9

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 users 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 users 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 contacts presence information on Office Communications Server. When users subscribe to a contacts presence status, by adding the contact to their Communicator Contact List or opening the contacts 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 organizations firewall only. Microsoft Office Applications Some Microsoft Office 2007 applicationsincluding Microsoft Office SharePoint services and Microsoft Office Outlookuse 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

10

Enhanced Presence System Architecture


The Enhanced Presence System relies on containers, categories, and ACEs to collect, restrict, and publish presence information. The following sections describe containers, categories, and ACEs 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

11

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 users 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

12

Container 400 - Personal Publication


status=Busy Urgent Interruptions Only Note=Need to meet a deadline ! Work phone =+1 425 698 6926 " Cell phone =+1 425 698 5046 " Home phone =+1 425 605 0698 " ..

Membership
tammy@contoso .com jenny @example .com chelan @example .com gary@example .com ...

Container 300 - Team Publication


status=Busy Urgent Interruptions Only Note=Need to meet a deadline ! Work phone =+1 425 698 6926 " Cell phone =+1 425 698 5046 " .

Membership
roy@contoso .com carl@contoso .com people at example .com .

Container 200 - Company Publication


status=Do Not Disturb Note=Need to meet a deadline ! Work phone =+1 425 698 6926 " .

Membership
jane@contoso .com tom@example .com people in my company .

Container 100 - Public Publication


status=Do Not Disturb Email address =jimmy@contoso .com Display name =Jimmy Bob .

Membership
bob@contoso .com alice@example .com people at msn .com people in domains connected with my company

Container 32000 - Blocked Publication


status=Offline Email address =jimmy@contoso .com Display name =Jimmy Bob .

Membership
bob@contoso .com alice@example .com people at msn .com people in domains connected with my company

Figure 6. Containers, categories, and memberships Example 1 Joe adds Tammy@Contoso.com 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 Joes Contact Card, she sees the presence data in Joes Personal Container. Example 2 Joe adds Jane@contoso.com to his Contact List, without assigning her an access level. Jane is using Microsoft Outlook and right-clicks on Joes 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.

Access Control Entries

Enhanced Presence Model

13

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, roy@contoso.com and carl@contoso.com 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:user@domain.com. 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 instances 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

14

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:foo@bar.com version=2 instance="12345" expireType=time expires=3600 container=10 > <status>online</status> <activity>out-to-lunch</activity> </publication> </publications> </publish>

Enhanced Presence Model

15

Presence State Components


A users clients publish four states that are aggregated by Office Communications Server to determine the users 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 Available Busy DND (includes urgent interruption for people in Team container) Be Right Back Away Offline Availability 3500 6500 9500 12500 15500 18500 Description User is available User is busy User should not be interrupted User is not currently reachable User is not at their desk User is offline

Enhanced Presence Model

16

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

17

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 devices 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 users 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 Active (Busy) Availability 3500 Activity Token NULL Description User is actively using the device and is reachable. This can be detected if keyboard or mouse actions have recently been sensed. The user has not used the device in the last 5 minutes but

Inactive

3750

Inactive

Enhanced Presence Model

18

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. The user is offline.

Offline

18500

NULL

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 users presence status. The Inactive and Busy (Inactive) states are correlated with information from the users 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

19

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 users presence status, and the user will be shown as Available instead of Away.

Figure 11. Machine state aggregation

Phone State

Enhanced Presence Model

20

The Phone state reports when a user is engaged in a phone conversation with someone, whether a oneto-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 Busy Busy Availability 6500 6750 Activity Token In a call In a conference Description User is speaking with one person; media stream is active 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

21

Calendar State
The fourth presence state source is Calendar state. This further empowers the presence model system, as many activities are pre-scheduled a users calendar. Calendar state provides data from a users Exchange calendar. The frequency of calendar data publication is a configurable parameter, as a users calendar information is not updated in real time. Table 7 below shows the values published for the Calendar state. Table 7. Calendar states Value Free Tentative In a meeting Out of Office Availability 3500 3500 6500 3500 Activity Token NULL NULL In a meeting Out of Office Description User has no meeting User has a meeting they have not accepted User has accepted a meeting 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 contacts Contact Card:

Exact information about a users 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

22

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 users availability.

Machine State
Each 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 devices 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 Available Busy DND Inactive Busy (Inactive) Away Offline Icon Range 3xxx 6xxx 9xxx 12xxx 12xxx 15xxx 18xxx Description User is reachable User is reachable but engaged in another task User is reachable but does not want to be interrupted User is temporarily/probably not reachable User is temporarily/probably not reachable User is probably not reachable 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

23

Table 9. Activity and attributes Attribute Availability Publication Time Description How busy this activity makes the user 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 users Personal, Team, Company, or Public containers.

Current Activity
In 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

24

. 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 users Personal or Team containers. Contacts in the Public container see the availability class as the users 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

25

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 users 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 Lets consider a few examples to clarify how presence status aggregation works, as shown below in Figure 18.

Figure 18. Aggregation examples

Enhanced Presence Model

26

1. The user is using Communicator Mobile on his or her phone. No input has been sensed on this 2. 3. 4. 5. 6.
device for more than 15 minutes. Because the Communicator Mobile device is the only active device, the Away state displays. 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. 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. The users 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. The users 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. 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/enus/communicator/FX101729051033.aspx.

Enhanced Presence Model

27

Вам также может понравиться