October COUCUG meeting on 10/30

October 27, 2014 Leave a comment

If you are in the Denver, CO area on Thursday (10/30), you should come join us at the October Colorado UC User Group (COUCUG) meeting. We have a great line up of speakers! Topics are Lync with Office 365 UM and Lync Contact Center.

We have a ton of give aways from our sponsors too! We will be giving away a tablet, Jabra headsets and more!

Please visit http://www.coucug.org to learn more and to RSVP.

Categories: Uncategorized

Lync Invoke-CsBackupServiceSync and No Central Management Services

September 9, 2014 Leave a comment

Working with larger Lync deployments, I have run into this a few times where we need to force the Backup Service using Invoke-CsBackupServiceSync and we get the message “No Central Management services were found for the pool you specified to backup.”


The first time I saw it, it made me pause but I noticed something, it wasn’t an error. Errors always display in red. I went back to Technet and read about the cmdlet.

By default, the Invoke-CsBackupServiceSync command will attempt to synchronize three types of data:

  • UserServices.PresenceFocus
  • ConfServices.DataConf
  • CentralMgmt.CMSMaster

The issue comes up when you run Invoke-CsBackupServiceSync against a pool that is not hosting the CMS. The default attempts to synchronize CentralMgmt.CMSMaster.

If you don’t want to see the extra message telling you there is no CMS in the pool you are running against, then you can run Invoke-CsBackupServiceSync with the “-BackupModule” option and specify only the UserServices.PresenceFocus and ConfServices.DataConf. Otherwise, you can know that this message is normal and you can keep on with your tasks.

Categories: Lync

High CPU after Publishing Lync Topology

August 26, 2014 7 comments

I have now experienced this issue at two different clients so I thought I would share how we are handling it in case others are experiencing it.

Background: After you publish a Lync topology where you add and/or delete and object, you see the CPU utilization spike to 100% across all of your front-ends.

