About Me

My Photo
TsooRad is a blog for John Weber. John is a Lync Server MVP (2010-2014). My day job is titled "Principal Consulting Engineer" - I work with an awesome group of people at CDW, LLC. I’ve been at this gig in one fashion or another since 1988 - starting with desktops (remember Z-248’s?) and now I am in Portland, Oregon. I focus on collaboration and infrastructure. This means Exchange of all flavors, LCS/OCS/Lync, Windows, business process, and learning new stuff. I have a variety of interests - some of which may rear their ugly head in this forum. I have a variety of certifications dating back to Novell CNE and working up through the Microsoft MCP stack to MCITP multiple times. FWIW, I am on my third career - ex-USMC, retired US Army. I have a fancy MBA. One of these days, I intend to start teaching. The opinions expressed on this blog are mine and mine alone.


Skype for Business Server 2015 Training

Do you have users clamoring for some training resources to help get them started?

Take a gander at this:  Skype for Business client awareness and readiness resources

672Mb of goodness.




CSAnalogDevice Dialing


Analog devices live on.  Face it. There are some states that REQUIRE analog circuits outside of the VOIP configuration.  New Jersey, for instance, requires that elevators be hardwired. 

So, I was doing this project that had a need for analog devices to do things like open gates, be a parking lot phone, and other nefarious duties.  Suffice it to say, we had to put in several 24 port FXS gateways. 

We got them all configured, ran through the requisite new-csanalogdevice and associated all the devices with their respective gateways, assigned (carefully) DIDs, contact objects, and Dial Plans.  You can see some background on how to setup csanalogdevices here.

The desired dialing action was to use a complete 10-digit dial pattern.  No four, no five, and none of that seven digit stuff.  10 digits was the plan moving forward.  During testing, we noticed that we had to dial 11 digits to get the call to complete. 


I immediately went to the configuration of the gateway (AudioCodes MP124) but I found that I already had the “Max Digits in Phone Num” set properly.


As I was performing that useless verification task, I BFO’d on the trace log from the gateway, where we noticed that Lync was refusing the call because there was no normalization!  Huh?

Uh oh

  1. The gateways were sending 10 digits as expected, but LYNC was not accepting them.
  2. The Get-CSAnalogDevice configuration showed that we had assigned a USER Dial Plan to the objects, which was the correct action.
  3. The User Dial Plan had a rule that accepted 10 digits and normalized to e.164.
  4. Therefore the CSAnalogDevice had the right set of rules, was sending the correct number of digits as it was told, but was not working.
  5. The CSAnalogDevice had the correct dial plan assigned, but the CSAnalogDevice did not like the dial plan scope, so the CSAnalogDevice fell back to using the Global Dial Plan ruleset, which did NOT include a 10 digit normalization rule
  6. It turns out that the CSAnalogDevice objects only respect DEFAULT dial plans, not user dial plans.  Our assigned Dial Plan is a user scope dial plan. CSAnalogDevice wants something that can be a default – so pool, site global. 

No, I don’t know why.  I assume it is coding issue, and there is SOME reason that makes no sense to you and me.  I know that you and I consider it a bug, but the developers might well come back with “by design.”  The Lync documentation indicates that a user-level policy will work.  (note that the same documentation indicates that a voice policy needs to be assigned, and I agree, but dang, you can’t make a call without normalization, and the documentation says squatoosh about the dial plan scope level.)

The Fix

The short term fix was to add a 10 digit normalization rule to the Global Dial Plan.  That fixed the analog devices not dialing out correctly. There was joy in Mudville.

For the future, create a site or pool dial plan that has all requisite rules for that site. SBA installations are considered a site for this purpose.

This is current as of the December 2014 Lync 2013 CU.  I hope the SfB release addresses this, but I am not going to hold my breath.  What I intend to do is make sure that every site or pool has a dial plan, and that a user level dial plan is never assigned to a generic device. 


That should hold the barbarians at the gate, eh?



SfB/Lync audio failures


Adios Audio!

The Issue

I don’t know about anyone else, but I have noticed that since I ran updates into my Windows 8.1 laptop the other week, my audio on my laptop has failed completely at least twice.  Today it quit very annoyingly right before I tried to make a Skype call.  Right off, I thought I had a device (headset) failure, or a mute button pushed, or something like that.  But no.

When this happens, ALL audio is gone.  Not just SfB/Lync.  System sounds, dings, dongs, and other helpful bleeps are simply not happening.  This is a Windows 8.1 operating system thing.

I have a Lenovo T530.  But, some google-fu and some University of Bing show that this is not just my Lenovo.



How to fix this? 

Well, rebooting did not seem to work.  But this did:

Start services.msc, go to Windows Audio Endpoint Builder, and restart it.  This will prompt you to accept a restart of the Windows Audio also.  Do that.  On restart, your audio will be back. 






And you should be good.

Keep in mind that I have now had to do this several times (or at least twice) and while this fixes the issue, the restart does not seem to completely fix the issue, as it has come back at me.



Upgrade Lync 2013 SE to SfB SE

So the magic time has arrived.  We have a new Skype for Business 2015 server release.  After downloading the new ISO from your licensing site, or if you have MSDN for your lab, you can upgrade your existing Lync 2013 servers directly!  What a great feature.  I have been waiting for this since … well, a long time.

What needs doing?

I am going to upgrade my Lync 2013 SE.  You may want to review this here first. Then, I think prudence will dictate that you read this next as this is the official documentation on upgrading an existing Lync 2013 server to Skype for Business 2015.

Before I started, I did the February 2015 Lync CU updates to the entire environment, and also, based on our reading, we need the Lync server to be at SQL2012 sp2.  You can get that little download here.

If you are doing an SE like I am, then you need these three commands to accomplish the task:


BTW, if you don’t see this window during the second and third command lines, the upgrade did not take… reboot and start with number two…I don’t know why this happens, and rather than burn time figuring it out, I just booted between steps. FWIW, I seem to have “issues” with doing service packs on SQL Express, so I just always reboot between steps.  I am sure there is some elegant way around this that smarter people have figured out, but not this guy.


You can check your success by running this little scriplet: (I got it here)

