What it does
The calling policy is the switchboard for what a user's line is allowed to do — forward, simultaneously ring, go to voicemail, reject a second call while busy, use call groups, delegate. The user then picks their own call answering rules inside whatever the policy permits, and an admin can set those rules on their behalf from the user's Voice tab or PowerShell.
Key facts
- Calling policies are managed in the Teams admin center under Voice > Calling policies, or with
New-,Set-,Get-,Grant-andRemove-CsTeamsCallingPolicy. The Global (Org-wide default) policy applies to anyone without a direct or group assignment. - Forwarding is split into two switches:
AllowCallForwardingToUser(people in your organisation) andAllowCallForwardingToPhone(external numbers). Both also govern simultaneous ring to those targets. AllowVoicemailtakesAlwaysEnabled,AlwaysDisabledorUserOverride— the admin centre shows these as On, Off and Let users decide.BusyOnBusyEnabledTypetakesEnabled,Unanswered,DisabledorUserOverride.Unansweredsends a second inbound call down the user's unanswered route (typically voicemail) rather than giving a busy tone.InboundPstnCallRoutingTreatment(RegularIncoming,Unanswered,Voicemail,UserOverride) andInboundFederatedCallRoutingTreatment(RegularIncoming,Unanswered,Voicemail) let you push external calls somewhere other than the user's devices.AllowCallGroupsandAllowDelegationgate call groups (group call pickup) and delegation respectively.MusicOnHoldEnabledTypedefaults toEnabled;PreventTollBypassforces calls out through the PSTN instead of VoIP where regulation requires it.AllowPrivateCallingis the master switch — turn it off and the user loses calling in Teams altogether, not just PSTN.- Admins set a user's forwarding and call group from PowerShell with
Set-CsUserCallingSettings(-IsForwardingEnabled,-ForwardingType Immediate|Simultaneous,-ForwardingTargetType SingleTarget|MyDelegates|Group|Voicemail,-ForwardingTarget), and read it back withGet-CsUserCallingSettings. These need Teams PowerShell module 4.0 or later. - Microsoft provides a call forwarding diagnostic at aka.ms/TeamsCallForwardingDiag, which expects target numbers in E.164.
When to use / skip
Every Teams Phone deployment uses calling policies whether you design them or not — the Global policy is always there. The real question is how many custom ones you need. Most organisations get away with three or four: a standard user policy, a locked-down one for shared and common area devices, perhaps one for executives and their assistants, and one for regulated teams that must not forward externally.
Resist the urge to build a policy per department. Policies are about capability, not about org chart, and every extra one is something someone has to reason about during a support call two years later. If the only difference between two policies is a single forwarding toggle, ask whether the business genuinely needs that difference enforced, or whether user education will do.
Setting individual users' answering rules centrally is worth doing for go-live on migrated PBX extensions (where the old system had forwarding configured) and for reception or hunt-style users. For everyone else, leave it to the user.
Configuration decisions
- Whether external forwarding (
AllowCallForwardingToPhone) is allowed at all. It's the main toll-fraud and data-leak conversation, and some regulated clients want it off by default with an exception policy. - Voicemail: on for everyone, off for shared devices, or user-controlled. Common area and lobby phones rarely want it.
- Busy on busy: off, hard busy, or route to unanswered. Contact-centre-adjacent and reception users often want
Unansweredso a second caller lands in voicemail rather than a call waiting beep. - Whether to use
InboundPstnCallRoutingTreatmentto send PSTN calls straight to voicemail for certain user groups (back-office staff with DDIs who shouldn't be answering the public). - Policy assignment method — direct, group-based, or via policy packages — and who owns the groups.
- Whether to pre-stage user call answering rules with
Set-CsUserCallingSettingsas part of PBX migration.
Gotchas
- The policy only controls what's permitted. A user with an external forward already configured keeps routing calls there until the policy change reaches them; tightening the policy doesn't wipe their settings.
Set-CsTeamsCallingPolicyleaves any parameter you don't pass at its existing value. Scripts that "reset" a policy by passing only a handful of parameters don't reset anything.- Different calling policies on a delegate and their manager cause odd behaviour — the delegate is bound by their own policy, not the manager's. Keep them matched.
AllowPrivateCalling $falsekills all calling, including Teams-to-Teams. People reach for it to block PSTN and then get a ticket from someone who can't call a colleague.- Policy changes can take a while to land and clients sometimes need a sign-out and back in. Don't declare a fix failed after five minutes.
- Forwarding to an external number consumes an outbound PSTN leg, so it depends on the user having outbound PSTN routing and the right licensing — on Calling Plans that's minutes; on Direct Routing it's a call through the SBC.
Consultant notes
- Export every user's current forwarding rules from the legacy PBX before cutover and replay them with
Set-CsUserCallingSettingson the night. Users notice missing forwards before they notice anything else. - Document the policy matrix in the design — one row per policy, one column per setting — rather than in prose. Support teams will thank you.
- Use group-based assignment for calling policies and keep the Global policy deliberately bland, so a user who falls out of a group degrades to something safe.
- Run the forwarding diagnostic before escalating "my forward doesn't work" tickets; it catches the common format and policy mistakes quickly.
Worth re-checking the parameter list on Set-CsTeamsCallingPolicy each half-year — Microsoft keeps adding switches here, and the admin centre labels lag behind the PowerShell names