Shared calling policies in MS Teams

This article talks about Shared calling policies in MS Teams

Shared calling policies

Shared calling policies in MS Teams is a cost-effective feature allowing multiple users to share a single phone number and calling plan for PSTN calls, rather than assigning dedicated numbers to everyone.

It simplifies management for light users, utilizing a resource account/auto attendant for inbound/outbound calls while maintaining full Teams phone features

Lets create Shared calling policies step by step

Open Teams admin center: https://admin.teams.microsoft.com/

Navigate to TAC–> voice –>Shared calling policies

You can use the Global (Org-wide default) policy, or create one or more custom mobility policies for people in your organization

Lets add one

Give a suitable title and Select a resource account that will be used for the inbound & outbound identity of this shared calling policy

Resource accounts are non-enabled user accounts that are used to represent system resources. With Teams Phone, you can create resource accounts and then assign them to voice features such as call queues and auto attendants

You can set Make calls with emergency callback numbers as well

finally save it

PowerShell script for above manual task

# Install module if needed
# Install-Module MicrosoftTeams -Force -AllowClobber

Import-Module MicrosoftTeams
Connect-MicrosoftTeams

# Define variables
$PolicyName = "SharedCallingPolicy"
$ResourceAccount = "sharedcalling@microbrother.com"
$Users = @(
    "user1@microbrother.com",
    "user2@microbrother.com"
)

# Step 1: Create or Update Calling Policy
$existingPolicy = Get-CsTeamsCallingPolicy -Identity $PolicyName -ErrorAction SilentlyContinue

if (-not $existingPolicy) {
    Write-Host "Creating Calling Policy for Shared Calling..."

    New-CsTeamsCallingPolicy `
        -Identity $PolicyName `
        -AllowPrivateCalling $true `
        -AllowCallForwardingToUser $true `
        -AllowCallForwardingToPhone $true `
        -AllowVoicemail $true `
        -AllowCallerIdLookup $true
}
else {
    Write-Host "Updating existing Calling Policy..."

    Set-CsTeamsCallingPolicy `
        -Identity $PolicyName `
        -AllowPrivateCalling $true `
        -AllowCallForwardingToUser $true `
        -AllowCallForwardingToPhone $true `
        -AllowVoicemail $true `
        -AllowCallerIdLookup $true
}

# Step 2: Assign Calling Policy to Users
foreach ($user in $Users) {
    Grant-CsTeamsCallingPolicy `
        -Identity $user `
        -PolicyName $PolicyName

    Write-Host "Assigned policy to $user"
}

# Step 3: Create Resource Account (if not exists)
$ra = Get-CsOnlineApplicationInstance -Identity $ResourceAccount -ErrorAction SilentlyContinue

if (-not $ra) {
    Write-Host "Creating Resource Account..."

    New-CsOnlineApplicationInstance `
        -UserPrincipalName $ResourceAccount `
        -DisplayName "Shared Calling Account" `
        -ApplicationId "ce933385-9390-45d1-9512-c8d228074e07"   # PSTN resource account
}

# Step 4: Assign Phone Number (Direct Routing example)
Set-CsPhoneNumberAssignment `
    -Identity $ResourceAccount `
    -PhoneNumber "+1234567890" `
    -PhoneNumberType DirectRouting

Write-Host "Shared Calling setup completed."

We are done here/

Also Read  Meeting customization policies in Teams admin center

Conclusion:

Post reading above article reader will be able to create Shared calling policies in MS Teams

You can also read this article https://microbrother.com/mobility-policies-in-ms-teams/ to create mobility policies in ms teams

Thank you 😇

Leave a Comment