$inst = (get-itemproperty 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server').InstalledInstances
foreach ($i in $inst)
   $p = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL').$i
   (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$p\Setup").Edition
   (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$p\Setup").Version

Once you get done with that, you will need to pick a spot to install the SfB Admin tools.  We need to get the topology updated, and once you update topology, the Lync topology builder is going to useless to you; and there is no rolling back.  Unless you export-csconfiguration and save yourself a tbxml and then do a force restore.  I recommend that you take a pause and figure out those two steps and do them now before proceeding.  The last thing you want is to hang yourself out to dry.  A career limiting move to be sure.

OK, so choose a valid source onto which you will install the SfB admin tools.  The prerequisites for this are the same as Lync.  So you can read up on those requirements here. I don’t know about you, but I would pick a Server 2012 R2 instance or possibly an x64 Windows 8 or higher as the prerequisites will already be met.  YMMV.

With the SfB admin tools installed, and an export-csconfiguration and an export-cslisconfiguration AND a pre-SfB topology TBXML saved, we can proceed.

One of the things the official documentation mentions is to ensure that all the services are running on the pool you are upgrading.  You can see the status here (ignore the LYNCBACKUP you see here, I am doing something I am not supposed to…)


With that verified, we can now open Topology Builder using the SfB toolset. And here we are!


Note that the layout looks very similar, and in fact follows along with the 2010-2013 upgrade process – except this time we get to upgrade directly!  Yes!  At this point, Microsoft recommends making a copy of the TBXML you just saved and why you should do it…


If, like me, you have a SQL setup for Archiving and Monitoring that also supports the EE pool, you might want to be safe and update that SQL to SQL 2012 SP2 also.  I did, and had zero issues during this next part. I note this because the pool I am upgrading is doing Archiving and Monitoring, and those databases are being used for the EE pool, and I know that the upgrade process is going to touch those databases, and the minimum to get this done cleanly is SQL 2012 SP2….

Select the pool, select “Upgrade to Skype for Business Server 2015…”


Say yes to the nasty gram…keeping in mind that if you say yes, and things go sideway, you will be discovering the wonderfulness of restoring a topology from your backups…


Note that your ex-Lync 2013 pool is no longer there, but your topology now has a SE under the Skype for Business Server 2015 node…


Publish your new topology using the time-honored, traditional method…


Finally, the magic moment has arrived… we have worked down to Step 5 of the official guidance, and we are looking at this:


Being brave, we will select setup.exe and live with the consequences! Say yes to this first one..


Accept the license agreement…and no, I am not going to screen cap that thing.  Oddly enough, there were no updates to be found.


And voila!  A hidden requirement that is not listed anywhere.  Turns out you need 32 GB of uncompressed NTFS space.  Please wait while I go fix this.  Shouldn’t be too long.  OK, I am back with 25 more GB of virtual drive space…

Apparently there was a prerequisite that I missed (I swear I did them all), but!


As advertised, on reboot the installer just continued forward.


almost done… about 12 minutes…


es finite!


It don’t get easier than this.  Thank you Product Team!

Note that there is a new cmdlet to run to start the pool.  If you are doing EE pools, you should read up on this one.  For maintenance and CU work, you are going to have to change some of your process to include this new cmdlet.


And we are complete…I had a few scary-looking warnings go flying by, but I also understood that I was upgrading the CMS holder, and I sort of expected replication to be borked until the server was fully started.  In the end, patience!


The EE pool, still on 2013, thinks that the CMS is good to go!  Note the version difference between the EE and Edge pool members and the SE…


We even have a new SfB Control Panel!


As in-place upgrades go, this was fairly painless and very straightforward. All functions expecting to be functioning are in fact, working just fine.



Lync 2013 / SfB Client update updated

Referencing this previous post:  http://tsoorad.blogspot.com/2015/04/lync-2013-skype-for-business-client.html

Thanks to Elan Shudnow, here is a potential work-around for you… but you will need to have it in place prior to the blessed event…

Here is an applicable TechNet link:


To get around this first launch issue with the new patch, you’ll want to set EnableSkypeUI to $false and pre-define registry settings using a GPO so it immediately brings up the Lync 2013 client experience without first bringing up the Skype for Business UI and then having a user restart the client.

The link above provides the necessary settings to get the above working settings.  It’s important to specify the GPO as mentioned in the technet article as you want to add a new registry key (which will only do it if it doesn’t exist) instead of updating the registry key.

Specifically, the steps to get Lync 2013 UI displaying on first launch and subsequent launches are:

  1. Get-CSClientPolicy | Set-CSClientPolicy –EnableSkypeUI $false
  2. Create GPO as outlined in the article under the “Create a Group Policy to modify the registry on a domain joined computer”

Remember that when or if you do upgrade the servers or your environment to SfB, you will need to undo the GPO.  In theory, the in-band provisioning will override the GPO…

“You can specify the client experience the users in your organization will see by using the Set-CSClientPolicy cmdlet with the EnableSkypeUI parameter. The following command selects the Skype for Business client experience for all users in your organization affected by the Global policy (remember, site or user-specific policies override the Global policy): “ (my bold and italics added)

…but we all know how that goes, yes?


Lync 2013 / Skype for Business Client update


Hello, it is April 22, 2015.  Note the date…

If you run the latest Office 2013 updates into your environment, but, as expected, you still have Lync 2013 for the pool servers, you will see this when the client next opens Lync.  Normal, anticipated, but still a PITA for the user and likely to generate some help desk angst.


After a restart of the client by clicking on the “restart now” button, you will see this:


As in, back to “normal.”



Altia Systems PanaCast

Are you tired of paying a small fortune to setup a small conference room with a video system for Lync (SfB)?  Have you looked at installing the equivalent of an old Microsoft Roundtable and been put off by the expense?  Has the Lync Room System route started to look like a more expensive solution than you want to consider?

Some of the smaller solutions are made to sit on one end of the room, and then you have to cluster your attendees at the other end like sheep  And then you have a bit higher end. Those solutions are more like a higher-end solution but still, you end up clustering your attendees at one end of the room.  Both of these examples are nice pieces of equipment, but still…not what you are looking for?  You want that panorama thing, where you sit all the way around a larger table, and yet can still see everyone, natural-like?

Be still my beating heart, here comes PanaCast.  Altia Systems has a product that might just be the answer you are looking for.  Compatible with a wide range of devices, PC, mobiles, and yes, Office 365, PanaCast offers you a human-eyeball-compatible view of the conference room.  According to the PanaCast experts that I interviewed, this equates to somewhere between 160-200 degrees of vision.

Of course, we must be a bit skeptical about the manufactures claims, but this thing comes pretty close.  Here is official blurb noting the two different deployment methods.  You can take a deeper look at this solution here.


The Setup

I unboxed the unit and spent about 30 seconds in the assembly phase.  Power, and network.  Done.  For informational purposes, I have this plugged into a switch, so this is truly a stand-alone video unit.  I had to do a firmware update, and that took me another five minutes.  After that, PanaCast was up and ready.

There is some software to download and install, and once that is done, the entire thing is drag and drop. Get the required software here.

Take a look at the datasheet here.

Here is what it looks like for me, setup in my lab:


The PanaCast is sitting in the corner of my palatial office space, and is covering a 90 degree view.  Note that the camera, like almost all cameras, is sensitive to lighting levels.  The ethereal glow on my face is literally the screen lighting from two flat panels.  This next view is the same camera, but now I have moved it to right in from of me.


Note the increased field-of-view - easily 180 degrees as you can see the contents of both corners.  Again, notice the light sensitivity – I like my windows open and the sun coming in – but this causes issues for collaboration cameras.

Skype for Business Connection

What is important to know is the PanaCast camera is essentially a Lync -errrr- SfB endpoint.  Meaning that you can drag and drop this puppy into your meeting like you would any other user.  To quote Jackie Gleason: “…how sweet it is!” OK, enough entertainment value.

Inside the PanaCast view, you can, as an individual user, zoom and pan, just like a real human sitting in the real conference room. I can adjust my view to focus on a specific spot in the overall view, like the whiteboard, and YOU can focus on something else – like the clock on the wall and wish the meeting was over. Not that any of us do that. Any user in the meeting has full control of their own view.  What I do with mine does not affect where you focus. And you can have more than one of them in a meeting. 

The PanaCast system will work with Office 365, it is really just another SfB user.  Interestingly, for my lab setup, Altia shipped me a unit, and we initially hooked it up to one of their Office 365 demo accounts.  Seamless.  Then I asked for hooking it up to my lab environment – I was worried that I had a non-standard SSL certificate on my Edge.  No worries – the PanaCast zoomies took my user info, my domain data, and poof!  PanaCast is logging in as my domain user. 

The PanaCast sits on your network, uses your power, your IP, your piece of Category 6e cable, yet it talks to an Altia server out in cloud-land.  By device, Altia knows who the individual camera is supposed to be, and handles it from there.  Altia is selling this as a service also.  So if you have a pure O365 Lync deployment, the PanaCast will just work as it did for me in my lab and as it did for their demo account. So nice.

Let’s Wrap it Up

I think you should consider contacting Altia for a demo and see if this system impresses you as much as it impressed me, and if it might have a spot in your solution set.



SSRS into existing default instance

Are you trying to install SQL Server Reporting Services onto an already built default or named instance of SQL?  Does it error out telling you that the instance already exists and you need to choose another, and you don’t wanna choose another?

Then you might want to read this.  Yes, it is for a really old version of SQL, but hey, it works.  I just tested this on SQL 2014.

Run the below command at the Windows command prompt to start SQL Server setup on the active node.  Make sure to run this command after changing the root directory of the command prompt to the location where you have placed the SQL Server setup files.

Setup.exe /SkipRules=StandaloneInstall_HasClusteredOrPreparedInstanceCheck /Action=Install
This bypasses the SQL install logic checks.  A downside is that the setup routine skips the auto-magic SSRS Native mode configuration. You will need to do a manual configuration of the SSRS using the Reporting Services Configuration Manager.
This is no way implies that if you do a SQL Availability Group, and put SSRS on both (or all) nodes, that the SSRS is now in a DR state.  In fact, some really useful reading for doing the DR process with SSRS in this posture can be found here: 




Plantronics Voyager Edge UC

Optimized for Lync does not always mean optimized for your usage patterns, the size of your ear canal, or even how the buttons work with your fickle fingers.

You may need to try out quite a few to find what works for you.  Or, you can just trust me to guide you through the Bluetooth earpiece minefield.  After all, how I use my Bluetooth device is how everyone should be using it, yes?  And my ears and fingers are clearly the reference standard for all 6+ billion consumers on this planet. 

Well, they should be.  My momma says I am special.  My SO says my momma meant it the other way ‘round, but I am ever hopeful.

Into my life comes this Plantronics Voyager Edge UC, Optimized for Lync, and either a replacement for, or perhaps a new twist on my favorite, go to Bluetooth device, the Voyager Legend UC.


Last week I had something else plugged into my ear and into my work laptop (and Lync).  For the coming week I will be using the Voyager Edge UC.

Here is the official market-speak and feature set.

There is also some software that purports to be Lync/Skype compatible…

Software-enabled functionality

With Plantronics Hub, get the added value of:

  • Call control across multiple softphones
  • Battery meter conveniently displays headset battery life remaining in PC icon tray
  • Headset control panel allows for customization of settings, including call notification and related options
  • UC presence automatically updated when on a call; not only on PC calls, but also when on mobile calls (Microsoft Lync and Skype only)

Well, it does all that true enough.  I won’t ever use that stuff, but it might be the deciding factor for you.

SfB Link previously known as the Lync Link.

Inserting the USB dongle into my USB hub resulted in near-instantaneous connection.  There was some momentary confusion because my Calisto 620 also has a BT-300C-M dongle. 


But, the sharp-eyed reader will note the icons are subtly different – not to mention they have different name designations.  And you have to know that being SfB (Lync) kinda guy, I sat there in a call flipping back and forth between devices just to prove I could (and SfB could) do it.  After that period of insanity, things were copacetic and worked as expected.


You can pair this earpiece to your computer and the phone at the same time.  Slick Willy never had it so good.

Battery Life

Only 6 hours.  Hmmmph.  If you talk for 6 straight hours, I suggest that you start looking for work as a talk show host. Me?  Being a tad more normal, I am more concerned with standby time, and getting a few conference calls worked into the day – and this unit seems to last well enough for that.  In a nod to the product team, there is only so much you can do to fit a battery into a device of this size.

Audio Quality

Audio Quality is standard Plantronics; that means it was well above acceptable if not setting the standard.


I think I am seeing a trend in the “ear-device” marketplace where everyone is trying to cram as much functionality as possible into a smaller package.  If it was up to me, I would  stick with a bit bigger size, and a bit bigger controls.  Having said that, all the controls worked as advertised.  I like the mute feature – nothing like getting yourself muted and the other end is none the wiser.  Makes getting coffee much easier.

Downloadable Software

Once paired with my iPhone, the AppStore offered me the Plantronics Hub software.  Handy.  And it sort of works.  I am not too much on fiddling with the settings – most times the defaults work just fine for me.  However, I can see where some of these changes could be for the better if that is your bent.  Should you really want to get fancy, you can download the Plantronics Hub software from here for your workstation/laptop.  2 of my other testers liked the options offered by the download.


I have to say that I will not be using this device in the future.  I found the controls difficult, and the fit in my ear was not the greatest.  However, in fairness, I passed this device to three other testers, and they all liked it.  So, it must be me, as usual, swimming upstream.



Jabra Stealth UC MS

Jabra sent me a relatively new toy – a smallish Bluetooth earpiece that is Lync Optimized.


You can read up on the official Jabra-speak here.

I wanted to try this little gem because of the (lack of) size, but it still touted up to six hours of talk time. And it is S-M-A-L-L.

Here is the official feature list:

  • Smartphone voice control button for remote activation of Siri / Google Now
  • Noise-Blackout dual microphone technology reduces background noise
  • HD Voice for high definition sound quality
  • NFC for easy pairing
  • Stream music, podcasts or GPS directions
  • Incredibly lightweight; only 7.9g (0.28oz)
  • Small, sleek design; L2.57 x W 0.61 x H 0.95 in
  • MicroPOWER technology provides up to 6 hours talk time

Pairing with my phone was dirt simple.  Pairing with my laptop so as to use the Stealth with Lync was even easier.  Plug in the provided USB dongle, and turn on the Stealth.  Done. 

Being Lync Optimized means that you have full call control synchronization.  About the only thing I don’t like about this little earpiece is the beep-beep when muted.  

Out of the box, there is a little dinky 5 minute guide; if you are interested in a bit deeper technical content, you can get the datasheet here.

Overall, this is a good solid earpiece, and it just might be perfect for you.  I wore it for several hours with no issues, and there was plenty of battery left – the handy voice announcement is telling me I have three hours left.

You can get one right here.


Plantronics BackBeat Pro

What do we have here?  Another toy!  How lucky am I?


BackBeat Pro by Plantronics  Officially, here is the feature list:



Paired with laptop – but could not get it to give me audio.  Don’t know why.  I stopped trying after a bit;  I don’t like using BT on my laptop – BT drivers tend to screw with parts of the Office Suite so for several years now I simply disable BT on the laptop.  So, for me, nothing lost.

Paired with my iPhone first time out, and worked nicely.  It was a little disarming to not have a microphone boom in front of me, but the audio quality for the voice sending portion of this headset was good-excellent.



Audio Quality

Pandora music quality was excellent.  Volume was more than acceptable; there was more dB available than I find comfortable blasting into my gourd.  Frequency response, while I am not a human KHz meter, seemed to reproduce music well. The BackBeat Pro won’t ever replace my Infinity Studio Monitors in terms of pushing air, but hey, this thing is feeding straight into your ears.  And hugely impactful bass requires some size in the drivers with the ability to push air around.  Adele Rolling in the Deep has a thumpy bass line along with a solid drum beat – a good test of the music quality for bass response.  Even Garth Brooks sounded great. Overall, Music quality on the TsooRaD Goodness scale is at least a 9.


Holy Controllability Batman!  This thing has more controls than the space shuttle.  Well, maybe that is a tad exaggerated.  When paired with my iPhone, the BackBeat Pro rocked.  Full control of my play lists, and switching between music and using the phone was seamless.  Very well done. 

There is software for added functions, updating firmware, and for creating an entire Zen user experience. 

The Lync Link

Seeing as how I could not achieve BT nirvana with my laptop, what I did was leave the BackBeat paired to my phone and fired up my Lync Mobile client.  Nifty.  You have to love Lync Mobile.


A very nice piece of kit. Overall comfort level is excellent, audio quality is excellent.  Functionality with my iPhone was standard Plantronics goodness.  All of this and you get the Plantronics build quality also.

You can get your very own BackBeat Pro right here.



Plantronics Blackwire C725-M

Do you work in a noisy office environment?  Does that noise get in the way of your concentration? Do you tend to put up some music on to mask that noise? 

Plantronics might have an answer for you.  The Blackwire series of Optimized for Lync headsets has another winner.  the C725-M.  Noise cancelling, stereo, and a set of features that might well make this your go-to headset.  Here is the official market-speak.  It even comes with a nice soft carry case.


The short list of goodies incudes:

From the top down we have:  YES, sweet!, maybe, handy, Pandora John approved, I don’t care.

You want more detail?  OK, fine.  The ANC works really well; I would prefer over-the-ear rather than on-the-ear.  Could be just me, but what is the point to ANC when the noise can just go around? 

Smart Sensor?  This puppy answers the call just by putting the headset on.  This might be a little odd to some, but this auto-answer feature is also on my Voyager so I am used to it.  Once you try it, you may never go back. 

Professional audio quality?  I think this will depend your definition of what “good” is. 

Inline controls?  See below.  But they work well.

Music? Personally, based on my testing, and knowing that the stream on Pandora is different from 3g to Wi-Fi. my tired ears could tell the difference.  And sounds pretty nice on both. 

As to the case, I don’t care, I don’t use them.  You, however, might think that the case is the best thing since the corner gas-station.


The microphone boom can go on both sides.  It all folds flat.  The ANC is really nice.  It answers the call for me. The inline module volume control has different tones for up and down.  The ANC is really nice.  There, now I have said it three times.

The line cord is a bit stiffer than some I have seen.  Which I like.  Less tangle coming out of Mr. Backpack.  Plantronics also has a comprehensive download and support site.  There is even specific software to enhance your Lync user experience.  Nice.

Comfort is a solid 9.5+ on the Tsoorad Goodness scale.  Not too much weight, and I did not feel like I had my head in a vise.

Lync Link

Of course, this blog would not be appropriate if I did not tie this device into Lync in some fashion.  Plantronics says the C725-M is Optimized for Lync.  How did that portion of the testing go?  Easy-peasy.  Plug n Play.  I had zero issues – all I did was plug into a USB port and I was up and running. The Inline module works as expected. Audio voice quality is excellent.


A winner.  No need to say more.

You can get one right here.



Asus Mobo & Server 2012 R2

Did you need to update your lab server?  Do you run a high-end gaming or media platform and need a boatload of RAM so you obtained an Asus mobo so you can have 32 or 64 GB of RAM?  Did you decide to go with a Windows Server 2012 R2 as a workstation host for the goodies you get with that?

If so, then I will make the guess that you discovered that the Asus-supplied driver disk claims that your operating system is not supported.  Horse pucky says you – with Windows 7/Server 2008 and Windows 8 (and 8.1)/Server 2012 (and R2) the core of the operating system is much the same and drivers will work on both, right?  Very frustrating to know something should work and be turned away by a mechanism to save the consumer from themselves.

This is now the second time I have run into this little gotcha; and for the second time, I worked around the issue the same way.  I suppose you could go find all the drivers and try to load them individually; however, one of the problems is that the LAN driver is a toughie.  Downloading the drivers and suite software direct from Asus runs you into the same issue – “your operating system is not supported” and you start questioning your sanity and direction in life.  My first experience with this was with Server 2008 R2 and an Asus P8z68 board.  This weekend I ran into this issue using a Asus Sabertooth X79 board and Server 2012 R2.  Specifically, I am using this mobo here.

What is the issue?

The *.ini files don’t include a proper operating system identifier that tells the driver/utility disk that it is OK to install for Server 2012 R2.  Very frustrating knowing that the drivers and whatnot will work just fine – well, there is an issue with the on-board Ethernet controller (and Intel 82579v) that the Server 2012 R2 doesn’t like – but I have a fix for that as well. 

A little error comes up with the audio drivers, but in my case, this is a headless VM host, and I am not too worried about that aspect of installing.  As it turns out, the audio driver install routine pitches and error, but then continues to install and works just fine.

The Fix

OK, so what do you need to do?  First, copy the CD to somewhere on a writeable drive.  Then find EVERY *.ini file in the resulting file structure.  You should end up with something like this:


and here is the end of the list…


Yes, that one line reads “264 File(s)”  that is a lot of them!  But, we do want to be successful, yes?  Note also that the very FIRST file listed is not “AsusSetup.ini” or “AsusSetup64.ini” – this is important. 

Let’s Dive In!

Cannonball, Can Opener, perhaps a graceful Swan dive or something you would see off the 10 meter board in a formal diving competition, pick your poison.  What you need to do is modify every last one of those ini files with the name “asussetup.ini” or “AsusSetup64.ini” – not the worlds best task for a Friday night, but you do want this to work, yes?

FWIW, I used this tool here.

Start by looking at the file \bin\Ascdinst.ini in your favorite editor, and find this piece:

WNT_6.3H_64 = Win81_64  --- Without getting too deep into the weeds, this line reads “Windows 8.1 Home Edition”

What you need to do is realize that this:   WNT_6.3I_64 = Win81_64 represents Server 2012 R2.

If you are trying to do this little routine with Server 2012 (why?) or Server 2008 (or R2) (why?) you can use these lines:

Server 2012 R2: WNT_6.3I_64 = Win81_64

Server 2012: WNT_6.2I_64 = Win8_64

Server 2008 R2: WNT_6.1I_64 = Win7_64

Server 2008: WNT_6.0I_64 = Win7_64

For those of us who are font-challenged, or maybe just a bit dim or blind, the “I” in those strings is a capital i.

What is going to happen here is that the installer is going to read the installed operating system as WNT_6.3I_64 and equate that to win81_64, which is supported for install.

At any rate, in your favorite editor, you want the appropriate section in the ascdinst.ini file to read thusly:

WNT_6.3P_32 = Win81_32
WNT_6.3P_64 = Win81_64
WNT_6.3P_32_MCE = Win81_32
WNT_6.3P_64_MCE = Win81_64
WNT_6.3H_32_MCE = Win81_32
WNT_6.3H_64_MCE = Win81_64
WNT_6.3H_32 = Win81_32
WNT_6.3H_64 = Win81_64
WNT_6.3I_64 = Win81_64

Once you get that first one done, the asussetup will be happy.  The other 263 files need to be done also to enable the individual components to install properly.  Happy grepping!  or, Happy notepad ++’ing, or however else you choose to do it. Yes, I know I said that some of the files don’t need to be done, but you never can tell which.  Actually you can, if the WNT_6.3H_64 line is not present, you don’t need to worry about that ini file.  But, do you really want to mess around with looking at each file?  No, I did not think so.  Pick a tool and use it.

As a nit-picky technical note, for your purposes, you really don’t need the WNT_6..3H_64 line at all, so you can just grep every ini file on the disk, and if it finds the WNT_6..3H_64 line in the file, replace it with WNT_6.3I_64 = Win81_64. Which *I* did not do, because there is always the chance that I might, for some reason known only to Microsoft, need to install the Windows 8.1 Home Edition on my 64GB Lab server.  You never can tell.  I might come down with a severe case of stupid one day.

LAN Driver

In a twist of technicality that I have no desire to attempt unraveling, Intel does not produce a driver for the 82579V GB Ethernet Controller that supports Server 2012 R2.  Don’t ask me to elucidate, I said I don’t know.  But, what remains is that even when you work your way through 264 different ini files doing the above routine, the LAN driver on the disk is going to barf on you because it doesn’t like Server 2012 R2.  Again, I don’t know why.

What I do know is that you can do the Device Manager thing, and tell Windows itself to install the 82579LM driver, which works splendidly.


If you go here: https://downloadcenter.intel.com/download/23073 and actually read the fine print, you will find this:

NOTE: The following devices do not have driver or software support for Windows Server 2012 R2:
- Intel® Ethernet Connection I217-V
- Intel® Ethernet Connection I218-V
- Intel® 82579V Gigabit Ethernet PHY

So, it would appear that the 82579LM driver is going to have to suffice. As you can see, I have plenty of traffic on the network, but as a fraction of the speed provided by the NIC, it doesn’t even make a pimple on the radar screen…


When we do a little file transfer to get a feel for actual speed, it certainly looks like we are getting GB speed.




At this point, remember that the first file you do is different from the rest in the terms of naming convention.  All the rest you need to worry about will say asussetup*.ini.  There is a bunch of language ini files; I don’t think you need to worry about those, unless of course you know something about language files being bit-specific that I don’t know.

Oh, BTW, this Asus board rocks.  Although I am not sure I will ever need all 30 USB ports.



International Call Test Number

Do you need to test outbound calling to international numbers but your customer doesn’t have anyone just sitting there waiting for your call (how dare they)? Well, Australia to the rescue!

This number is an automated time of day announcement from Australia,so you won’t be harassing anyone.  Keep in mind that your test will incur at least some charges to your customer, so make sure they know ahead of time.

Calling from the US:  011-613-966-94916

You may need to mod the international access prefix for your country, or make sure that your Dial Plan rules do what is needed.  Most users who make these calls will know international access numbers, after all, they are already making these calls.  Your PBX counterparts will also know the appropriate codes – or, they should know.




Upgrade Lync 2013 to Skype for Business 2015

Here we are in the 1st half of 2015, and the anticipated general availability of Skype for Business 2015 is fast approaching.  Microsoft has started to release details surrounding this new version of what could possibly be (and my opinion is) the best and fastest growing collaboration and communication tool on the market today. According to available data, 90% of the Fortune 500 use Lync in some capacity, and 89% of enterprises that trial Lync are including Enterprise Voice, Lync 2013’s flavor of SIP-based VOIP.  With that in mind, and leveraging the popularity of Skype, Microsoft has rebranded the Lync Server as Skype for Business Server 2015 for this new version release.

With all that in mind, and keeping in mind that upgrading what might be the core communication application for your organization, we need to start looking at what the planning process is going to look like for this upgrade evolution.

In this article, I will outline what I consider to be the crucial considerations.  I am not going to try to detail the product enhancements in this version, nor the pros and cons of taking this action; we will focus on the overall upgrade process and what your organization will need to consider BEFORE embarking on the procedures.

The General Idea

First off, Skype for Business Server 2015 (Skype4B) does not support three version coexistence.  This means that Microsoft recommends that if you are partially into an upgrade to Lync 2013 that you continue forward and complete that process.  If you have not started, then stand pat and upgrade from Lync 2010.

If you have Lync 2013, then you can take advantage of the in-place upgrade that is now available.  If you are on, and staying with Lync 2010 until upgrading to Skype4B, then you will be building new servers and moving into/onto them.  There is no path from OCS 2007 R2 or earlier.

Next, the overall flow is inside out, user pools first, then the supporting Lync server roles are upgraded; mediation servers, directors, and Edges.  Yes Matilda, there is still a director.

A Few Specifics

All of the Lync 2013 infrastructure that we know and love is going to look the same in Skype4B.  DNSLB, HLB, Reverse Proxy, firewalls, Web Access Servers, Persistent Chat, pool pairs, virtualization support, SBS/SBA; it is all there.  About the only significant change that I see is the support for SQL AlwaysOn Database Availability Groups.  If you wish, SQL clusters and SQL Mirroring are still supported. If you have mirroring now, there is a spiffy procedure to upgrade your mirror to AlwaysOn.

If you are using SQL AlwaysOn today with Lync 2013 – you can move straight into the upgrade, but Skype4B will never know that the supporting SQL is in an HA posture.  While things SHOULD work, you will be firmly in a non-supported scenario with Skype4B topology not having all the facts.

If you want to get the SQL AlwaysOn, keep in mind that the AlwaysOn requires SQL Enterprise with the attendant cost.  Unless your database team is dictating AlwaysOn for some technical or business reason, I simply cannot see the benefits of AlwaysOn over mirroring; but that could be just me.

Lync 2013 will run on Windows Server 2008 R2.  So will Skype4B.  However, if you take this route, you will be pretty much dead ended – Server 2008 R2 is getting a tad long in the tooth.  Take a look at the support cycle, and then make your own decision.  For the most part, I have been deploying Lync 2013 on Server 2012 R2.  If this is the case for your organization, or if you have been doing Server 2012, you should be OK.  But I would be thinking twice about moving forward with an in-place upgrade of Server 2008 R2 hosts. Server 2008 R2 uses a version of Windows Fabric that will update to Fabric 2.0, but about 100 or so bug fixes did not make it into v2, so using Server 2012 and 2012 R2 will get you the upgrade to Fabric v3, which is the optimum platform for Skype4B.

Whichever server host you choose to use, even the in-place upgrade has some prerequisites to install before running the Skype4B setup.  As you might expect, the Lync 2013 servers should get all windows updates and the prerequisites before moving forward; the upgrade process will error out if it thinks something is missing.  Nothing new here, but be prepared.

SQL again!

SQL on the front ends needs to be SQL 2012 SP1 (Express) to get the direct upgrade treatment.  So you might need to figure out some time to handle this before starting the core upgrade project.

Topology Builder

The Skype4B Topology Builder is going to be needed before you upgrade the first pool, and the Lync 2013 Topology Builder won’t open a topology that has been upgraded.  Most folks run Topology Builder on one of the Front End servers in Lync 2013; but you cannot get to the direct upgrade features from the Lync 2013 Topology Builder.  You are going to have to get the Skype4B Topology Builder onto something else; documented supported platform information is not available at this time, but a good guess will be x64 and Windows 8 or Server 2012 and up.

You are going to want to keep the Central Management Store until last.  Obviously, if you only have one server, this won’t be a possibility.  But if you have only one Enterprise Pool, you might want to consider standing up a 2013 Standard Edition to move the CMS onto; this will create a fall back position for you should things get ugly.  I also think that a judicious upgrader will run export-csconfiguration and export-csLISconfiguration before starting; again, for the obvious fall-back planning.

If you have Survivable Branch Appliance (SBA), there is no current upgrade available.  Microsoft is leaving that process to the SBA vendors.  You will need to plan for a maintenance window during the upgrade as the SBA pool will be in resiliency mode while the central site pool is down for the upgrade. After the pool comes back from the upgrade, the SBA will register back into the central site just as before, so no worries there.  According to the good folks at AudioCodes, it will most likely be until June 2015 before a vetted SBA upgrade process is fully tested; until then, the Skype4B pool will work with the Lync 2013 SBA just fine.

SBS will direct upgrade provided you have all the host server items covered just like on an SE or EE pool.

Pool Pairs

To direct upgrade pool pairs, the entire pool needs to be down.  I suggest that moving all of your users to the other pool whilst upgrading will be a prudent move.  Note that this does NOT MEAN doing a pool failover, just moving the users off.  You might also want to consider a little disaster proofing by moving the conference directories.  And keep in mind that your SBA structure will be down while the central site pool is down for upgrade.  I suppose you could redo the SBA backup registrar relationship, but I think that is way more work than is called for.


Skype for Business is coming and there is a different light at the end of this particular tunnel.  To whit, we can do in-place upgrades.  The supporting SQL backend and how to handle that aspect of your environment will need examination and forward planning.  Likewise, the host server version will demand attention and presents some decision points.



Lync QoS calculator


I pushed the rock away from the entrance to my cave and discovered that MVP Pat Richards has once again put out an awesome tool.

Quality of Service (QoS) Calculator – Plan Your Network, GPO, and Lync Config More Easily


Check it out. Great stuff.



Lync 2013 Mobile call failure

Isiah Hudson, CDW UC Consultant, reports the following:

Failures of IM and calling to Lync 2013 mobile clients in two very specific scenarios. The findings are listed below:



When an IM is sent from an internal user (using any Lync client) to a user on the Internet using the Lync mobile 2013 client. The Internal user would get an error message saying the IM failed immediately after the Lync 2013 mobile user accepts the IM.


When a call (audio or video) is initiated from an internal user to a Lync 2013 mobile user on the Internet the call results in a failure.

This issue only impacted Lync 2013 mobile clients. The Lync 2010 mobile client worked fine in all IM and call scenarios.


Tell-Tale Signs

After the IM or call is accepted by the Lync 2013 mobile client the following a SIP/2.0 403 Forbidden message is generated by an FE server with the following information in it:

ms-diagnostics: 24118;Component="RTCC/";Reason="Application accepts invitations via static registration only.";Source="whatevertheFEservernameis.ad.local"



A ticket was opened with MSFT and after a couple of months of working on it the problem was the public certificate on the reverse proxy for the Lync external web services had SAN names in them that were not resolvable by public DNS. I am told by MSFT support that the Lync 2013 mobile client will try and resolve all SAN entries of the public certificate presented to it at sign-in. If it cannot resolve any SAN entry on the certificate you may experience the problems outlined in the Issue section above.


Take Away

Make sure all SAN entries on the public certificate you put on your reverse proxy for Lync can be resolved to an IP address or you will have a bad time.

And there you go.  Nice work Isiah!



Lync Server 2013 Cookbook

A new book on Lync Server 2013 is coming out soon.  This book is done up in different categorical task headings so you don’t have to read the entire book to find something useful.  Need some security pointers?  Head to chapter one.  Need to figure out some Enterprise Voice details?  Chapter three might just have your answer.  I found chapter nine to be a personal favorite.  And chapter 12 is a must read for anyone associated with any aspect of supporting Lync 2013 or 2010.

Here is a list of the chapters:

  1. Security
  2. Authentication
  3. Dial Plans and Voice Routing
  4. Integration with Exchange
  5. Tools and Scripts
  6. Designing Lync
  7. Resource Forest
  8. Hybrid and Lync Online
  9. Monitoring and Reporting
  10. Backup and Restore
  11. Controlling your Network
  12. Debugging

This book is not out yet; what I reviewed was a pre-copy provided by one of the co-authors, fellow Lync MVP Fabrizio Volpe. The author list, if you are curious:  Alessio Giombini, Antonio Vargas, Fabrizio Volpe, Lasse Nordvik Wedø. 

All in all, great stuff.  You can pre-order your very own copy here: 




Lync RGS Queue Monitoring with Advatel Espera

Lync Server, in the midst of everything it does so well, is not a call center.  But, Lync does not want to be a call center – that functionality is well provided by a raft of third-party ISV-types who specialize in providing Call Center services or software.  But when you look at those specialized services and software, what is missing is the immediacy of the small group, and what is present is a hefty price tag.  To answer the smaller need, Lync Server offers the Response Group Service.

One of the key features in call center software is the ability to monitor the actions of the various agents and groups to ensure that calls are being handled in a timely manner – in other words – allow business decisions to be made with actual data and not guesses.  But there is nothing built-in to Lync that matches this ability. The Lync 2013 Resource Kit RGAgentLive tool – part of the Lync Resource Kit – does not answer any of these questions.

Lync Response Groups offer a small-case solution; from one or two RGS workflows or dozens – and I know of organizations that have, literally, hundreds of Response Groups workflows. However, once you have decided to use Lync RGS, and you have business critical operations that use the RGS, how do you monitor the performance and response of the RGS?  And what if you have more than a few that you need to monitor?  How can you tell if the agent groups are responding to the RGS calls in a timely manner?  How can you decide if you need more agents to handle the call volume?  How can you determine if you are meeting your performance metrics or who is doing what?  Are your agents even logged into the system?  Are they being good RGS answer people?

Advatel Espera

In this article, we will take a look at how Advatel Espera helps provide answers and information it can provide to organizations who are using Lync Response Groups.  First off, here is where you can get the official market-speak.  In reading through that material, you will realize that Espera has two components, the real-time monitor, and the reporting piece.  Personally, I was first interested in the reporting piece, because, face it, the Lync monitoring server reports, while it does have all the information that Espera uses, is not exactly what is known as “user friendly.”  In the end, I liked the real-time monitor aspect just as much as the reporting.

Here is the official blurb straight from Advatel:

AdvaTel is a Microsoft ISV and TAP development partner where Espera is a Microsoft Lync ISV Qualified Solution which will provide enhanced real-time dashboard display and reporting by leveraging on the built in features of Response Groups without adding any additional hardware. Lync has some excellent call queuing capabilities within their Response Group technology. They provide for inter-flows and over-flows etc. and a number of call routing capabilities. The problem is that the “missing link” was users cannot “see” the queue status. Hence the critical and vital need for Espera Real Time and Espera Reporter.

Server Setup

Espera has two major components, and a client-side install.  In the client-side install, there is a separate Lync 2010 and Lync 2013 installer.  The server setup is very straightforward.  The documentation for the install is extensive, heavily reliant on screen shots; and if you cannot follow along and get your server installed, then you need to find a different profession.  Really.  The documentation even covers using 2008R2 and 2012 and the differences.  Two thumbs up to whoever put together the documentation for the server install.

You will need to have a server upon which to install the Lync Server Core components – an application server if you will.  I used a 2012 R2 virtual and had zero install issues.  The application server needs to be listed in the Lync Topology as Trusted Application Server.


Part of the server setup is to configure permissions on the LcsCDR, Rgsconfig, RgsDyn, RTC, and XDS databases on whatever SQL server you have setup.  The install documentation does not cover SQL 2012 R2, so you may have to read between the lines a bit – however, I got it done with minimal effort.


Once you get the server installed, the configuration to match up with your Lync environment is also straightforward.  There are some highlights… in my case, the “Auto Configuration” did not work so well.  This necessitated a short period of me flailing away trying to figure out just what went wrong.  Not finding any obvious error, I cleverly turned to Espera support. 

Here is what I was seeing:


As it turned out, the answer was staring at me… the “Lync Address (or DNS)” auto-filled to the SQL server that held the LcsCDR, which looked OK to me; turns out that field is very literal – it needed to be my EE pool FQDN.


Once past that little blip, things were copacetic.  Note that the “Printer Service” is failing because, duh!, there is no printer installed. 

Two nice things about Espera. First, Reporting has the ability to send email reports via schedule or on demand (by scheduling a one-time report).  I had a bit of an issue getting that to work – turns out that the email server setup does not need to have user credentials, if you put them in there and don’t hit the check box, the SMTP process won’t kick off. If you configure it like this you should not have any issues.  I am assuming you know how to authorize Exchange (or some other SMTP server) to receive email from specific IP addresses… you also need to include your allowed email domains.


The second nice thing is a feature not found in Lync at all – a wrap up option – which gives the agent handling the call an opportunity to classify the call on termination.  Handy, and more on that later – but you need to tick the check box on the server to get that feature enabled.


Client-side setup

So, the host server is built (or you used an existing server), Espera Server is installed, now let’s look at the client-side work.

If you use Lync 2013, you can skip a bit.  But if you use Lync 2010, you will need to make a few mods to a config file. 

Here is the configuration file change details.  Even I got it done on the first try.

Change Espera Client Communication Type
1. Open the "EsperaClient.exe.config" file located at 
"C:\Program Files (x86)\Advatel\Espera Client\bin\EsperaClient.exe.config”. 
NOTE: You may need to open this file with administrator access so that you can save the
2. Change the value of 
<add key="TcpRemoteServerAddress" value="" /> 
with the FQDN or IP Address of the Espera Server.
3. Change the value of 
<setting name="CommunicationType" serializeAs="String"> 
4. Save and close the "EsperaClient.exe.config" file
5. Close the "Espera Real-time Window" (if open)
6. Exit the "Espera Client Launcher" from the system tray (icon near the clock)
7. Start the "Espera Client Launcher" from "Start>Programs>Espera Client"

I also had some issues getting Espera components configured and installed, but those issues were purely on the odd workstation environment I have in my lab.  It turns out that the .net4 installer included with the Espera Client did not like running on my workstation from inside the zip file.  And then the .net4 installer did not like running outside of the zip unless I invoked it from a cmd session using explicit runas /user:administrator.  No, the workstation is NOT a domain member – which may or may not have contributed.  FWIW, the workstation is a Win7x64 virtual.  But, no matter, in the end I leveraged my good looks and excessive charm and overcame the evil operating system.  My Win8.1 Lync 2013 client installed without issue.

Espera places a sidecar on the Lync client.  Without going into morbid details of what is what here is the Lync 2013 client running on a Win8.1 and this example is the Espera system administrator account:


Here is the Espera client, this time on Lync 2010, running as a regular RGS agent – not and administrator.  Notice the difference in the number of Espera buttons available to each level of user.  Chicken.Hawk has administrative and supervisor functions lit up, and the other account does not.


Also note that the client functions are covered in the Espera documentation, so I am not going to go over all of them here.  But I will note that the two “key” looking buttons will change function depending on the RGS itself…is the RGS workflow formal or informal?  If informal, when the Lync client signs in, the Espera client will just log into the RGS monitoring functions as well.  If the RGS is formal, the buttons serve to allow the agent to manually sign-in/sign-out.

Your RGS agents might well be working remotely – not a problem. Espera will cross the Edge server.

At about this time, you should probably realize that I am not going to start quoting 100+ pages of user documentation.  However, we are going to look at some basic configuration – and that is done using the aforementioned administrator/supervisor login.  You should get ahold of the user documentation – there is some serious configuration that you can do to customize Espera real time, and reporting, so as to get the most out of this product. However, I cannot find anything out in the wild that you can download so you could read and follow along here.  I suppose you could register for an account up on advatel.com.au.  But I did that and did not see the user guide available.  You can contact this email address to get the Espera documentation: espera.support@advatel.com.au

Here is my administrator real-time display:


I only have two RGS workflows in my lab, so the results are a bit sparse.  However, here is the configuration screen options – you can see that a full implementation could easily have a full screen of RGS monitors – and you can get this up on a large screen up on the wall – just like in a call center.


Here is my other RGS agent looking at a different view.


You can color code things so the supervisors can see at a glance that something might be amiss.


Espera Reports can be emailed, either on demand, or on a schedule.  The reports can be in CSV format for you to play with, or they can be in xps format for immediate consumption.    The reporting has some canned reports, but some inventive person can also create custom reports. Here is an example – in this case the agent wrap-up report where the agents can classify the call when the session is complete.



Lync 2013 has a Response Group Service that can function as a quasi-light-weight call center.  Because of the expense and complexity of full-blown call center software or services, the RGS is perfect for some environments.  Suppose you have an IT help desk with 6 agents, and you want to keep track of performance and enable the agents to be more aware of what is going on with their primary job function.  Advatel Espera might well be the tool for you.  Easy to install, customizable, and enables management and agents alike to better tune their performance.

The server side install was fairly painless, and running on minimal (by today’s standards) resources.  The client-side install was, for the most part, easy-peasy (outside of my wacky Win7x64 workstation). My experience with Espera support was excellent, and Advatel responsiveness to my idiotic questions and naive product suggestions was refreshing. 

I have not done this Lync add-in tool justice in this review.  My lab only has two RGS workflows, and I have a limited number of resources to use as agents. Accordingly, here is a three minute video, and if that whets your appetite just a little, I suggest you contact Advatel and get a full demo. 

The demo I saw was very good, and if I had RGS like some of my clients, I would be taking a long look to see if Espera would fit in and help solve my problems. This is a Lync add-in that I can recommend.