Tuesday, 28 June 2016

Busy on Busy for Skype for Business

Hello Readers.  I hope you are well.

Today I want to talk about Busy on Busy for Skype for Business and Lync.  

Microsoft released the July 2016 Cumulative update today that enables three new features including the elusive Busy on Busy.  I say elusive because it is one of those features, like call pick-up, that is often requested by users.  Until today there were no native server side configuration settings for Busy on Busy other than in Shared Line Appearance (which we'll talk about in a bit).

What exactly is, Busy on Busy?
Busy on Busy is the option to decide what happens to calls if you are already on a call.  One option is to give a busy/engaged tone to callers if you are already on a call.  Another is to forward second and subsequent calls to voicemail.  So really, Busy on Busy is Second Call treatment.

Why on earth would you want to do that?
Actually, there are reasons, but personally I think getting an alert for a second call is empowering.  If I am on a call and get another call I, the user, am in control of the destiny of that call.  This can be called Call Waiting.  Your home phone might have call waiting, where if you get a call while you're on a call, you get a tone in your ear.  On a PBX this is a common function that users can enable.  The presentation varies from tone to second call alert on your phone.  

I think a tone for call waiting is useless.  It tells me nothing other than the fact that someone else is trying to call me.

In Lync and Skype for Business you also get information about the caller if they are presenting their number and you have it in your contacts.  If I get that call toast I can choose what to do in real time.





You can ignore the call and that sends it to your unanswered calls destination.  Voicemail, for instance. 
Options, opens a menu with a list of destinations such as voicemail or one of your other programmed phone numbers as well as the option to set do not disturb.  Setting Do not disturb will send calls to your unanswered calls destination.  

The last option is just to let it ring.  If it rings for the number of seconds configured in your call forwarding settings, it will go to your unanswered calls destination.


Of course another option when you get the call toast is that you might want to answer the call.  If you are on a call and perhaps you are just wrapping up the call or maybe it is an internal colleague or maybe, the second call is more important than the one you are on.  That call you have been waiting for.  If you get presented that second call, you are in control of what to do with it.  If you want to answer it, you can simply say, sorry, I have another call coming in and I really need to take it.  Then you click on the toast and answer it.  

Imagine if your desperately important call got a busy tone or went to voicemail.  Then you get around to listening and call them back, but end up in a game of phone tag.  You get the picture?


Lets talk about the options

Lets say that your users are smart and know the perils and pitfalls of missing calls and want Busy on Busy.  Maybe they always want to focus on the Before today the options were there, but somewhat limited.

Desk-side applications
One I like comes with a device I like.  The Kuando Busylight.  I have two of them, the Alpha and Omega and both come with a tray app that lets the user choose what happens to a second call, allowed or forwarded.  As you can see from the image below it explains that if suppressed is chosen the second call is routed to your unanswered calls destination.  So this isn't the same as busy/engaged on busy.  But it does give you second call treatment nonetheless.

I am sure there are other desk side applications, but I don't know them.  If you know of any good ones, leave me a comment and I'll see about updating the post.

Server side applications
I haven't tried any server side applications, but I know there are some out there.  Of course, unless they do anything beyond what is now natively possible, their days are numbered.  They could still be useful for those that haven't upgraded to Skype for Business in any case. 

Native Busy on Busy
Following on from the release today of the July 2016 Cumulative update for Skype for Business Server 2015 you can now have native server side second call treatment.

To enable it you first need to apply the update to you Front End servers.  You can get the update here.  I won't tell you how to apply the update, because you should know.  But in any case, the article explains it well.  What I will say is that you might need to restart your server. I updated two Standard Edition Front Ends and one asked for a restart and the other didn't.

Once you are updated you need to install and enable Busy on Busy.


TechNet post: Install and configure Busy Options for Skype for Business Server

The TechNet post goes through the deployment of Busy on Busy including applying the July update.  I'll assume you have it and maybe you have already restarted if you needed to.

Start with stopping the Skype for Business services. In the Skype for Business Management Shell run the following:

Stop-CSWindowsService 

You will see a dialog in the PowerShell which cycles through the various services and tells you that they are being stopped.

Once the services have stopped the cursor moves to the next line.  If you want to verify that the services have indeed stopped run the following:

Get-CSWindowsService

You will get a list of services and their status.


Note: I had already applied the update and restarted.  I was able to do the next several steps of setting the voice policy and adding the server application and even updating the admin role without first stopping the services.  However, busy on busy didn't work until after I recycled the services.

Next step is to enable Busy On Busy in the voice policies.  You must do this globally and at the site level.

To enable it globally run the following:

Set-CsVoicePolicy -EnableBusyOptions $true

To enable it at the site level run the following: 

Get-CsVoicePolicy -Identity Site:Site1
Set-CsVoicePolicy -Identity Site:Site1 -EnableBusyOptions $true

Repeat for all of the sites you want to enable it.

Now you need to add Busy on Busy to the list of Server Applications.  To do this run the following:

New-CsServerApplication -Identity 'Service:Registrar:fe01.domain.com/BusyOptions' -Uri http://www.microsoft.com/LCS/BusyOptions -Critical $False -Enabled $True -Priority (Get-CsServerApplication -Identity 'Service:Registrar:fe01.domain.com/UserServices').Priority

When the command completes it will display the Server Application and settings.

Now you must update the Role-based access control (RBAC) roles for the BusyOptions cmdlets.  To do this run the following:
Update-CSAdminRole

Once that is done you can start the Skype for Business Services:  Run the following:
Start-CSWindowsService

You will again see a dialog showing that the services are being started.

Once the command has executed and the services are told to start the cursor moves to the next line.  If you want to verify that the services have started run the following:
Get-CSWindowsService

You will have to repeat several times until all of the services say Running.

Once you have done all of the above you can enable BusyOptions for one or more users.  There are two parameters available at present.  BusyOnBusy and VoicemailOnBusy.  These should be self explanatory.

The Admin Role update adds three commandlets.  Get, Set and Remove-CsBusyOptions.  The verbs should be self explanatory.

To set a BusyOption for a single user run the following: 
Set-CsBusyOptions -Id "First Last" -ActionType BusyOnBusy
or
Set-CsBusyOptions -Id "First Last" -ActionType VoicemailOnBusy
Note: In order to use VoicemailOnBusy you must have Exchange Unified Messaging deployed in Exchange on-premises and not Exchange Online.  Thanks to Richard Brynteson (@rbrynteson, MasteringLync.com) for pointing this out.

Microsoft have a workaround here: Can't set BusyOnBusy option with ActionType of VoicemailOnBusy for Exchange Online user. The suggestion is to "enable the user for BusyOnBusy with an ActionType of VoicemailOnBusy before you move the user’s mailbox to Exchange Online. Then, enable the user for a hosted voice mail policy in Skype for Business on-premises."  They go on to state that this is a best effort workaround "because the VoicemailOnBusy action type was designed to support only on-premises Exchange UM deployments".

To remove BusyOnBusy configuration from a user you can run the following:
Remove-CsBusyOption -id "First Last"

If you want to set it for all users, and I don't know why you would, you can use get and pipe to a set.
Get-CsUser | Set-CsBusyOptions  -ActionType BusyOnBusy

To display the BusyOptions for a single user run the following:
Get-CsBusyOptions -id "First Last"

For multiple users you can run:
Get-CSUser | Get-CsBusyOptions | Select Identity,ActionType
For users without BusyOptions configured it displays an error:
Get-CsBusyOptions : The Busy Options are missing for Identity "CN=first.last ,DC=domain,DC=com".
At line:1 char:14
    + Get-CSUser | Get-CsBusyOptions | Select Name,BusyOptions
    +              ~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Get-CsBusyOptions], BobException
    + FullyQualifiedErrorId : Microsoft.Rtc.Management.Bob.Cmdlets.BobGetConfigurationCmdlet
 


