One example of how to use the Set-CsUserCallingSettings cmdlet

Yesterday I posted about one use case for the New-CsTeamsUnassignedNumberTreatment cmdlet, how about if the number is already assigned but you want it routed elsewhere. No doubt, there are many possible solutions you can think of. One such solution is leveraging the Set-CsUserCallingSettings cmdlet. This cmdlet will set the call forwarding, simultaneous ringing, and call group settings for the specified user

Table of Contents

Scenario

A customer was setting up Microsoft Teams Room systems and assigned DDIs to these devices. However, they wanted to prevent the ability to take inbound calls. We are unable to use the unassigned number range method here – and the SBCs were managed by a third party – but more accurately, this was going to be chargeable work.

Solution

Leveraging what we learnt around the New-CsTeamsUnassignedNumberTreatment and routing calls to auto attendants, might we not be able to do the same with Set-CsUserCallingSettings?

I created an auto attendant with the following settings:

From the Teams PowerShell we ran the following:

Set-CsUserCallingSettings -Identity ma@msgcomms.com -IsForwardingEnabled $True -ForwardingType Immediate -ForwardingTarget sip:PlantAssistance@msgcomms.onmicrosoft.com -ForwardingTargetType SingleTarget

Where PlantAssistance@msgcomms.onmicrosoft.com is the resource account for the auto attendant.

The above can also be achieved via the Teams desktop client settings

However, applying this to multiple geographically dispersed devices would benefit from a ForEach loop or something better.

Thank you