When it comes to Skype for Business, there isn’t much left in the client that is open to customization. But one area that is available but hidden are being able to create custom status. So what is a custom Status? Well it’s a status that stands outside of the default choices of Available, Busy, Do Not Disturb, Be Right Back, etc.
For example, in one environment that I’ve worked in, the organization wanted to allow an individual to set a status of In a Call. The main reason for this was that the environment wasn’t using Enterprise Voice, so there was no automatic status change for these customers. Additional statuses that where desired where a distinction of working from home. This was desired because some individuals lost access to the Location field when logging in remotely.
Creating the Custom Statuses
So how do we make this happen? First, we need to make a specially formatted XML file with our custom states. Microsoft has a great article with an example of the XML formatted file. But for this scenario I created the below XML Code.
<?xml version="1.0" encoding="UTF-8"?> <customStates> <customState availability="Busy" ID="1"> <activity LCID="1033">In a Call</activity> </customState> <customState availability="Online" ID="2"> <activity LCID="1033">Working From Home</activity> </customState> <customState availability="Busy" ID="3"> <activity LCID="1033">Working From Home</activity> </customState> </customStates>
Publishing the Custom Statuses
So now that we have our XML file what do we do with it? Next the XML file needs to get published to a secured web-server where clients can access. I chose to publish my file to a new Directory called CustomState on each of the Front-End servers. After putting the file in a directory on each of the Front-End servers, I added that Directory to the root of IIS server so that it is accessible at HTTPS://Pool.Domain.com/CustomState/CustomState.xml.
It is important that if you have a Pool, that you need to publish this file to every server. Otherwise you’re customers will get an inconsistent result depending on which server they connect to. <h1>Directing the Clients</h1> Finally, we need to let the clients know where to find the custom status file. We do this by configuring the
Set-CsClientPolicy -Identity ClientPolicy -CustomStateURL "HTTPS://Pool.Domain.com/CustomState/CustomState.xml"
The End Result
After logging off and back onto my client, the custom states are now showing as expected.
While this is a single, and basic scenario, I’d be interested to know how others are using custom statuses. Please leave a comment to share your experience.