Scott Hanselman

Introducing LyncAutoAnswer.com - An open source remote worker's Auto Answer Kiosk with Lync 2010

August 15, '12 Comments [11] Posted in Lync | Remote Work
Sponsored By

The name badge on my door in Redmond, Washington says "Virtual Scott Hanselman" because I'm not there!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.

http://lyncautoanswer.com

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.

image

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.

image

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.

The video works!

Then you change the Lync Auto Answer settings like this:

<userSettings>
<SuperSimpleLyncKiosk.Properties.Settings>
<setting name="sipEmailAddress" serializeAs="String">
<value>sip:scottha@microsoft.com</value> <!-- THIS IS YOU -->
</setting>
<setting name="LyncAccountDomainUser" serializeAs="String">
<value>DOMAIN\thecart7</value>
</setting>
<setting name="LyncAccountEmail" serializeAs="String">
<value>thecart7@microsoft.com</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.

About Scott

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.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by ORCS Web
Wednesday, August 15, 2012 8:05:32 AM UTC
Cool, now that your Microsoft email address is public the torrent of spam and job requests are about to start... now! :-)
Wednesday, August 15, 2012 12:08:12 PM UTC
Awesome! Which account did you end up using to sign-in to the kiosk computer?
Wednesday, August 15, 2012 7:17:02 PM UTC
nice... to bad I didn't come across this earlier. I had a written this in an afternoon: http://lyncauto.blogspot.com/ to solve a similar problem.
Wednesday, August 15, 2012 7:21:37 PM UTC
Hey Scott, Is it odd that this showed up in my Google Reader feed immediately after your post?

Here's your next Lync challenge: Double by Double Robotics
Wednesday, August 15, 2012 9:00:07 PM UTC
Ed - I sign in as Cart7 on the kiosk but show my info.
Monday, September 03, 2012 8:10:51 PM UTC
Good to know that finally its done. Thanks for sharing !
Friday, September 07, 2012 2:21:10 PM UTC
Any idea if this will work with Lync 2013 Preview?
Thursday, March 21, 2013 10:35:52 AM UTC
Hi, Thanks for posting this info.
But is there anything of this sort which would work without installing the clients ?
Ally
Wednesday, May 22, 2013 1:20:59 PM UTC
Hi, i'm using your UISupressionMode but with SDK Lync 2013, and throw the exception

{"Generic COM Exception. Code is 0x800706F7."}

in Owner method in LyncVideoWindow

Any solution????
Luis Pérez
Tuesday, July 16, 2013 7:44:42 PM UTC
Luis Pérez:
1) If you are using windows 7/Vista Disable UAC (user access control)
2) In the WPF project enable unsafe code (http://kishordgupta.wordpress.com/2011/02/06/how-to-allow-unsafe-code-in-visual-studio-2010-c/)

Other
If you don't want to use the unsafe code option, you can comment the line that sets the videoWindow.owner property and go full screen.

That worked for me.

Bye
yuu
Friday, October 25, 2013 1:24:11 PM UTC
Scott,

Sorry if this was covered. I have the Auto Answer app working, but it does not automatically go to full screen. Is this a setting I missed?

Running Lync 2010 on Win7. I think our OS is 64bit but Office is 32bit...
Brian
Comments are closed.

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.