Top Banner
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.
36

Communicator 2007 Enhanced Presence Model White Paper

Sep 04, 2014

Download

Documents

molina.t4613
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Communicator 2007 Enhanced Presence Model White Paper

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.

Page 2: Communicator 2007 Enhanced Presence Model White Paper

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.

Page 3: Communicator 2007 Enhanced Presence Model White Paper

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

Page 4: Communicator 2007 Enhanced Presence Model White Paper

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

Page 5: Communicator 2007 Enhanced Presence Model White Paper

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

Page 6: Communicator 2007 Enhanced Presence Model White Paper

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

Page 7: Communicator 2007 Enhanced Presence Model White Paper

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

Page 8: Communicator 2007 Enhanced Presence Model White Paper

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

Page 9: Communicator 2007 Enhanced Presence Model White Paper

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

Page 10: Communicator 2007 Enhanced Presence Model White Paper

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

Page 11: Communicator 2007 Enhanced Presence Model White Paper

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

Page 12: Communicator 2007 Enhanced Presence Model White Paper

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

Page 13: Communicator 2007 Enhanced Presence Model White Paper

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

Page 14: Communicator 2007 Enhanced Presence Model White Paper

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

Page 15: Communicator 2007 Enhanced Presence Model White Paper

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

Page 16: Communicator 2007 Enhanced Presence Model White Paper

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

Page 17: Communicator 2007 Enhanced Presence Model White Paper

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

Page 18: Communicator 2007 Enhanced Presence Model White Paper

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

Page 19: Communicator 2007 Enhanced Presence Model White Paper

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

Page 20: Communicator 2007 Enhanced Presence Model White Paper

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

Page 21: Communicator 2007 Enhanced Presence Model White Paper

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

Page 22: Communicator 2007 Enhanced Presence Model White Paper

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

Page 23: Communicator 2007 Enhanced Presence Model White Paper

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

Page 24: Communicator 2007 Enhanced Presence Model White Paper

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

Page 25: Communicator 2007 Enhanced Presence Model White Paper

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

Page 26: Communicator 2007 Enhanced Presence Model White Paper

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

Page 27: Communicator 2007 Enhanced Presence Model White Paper

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

Page 28: Communicator 2007 Enhanced Presence Model White Paper

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

Page 29: Communicator 2007 Enhanced Presence Model White Paper

.

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

Page 30: Communicator 2007 Enhanced Presence Model White Paper

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

Page 31: Communicator 2007 Enhanced Presence Model White Paper

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