In the July
2019 update of Skype for Business Server 2019 (a release that might also be
called CU1 or CU2 depending on if you include a Hotfix release that came about
a month earlier) now includes some new PowerShell commands that allow you to centrally
control users' call forwarding settings. This functionality used to be available
via a tool called SEFAUTIL.exe in the Skype for Business resource kits in
previous versions of the server releases. This is obviously great news because this
is the functionality that was used all the time in practice by most organisations
that I have seen.
The first
question is what do we actually get with these new commands? We basically get
the ability to do all the things a user can do from the Call Forward settings dialog
within the Skype for Business client. This includes adding users to their Team
Call Group and Delegate lists as well as setting call forward immediate, unanswered
and simultaneous ring.
For more
details on using the commands directly, Greig Sheridan has done a nice write up
here: https://greiginsydney.com/sfbs-2019-sefautil-in-powershell/
Whilst it’s
great to have these commands at our disposal, I still find that there is a
learning curve to figuring out which settings and flags to use to achieve the
call forward type that you might want in practice. So I thought it would be good
to build a GUI for the PowerShell commands that looked exactly the same as the call
forward settings screen from the Skype for Business client that we have all
been using for many years and understand already. So that’s what I did…
Introducing the Skype for Business 2019 Call Forwarding Tool:
Skype for Business 2019
Call Forwarding Tool
Tool
Features:
- No learning curve - it works the same as the call forward configuration on the Skype for Business client!
- Get the call forwarding settings for any user on the system.
- Edit team-call groups members.
- Edit delegate members
- Forward calls immediately to another number, delegates or contact.
- Set simultaneous ring to team-call members, delegates, number or contact.
- Control when the settings will apply ("all of the time" or "during work hours in Outlook")
- Set the call forward settings on one or a number of users by selecting them from the user list on the right hand side of the tool.
Updates:
1.00 Initial
Release
Download
from TechNet Gallery:
Limitations
The PowerShell commands that have been supplied by Microsoft have the following limitations when compared to what can be set in the Skype for Business Client:
- In Delegate and Team-call settings the "ring after" timer can only be set to 0, 5, 10 or 15 seconds, whereas in the Client you can set it from zero to 55 seconds (the maximum value is actually is whatever the unanswered call timer is, minus 5 seconds, which is a maximum of 55 seconds).
- There is no ability to select which delegates will be able to receive calls. This is represented in the client as a checkbox next to the delegate in the "Call Forwarding - Delegates" dialog. This capability is not available in the PowerShell commands at the moment.
Known Issues
Known Issue 1: Call Forward Unanswered to a Phone Number Issue
There is a
bug in Skype for Business Server 2019 July 2019 update when Call Forward
Immediate is disabled but Call Forward Unanswered is set to point to a number.
This scenario looks like this in the Client:
From PowerShell it looks like this:
Set-CsUserCallForwardingSettings
-Identity "sip:john.woods@domain.com" -DisableForwarding
-UnansweredToOther "+61395554444" -UnansweredWaitTime 10
Whilst this
command will be accepted by the system and look like the data has set correctly
within the client the actual Call Forward will not work when you call the Client
(ie. instead of the call going to the number it forwards to the user's Voicemail).
This is due to a bug in the Set-CsUserCallForwardingSettings command which will
hopefully be fixed in the next CU.
Known Issue 2: Call Forward Immediate to Voice Mail Issue
In Skype for Business Server 2019 July 2019 the PowerShell commands do not tell you if the user has Call Forward Immediate to Voice Mail configured. If you run the Get command it will show:
User : sip:john.woods@sfb2019lab.com
CallForwardingEnabled : False
ForwardDestination :
ForwardImmediateEnabled : False
SimultaneousRingEnabled : False
SimultaneousRingDestination :
ForwardToDelegates : False
SimultaneousRingDelegates : False
TeamRingEnabled : False
Team : {}
Delegates : {}
DelegateRingWaitTime : 0
TeamDelegateRingWaitTime : 0
SettingsActiveWorkhours : False
UnansweredToVoicemail : True
UnansweredCallForwardDestination :
UnansweredWaitTime : 30
... which looks exactly the same as if there is no Call Forward set at all.
The commands also do not have a flag to allow you to set Call Forward Immediate to "Voice Mail". As a work-around for this, I have implemented the setting of Call Forward Immediate using a special SIP Address format. The SIP Address of a user's Voice Mail can be represented as their SIP Address with the following parameters after it ";opaque=app:voicemail". So, in order to forward to Voice Mail, the tool currently uses this method which the Client also respects and displays correctly as a Forward to Voice Mail. When this issue is fixed I will update the tool accordingly.