mindmap
root((Domain 3 30–35%))
Phone Policies
Dial Plans
Calling Policies
Call Park
Caller ID
IP Phone Policies
Mobility Policies
Voicemail Policies
Call Hold Policies
Outbound Restrictions
Inbound Blocking
Unassigned Numbers
Compliance Recording
Shared Calling
Auto Attendants & Call Queues
Resource Accounts
Licenses & Numbers
Routing Methods
Business Hours & Holidays
Music on Hold
Caller ID for CQ
Voice Applications Policies
Callback
Queues App
Emergency Calling
Emergency Addresses
Call Routing Policies
Emergency Policies
LIS Configuration
Dynamic Emergency Calling
License & Number Assignment
Phone Standard License
Calling Plans
Number Assignment
Bulk Assignment
Policy Packages
Group Policy
Calling Features
Cloud Voicemail
Group Call Pickup
Call Forwarding
Simultaneous Ring
Call Delegation
Private Lines
Direct Routing
SBC Connectivity
PSTN Gateways
PSTN Usage Records
Voice Routes
Voice Routing Policies
LBR & LMO
Trunk Translation
SBA Policies
📋 3.1 Create and Configure Teams Phone Policies
Dial Plans
Dial plans normalize phone numbers dialed by users into E.164 format:
Component
Purpose
Normalization rules
Regex-based rules that convert dialed digits to E.164 (e.g., “91234” → “+441234”)
Tenant dial plan
Custom dial plan created by admin — appended to service (country) dial plan
Service dial plan
Microsoft-provided country-specific dial plan (auto-assigned based on usage location)
Effective dial plan
Combination of service + tenant dial plan — tenant rules are evaluated first
1
2
3
4
5
6
7
8
9
10
11
12
13
# Create a tenant dial planNew-CsTenantDialPlan-Identity"UK-DialPlan"# Add a normalization rule$rule=New-CsVoiceNormalizationRule-Identity"UK-DialPlan/4DigitExtension"`
-Pattern'^(\d{4})$'`
-Translation'+4420$1'`
-IsInternalExtension$trueSet-CsTenantDialPlan-Identity"UK-DialPlan"-NormalizationRules@{Add=$rule}# Assign to userGrant-CsTenantDialPlan-Identityuser@domain.com-PolicyName"UK-DialPlan"
⚠️ Exam Caveat:
Tenant dial plan rules are evaluated before service dial plan rules
E.164 format is always +[country code][number] — e.g., +14255551234
Dial plans do NOT route calls — they only normalize the dialed number; voice routing policies handle routing
Calling Policies
Setting
Purpose
AllowPrivateCalling
Enable/disable 1:1 PSTN and VoIP calls
AllowCallForwardingToUser
Allow forwarding to another Teams user
AllowCallForwardingToPhone
Allow forwarding to PSTN number
AllowVoicemail
Control voicemail behavior (AlwaysEnabled, AlwaysDisabled, UserOverride)
AllowCallGroups
Enable call group pickup
AllowDelegation
Enable call delegation (boss/admin)
AllowWebPSTNCalling
Allow PSTN calling from Teams web client
PreventTollBypass
Block toll bypass for Location-Based Routing
BusyOnBusyEnabledType
What happens when user is already on a call (busy signal, voicemail, etc.)
Call Park Policies
Call Park lets users put a call on hold and retrieve it from any Teams device using a code:
Setting
Purpose
AllowCallPark
Enable/disable call park for users
CallPickupInOrder
Who can retrieve a parked call
ParkTimeoutSeconds
How long before a parked call rings back (default: 300 seconds)
Caller ID Policies
Setting
Purpose
CallingIDSubstitute
What caller ID is shown: LineUri (user’s number), Anonymous, Service number, Resource account
EnableUserOverride
Whether users can change their own caller ID
BlockIncomingCallerID
Block caller ID for incoming calls
CompanyName
Display company name instead of number for outbound PSTN calls
Voicemail Policies
Setting
Purpose
EnableTranscription
Voicemail-to-text transcription
EnableTranscriptionProfanityMasking
Mask profanity in transcripts
MaximumRecordingLength
Maximum voicemail duration (default: 300 seconds)
EnableEditingCallAnswerRulesSetting
Allow users to configure call answer rules
PrimarySystemPromptLanguage
Language for system prompts
ShareData
Share voicemail and transcription data for service improvement
Other Phone Policies
Policy
Purpose
IP Phone policies
Control sign-in mode (UserSignIn, CommonAreaPhoneSignIn), hot desking
Mobility policies
Control IP video and WiFi calling on mobile devices
Call hold policies
Configure custom Music on Hold (audio file)
Outbound call restrictions
Control who can make international/premium calls
Inbound call blocking
Block calls from specific number patterns
Unassigned number routing
Route calls to unassigned numbers (announcement, auto attendant, user)
Compliance recording
Record calls for regulatory compliance via certified partner solutions
Shared Calling policies
Define shared phone number behavior for frontline workers
⚠️ Exam Caveat:
Dial plans normalize, voice routing policies route — these are two separate steps
Caller ID policies can show the user’s number, a service number, a resource account number, or anonymous
Compliance recording requires a certified third-party solution — it cannot be done natively in Teams
BusyOnBusy setting controls whether a second incoming call goes to voicemail, gets a busy signal, or is presented to the user
📞 3.2 Create and Configure Auto Attendants and Call Queues
Resource Accounts
Every auto attendant and call queue needs a resource account:
Step
Action
1
Create a resource account (application instance) in Teams Admin Center or PowerShell
2
Assign a Teams Phone Resource Account license (free)
3
Assign a phone number if the AA/CQ needs to be reachable from PSTN
4
Associate the resource account with the auto attendant or call queue
1
2
3
4
5
6
7
8
9
10
11
# Create resource account for auto attendantNew-CsOnlineApplicationInstance`
-UserPrincipalNamemainline-aa@domain.com`
-DisplayName"Main Line Auto Attendant"`
-ApplicationId"ce933385-9390-45d1-9512-c8d228074e07"# Create resource account for call queueNew-CsOnlineApplicationInstance`
-UserPrincipalNamesales-cq@domain.com`
-DisplayName"Sales Call Queue"`
-ApplicationId"11cd3e2e-fccb-42ad-ad00-878b93575e07"
Call Queue Routing Methods
Method
Behavior
Attendant routing
All agents ring simultaneously
Serial routing
Agents ring one at a time in a fixed order
Round robin
Agents ring one at a time in rotating order
Longest idle
Agent who has been idle longest rings first
Call Queue Features
Feature
Description
Overflow
What happens when queue is full (voicemail, redirect, disconnect)
Timeout
What happens when no agent answers within time limit
Callback
Callers can request a callback instead of waiting in queue
Call priorities
Priority routing across multiple call queues
Music on Hold
Default or custom audio file played while waiting
Conference mode
Reduces connect time when agent answers (pre-establishes connection)
Opt-in/out
Agents can opt in/out of receiving queue calls
Auto Attendant Configuration
Component
Details
Business hours greeting
Custom audio or text-to-speech greeting during business hours
After hours greeting
Greeting played outside business hours
Holiday greeting
Greeting for configured holiday dates
Menu options
DTMF (dial pad) options routing to users, call queues, other AAs, external numbers
Dial by name
Directory search by voice or DTMF
Operator
Designated person or group for “press 0” routing
Voice Applications Policies
Control who can manage auto attendants and call queues without being a full Teams admin:
Setting
Purpose
Auto attendant management
Allow specific users to create/edit auto attendants
Call queue management
Allow specific users to create/edit call queues
Authorized users
Define who can manage specific AAs/CQs
Queues App
Feature
Description
Purpose
Teams app for agents and supervisors to manage call queue interactions
Agent view
See queue status, answer/transfer calls, opt in/out
Supervisor view
Monitor agents, view real-time queue statistics
Configuration
Enabled via voice applications policy
⚠️ Exam Caveat:
Resource accounts need a Teams Phone Resource Account license (free) — but need a Calling Plan or Virtual User license for a phone number
Toll-free numbers on resource accounts require Communication Credits
Callback in call queues lets callers hang up and get called back when an agent is available
Auto attendants support nested routing — AA → AA → CQ is a valid configuration
Conference mode in call queues should be enabled for faster call connection (reduces ring time)
Number pattern that triggers emergency routing (e.g., 911)
Emergency dial mask
Alternative patterns that map to the emergency string (e.g., 933)
PSTN usage
Which PSTN usage record (and therefore which SBC/gateway) routes the emergency call
⚠️ Exam Caveat:
Dynamic emergency calling requires LIS to be configured with network data (subnets, WAPs, switches)
For Calling Plans, emergency addresses must be validated — Direct Routing addresses are not validated by Microsoft
Security desk notification is configured in the emergency calling policy, not the routing policy
Emergency call routing policies are only needed for Direct Routing — Calling Plans and Operator Connect handle routing automatically
The emergency dial mask (e.g., 933) can be used for testing without actually calling emergency services
🔢 3.4 Assign Teams Phone Licenses, Numbers, and Policies
License Assignment Flow
flowchart TD
USER["User"]
TPL["Teams Phone\nStandard License"]
PSTN["PSTN Connectivity"]
CP["Calling Plan\nLicense"]
OC["Operator Connect\n(operator provides)"]
DR["Direct Routing\n(no additional license)"]
NUM["Assign Phone\nNumber"]
POL["Assign Calling\nPolicies"]
USER --> TPL
TPL --> PSTN
PSTN --> CP
PSTN --> OC
PSTN --> DR
CP --> NUM
OC --> NUM
DR --> NUM
NUM --> POL
Phone Number Assignment
Method
Tool
Best For
Individual
Teams Admin Center
One-off assignments
Bulk (PowerShell)
Set-CsPhoneNumberAssignment
Large-scale deployments
CSV import
Teams Admin Center
Medium-scale batch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Assign a phone number (Calling Plan)Set-CsPhoneNumberAssignment-Identityuser@domain.com`
-PhoneNumber"+14255551234"`
-PhoneNumberTypeCallingPlan# Assign a phone number (Direct Routing)Set-CsPhoneNumberAssignment-Identityuser@domain.com`
-PhoneNumber"+14255551234"`
-PhoneNumberTypeDirectRouting# Bulk assignment via CSVImport-Csv"users.csv"|ForEach-Object{Set-CsPhoneNumberAssignment-Identity$_.UserPrincipalName`
-PhoneNumber$_.PhoneNumber`
-PhoneNumberType$_.NumberType}
Policy Assignment Methods
Method
Scope
Tool
Direct
Individual user
TAC or PowerShell
Group
Security group or M365 group
TAC or PowerShell
Batch
CSV of users
PowerShell
Policy package
Role-based bundle
TAC or PowerShell
Global (default)
All users without explicit assignment
TAC or PowerShell
⚠️ Exam Caveat:
PhoneNumberType must match the connectivity method: CallingPlan, DirectRouting, or OperatorConnect
Bulk phone number assignment via PowerShell uses Set-CsPhoneNumberAssignment, not the deprecated Set-CsUser
Policy precedence: Direct > Group > Global default
Policy packages assign multiple policy types at once (calling, meeting, messaging) — useful for role-based deployment
🔧 3.5 Configure and Manage Calling Features
Cloud Voicemail
Feature
Details
Storage
Exchange Online mailbox
Transcription
Automatic speech-to-text (configurable via voicemail policy)
Greeting
Custom recorded or text-to-speech
Call answer rules
Configure in Teams client — forward to voicemail, custom greeting per caller
Deposit only
Voicemail receives messages but user cannot configure settings (useful for shared mailboxes)
Call Forwarding & Simultaneous Ring
Feature
Description
Call forwarding
Route incoming calls to another user, phone number, or voicemail
Simultaneous ring
Ring multiple endpoints at the same time (Teams + mobile, etc.)
Unanswered timeout
If not answered within X seconds, forward to next destination
Controlled by
Calling policy (admin can allow/restrict) + user configuration
Call Delegation
Concept
Description
Delegate
An assistant who can make/receive calls on behalf of another user
Delegator
The boss/executive whose calls are managed
Permissions
Make calls, receive calls, change settings on behalf of delegator
Configuration
User configures in Teams client; admin enables via calling policy
Group Call Pickup
Feature
Details
Purpose
Allow a group of users to answer each other’s calls
Configuration
User creates a call group in Teams settings
Ring order
All at once or in order
Enabled by
AllowCallGroups in calling policy
Audio Conferencing (for Phone Users)
Feature
Details
Dial-in
Users join meetings by dialing a conference bridge number
Dial-out
Meeting calls out to a PSTN number to add a participant
Operator
Auto attendant integration for conference bridge
Private Lines
Feature
Details
Purpose
A second phone number for a user that bypasses delegates and call forwarding
Use case
Executive wants a direct line that skips the assistant
Configuration
PowerShell only — assign via Set-CsPhoneNumberAssignment with -PhoneNumber for the private line
⚠️ Exam Caveat:
Cloud Voicemail is stored in Exchange Online — user needs an Exchange mailbox
Call delegation must be enabled in the calling policy AND configured by the user in Teams client
Private lines bypass call forwarding, delegates, and simultaneous ring — calls go directly to the user
Group call pickup and call delegation are different features — pickup is peer-based, delegation is boss/admin
🌐 3.6 Configure and Manage Direct Routing
Direct Routing Architecture
flowchart LR
TEAMS["Microsoft Teams\n(Cloud)"]
SBC["Session Border\nController (SBC)"]
TRUNK["SIP Trunk"]
PSTN["PSTN\nCarrier"]
PBX["Legacy PBX\n(optional)"]
TEAMS -->|"TLS 5061\n(SIP signaling)"| SBC
TEAMS -->|"UDP/TCP\n(Media)"| SBC
SBC --> TRUNK
TRUNK --> PSTN
SBC -.->|Optional| PBX