If you are running Lync Server 2013 or later, then there is a boss / admin role built-in to the core that allows you to configure delegates for a boss or manager. However, in order to do this you need SEFAUtil, but more recently in Skype for Business these commands have been introduced into native Powershell. The standard offer from the system for boss / secretary role does not always suit the scenario you are trying to configure for. By default, when enabled the boss’s endpoint will still ring at the same time as the delegates. However, the delegates can pick up calls for the boss using their endpoint (client or desk phone). The delegates can also place a call on hold and the boss can pick up the call on their endpoint. Another feature is that the deleagte can place calls on behalf of the boss.
Now for most situations this functionality is sufficient, but what happens if the boss does not want their endpoint to ring? What about if there is a dedicated secretary for a boss, but if they are not available a secretary of another boss should get the call? These scenarios become more challenging to configure that increase system admin effort, and also the end user experience is less than desirable.
Using a third party product like Anywhere 365 helps to create these scenarios with ease. Some may think that Anywhere 365 is a contact center product. While the product can function as a contact center, it’s true place is within intelligent routing of modalities such as voice and chat. This broadens the use case of Anywhere 365 beyond the realms of traditional contact center scenarios and helps bridge the gap between these and native functionality of Skype for Business.
The great thing about Anywhere 365 is that it is native to Lync and Skype for Business, meaning that it follows and uses the built-in media and signaling stack so you don’t need any special client, or integration with another media platform. To give you an idea of how Anywhere 365 can help with routing scenarios beyond a contact center realm, lets take a look at these boss / secretary scenarios.
Boss does not want their endpoint to ring when someone calls them
Again, to remind ourselves, the traditional delegate ring from native Lync / Skype for Business would also ring the boss’s endpoint too. This is how we would configure it in Anywhere 365. First, the pre-requisites:
- Anywhere 365 has been deployed
- Trusted application created for the UCC
- Create an trusted application endpoint that will be dedicated for the boss. e.g.
New-CsTrustedApplicationEndpoint -ApplicationId “ucc_xyz” -TrustedApplicationPool “a365.myfluffy.cloud” -Display Name “John Boss-Jones” -SipAddress “sip:firstname.lastname@example.org” -LineURI “tel:+441270212101” Grant-CsDialPlan -Identity “sip:email@example.com” -PolicyName “UK-DialPlan” Grant-CsVoicePolicy -Identity “sip:firstname.lastname@example.org” -PolicyName “UK-Voice” Grant-CsConferencingPolicy -Identity “sip:email@example.com” -PolicyName “AudioOnly”
Now that we have the pre-requisites in place we can now start to configure Anywhere 365 for the boss / secretary scenario. Open the SharePoint Anywhere365 portal and navigate to UCC Config -> Endpoints
In the endpoints list we need to add the endpoint we created in the prerequisites as a modality endpoint. The reason we are not using the main endpoint for this is because we can use the same UCC instance for multiple boss / secretary scenarios without incurring additional licencing costs. Click on new item
In the title field enter the sip address of the endpoint you created, e.g. firstname.lastname@example.org@myfluffy.cloud. The Modality should be Audio. Leave the type as “Skill” and ensure that you check the box to enable routing.
Press Save and you should now see you have a modality endpoint created in the list.
Now we have our entry point into the UCC dialogue workflow we need to connect it to some form of routing to a destination, or calls will just sit in the queue and do nothing. Back in the main portal we need to create some skills. Before we do that, lets just think about the scenario for one moment. The boss wants the secretary’s phone to ring instead of theirs, but what happens if the secretary is not available, or does not answer the call? Where should the caller be directed? In traditional Lync / Skype for Business delegate setups, there is a quirk that if a delegate has a timer to go to voicemail that is shorter than the boss, the delegates voicemail answers the call. This does not always meet the requirements. Here we can have three options, if the secretary is does not answer within so many seconds, forward to the boss’s voicemail, or forward to the secretaries voicemail, or indeed forward anywhere else for that matter.
Let’s use the scenario whereby if the secretary does not answer, the caller should be forwarded to the boss’s Exchange voicemail.
The first thing we need to do is create a forward skill to forward calls to the boss’s voicemail. Under the Actions control box, select forward skill.
In the list, click on new item. Enter the name of the Skill e.g. Forward to Boss 1 and enter the SIP address of the boss with the added parameters of ;opaque=app:voicemail e.g. “sip:email@example.com;opaque=app:voicemail”. This will forward the call to the boss’s voicemail service rather than sending the caller in a loop. Once entered press save.
Now that we have the forwarding setup, we need to create a skill for the secretary. This skill will allow the secretary to answer the call in a specified amount of time e.g. 30 seconds. For this we need to use a countdown skill. From the actions control box select countdown skill.
Click on new item and give the skill a title e.g. Boss 1 Secretary. Under the start countdown seconds enter 0 and end countdown at 30. In the countdown escape skill choose the forward skill you created in the last step, and press save.
Now we need to add the secretary as an agent to the system. From the main portal, under the user role control box, click on Agents
Click on new item and add the secretary’s sip address in to the agent field. Here you can also choose additional parameters, such as should the secretary be formal? the default is informal, and do they work only part time? so they can have a custom working hours schedule, so that you can have two or more secretaries working shifts for the boss and still have calls answered seamlessly.
Now that we have the secretary added, we need to assign them the countdown skill we created earlier. Click on agent skills from the user role control box.
Click on new item. From the skill choice box, select the countdown skill “Boss 1 Secretary”, give a score of 100 and choose the secretary as the agent, press save.
We are almost done. The last thing we need to do is configure the endpoint to route to the countdown skill we created. This way when the endpoint is called, the call is immediately routed to the secretary. From the portal, go back to UCC Config and choose Endpoints. Select the modality endpoint ucc.boss1 and edit the item. Change the Type to Skill and choose the countdown skill “Boss 1 Secretary”.
Now the scenario is configured we need to consider how to prevent the boss’s endpoint from ringing. We need to use the Anywhere 365 Interceptor module. This module is installed on the Front End Servers and uses MSPL scripting to intercept the SIP Invite messages coming to the boss for audio, and forward them to the ucc endpoint.
Using the wallboard we can see the call has come into to Anywhere 365 and it is trying to hunt the secretary
The secretary will be notified using a toast that they have a call coming in to Boss 1
If they do not answer within 30 seconds the call is then transferred back to the boss’s voicemail
What about other permutations of this scenario? What we don’t want the secretary to be given a countdown timer to accept the call, but base the decision on their presence availability? In this case, instead of a count down skill, we create an availability skill.
This setting will hunt the secretary if their presence status is available. If they are busy, away or offline, then the call will escape to the boss’s voicemail. Once this change has been saved, you would need to assign the skill to the agent / secreatary and change the endpoint skill to match.
Allowing certain callers to call boss directly
What happens if the boss wants to accept a call directly from their secretary or other corporate executives? To do this requires a bit more configuration in Anywhere 365. Firstly we need to add the boss as an agent to the UCC.
Then we need to assign them a standard skill. In the actions control box, choose Skill
Create the skill e.g. “Direct to Boss 1”
Assign the skill to the boss
Next we need to modify the UCC Routing under dialogue management control box
Create a new item. Here we are going to add the caller ID we want to bypass the secretary for. In this example we are allowing the secretary to call the boss directly. Untick Exact Match so that you just need to enter the SIP address or even partial sip address of the caller you want to allow direct calls from. In the action, choose Skill and choose the Direct to Boss 1 Skill we created earlier. Under match endpoint, select the endpoint that the interceptor sends the call too e.g. firstname.lastname@example.org and press save.
Now when the secretary calls the boss, they will be able to get through successfully.
What about from the boss’s spouse, they will be calling from a mobile (cell) or landline? The same procedure is used. Create another UCC routing rule and in the match from field enter the full phone number of the caller.
The same logic can be used to allow only a select list of federated contacts to call the boss directly too by specifying their SIP address.
In part 2 we will look at the agent experience and how they handle a conversation.
Mark is an Independent Microsoft Teams Consultant with over 15 years experience in Microsoft Technology. Mark is the founder of Commsverse, a dedicated Microsoft Teams conference and former MVP. You can follow him on twitter @UnifiedVale