Teams Voice
Manage Microsoft Teams Phone (formerly Teams Voice) across your managed tenants. Configure calling plans, direct routing, auto attendants, call queues, and voice policies. OpsPilot365 provides unified voice management with bulk provisioning and cross-tenant visibility.
Note: Teams Phone requires a Teams Phone license (standalone or included in E5). PSTN connectivity requires either Microsoft Calling Plans, Operator Connect, or Direct Routing configuration. Common Area Phone licenses are available for shared devices. Resource accounts for auto attendants and call queues require Phone System - Virtual User licenses.
PSTN Connectivity Options
Microsoft Teams Phone supports multiple options for connecting to the Public Switched Telephone Network (PSTN). Each option has different requirements, costs, and management complexity.
Calling Plans
Microsoft-provided PSTN connectivity with phone numbers from Microsoft. Simplest to deploy with no on-premises infrastructure required.
| Property | Value |
|---|---|
| Infrastructure | None required |
| Number portability | Supported |
| Geographic availability | Limited regions |
| Emergency calling | Included |
Operator Connect
PSTN connectivity through certified telecom operators managed directly in Teams Admin Center. Combines carrier flexibility with simplified management.
| Property | Value |
|---|---|
| Infrastructure | Operator managed |
| Number portability | Via operator |
| Geographic availability | Operator regions |
| Emergency calling | Operator provided |
Direct Routing
Connect your own SBC (Session Border Controller) to Teams for maximum flexibility. Use any PSTN carrier and maintain existing contracts.
| Property | Value |
|---|---|
| Infrastructure | SBC required |
| Number portability | Any carrier |
| Geographic availability | Global |
| Emergency calling | Self-managed |
Phone Number Management
Manage phone number inventory across all tenants. Acquire new numbers, port existing numbers, and assign numbers to users, auto attendants, and call queues.
| Number Type | Use Case | Assignment Target | License Required |
|---|---|---|---|
| User (Subscriber) | Individual direct dial numbers | Licensed users | Teams Phone + Calling Plan |
| Service (Toll) | Auto attendants, call queues, conferencing | Resource accounts | Virtual User license |
| Service (Toll-Free) | Customer-facing auto attendants | Resource accounts | Virtual User + Communications Credits |
| Direct Routing | Numbers from SBC/carrier | Users or resource accounts | Teams Phone (no Calling Plan) |
Auto Attendants
Auto attendants provide automated call handling with menu systems, business hours routing, and directed call flows. Configure multi-level IVR systems to route callers efficiently.
Greeting Options
- Text-to-Speech: Type greeting, system generates audio
- Audio File: Upload custom MP3 or WAV recordings
- No Greeting: Skip directly to menu or routing
Call Routing Actions
- Person in org: Transfer to specific user
- Call queue: Route to agent pool
- External number: Redirect to PSTN number
- Voicemail: Send to shared voicemail
- Nested auto attendant: Multi-level menus
Business Hours Configuration
Define operating hours with different call flows for business hours, after hours, and holidays.
| Time Period | Configuration | Typical Action |
|---|---|---|
| Business Hours | Mon-Fri 8AM-6PM (configurable) | Full menu and live routing |
| After Hours | Outside business hours | Voicemail or reduced menu |
| Holidays | Specific dates or date ranges | Holiday greeting + voicemail |
Call Queues
Call queues distribute incoming calls to a group of agents. Configure routing methods, hold music, overflow handling, and agent opt-in/opt-out capabilities.
Routing Methods
- Attendant Routing — Ring all agents simultaneously, first to answer takes the call
- Serial Routing — Ring agents in order, move to next after timeout
- Round Robin — Distribute calls evenly across all agents
- Longest Idle — Route to agent who has been idle the longest
Queue Settings
| Setting | Value |
|---|---|
| Maximum queue size | Up to 200 calls |
| Maximum wait time | Up to 45 minutes |
| Agent alert time | 15-180 seconds |
| Conference mode | Enabled/Disabled |
| Presence-based routing | Enabled/Disabled |
Note: Configure what happens when the queue is full or wait time exceeds limits. Options include routing to voicemail, redirecting to another queue, transferring to an external number, or playing a disconnect message. Always configure overflow actions to prevent caller abandonment.
Voice Policies
Voice policies control calling features and behaviors for Teams Phone users. Configure policies for call forwarding, delegation, voicemail, and emergency calling.
| Policy Type | Settings | Description |
|---|---|---|
| Calling Policy | Forwarding, delegation, voicemail | Controls user calling features and behaviors |
| Caller ID Policy | Outbound caller ID, blocking | Configure what caller ID is displayed for outbound calls |
| Emergency Calling Policy | E911 notification, dynamic location | Emergency services routing and notification settings |
| Voice Routing Policy | PSTN usage records, routes | Direct routing call routing rules |
| Dial Plan | Normalization rules, translation | Convert dialed numbers to E.164 format |
Emergency Calling (E911)
Configure emergency calling to ensure calls to emergency services are routed correctly with accurate location information. E911 compliance is mandatory in many jurisdictions.
Location Information Service (LIS)
Map network identifiers to physical addresses for automatic location detection.
- Subnet mapping: IP subnets to addresses
- WAP mapping: Wireless access point BSSIDs
- Switch/Port mapping: Network switch ports
- Chassis mapping: Device chassis IDs
Emergency Calling Policies
- Notification mode: Alert security desk on E911 calls
- Notification group: Teams group for alerts
- External location lookup: Third-party location services
- Enhanced emergency services: Dynamic E911 routing
Direct Routing Configuration
Direct Routing connects certified Session Border Controllers (SBCs) to Microsoft Teams for PSTN connectivity using existing carrier relationships.
SBC Configuration Requirements
Network Requirements:
- Public IP address for SBC
- Public FQDN with valid certificate
- SIP signaling port (5061 TLS)
- Media ports (UDP 49152-53247)
- Connectivity to Microsoft 365 endpoints
Configuration Steps:
- Register SBC FQDN in tenant
- Configure SBC with Microsoft peering
- Create voice routing policies
- Create PSTN usage records
- Create voice routes
- Assign policies to users
# PowerShell - Register SBC for Direct Routing
New-CsOnlinePSTNGateway -Fqdn sbc.contoso.com -SipSignalingPort 5061 -Enabled $true
# Create voice route
New-CsOnlineVoiceRoute -Identity "US-Route" -NumberPattern "^\+1(\d{10})$" -OnlinePstnGatewayList sbc.contoso.comCommon Area Phones
Deploy Teams phones in shared spaces like lobbies, conference rooms, and break rooms. Common Area Phones use dedicated licenses and simplified sign-in.
- Lobby Phone — Visitor check-in and reception calls. License: Common Area Phone
- Conference Room — Meeting dial-in and room calling. License: Teams Rooms Basic/Pro
- Hot Desk — User sign-in for temporary use. License: User Teams Phone
Best Practices
Implementation
- Start with pilot group before full rollout
- Configure E911 before enabling calling
- Document dial plans and voice routes
- Test call flows from multiple locations
- Train users on new calling features
Monitoring
- Monitor call quality in Call Quality Dashboard
- Review PSTN usage reports monthly
- Track agent performance for call queues
- Set up alerts for SBC health (Direct Routing)
- Audit voice policy assignments regularly
API Reference
# Get phone number assignments
GET /communications/cloudCommunications/phoneNumbers# Assign phone number to user
Set-CsPhoneNumberAssignment -Identity user@domain.com -PhoneNumber "+14255551234" -PhoneNumberType DirectRouting# OpsPilot365 API - Bulk voice provisioning
POST /api/teams/voice/provision
{
"tenantId": "tenant-guid",
"users": [
{ "userId": "user-1", "phoneNumber": "+14255551234", "voicePolicy": "US-Standard" }
],
"validateOnly": false
}