The Great world of Lync UC SDK

After some time , i decide to write this post to share some of my thoughts about Lync developing. Some time ago I’ve wrote a Lync plugin (CallViaPhone app ) that let to use Lync client to start calls directly from an ip-phone, and it gave me a lot of challenges . So, questions could be :

  • Why do I need to develop an application for Lync ?

Professionals that know Lync , know that a lot of features are still not available (or not designed at all) and sometimes this lack of features, could move customers decisions to another technology. In this case we could “extend” Lync with SDK. A good example of cauldron of ideas could be : http://lync.ideascale.com/  .

  • Where should I start and what approach should I have?

First of all , we must have little confidence about developing, example could be install Visual Studio and try to develop some “hello world” application on different enviroments like WPF (XAML) to develop Windows applications with rich graphical interface, or console applications to develop Windows services , or .NET web applications , web services , and so on. But the question could be, why should I have to learn all of these ? Because we need to have a 360° vision and we must use the right enviroment for the project.

Secondly we must have clear what we want to do : do we need a client application to extend Lync client , or we need to develop a server side application centralized for all users , or both? In all of these case we could find a lot of example on how to do it . A good starting point could be this : http://msdn.microsoft.com/en-us/library/office/jj162980(v=office.15).aspx , in which there is a lot of explanations about these :

  • Lync 2013 SDK (client side)

– These API gives you the possibility to control almost all Lync client behavior ,and interact with it. Example could be CRM integrations , client PBX integration , etc…

– There are also the option to add some custom menu in Lync interface to call applications or web url with registry key; for more information visit : http://msdn.microsoft.com/en-us/library/office/jj945535(v=office.15).aspx

– One of the most advantage of Lync Client API , compared to the others Lync API, is that you can develop also in a Office365 enviroments without the needs of a Lync On-Premisev env.

  • Lync Server 2013 SDK (server side)

– With these API you can manage,  in Lync Front End role , all sip communications. This means that, for example, i would like to create the BusyOnBusy feature (actually missing from Lync features)  , so i could develop a “Sip application”  with the “SIP application manifest” (MSPL script) that intercept a call if the user lync called is actually in another audio call.

– Another way to use Lync Server 2013 SDK is to develop a “Managed SIP applications API” ;  the mode is similar to MSPL script , indeed you must start from a MSPL script that route (forking or forwarding) the sip signaling to one or more specific endpoint, and then you can develop a .NET application that manage it. An example could be a reporting third party solution, or some advanced applications that take care of all Lync conversations .

  • UCMA 4.0 (Server side)

– With UCMA we can develop almost all of advanced features needed in enterprise scenario , for example , based on business needs we can develop a full functionally contact center with IVR (not response Group 🙂 ) , routing logic and so on. Great advantage is that we can extend it with all lync communications channel  , such as Audio, Video, IM, federation, Public (Skype, etc…) . UCMA give us also all tools that typically you have to pay so much with other vendors , for example : “Text To Speech”, “Speech Recognition” in a IVR enviroment.

  • UCWA 1.0 (web side :))

–  Unified Communications Web API ,  actually with these API you can develop your own web applications with some features like authentication, presence, IM and the Call Via Work (you simply manage the call forwarding , simultaneosly call, of your lync user) . We hope as soon as they will be ready , also Audio, Video and other lync features could be used in web applications. http://ucwa.lync.com/documentation/core-features .

  • Lync Software Defined Networking (SDN) API

– Imagine that you are at carrier side and you have to monitor some indicators for Lync quality , network performance , etc.. You have to integrate all of these in a third party monitoring system  ; these API is exactly what you need; take a look at this for other informations : http://msdn.microsoft.com/en-us/library/office/dn387069(v=office.15).aspx . A very interesting tool inside this API is the “SIP Obfuscator” that let you to hide username for privacy.

Conclusion

We have a lot of other sources to read about Lync SDK, for example these resources below are absolutely useful and saved my time in a lot of situations   :

Remember that deep knowledge of Lync API is not enough to develop a Lync applications ready for the market , we have to consider that there are a lot of aspects in terms of exceptions, enviroments , usability , integration with other not Lync application  , licensing , security, and so on .

A lot of companies today invest in Lync developing , awesome example are :

 

Auto Answer Video Kiosk application for Lync 2010/ 2013

Hi all,

about 1 year ago Scott Hanselman  wrote an awesome lync tool named Lync 2010 Super Simple Auto Answer Video Kiosk with Full Screen, you can find a complete description  here :

Full Description of Super Simple Auto Answer Video Kiosk with FullScreen

Basically this tool let you to turn any PC in a complete “auto remote working machine” just calling it from Lync .

