In modern enterprise telecommunications and customer-facing corporate environments, missed calls can lead to lost sales, delayed client resolutions, and reduced workplace efficiency. In Microsoft Teams Phone, Group Call Pickup (GCP) and Call Sharing allow users to share incoming phone calls with designated colleagues. When an incoming call arrives for a user, members of their configured call group can be alerted simultaneously or sequentially, allowing any authorised team member to answer the call on their behalf. However, because call sharing involves delegating call answering permissions across corporate directories, administrators must explicitly govern which users are permitted to create and use call groups. By utilizing the Microsoft Teams PowerShell module with the CsTeamsCallingPolicy cmdlets, IT administrators configure, assign, and audit Group Call Pickup capabilities at scale.
Understanding Group Call Pickup vs Call Queues
To implement the correct call routing architecture, administrators must distinguish between Group Call Pickup and Call Queues:
- Call Queues: Enterprise-wide telephony constructs linked to dedicated Resource Accounts and service phone numbers. Call queues distribute incoming calls to agents based on routing algorithms (such as round-robin, attendant, or longest idle) and provide hold queues with custom greeting audio.
- Group Call Pickup (GCP): A user-centric feature tied to individual user phone numbers. Users create a personal call group of peers (such as administrative assistants or departmental colleagues) who receive simultaneous or delayed ringing when the user’s direct dial number receives a call.
The CsTeamsCallingPolicy cmdlet family dictates whether end users have permission to configure call groups within the Teams client interface via the AllowCallGroups parameter.
Connecting to Microsoft Teams PowerShell
Ensure that the latest Microsoft Teams PowerShell module is installed on your workstation. Open Windows PowerShell as an Administrator and connect to your Microsoft 365 tenant:
Connect-MicrosoftTeams
Authenticate with credentials holding Teams Administrator or Global Administrator privileges. Verify your session details:
Get-CsTenant | Select-Object DisplayName, TenantId
Auditing Existing Calling Policies for Call Group Permissions
To inspect all calling policies defined across the tenant and check the active status of the AllowCallGroups attribute, execute Get-CsTeamsCallingPolicy:
Get-CsTeamsCallingPolicy | Select-Object Identity, Description, AllowCallGroups, AllowDelegation, AllowPrivateCalling
To inspect the settings applied by the Global organizational default policy, target it directly:
Get-CsTeamsCallingPolicy -Identity Global | Format-List Identity, AllowCallGroups, AllowDelegation
If AllowCallGroups is set to False, users assigned this policy will find the “Call group” option greyed out or missing in their Teams client call forwarding settings.
Enabling Group Call Pickup in the Global Calling Policy
To permit all standard enterprise users across the organization to create call groups and participate in Group Call Pickup, update the Global policy:
Set-CsTeamsCallingPolicy -Identity Global -AllowCallGroups $true
This allows all users inheriting the Global policy to select colleagues who can answer their incoming calls.
Creating a Custom Policy for Restricted Calling Environments
In secure environments (such as legal compliance, executive suites, or isolated manufacturing floors), organisations may wish to restrict Group Call Pickup so that call audio cannot be inadvertently intercepted by unauthorized personnel.
Use the New-CsTeamsCallingPolicy cmdlet to create a dedicated policy that disables call groups:
New-CsTeamsCallingPolicy -Identity "Restricted-NoCallGroups" `
-AllowCallGroups $false `
-AllowDelegation $false `
-Description "Prohibits user-managed call groups and call delegation for high-security personnel."
Conversely, to create an unrestricted policy for departmental reception teams that permits both call groups and call delegation:
New-CsTeamsCallingPolicy -Identity "Sales-CallGroupEnabled" `
-AllowCallGroups $true `
-AllowDelegation $true `
-Description "Permits full call sharing, group pickup, and delegation for sales representatives."
Assigning Calling Policies to Target Users
To apply a custom calling policy to an individual user, execute the Grant-CsTeamsCallingPolicy cmdlet:
Grant-CsTeamsCallingPolicy -Identity "[email protected]" -PolicyName "Sales-CallGroupEnabled"
To remove a direct policy assignment and return the user to tenant defaults, assign a null policy value:
Grant-CsTeamsCallingPolicy -Identity "[email protected]" -PolicyName $null
To assign policies en masse across an entire Microsoft 365 security group:
New-CsGroupPolicyAssignment -GroupId "c3d4e5f6-a7b8-9012-cdef-1234567890ab" `
-PolicyType TeamsCallingPolicy `
-PolicyName "Sales-CallGroupEnabled" `
-Rank 1
Configuring Call Groups on Behalf of Users in PowerShell
While users can configure call group members directly in the Teams client under Settings > Calls, administrators can also configure call answering rules and call groups programmatically using Set-CsUserCallingSettings.
To define a call group for a user and establish simultaneous ringing across group members:
Set-CsUserCallingSettings -Identity "[email protected]" `
-IsAlsoRingsCallGroupEnabled $true `
-CallGroupOrder Simultaneous `
-CallGroupUsers @("[email protected]", "[email protected]")
To configure an order of preference where the call rings the primary user first for 20 seconds before routing to the call group:
Set-CsUserCallingSettings -Identity "[email protected]" `
-IsForwardingEnabled $false `
-IsAlsoRingsCallGroupEnabled $true `
-CallGroupOrder InOrder `
-CallGroupUsers @("[email protected]", "[email protected]") `
-DelayCallForwardingSeconds 20
Verifying User Calling Configuration
To confirm that the calling policy and call group rules have successfully applied to the user’s account, query the user calling settings:
Get-CsUserCallingSettings -Identity "[email protected]"
The command returns the active call forwarding rules, group member object IDs, ring order, and delay parameters, confirming that Group Call Pickup is fully operational.