Last month I did a blog post called "Introducing Lync 2010 Super Simple Auto Answer Video Kiosk with Full Screen" where I rewrote the original Embodied Social Proxy software that I'd borrowed from Microsoft Research and just made a better "auto answer client" for Lync. (Lync being the Microsoft Unified Communications software that includes phone calls, IMs and video chats. You get Lync with Office 365.)
This auto-answer software automated the Lync client. You'd still run the Lync client and see the Lync client show up in the Windows taskbar. However, sometimes you might want a simpler "kiosk" solution where the manager end user can't even see Lync or know that it's there. Lync calls this "UI Suppressed" mode. In this mode YOU are Lync and you have to automate the entire solution, paint the video, and manage events. You are using the Lync transport but providing all the UI. The benefits of UI Suppressed mode is that the user can't mess it up or fiddle with Lync. This can be useful in CRM applications where you might want chat and video embedded in some larger system where the user doesn't need to know you're using Lync.
In my case, I want people to come by my physical office in Redmond, Washington - where I am NOT - and sit down and have everything Just Work™. I decided I needed both a Kiosk and a non-Kiosk version. I started coding and realized not only that I was in over my head but also that the idea of a UI Suppression in Lync was in need of an abstraction. The ideas were high level and general but the Lync 2010 SDK code was, in my estimation, rather too low level to make it super easy. Why not wrap Lync and make a reusable library.
I reached out to Tom Morgan in the UK who knows Lync backwards and forwards and works for Modality Systems, a Lync and Unified Communications consultancy. I pitched him the idea - remotely, over Lync, in fact - and we got to pairing. I though it was a problem worth solving that could help not only the Lync community but also Remote Workers everywhere. Big thanks to Tom's bosses at Modality Systems for trusting Tom's judgment with this little weekend project! Feel free to thank them in Tom's blog post on the subject. ;)
Tom created a project on GitHub called Lync-UISuppression-VideoAutoAnswer that includes a WPF control and Lync wrapper abstraction to make UI Suppressed Lync applications easier. Then we updated my LyncAutoAnswer GitHub project to use Tom and Paul Nerney's new library! The project now includes BOTH a UI Suppressed AND non-UI Suppressed version. Tom and friends also redesigned the UI Suppressed version to be more "kiosky" and brighter so people could walk by and immediately know if I was busy or not.
I am happy to announce (or re-announce) the LyncAutoAnswer client at LyncAutoAnswer.com as a collaboration by Tom Morgan from Thought Stuff and Paul Nearney from CodeLync and me.
Here's a few screenshots of the UI Suppressed version that you can download today to setup your own Lync based remote kiosk.
Here I'm away at a conference. Note that not only does the color change but my status message from Lync presence updated as well. The headshot comes directly from Lync and Active Directory.
The general idea is simple. You create a Lync account that is NOT you; it's an account for your cart and the one you will call. Mine is called "Cart #7." I made a Domain Account that does NOT have the ability to login to a desktop. It doesn't have file system or network share access, it can only use Lync. Then I setup my remote machine to auto logon when it boots up. I also disabled it's power management and screensaver as this is a dumb kiosk.
Then you change the Lync Auto Answer settings like this:
<userSettings> <SuperSimpleLyncKiosk.Properties.Settings> <setting name="sipEmailAddress" serializeAs="String"> <value>sip:email@example.com</value> <!-- THIS IS YOU --> </setting> <setting name="LyncAccountDomainUser" serializeAs="String"> <value>DOMAIN\thecart7</value> </setting> <setting name="LyncAccountEmail" serializeAs="String"> <value>firstname.lastname@example.org</value> </setting> <setting name="LyncAccountPassword" serializeAs="String"> <value><![CDATA[YOUR*CART*PASSWORDISHERE]]></value> </setting> </SuperSimpleLyncKiosk.Properties.Settings></userSettings>
And that's it! The kiosk does the rest. You can read more about the UI Suppressed version on Tom's blog post and the non-UI Suppressed version on my site. Also, note that UI Suppressed mode needs a registry key changed, but we include those .reg files for ON and OFF, 32- and 64-bit.
Again, Big thanks to Tom, Paul, their bosses, and the spirit of open source. http://lyncautoanswer.com. We look forward to redesigns, forks and pull requests as well as stories of remote work.
Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. I am a failed stand-up comic, a cornrower, and a book author.
a@href@title, b, blockquote@cite, em, i, li, ol, pre, strike, strong, sub, super, u, ul
Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.