This can be very useful in any situations in which we have to connect, without human intervention, in that PC . For example it can be used to see, with video, what’s happening in that place, or simply when you want to show Lync feature during sales presentations.

Usage is very simple, just start Lync 2010 or Lync 2013 ,(binaries version below is with NotUISuppressed, this mean that you have to start Lync client before launching AutoAnswer) , go to SuperSimpleLyncKiosk.exe.config  file and insert your sip uri  like this :

<setting name=”sipEmailAddress” serializeAs=”String”>
                <value>sip:yoursip@yourdomain</value>
</setting>

and Save.

Ready to work , just open SuperSimpleLyncKiosk.exe and enjoy 🙂

Just a couple of months ago , i saw that there’s not a direct download to binaries , for this reason I contact Scott asking him the permission to publish  binaries , thanks Scott!! 🙂

So for who that doesn’t have a way to compile a Visual Studio project , here below you can find the executable :

Personally i learn a lot seeing code of this tool, and for this i thanks another time Scott for his job.

Obviously all credit goes to Scott 🙂

NEW: Call Via Phone application freeware for Lync 2013 and Lync 2010

Hi all,  after a couple of months I’m happy to inform that I implement a new version of  Call Via Phone app for SNOM device. This version work also for Lync 2013 and obviously Lync 2010.

Step to install this new version :

  • Uninstall any old version of callviaphone   before install this one.
  • Install the latest KB for lync 2013 kb2760512, otherwise it don’t work on lync 2013 and work only on Lync 2010. 

Following all Windows version tested :

  • Windows 7 32/64 bit
  • Windows 8 64 bit

Following is a brief guide:

Unique Installation for 32 and 64 bit :

Download link :  Call Via Phone app

Once installed go ahead with the setup.

Configuration

  • Start Lync 2013/2010 Client and go to Tools –> Configure Call Via Phone App
  • After that a Message Box appear , and after you fill the field with phone IP address  , Extension or Username and PIN or Password,  click to save.
  •  After that, you are now ready to use the call via phone app.

Usage

On your buddy list , right click to a contact and click “Call Via phone” , at this point your SNOM phone must start to call the contact selected from Lync.

Please give feedback and do not hesitate to contact me for any kind of information or problem.

if you want to donate to help and encourage the development you can follow this link :

 

NEWS *  :  You can find also Call Via Phone Advanced version here :

Link to Call Via Phone Advanced for Lync 2010/2013

Feature added on CVP Advanced :

  • When you click on a contact you can choose which number to call using the phone (Lync , Mobile, Work, Voice mail)
  • After a call has started you can control  (Close, Hold, Add call, Transfer, Conference)

UPDATE 1.1.5: Call Via Phone application for Lync 2010

Hi all, I developed an application  to grow the capabilities of the call via telephone in an environment that includes Lync and SNOM as ip-phone with the firmware Apollo or oldest. At this time only Lync IP-PHONE version with a “USB “Better Together” can make call via Lync 2010 Client. So with this application you can able to do also with all the SNOM UC Apollo firmware and also with the oldest SNOM OCS firmware. As most of you know the new Apollo firmware allows authentication by inserting Extension and PIN, or as an alternative, but more cumbersome, the use of username and password.

At this time it work only in Lync 2010 client , the extension of Lync 2013  is still in development.

Following all Windows version tested :

  • Windows 7 32/64 bit
  • Windows 8 64 bit
  • Windows Server 2008 R2 64 bit

Following is a brief guide:

Installation

Updated 32 bit version 1.1.5 download:  Call Via Phone app 32

Updated 64 bit version 1.1.5 download:  Call Via Phone app 64

Before install it , unistall the old version from Control Panel. This new version  solve an issue regarding “phone-context” string manged by the SNOM phone , thanks to Olivier Kiel for feedback about it.

Once installed go ahead with the setup.

Configuration

Start Lync 2010 Client and go to Tools –> Configure Call Via Phone App

After that a Message Box appear , and after fill the field (information below is not real, provide you own configuration) click to save.

 After that, you are now ready to use the call via phone app.

Using

On your buddy list , right click to a contact and click “Call Via phone”

Please give feedback and do not hesitate to contact me for any kind of information or problem.

if you want to donate to help and encourage the development you can follow this link :

Download Link :

Updated 32 bit version 1.1.5 download :  Call Via Phone app 32

Updated 64 bit version 1.1.5 download:  Call Via Phone app 64

NEWS *  : New Call Via Phone Advanced version  coming soon with this feature :

  • When you click on a contact you can choose which number call using the phone(Lync , Mobile, Work, Voice mail)