Strangely, the BusyOptions is NOT displayed in a Get-CsUser.  It is in its own place.

What next?
TechNet Post: Plan for Busy Options for Skype for Business Server  gives you some more information about the usage of these Second Call treatment options.  

Some things I find interesting:

  1. Busy Options fail over if a user is moved to another Front End server or pool such as in a disaster recovery scenario.
  2. Works for active and on-hold calls
  3. Busy Options work regardless of the client or device the user logs on to (unlike SLA which only works on VVX phones).  Additionally, if you are logged on to multiple devices and answer on one, the setting is universal.  The second call will be rejected.
  4. If you get a call while busy and it is rejected, you will get a missed call notification.  Callers will see a notification that you are busy on another call.
  5. Busy on Busy is only applicable to internal or external Peer to Peer calls made to you.  Response Group, Team Call and Delegate calls will ignore Busy on Busy settings and will ring.
  6. If a user is set to BusyOnBusy and they also have SimulRing set, the second call will be rejected rather than being sent to the SimulRing device.
  7. Shared Line Appearance Busy on Busy supersedes the new BusyOnBusy settings. 


    That's all folks
    I think you will agree that the new Busy on Busy Second Call Treatment options are a welcome addition for those that really need it.  

    Thank you Microsoft.

    Thanks for reading.

    If this or any other post has been useful to you please take a moment to share.  Comments are welcome.