If you were to click on this link you would find the download page for a whitepaper entitled "Office Communicator 2007: Enhanced Presence Model White Paper".

The purpose of this whitepaper is to explain how the Presence Model works from the point of view of UCMA, that is - Office Communicator and Office Communications Server 2007(OC & OCS). Mind you, this doc is neither protocol definition nor detailed spec. It's a mid-level description of the feature and what it offers. Now, for most of us the 'mental image' of Presence starts and ends with what one gets from MSN/AIM/Yahoo/<Your favorite IM client> ie. You're available, you're unavailable, some folks should be able to see you even when you're not technically available, while others you pretty much always want to flip the bird. That's Presence.

Not too complex, right? Well...from tip to tail the above whitepaper is just over 7000 words and runs a brisk 28 pages. Knowing this, some would begin the "Microsoft makes everything needlessly complicated and that's why they make such bloated software" rant. In this particular case, that particular rant would be partially correct. The simple fact that someone thought it necessary to explain how Presence works and proceeded to crank out an 7000 word 28 page whitepaper to accomplish this should make it clear that Enhanced Presence Model offers much more than the online/offline/@#$!-off functionality described above.

However, I will leave the reader to decide whether or not the extra complexity added is needless or is, as we believe, useful. After reading this series of posts, which offers a Cliff's Notes version of the above whitepaper, you will have enough information to make that call.

...I hope.

Why? Why?! Why?!?

I'll begin by asking a question which is usually a good start: "Why? What is the problem that we need to solve that the traditional model of Presence doesn’t address?" To answer this, I'll need to go on a tangent on a new-fangled industry called Unified Communications (UC).

Unified Communications is the attempt to take all possible modalities of communications: Voice, Email, IM, I'm-standing-in-your-office-stop-typing-and-talk-to-me-you-flaming-social-retard...and bundle it into a single platform (That last one is being considered for the next release.) A part of the promise of UC, and what the "single platform" rhetoric is about, is the ability to use all these modalities and work together seamlessly. Someone on a pay phone with just voice, a user on a souped up cell phone that has voice and video and some guy logged into the corporate webpage that only supports IM should be able to conference together and communicate.

Different devices. Different modalities. Different ways of working. Collaborating together.

With respect to Presence then, the above scenario already hints that we need something more. It's no longer good enough to just say that I'm available. Available to do what? Phone? IM? Email? I’d really like to communicate that while my device can do voice, IM and video, I’m currently only interested in getting IM from you (I’m already talking to someone and you're not important enough to interrupt this for. Sorry.) In addition, when I set yourself to Do Not Disturb, I only want my team mates, personal contacts to be able to phone you but you want to be able to get IM from anyone.

And that’s just me. My one office mate here doesn't ever want voice calls except from his wife, and over there my other office mate wants voice calls from anyone but his wife.

This is what is needed today. There’s no saying what might be needed in the future. Folks are on cell phones already, so maybe location? A specialized note to do some "Twittering" perhaps...? Maybe your application has some specialized data you'd like to publish that only your app will consume.

Very quickly we come to the need to publish arbitrary information to arbitrary sets of users and the ability control who sees what. This is the problem that the Enhanced Presence model solves. In a nutshell, Presence in the Brave New World of Unified Communications is the ability to publish what you can do, what you're willing to do in general, and what you're willing to do right now, for this call.

Next time, let’s look deeper into the nuts and bolts of the Presence Model at how Microsoft solves this problem.