Haiku #28

The memories of

Our last talk still linger on.

In the database.

At one time Gordon Bell, a researcher here at Microsoft, was on a mission to compile a complete record of his life. And when we say complete, we mean it: to this end Microsoft Research created the "SenseCam," which:

" … contributes to an easier way of collecting and indexing one’s daily experiences by unobtrusively taking photographs whenever the internal sensor is triggered by a change in temperature, movement, or lighting. In addition, the trigger can be disabled and set to go snap photos in a timer mode. The SenseCam is also equipped with an accelerometer, which can stabilize images so as to reduce blurriness. The camera is usually worn around the neck via a lanyard."

All these photographs, along with video and audio records, a map of all Gordon Bell's footsteps, scanned copies of any piece of paper handed to him, etc., etc. were then loaded into a database. Once that information was in the database it meant that, essentially, anything that had ever happened to this researcher could instantly be recalled just by querying the database.

Note. In case you're wondering, this process – and there are other people doing the exact same thing – is known as liferecording, lifelogging, or – inevitably – lifeblogging.

Priding ourselves on being hep, cool, and cutting-edge, the authors of the Lync Server PowerShell blog recently decided to start doing a little lifelogging of our own. After a couple weeks of dutifully recording everything that happened to him, the life log for the author of today's haiku looks like this:

· 62 college basketball games watched in whole or in part.

· 247 doughnuts eaten. (Note: All eaten in whole. Is there even such a thing as a partially-eaten doughnut?)

· 28 Lync Server PowerShell haikus.

Note. OK, so apparently he's doing something wrong. And we don't mean with the lifelogging.

If you think that you might like to try your hand at lifelogging then you'll be interested to hear about the call detail records feature found in Microsoft Lync Server 2010. If you install Monitoring Server, and if you enable call detail records, then Lync Server will automatically log information about all your Voice over IP phone calls into a database. (Oh, and in addition to phone calls, you'll also get a record of instant messaging sessions; file transfers; audio/video [A/V] conferencing; and application sharing sessions.) Lync won't actually record the call itself, but it will record such pertinent information as who made the call; who they called; how long the call lasted; and so forth. That's useful information for lifeloggers. However, it's also useful information for Lync Server administrators: by analyzing the data you can determine usage patterns and adoption rates in your organization; identify peak times and slack times (which can then be taken into account when you need to take systems down for maintenance or upgrades), etc., etc. All in all, a pretty handy little utility to have.

Of course, you're probably thinking, "Well, yes, that would be a pretty handy little utility to have. But won't I need a lot of expensive and highly-specialized equipment in order to manage call detail recording?" The answer may surprise you: nope. Instead, all you need are the four CsCdrConfiguration cmdlets: Get-CsCdrConfiguration; New-CsCdrConfiguration; Remove-CsCdrConfiguration; and Set-CsCdrConfiguration.

For example, suppose you've decided you'd like to enable call detail recording at the global scope. Assuming you've already set up Monitoring Server, here's how you do that:

Set-CsCdrConfiguration –Identity global –EnableCDR $True

Believe it or not, that's the entire command right there. To disable call detail records just set EnableCDR to False:

Set-CsCdrConfiguration –Identity global –EnableCDR $False

Pretty cool, huh? Let's just hope our SenseCam is making a record of all this!

Here's another interesting thing. By default, call detail records are only maintained in the database for 60 days; each day, records more than 60 days old are automatically purged from the database. On the one hand, that helps to keep your database lean and mean; on the other hand, dedicated lifeloggers might cringe at the thought of any sort of data ever being deleted, from anywhere. That's fine; it's easy enough to turn off record purging:

Set-CsCdrConfiguration –Identity global –EnablePurging $False

Alternatively, you could just change the amount of time that records remain in the database before being purged; that way, you'd have more time to export those records to an archive before they get deleted. That's also easy to do; this command configures the global call detail record database to hang on to records for one year (365 days) before purging them:

Set-CsCdrConfiguration –Identity global –KeepCallDetailForDays 365

So are call detail records the most exciting thing that has ever happened to the world? Well, they just might be. On the other hand, in thumbing through our life log it's also true that we have had some pretty darn good doughnuts …. Let's just say it's a tough call and leave it at that.