This issue has been around awhile. Ken Lasko talked about it on his blog (http://ucken.blogspot.com/2014/01/high-processor-utilization-on-lync-2013.html) back in January of 2014. He had suggested simply restarting the AppPool’s on the CMS servers.

Recently, a co-worker and I decided to attempt Ken’s script but we found that it wasn’t helping us. Simply restarting the AppPool’s on the CMS servers wasn’t enough to bring down the CPU utilization on the other front-ends (we currently have 4 pools with 2 more on the way). Due to the number of Front-ends (12 currently), we really didn’t want to RDP into each of them so we utilized a script I had written to perform the IISRESET.  It goes out and finds all of the Lync Front-ends and then will perform the IISRESET.

NOTE: You must have remote management enabled for this script to work. Windows 2008 R2 does not have it enabled by default.

Here is the script:

    Written by: Adam Ball
    Description: Looks up all the Front-ends in the Lync Topology and performs an IISRESET on them.
    Version 1.0
#Get all of the Pools with Web Servers in the environment
$pools = Get-CsService -WebServer | select PoolFqdn
#Get all computers from the pools running Web Services
$computers = @()
foreach ($i in $pools ){
    $computers += ( Get-CsPool $i .poolfqdn) . computers
Write “IISReset will be performed on “ + $computers
#Reset IIS on all Web Servers
foreach ($i in $computers ){
    Write “Performing IISReset on “ + $i
    Invoke-Command -ComputerName $i -ScriptBlock {iisreset }
Categories: Lync

August 28th COUCUG Meeting

August 12, 2014 Leave a comment

The August meeting is just over two weeks away! Come hear about Attendant Pro from Landis Computer and enter to win a Plantronics headset.

We’ll be kicking things off at 4pm and we’ll go til 6pm. Food and drink is being supplied by Matt Landis and Landis Computer.

You can RSVP and get more details at http://www.coucug.org. We hope to see you there!

Categories: Uncategorized

My thoughts on the Microsoft Unified Technology Event

July 22, 2014 Leave a comment

Yesterday, Microsoft announced that they are not doing the smaller, product centric events like Microsoft Exchange Conference (MEC) or LyncConf. They are switching to a Unified Technology Event which will be next May in Chicago. You can read the announcement here: http://blogs.office.com/2014/07/21/microsofts-unified-technology-event-for-enterprises/.

This news isn’t all that surprising, combining efforts has to be a great way to save money and more efficient from a planning standpoint.

I have to admit, I’m sad to see LyncConf go. I went to both years of it and thought it was fantastic. I hope the new event is as good and not just a re-invention of TechEd. A few reasons that I am disappointed the smaller conferences are going away:

First, when you went to the product specific conference, you had a common bond with everyone there from the get-go. You didn’t have to find out what they were there for, they were there for the same product you were.

Second, because the conference was smaller, you didn’t feel like such a small part in it. It’s easy to let yourself get lost in a large conference and not engage with other folks.

Third, the networking was awesome. The conference was small and intimate and it made it very easy to identify people you wanted to meet. A larger conference tends to drive people to cliques and can make it much more difficult to connect with others.

Things aren’t all bad though. Having several products at one conference is great for a general sysadmin who has to work with Lync, Exchange and Office365 everyday. That person might only have the ability to go to one conference and now can do so (just like before with TechEd). I view this more as a negative due to the fact that I am more specialized and I could have used an extra day at LyncConf to begin with, add-in interesting content from Exchange or O365 and I may have even more tough choices in which sessions to attend.

Also, as someone who works for a consulting firm, it will be tougher for us to send folks. With the separate conferences we could send two people to each and not take such a hit from them being gone. With the Unified event, we will probably only be able to send a small selection and then the rest miss out on the experience.

I hope Microsoft does a great job with the event and makes us all forget about the small, intimate conferences but at the end of the day, I feel like this just like your favorite band. It’s great to see them either way but the small club was a much better experience than the large arena.

Categories: Uncategorized

Lync and Site specific Simple URL’s

June 10, 2014 1 comment

We recently had a requirement when deploying a new Lync 2013 pool to give a Site/Region their own Simple URL’s. I knew this could be done and it’s always easier when doing it during the deployment but this was the first time I had ever had to do it when the site had been running for awhile on Lync 2010 and using the Global Simple URL’s.

Our requirement was to go from using the Global Simple URL (meet.company.com) to a Regional based one of meet-emea.company.com.

I went and double-checked Technet (as everyone should do) and also referenced an article by Justin Morris from awhile back that was specific to configuring site level Simple URL’s.

All of the info is great but it was lacking one thing, how to make sure that the old Simple URL would still work after we made the change. We did not want to have to have a flash cut where everyone had to go update their recurring meetings and the like.

In the Technet article for creating the new Simple URL is this tidbit:

SimpleUrlEntry Optional Collection of URLs for the specified component. For example, both https://meet.litwareinc.com and https://litwareinc.com/meet might be configured as URL entries for the Meet component. However, only one of those URLs can be (and must be) configured as the active URL.

Simple URL entries must be created by using the New-CsSimpleUrlEntry cmdlet.

It specifically states that you can define a “Collection of URLs for the specified component”. That’s the ticket! However, the Technet example didn’t show how to add multiple URLs. Here is what I found worked:

$urlEntry= New-CsSimpleUrlEntry -url "https://meet-emea.company.com"

$urlEntry1 = New-CsSimpleUrlEntry -url "https://meet.company.com"

$urlEntry2 = New-CsSimpleUrlEntry -url "https://dialin-emea.company.com

$simpleURLMeet = New-CsSimpleUrl -Component meet -domain company.com -ActiveUrl "https://meet-emea.company.com" -simpleurl $urlEntry,$urlEntry1

$simpleURLDialin = New-CsSimpleUrl -Component dialin -domain * -ActiveUrl "https://dialin-emea.company.com" -simpleurl $urlEntry2

Set-CsSimpleUrlConfiguration -Identity "site:MySite" -SimpleUrl @{Add=$simpleURLMeet,$simpleURLDialin}

After we had done all of this, we went and tested and everything appeared to work fine. We shall see if there are any issues from a users stand point that we we were unable to replicate using our test accounts.

Categories: Lync Tags:

Lync 2013 Trunks and EnableFastFailover

June 3, 2014 5 comments

This post was inspired by a troubleshooting session that happened just before the long Memorial Day Weekend here in the states. We had just moved our pilot users over to our Lync 2013 pool a day before when they started reporting issues calling certain numbers. What was interesting was not all calls were failing. Only international calls and a few mobiles were failing. National calls were working fine. Nothing changed call flow-wise so it had me a bit stumped.

To properly set the background, our calls were going from Lync to a Cisco voice gateway and then out an E1 to the carrier.  We tested a call from Lync 2010 and the call would succeed:


You can see at about 14 seconds into the call we get back our first 200 Ok. Next, here is a call from Lync 2013. User has all of the same voice policies, dial plan, routes, etc.


We dug our heels in and got the Cisco guy on the line and he watched what was being sent to the carrier and he didn’t see anything wrong but kept seeing Lync send a Cancel so the call would fail. What you don’t see in the above image is that we would start trying to hit the backup voice gateway which only becomes active if the first doesn’t work.

Well, it took longer than I would like to admit before we all noticed the call was failing at exactly 10 seconds everytime. Consistency like this is never coincidence. I started looking at the trunk configuration settings in Lync 2013 and lo and behold, I found this:

EnableFastFailoverTimer Optional Boolean When set to True, outbound calls that are not answered by the gateway within 10 seconds will be routed to the next available trunk; if there are no additional trunks then the call will automatically be dropped. In an organization with slow networks and gateway responses, that could potentially result in calls being dropped unnecessarily.

The default value is True.

We set the EnableFastFailoverTimer to False and our calls started to go through. It appears that this particular carrier was just taking a long time to setup International calls along with certain mobiles.

So, how did we set it? We used:

Set-CsTrunkConfiguration -Identity "our site specific trunk" -EnableFastFailoverTimer $false"

We could have also done it via the Lync Management Console by unchecking Enable outbound routing failover timer check box in the Trunk Configuration:




Categories: Lync Tags: