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.


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.




Lync analog device off hook dial (AutoDial)

Do you want your analog devices to dial out to the world? Do you need to have your analog device do off-hook dialing?

Both of these issues came up on a recent project.  If you are using 3PIP/OIP phones such as Polycom VVX or AudioCodes HD4xx, then fellow MVP Anthony Caragol has an outline for you.  But what about that phone in the parking lot?  Or the phone at the security fence?  Or the elevator?  Or the emergency phone in some other secure area?  Or maybe you have a door system that needs to dial just one number when a user takes the phone off hook?

We have outlined two different requirements here, and outside of using a Lync Optimized phone, the analog solution is the same, with a twist to make the device work to the outside world (outside of Lync).

First you will need a gateway.  For this exercise, I used an AudioCodes MediaPack MP118, and then validated the solution against an AudioCodes Mediant 800 E-SBC with FXS ports.  In this article, I will show the MP118 configuration.  I tested the solution using my Tsoorad.net lab, an Intelepeer SIP trunk, and I used two el cheapo AT&T 210 analog phones that I purchased at the local bodega.

The purpose of the gateway is to connect the analog phone device to the system and then transcode the analog device to SIP codecs for use with Lync.  The gateway needed some tweaking to get the connections to work – notably, I not only wanted the device to work with Lync, I wanted the devices to be able to call one another in case your (example) elevator needed to call the security desk which for some reason was still on analog. 

And once I got past that hurdle, I then wanted the analog device to be able to call anywhere allowed by a voice policy, to include the off-hook dialing being able to contact a third-party security provider if necessary.


So, here are the elements needed:

  • an analog phone or phones
  • a media gateway of some description
  • Lync voice policy
  • Lync analog device configuration
  • Some method of connecting Lync Server to your PSTN provider (I used a SIP trunk as mentioned above via an SBC)

Here is how it looks:


Configuration Tasks

This is what it takes, configuration-wise, to accomplish our goals:

Determine what LineURI the analog phones will use, and if you are going to assign full numbers to the analog ports or just an extension.  I am doing 4 digit extensions.  My two analog devices will be +19992349011 (port 1) and +19992349012 (port 2).  Then get a valid IP for the gateway.  I will be using for the MP118.

  • Setup analog devices on MP118 per port
  • Configure Proxy set zero for “prefer routing table”
  • Setup/Configure off hook dials to specific number
  • Configure analog call analog digits to dial 12
  • Setup MP118 on Lync as PSTN Gateway
  • PSTN Usage, Route, Trunk configuration
  • Configure Lync to call analog device
  • PSTN Gateway, PSTN Usage, Route, Trunk configuration
  • Configure csanalogdevice to allow off hook dials to a public number

Let’s dive in.  I will be grouping the Lync tasks together and grouping the MP tasks together as well.  The Lync environment can already call the world, so nothing is needed there.

MP118 setup

After you get the gateway plugged in to power, connected to your switch, and hook the phones up to it, the MP118 should look something like this.


Note:  in AudioCodes-land, at each screen, if you make a change, you need to “Submit” the change, or you will have a nice surprise later – namely, your change won’t be there like you think it should be.

Open up VOIP | Control Network | Proxy Sets Table, and modify Proxy Set ID 0 (that is zero).  You can see my pool name listed there, and the options to get the MP to respect the DSN load balancing.  Note the port assignment tacked onto the end of the FQDN.  If you don’t do that, you won’t get very far.  My method is going to leave the IP Group Table undefined.


Here is the SIP definitions that match my Lync environment.  Note that OOBE for the MP is to have 5060 where you see 5068.  Again, if your Lync is using 5068 (the default) for Mediation Server, then you will need to change these to match, or again, you won’t get very far.

Under SIP Definitions | Proxy & Registration, note that we are using the default proxy, but to get the analog ports to talk to each other (a bit later) we will change this a bit now, If we want to route all calls, even intra-gateway calls, to Lync, then leave this alone, or, you can set the “Prefer Routing Table” to “yes” now. If you set this, Lync will not know about the intra-gateway calls – meaning there will be no CDR for the calls in the monitoring database.


Moving to GW and IP to IP | Hunt Group, here are the ports defined, and you can see where I am using 4 digit extensions.


I think my Hunt Group Settings are the default…


Now look at the Tel to IP Routing.  The “Dest IP Group ID” of ‘-1’ means use the internal default.  Which is the default Proxy Set 0 because we defined a Proxy Set 0.  So, now you know why we told the MP to prefer the routing table…which is right here.


If you don’t do this, the MP will route ALL calls up into Lync.  If you route all the calls up into Lync, then Lync will need to be told to send SOME calls back to the MP  - so it can get to the other defined ports on the Media Pack. This might be the desired behavior if you have a need to get a record of all calls – necessary in some compliance environments.  A little bit later, we are going to be doing a configuration with Lync that will allow this loop-back routing, and if you decide to go that way, you can do away with the “prefer routing table.”

In the IP to Hunt Group Routing table, we need to tell the MP to accept incoming SIP invites from Lync:


You are remembering to click on those pesky submit buttons, yes?

OK.  Almost done with the MP setup.  Go to the Analog Gateway | Automatic Dialing settings.  Here we are telling the gateway that if Port 1 goes off hook, then wait 5 seconds and proceed to dial 800-468-7827.


And lastly, let’s get the analog phones to dial 12 digits so they can call out for pizza.  You can find the “Max digits in Phone Num” field in the “DTMF and Supplementary | DTMF & Dialing”


You can still dial just 4 digits, but you will have to wait for the 4 seconds defined in the “Inter Digit Timeout (sec) parameter before the gateway will stop expecting more digits and move forward.

OK, the MP is done.  Click on that Burn button up at the top and let’s move on to the Lync 2013 configuration.

Lync 2013 Setup/Configuration

You will need to define the MP as a PSTN gateway in Lync.  Without going into the grisly details shown in the hyperlink, here is my Topology Builder for Tsoorad.net:


After you get that defined and published, open up the Lync Control Panel and go to the Voice Routing tab.  We are going to need a few things, like normalization rules, a route definition, and a calling rule on the trunk so that Lync only sends 4 digits to the gateway.  We could define the gateway ports as full 11 digits, which would do away with the need for the called party translation, but I like to be difficult.

Here is the normalization rule that takes 4 digits that start with 90 and makes it into e.164 format:


Now we need to have a route.


and assign that route pattern to our trunk/gateway, and make sure the local PSTN usage is associated so the route/trunk becomes an active component.


Moving over to the trunk configuration, we need to create a called number translation rule so that the trunk strips the e.164 down to just the four digits that gateway is expecting. You might need to create the trunk.  In my case I made a trunk at the pool level, and it looks like this:



and the called number rule looks like this:


At this point, Lync can call the media pack gateway ports, the gateway ports can call Lync, or each other and all is good in the universe.  But we still want the media pack gateway port to be able to go off-hook and call an outside party, right?  The reason it cannot do that now is that Lync does not know just who that user at 9011 or 9012 is, or whether or not that user is allowed to make calls to anywhere.

To get an analog device to accomplish this dialing behavior, Lync needs to have some definition.  Enter the cmdlet new-csanalogdevice.  I will wait whilst you catch up on your reading.

Now, that wasn’t too bad.  There won’t be a quiz, but just to give you a flavor of the test that COULD occur, here is my two analog devices defined in TsooRad.net:


Note that I defined the common name, LineURI, and maybe more importantly, the DisplayName and DisplayNumber – because once you do this, things start displaying like this in all your other clients.  I also made a point of defining a SIPAddress – otherwise you get a contact object with a GUID as a SIP address.  Not so hot.

Dialing 9011 in a Lync client shows that the call is being sent to “MP118-1” and your trace logs will show the same.


Big note

I started off this exercise using tel:+19992349011;ext=9011 format.  But empirically, the media pack gateway did not like getting the ext= format – it could not find a match for that.  I don’t know why.  What I do know is that once I removed the ext= format, calls went through as expected.

These two CsAnalogDevice definitions are showing no VoicePolicy and no VoiceRoutingPolicy.  Remember that we have things defined at the site level?  Well, these CsAnalogDevices will now act just like a real user.  The absence of a defined user policy will result in the object getting the automatic site settings for Voice Policy.  Because I have this set to allow all my critical test users to make any call they want, the analog devices can make any call they want also.  You may want to think through the implications of that for your environment and make appropriate changes. 

These analog device definitions are also what will perform the call loop-back function mentioned earlier.  If you need to have all your calls logged for compliance, leave off the “prefer routing table” mentioned earlier, and the gateway will send the call destined (for example) from port 1 to port 2 out to Lync.  Lync will perform a reverse number lookup, find the last four matching our 9012 definition, and place a call to that 9012.  Our PSTN usage in the default voice policy will allow passing the call to a route, in our case the trunk, the trunk will strip the call down to four digits and send it.  When the call lands on the gateway, the gateway will look at the hunt group, find the 9012 number assigned to port 2 and connect the call.  Wala!


We wanted analog phones connected to Lync, make calls to other analog devices on the same gateway, call other Lync devices, call out to the world, and do automatic dialing as needed.  By making some judicious changes to the gateway defaults, and create some specific configurations inside of Lync 2013, we have accomplished our goals.


This configuration may or may not meet licensing requirements vis-à-vis AudioCodes Lync Analog Device licensing.  It may also not meet some of the “best practice” recommendations that insist that Media Pack gateways always be connected to an Enhanced Gateway.  This is because some of the fancy features for Lync phones won’t work; however, my phones don’t seem to have transfer or conference call buttons, so I am not missing anything in the way of features.  You should check with your AudioCodes retailer to confirm your licensing level.

Mea Culpa

I am sure that there are many folks out in Lync-land that could do this setup in their sleep; those folks are brighter than me.  I had to consult Jeremy Silber (CDW) and Karan Mehta (AudioCodes).



Lync Conferencing Cost Analysis

I think that I can confidently say that 100% of my Lync deployments (and most of the OCS deployments) contained the concept of using Lync web conferencing; most times with dial-in conferencing.  The idea is that the organization can save money by replacing an existing solution.  But most times, the organization has little or no idea how much, and why, they can realize savings.

So, here is some real data to digest, tear apart a little, and see what and where we can generate some savings.  This data comes from a company of about 3500 users.  So keep that in mind as we work along.  A smaller organization will have smaller numbers, larger organizations will have larger numbers.  I have customers whose conferencing minutes run in excess of 7 figures each month, and they don’t just squeak over 1 million, they run in the several million per month. 

A bit farther down, I make a fairly broad assumption that our imaginary organization could implement Lync for $60K.  Before you poo-poo that number, do some math on your own for an Enterprise Pool of three Front End servers, two edges, a SQL server, a Web Access Server, and we’ll be nice and assume load balancers can be used for Reverse Proxy and that the load balancer already exists.  Go ahead and do some figuring.  Make sure you pony up for about 160 hours of consulting, because you will actually save money doing that also.

Because not everyone will have the same cost basis for things like hardware, software, labor, services, and a whole range of stuff, we are going to ignore those concepts in this analysis, and just focus on service replacement and cost avoidance as it applies to the usage of the services, not what is costs to put the services into place.   We will use a flat cost assumption down below to represent this cost category.

Let’s Begin

So first we need to understand the data. I did not just dream this stuff up; I got this data from a real life deployment, with real life users, doing real life tasks.  I used Lync’s monitoring server and related reports to generate a summary of conferencing data over a 30 day period.




Based on the data given for a one month period, and then comparing the data with the report descriptions for Conference Summary Report in Lync Server 2013 and PSTN Conference Summary Report in Lync Server 2013 we can reach several conclusions.  Before we talk about conclusions, we will wait while you complete the reading.

First off, the PSTN usage reports appear to be a subset of the Conferencing data on one hand, but then appear to be totally separate data on second look.  For instance, both reports have a column for “Total A/V Conference minutes.  For the Conference Summary Report, this value is 85,572, for the PSTN report, this value is 72,135.  OK, so PSTN appears to be a subset of Conference Summary.  But wait, maybe not!  In your reading assignment up above, note that both reports have this data, and that both describe the data to be the same.  Should this be the case, then we could expect both reports to have identical data, yes?


Can you sort on this item?


Total A/V conference participant minutes No

Total amount of audio/visual participant time. For example, if one participant spent five minutes in an A/V conference and another participant spent three minutes in the same conference, the total A/V conference participant time would be eight minutes.

But such is not the outcome we see.  In fact, the two fields differ, in our data set, by over 28,000 minutes.  The difference is to large to be dismissed as a rounding error; clearly, there is a separate set of data being represented, OR, the descriptions for each report are wrong.  Digging in a bit deeper, we can find two days where the data indicates that the PSTN report reflects those conferences that INCLUDED PSTN connections; therefore; the number in the PSTN report are, in some cases, the same as the Conferencing Summary, and in other cases are just PSTN minutes.  Confusing, but there you go.  But still, understanding the layout of the data enables us (finally) to make some (semi-) educated judgments on what the data means for our business cost and how your organization can save money by using Lync for conferencing.

OK, here is the data in question, and yes, it is an eye-chart:


What’s the big deal?

Conferencing hosts charge per subscription, per connection, and for the minutes per user. This means that when someone creates a conference they need a subscription that allows them as a user to create the conference, then each user who connects to the conference incurs a connection charge, and then the clock starts on everyone, individually.

Per user charges run all across the board, so we won’t attempt to quantify that; suffice it to say that it can run from zero to about $0.30.  A 10 person conference just cost $3.00.  And per user minutes can run relatively cheap to 5-10 cents per minute.  Clearly there is money to be made, or saved.

After consulting with my friends at Intelepeer, I think you could get the per minute cost down to $0.015 per minute.  And if you go with a toll free number on a negotiated plan of some sort, you may just be paying for the minutes.  Seeing as how most organizations already have a SIP trunk in place to provide the PSTN connection, we can ignore that cost as well because the cost is already sunk to provide regular calling services.

We can see from the data that a majority of the conference minutes (208k of 314k) were PSTN minutes.  Maybe some user training would result in more Lync conference joins to avoid those minutes, eh?  But still, if we have a $0.02 per minute rate for each participant, and assuming a $0.05 rate from a popular provider plan, we just saved $6265.08 this month.  We will wait whilst you break out your calculator to confirm my math.  Over the year, assuming our numbers are the mean rate, we are talking $75K for the year.  Nothing to roll your eyes at. 

Connection fees are something else.  And not having hard numbers from providers makes a tough analysis.  But we can make a few broad conclusions based on the data set.  Assuming a mid-pack connection charge of $0.15, our sample data just saved us 21,637 connection charges for a nifty $3245.55 and keeping with the mean stance, $38K for the year.

And what of the subscriber charges?  Conference hosts usually charge an additional fee to allow your users to be conference organizers.  This charge depends on the plan.  Our sample data shows 201 unique conference organizers.  I have no idea what those charges might be per negotiated plan – suffice it to say that you need to know that a typical plan is audio only, doing video and having a web conference service on top will cost you more. Here is a typical audio only plan layout – web and video will schlank you for more. You can also see that I have been conservative in my cost numbers.


The larger your organization, the more likely you are to be able to get around the “per organizer” fees, so for our purposes, we will ignore that cost argument because we know how great everyone is at negotiating separate contracts.  But for talking points, those 201 users could easily cost about $19/month each, another $3819 per month; $45k for the year.


We did ignore the costs associated with servers, licensing, and connections.  And if you use a service provider to help you develop your architecture and design your Lync environment there will some other costs.  So let’s make the assumption that $60k will get you your servers and licensing and a friendly, knowledgeable Lync consultant to figure out your environment and get everything installed and configured.  We will assume that existing infrastructure will provide VM resources, storage, data connections, load balancers, and firewall protection.

Our sample data showed some 314K usage minutes of which 208K were PSTN.  Based on some rudimentary number crunching, I think we determined that our sample organization can save $45k in subscriber fees, $38k in connection fees, and $75k in per minute fees.  Saving $158,000 a year ($13,166/month) is nothing to ignore.

Remember that we did not price out anything but audio conferencing. My $60k figure would get you audio, video, and web conferencing. You may rightly assume that someone needs to keep this thing operational – a hidden cost that is hard to quantify.  In my experience, I think that doing Lync administration is maybe a .25 FTE, depending on the size of the deployment. So, being really generous, and hoping to sabotage my own ROI results, we will call that .25 FTE as being equal to $25k.  That will run our first year costs for Lync all the way up to $85,000.

Depending on your install base for Lync, the ROI for installing Lync 2013 just for conferencing alone might be less than 12 months.  In our example, and using our assumptions, the ROI is 6.5 months.  Using Lync as your conferencing solution has the prospect of allowing your organization to avoid some significant costs.

Have you done your own research?  Do you have your own data?



Stupid Lync Tricks Part Deux

In keeping with a previous post, I submit this:

Pick a screen, any screen, and share away!


Just be careful about doing “All Monitors” as this could create a serious eye-chart for the far side!

And, just for added ammo, at least one of these displays is a 4k.  Sweet!



Lync 2013 Client Update “fixes” Meeting Join Failures

For those of us who are involved with doing Lync on-premise, one of the issues is meeting joins by outside/external invitees who happen to have Lync installed as part of Office, but don’t use it… which results in failing to join the meeting, which results in a help-desk call, which results in a call to us wanting us to “fix it” when nothing is broken.


Well, here is something that explains why this happens, and a recent change to the Lync client that may help resolve this issue with no action on your part.


IMHO, this is a great move in the right direction.

Of course, you can always show your customer how to edit each and every meeting invite to include the ?SL=1 suffix…which is a crappy solution at best, but one that works. And then there are various Exchange-based transport rule fixes: however, this fix is a bit clunky in that it will insert a generic string;maybe not the one you want per user.  I had one awesome customer who wrote a custom transport agent that works, sorta…sometimes…and which of you out there has enough time for custom coding work that may or may not be successful.

Sure would be nice if Microsoft would simply put two links in the original meeting invite – so that it looked like this with the obvious link already having the ?SL=1 code entered…




One Box 365

With the increased interest in Lync Online (part of Office 365, the online Microsoft offering), comes the increased interest in extending Lync 2013 Enterprise Voice to work with Lync Online.  AudioCodes One Box 365 can help you realize that objective in your organization.

Why is this needed?

Lync Online can operate in a split-domain configuration, with some users on-premise and some homed on the O365 tenant, but this is not a requirement. However, if you want to enable your users for Enterprise Voice, then the Lync environment MUST HAVE a Lync 2013 user pool located on-premise or operate in a complete hosted mode. If you don’t want the hosted mode option, then you need to deploy a Lync 2013 pool on-premise to augment your O365 tenant. This option will also require the “E4” license level.  Microsoft says this about O365 Enterprise Voice:


And if you do the hover thing over the little splat, you get this:


So there you go, you can use Office 365, but if you want to include the goodness that is Lync Enterprise Voice, you are needing to deploy Lync 2013 on-premise.  Using the Lync 2013 split-domain model requires setup and configuration on both the internal (or Azure, or both) Active Directory, needs some directory sync between the Office 365 tenant and your internal Active Directory, and also needs at least 2 servers internally, as well as various other servers, devices, and appliances such as SQL, reverse proxy, and telephony gateways.  To get a better idea, take a look at this and this.

And wow, does that sound complicated or what?  For an organization with limited technical resources, this might be a daunting task – and a concept that might well cause a re-think of the O365 idea.

What is One Box 365?

Aimed at supporting 200 users, One Box 365 addresses these concerns by offering the small(er) organization an appliance that has everything except call recording, reverse proxy, and the Web Apps Server (needed for PowerPoint presentations in a web conference) in (wait for it) One Box.  Tricky naming there, eh wot?  Here is the AudioCodes market-speak.

Based on the Mediant 800B Gateway chassis, and delivering all the wonderful packaging of the Mediant 800, One Box 365 has the following pre-installed, and ready to rock with minimal delay:

  • Lync Server Standard Edition (Front End, Mediation, Monitoring – and Persistent Chat if you want it)
  • Active Directory Connector
  • Edge Server
  • Gateway/SBC
  • A really nice management interface that makes things a lot better than some others I have seen.  A LOT better.

With the Mediant 800 chassis, you can also get FXO and FXS, so your analog devices are covered also.  Connectivity to your telephony solution is pretty much limited only by your imagination.  Being as how AudioCodes has one code base, you get the industry-leading gateway translations as part of the bargain. SIP, TDM, POTS, E1/T1, PRI/BRI, AudioCodes has the connection part covered. I have yet to see a PBX that AudioCodes cannot translate. Here is the official language:


How does One Box 365 work?

Well, it uses electricity, but that is a subject for another time.  By syncing with Active Directory, One Box 365 provides the user pool services needed for your on-premise users and connects to your PBX or ITSP SIP trunk.  Simple, yes?  Here are the official deployment types.


Note that you can also deploy One Box 365 as standalone Lync solution.  But, wait!  There is more (like the ubiquitous TV commercial).  You can stack multiple One Box 365 units to achieve pool pairing or support more than 200 users.  Also, I have heard (from the usual “unnamed source”) that larger solution sets that support more than 200 users (with a single appliance) are “coming soon”.

At any rate, One Box 365 takes this deployment model – which is where the smaller business might start questioning the wisdom of using Lync Enterprise Voice with their O365…


and replaces a goodly portion with this:


Much better.

A few notes on my part

Active Directory is in the box.  If you so choose, you can nuke the pre-deployed option and join your existing Active Directory – but that is not for the faint of heart or technically challenged.  But, in my view, possibly a better choice than having the complexity of the “resource forest” model.

The current hardware configurations seem to be limited to a chassis with only 4 FXS ports, I would like to see more FXS (this could just be me), and if you want more than 4 FXS, you will most likely be looking at a MediaPack.

