I often like to talk about how one of the most powerful aspects of Unified Communications is the ability to integrate communication into line of business applications.  While convergence was about saving money, the power of UC is about saving money *and* improving productivity.  I also like to mention how easy it is and the  fact that it is completely free to do so with Microsoft OCS and Lync.  I recently met with one of our legacy PBX vendors and they wanted me to look at their *new* development platform that would allow us to easily integrate LOB apps into their phone system.  I said, sure, where do I download it?  They told me that, well, the server is going to cost X number of dollars and that each client license would Y number of dollars.

On the other hand, OCS and Lync APIs are powerful *and* free, both on the client side and server side.  Just go to Microsoft and Download the API and SDKs.  Haven’t Purchased Lync to develop on?  No problem, they have an evaluation version you can download on the spot and start coding.  If you write an app that you can sell a million copies of, it’s royalty free too.  This means the library of applications and contact center solutions that are available on Lync will surpass all other UC vendors in a heartbeat.  When I worked at a PBX manufacturer, I had this same discussion with one of the product managers as well.  They told me that X number of dollars was no barrier to a company that was serious about developing apps for the PBX.  I told them it was a barrier for *me*,  and maybe I wanted to write a version of PacMan for our phone.  They just looked at me funny.

I digress, back to my little project.  I like to talk about how easy it is, but I’m not a programmer so I’ve never really done it.  So when I saw this Lync Christmas Lights project by  Andrej Kyselica I instantly thought “I can do that!”.  I developed mine on OCS 2007 R2 first since we haven’t cut over to Lync into production quite yet, but I’m going to have a native Lync version of the code soon as well.  The code for the FEZ Panda will be the same and not need an update.

Because I’m not a programmer, the easiest approach for me was to modify an existing application called FezTerm.  The OCS API is well documented on MSDN and the help file, and I was able to cut and paste my way into success with C# Express in a couple of *hours*.  My little box gets an event from OCS stating my presence has changed and I push that presence to the box over a USB connection.  If my presence is “Available”, push the button on the box and it changes to “Busy”.   If my presence is “Away”, press the button on the box and it uses  OCS to dial my cell phone.  Cool huh?

Next, let me talk about the box.  It is built around the FEZ Panda board by GHI Electronics, which is $35 and has the .NET Micro Framework on it.  So, I used C# Express 2010 to program it as well.  I didn’t breadboard anything, I didn’t soder anything, I just screwed the FEZ board and LCD display into the enclosure, snapped on a “component shield” on the board, and snapped the wires for the LEDs, button, and LCD display into the component shield.  15 minute assembly.   I do have a little bit of a background in electronics, in the bad old days it would have taken my a month to make the box alone, and I would have to program the microcontroller in Assembler – it would have been a giant pain.  Instead, if I want to turn on an LED I just do this:

FEZ_Components.LED greenLED = new FEZ_Components.LED(FEZ_Pin.Digital.Di0);


If you have ever worked on electronics in the past, it’s amazing.  Anyone can do this.

Details on everything you need to build this and all of the source code  for the box and Windows Application is available to download here:


Drop me a note if you build one at kisner@live.com

It’s easy and fun, I promise.



Thomas Kisner, MCITP