Calling, Voice & PSTN
MS-700 Exam Alignment
MS-700
Manage voice and calling in Teams: compare PSTN connectivity options (Calling Plans, Direct Routing, Operator Connect), assign phone numbers to users, configure calling policies, dial plans, emergency calling policies, and build auto attendants and call queues.
- Distinguish Calling Plans, Direct Routing, and Operator Connect by infrastructure requirement, SBC need, and use case
- Know the licences required for Teams Phone and which PSTN option each licence enables
- Assign a phone number to a user and verify the assignment in TAC and PowerShell
- Understand calling policies — what AllowPrivateCalling, AllowVoicemail, and AllowCallForwardingToPhone control
- Describe the purpose of dial plans and when a custom dial plan is needed
- Know the difference between auto attendants and call queues and when to use each
📞 Teams Phone Licensing
To enable PSTN calling in Teams, users need the right licence combination. There are two core requirements:
| Licence | What It Enables | Included In |
|---|---|---|
| Microsoft Teams Phone (formerly Phone System) | The core PBX capabilities in the cloud — hold, transfer, voicemail, call queues, auto attendants. Does NOT include PSTN calling on its own | Microsoft 365 E5, Teams Essentials with Phone, or as an add-on to E1/E3/Business plans |
| Teams Phone + Calling Plan | Teams Phone plus a Microsoft-provided Calling Plan — enables PSTN calls using Microsoft as the carrier | Bundled SKU or separate add-on — requires Teams Phone licence first |
| Teams Phone with Direct Routing | Teams Phone licence used with customer-managed SBC for PSTN access — carrier of your choice | Teams Phone add-on only — Direct Routing provides the PSTN connection, no additional Calling Plan needed |
🌐 PSTN Connectivity — The Three Options
Teams Phone (the PBX capability) needs a method to connect to the public telephone network. There are three options — each with different infrastructure requirements, control levels, and cost models:
| Calling Plans | Operator Connect | Direct Routing | |
|---|---|---|---|
| Who is the carrier | Microsoft is the carrier | Microsoft-certified third-party carrier (e.g. BT, Telstra, Lumen) | Any carrier — your choice |
| SBC required | No — Microsoft manages all infrastructure | No — the carrier manages the SBC | Yes — customer deploys and manages a certified Session Border Controller (SBC) |
| On-premises hardware | None | None | SBC required — can be on-prem or hosted in Azure/cloud |
| Setup complexity | Lowest — buy licence and assign number in TAC | Medium — carrier onboarding via TAC, no SBC management | Highest — SBC configuration, voice routing, PSTN gateway setup |
| Geography | Limited to countries where Microsoft offers Calling Plans | Available in countries where certified carriers operate | Any country with a compatible carrier — maximum flexibility |
| Existing carrier contract | Not retained — Microsoft becomes the carrier | New carrier relationship via Operator Connect marketplace | Keep existing carrier contract |
| Phone number source | Microsoft assigns numbers from its inventory | Carrier assigns numbers — ported or new | Carrier assigns numbers — ported or new |
| Best for | Small orgs in supported countries wanting zero infrastructure | Mid-large orgs wanting a managed carrier without SBC overhead | Enterprises with existing SBCs, specific carrier requirements, or countries without Calling Plans |
⚠️ The MS-700 PSTN Decision Matrix
- Question mentions existing SBC / SIP trunk / on-prem PBX integration → Direct Routing
- Question mentions carrier manages everything, no on-prem hardware but Microsoft is NOT the carrier → Operator Connect
- Question mentions simplest setup, Microsoft is the carrier, supported country → Calling Plans
- Question mentions the country is not supported by Calling Plans → Direct Routing or Operator Connect
🔢 Phone Number Assignment
Phone numbers are managed in TAC → Voice → Phone numbers. Numbers can be acquired from Microsoft (for Calling Plans), ported from a carrier, or assigned from Direct Routing / Operator Connect. Each number is either a user number (assigned to an individual) or a service number (assigned to a call queue, auto attendant, or conference bridge).
TAC › Voice › Phone numbers
Port numbers
Connect-MicrosoftTeams # View all phone numbers in the tenant with assignment status Get-CsPhoneNumberAssignment -PstnAssignmentStatus All | Select-Object TelephoneNumber,NumberType,AssignedPstnTargetId,City # Assign a Calling Plan number to a user Set-CsPhoneNumberAssignment -Identity user@techcareers.in -PhoneNumber "+442081234567" -PhoneNumberType CallingPlan # Assign a Direct Routing number to a user Set-CsPhoneNumberAssignment -Identity user@techcareers.in -PhoneNumber "+442081239999" -PhoneNumberType DirectRouting # Remove a phone number assignment Remove-CsPhoneNumberAssignment -Identity user@techcareers.in -PhoneNumber "+442081234567" -PhoneNumberType CallingPlan # Verify a user's current phone number and voice settings Get-CsOnlineUser -Identity user@techcareers.in | Select-Object DisplayName,LineUri,EnterpriseVoiceEnabled,HostedVoiceMail
📋 Calling Policies
Calling policies control what calling features individual users can access. Assigned per-user (or via the Global default). Managed in TAC → Voice → Calling policies.
| Policy Setting | What It Controls |
|---|---|
| Make private calls | Whether the user can make outbound PSTN and Teams-to-Teams calls |
| Call forwarding and simultaneous ringing to people in your organisation | Whether users can forward calls or ring multiple internal devices simultaneously |
| Call forwarding and simultaneous ringing to external phone numbers | Whether calls can be forwarded to external PSTN numbers — a common security/cost control |
| Voicemail | Enable or disable voicemail for the user (UserOverride = user decides; AlwaysEnabled; AlwaysDisabled) |
| Inbound calls can be routed to call groups | Whether users can set up a call group to ring colleagues when they receive a call |
| Delegation for inbound and outbound calls | Whether users can set up delegates (e.g. an executive's PA answering calls on their behalf) |
| Prevent toll bypass and send calls through the PSTN | Forces calls to route through PSTN even when a Teams route is available — used for compliance in some regions |
| Busy on busy when in a call | Whether inbound calls receive a busy signal when the user is already on a call |
Connect-MicrosoftTeams # View all calling policies Get-CsTeamsCallingPolicy | Select-Object Identity,AllowPrivateCalling,AllowVoicemail,AllowCallForwardingToPhone # Restrictive policy — no external forwarding, voicemail disabled New-CsTeamsCallingPolicy -Identity "Frontline-Calling" -AllowPrivateCalling $true -AllowCallForwardingToPhone $false -AllowVoicemail AlwaysDisabled -AllowCallGroups $false -AllowDelegation $false # Executive policy — full features including delegation New-CsTeamsCallingPolicy -Identity "Executive-Calling" -AllowPrivateCalling $true -AllowCallForwardingToPhone $true -AllowVoicemail UserOverride -AllowDelegation $true -AllowCallGroups $true # Assign to a user Grant-CsTeamsCallingPolicy -Identity user@techcareers.in -PolicyName "Executive-Calling" # Remove assignment (reverts user to Global policy) Grant-CsTeamsCallingPolicy -Identity user@techcareers.in -PolicyName $null
🗺️ Dial Plans
A dial plan is a set of normalisation rules that translate the phone numbers users dial (local format, short codes, extensions) into the E.164 format (+CountryCodeNumber) that Teams requires for routing. Managed in TAC → Voice → Dial plans.
💡 When Is a Custom Dial Plan Needed?
- Extension dialling — Users dial a 4-digit extension (e.g. 1234) that must be translated to a full E.164 number (+442081231234)
- Short codes — Dialling 9 for an outside line (a common legacy PBX habit)
- National dialling formats — Users in the UK dial 020 8123 4567 (without country code) and it needs to normalise to +44 20 8123 4567
- No custom dial plan needed — Users always dial in E.164 format (+CountryCode...) — the service dial plan for their region handles normalisation automatically
Connect-MicrosoftTeams # View all dial plans in the tenant Get-CsTenantDialPlan | Select-Object Identity,Description,NormalizationRules # Normalisation rule: UK national format 020xxxxxxxx → E.164 +44020xxxxxxxx $rule1 = New-CsVoiceNormalizationRule -Name "UK-LondonLocal" -Parent "UK-Office-DialPlan" -Pattern "^(020\d{8})$" -Translation "+44$1" -InMemory # Normalisation rule: 4-digit extension → full E.164 number $rule2 = New-CsVoiceNormalizationRule -Name "UK-Extension4Digit" -Parent "UK-Office-DialPlan" -Pattern "^(\d{4})$" -Translation "+44208123$1" -InMemory # Create the dial plan with both rules New-CsTenantDialPlan -Identity "UK-Office-DialPlan" -NormalizationRules @($rule1, $rule2) -Description "UK office dial plan" # Assign to a user Grant-CsTenantDialPlan -Identity user@techcareers.in -PolicyName "UK-Office-DialPlan"
🚨 Emergency Calling
Emergency calling (E911 in the US / 999/112 in the UK/Europe) requires special handling in cloud voice to ensure responders can locate the caller. Teams uses two policy types for this:
| Policy Type | Purpose |
|---|---|
| Emergency calling policy | Defines what notification is sent when a user dials an emergency number — e.g. send a Teams chat or call to the security desk or a notification group when 999 is dialled |
| Emergency call routing policy | Defines which PSTN numbers are emergency numbers and how calls to those numbers are routed — used only with Direct Routing (not needed for Calling Plans, where Microsoft handles routing) |
⚠️ Dynamic Emergency Calling
Dynamic emergency calling automatically detects a user's location based on their network subnet or WiFi access point (configured in TAC → Locations) and routes emergency calls to the correct local PSTN Emergency Service. Without dynamic emergency calling, all emergency calls from a remote user may route to the wrong local emergency service. Dynamic emergency calling requires network sites to be configured with their associated emergency address in TAC.
📟 Auto Attendants & Call Queues
Auto attendants and call queues are the two service applications that use service phone numbers (not user numbers) and resource accounts to handle inbound calls professionally.
| Auto Attendant | Call Queue | |
|---|---|---|
| Purpose | Interactive voice menu — callers press keys or speak to route to the right destination | Hold queue — callers wait in line to be connected to the next available agent |
| Routing | Routes based on caller input (dial by name, dial by extension, menu options, time-based routing) | Routes to a group of agents — by round robin, longest idle, serial, or attendee order |
| Typical use | Main company number ("Press 1 for Sales, Press 2 for Support") | IT helpdesk, customer support line — agents answer calls in order |
| Requires | Resource account + service number + Teams Phone licence on the resource account | Resource account + service number + Teams Phone licence on the resource account |
| Can chain to | Another auto attendant, a call queue, a user, an external number, or voicemail | Another call queue, a user (overflow/timeout), voicemail, or disconnect |
| Business hours | Yes — different routing for open hours vs closed hours | Yes — different handling during/outside business hours |
Connect-MicrosoftTeams # Create a resource account for an auto attendant New-CsOnlineApplicationInstance -UserPrincipalName "main-reception-aa@techcareers.in" -DisplayName "Main Reception" -ApplicationId "ce933385-9390-45d1-9512-c8d228074e07" # Assign a service phone number to the resource account Set-CsPhoneNumberAssignment -Identity "main-reception-aa@techcareers.in" -PhoneNumber "+442081230001" -PhoneNumberType CallingPlan # Create a resource account for a call queue New-CsOnlineApplicationInstance -UserPrincipalName "it-support-cq@techcareers.in" -DisplayName "IT Support Queue" -ApplicationId "11cd3e2e-fccb-42ad-ad00-878b93575e07" # List all resource accounts in the tenant Get-CsOnlineApplicationInstance | Select-Object DisplayName,UserPrincipalName,ApplicationId,PhoneNumber # ApplicationId reference: # Auto Attendant: ce933385-9390-45d1-9512-c8d228074e07 # Call Queue: 11cd3e2e-fccb-42ad-ad00-878b93575e07
💡 Best Practices
- Choose Calling Plans for small organisations in supported countries — zero infrastructure, fastest time to dial-in
- Use Operator Connect when your organisation wants a carrier relationship but no on-premises SBC — all the carrier flexibility with none of the hardware overhead
- Restrict call forwarding to external numbers in the calling policy for most users — uncontrolled external forwarding creates unexpected PSTN charges and security concerns
- Always create a resource account before building an auto attendant or call queue — the resource account is the identity that holds the phone number and Teams Phone licence
- Configure emergency addresses for all network sites before enabling PSTN calling — dynamic emergency calling routes to the correct local service and can save lives
- Test dial plans with actual dialled strings before deploying — a wrong normalisation regex silently fails to match and the call will not complete
- Keep dial plan rules simple — normalise to E.164 and let Teams handle the rest; avoid complex regex unless specifically required for extension dialling
🎓 Interview Q&A
^(\d{4})$, translation +44208123$1). Assign the dial plan to the affected user with Grant-CsTenantDialPlan.An organisation in a country where Microsoft Calling Plans are not available needs PSTN calling via Teams. They have an existing relationship with a local carrier that is Microsoft-certified and manages their own SBC infrastructure. Which PSTN connectivity option should they choose?
A user needs to be able to configure call forwarding to their personal mobile number when they are away from the office. Which calling policy setting controls this?
Users in a UK office dial numbers in the format 020 8123 4567 (without country code). Calls are failing because Teams requires E.164 format. What should you configure?
A company wants callers who dial the main office number to hear "Press 1 for Sales, Press 2 for Support, or stay on the line to speak to reception." What Teams feature should be configured?
Which licence is required to enable PBX capabilities (hold, transfer, voicemail, call queues) in Microsoft Teams Phone — without including a Microsoft Calling Plan?