You might think that not having the reverse proxy and the Web Apps Server in the appliance would be a negative, but IMHO, most folks already on Office 365 have a reverse proxy deployed (they might not know it) and I have also seen a trend of users not “presenting” a PowerPoint file – they are sharing their desktop; so the Web Apps Server is not critical  - especially in the One Box 365 target environment.  I also hear – from the same aforementioned “anonymous source” that RP functionality might just be possibly, hopefully, “coming soon.”

Someone with an AudioCodes SBA (Survivable Branch Appliance) might wonder if the Mediant 800B OSN (Open Solution Network) card has enough resources to handle the One Box 365 load.  Fear not!  The regular Mediant 800B SBA OSN is powered by an Intel Atom n2800 at 1.86GHz with a spinning disk, while the One Box 365 OSN is an I7 Gen3 with 8GB RAM and SSD.  Should be more than enough for handling the supported load.


Office 365 requires a full Lync 2013 pool on-premise to support Lync Enterprise Voice.  The Lync 2013 model is referred to as split-domain (it used to be referred to as hybrid). One Box 365, as part of AudioCodes One Voice provides a single appliance with which to enable your users for Lync Enterprise Voice while keeping your Office 365 environment intact.  One Box 365 offers full integration and native support for all Lync 2013 functionality.  Each One Box 365 appliance will support 200 users, and multiple One Box 365 appliances can be used to achieve pool pairing or supporting bricks of 200 users – while whispers do exist of larger capacities being in the works.

Based on your business requirements, AudioCodes One Box 365 could be the solution for your organization.

As always, YMMV.



Jabra Evolve 80 MS UC

I got back from a short conference trip to find a box waiting for me.  The nice folks at Jabra sent me a squeaky new Jabra Evolve 80 MS UC.

Here is the market-speak straight from some professional writer up in Jabraland:

“The Jabra EVOLVE 80 MS Stereo is a professional headset designed to improve concentration and conversations. Premium noise-canceling technology gives you peace to work in the noisy, open office effectively creating a concentration zone around you, so you can stay focused on the job. The speakers are built for style and comfort with leatherette ear cushions, and are specifically designed to reduce office noise. When combined with active noise-canceling technology, you get maximum protection against office noise. The concentration zone is completed with a busy light indicator that signals user availability to colleagues.”

And in the “Optimized for Lync” category: 

“The Jabra EVOLVE 80 MS Stereo is optimized for Microsoft Lync, providing instant “Plug & Play” installation for your headset. The headset works perfectly with your Microsoft Lync, so you can focus on the conversation.”

Blah, blah, blah.  Except that when you ignore the hyperbole, the Jabra Evolve is a very, very nice headset.  Can I go past “seriously nice” and maybe go all the way to the first ever Tsoorad 10/10 award?  No, nothing is perfect.  But I think I can go to 9.9.  Everything claimed by Jabra seems to be backed up with performance.

What I like

The noise cancellation is excellent.  And once you have it enabled (a switch on the bottom of the right ear cup) you can disable it with a press of the toggle switch in the center of the ear cup.  Very nice. 


The hype about the “concentration zone” is no BS.  Comfort is as good, or better than anything else I have used.  The inside of the ear cups did not give me the willies. The microphone boom doesn’t stick way out in front of your face.  Did I say these things are comfortable?


Audio quality is (searching for a superlative) really awesome.  I tried Pandora, real stereo unit, my iPhone, iPad, laptops, workstations.  In each case, the Evolve 80 performed much better than my Bose Quiet Comfort 2.  When connected to something that does two-way communication it just gets better.  The “Listen in” feature is slick.  Having a separate 3.5mm connector built right in is a great idea.


The Jabra busy light concept is … different.  The inline module has a center button, and if you press it, both the module and the headset light up.  This is separate and can be enabled without being in a call.  A virtual hideout.

The Jabra PC suite is nice.  I actually downloaded it and played with it.

What I don’t like

Pushing the inline module mute button does indeed mute. Rotating the microphone boom up mutes also.  I would prefer a button or touch point or something on the boom or ear cup to do the mute.

Weight.  I understand that to get this thing to the high level of goodness that the Evolve 80 does indeed demonstrate, that a certain amount of weight is needed, but I can also see where this might be off-putting to some folks.  When my principal tester (my SO) first put them on, that was the very first comment.  That and the headband pushed into the top of her head.  *I* did not notice the headband issue. This will NOT get in the way of me using this headset – just something to which I will need to accommodate and in no way impedes my previous comment regarding comfort.


The Jabra Evolve 80 is a great awesome wonderful seriously nice piece of work.  You can get one right here.