Most enterprise organizations need both. Teams Phone for internal communications, direct dial numbers, and general employee calling. A contact center platform — Five9, Genesys, NiCE, TCN — for customer-facing queues, agent management, and campaign operations. The question is not which one to choose. It is how to run both without creating two separate voice infrastructures that each require their own carrier, their own number management, and their own operational overhead.

The answer is a shared carrier layer underneath both applications. One network, two applications, unified routing.


Why the Default Architecture Creates Problems

The path of least resistance is to deploy each application with its own carrier connectivity. Teams Phone on Operator Connect or a dedicated SIP trunk. The contact center on its own carrier relationship, often the one the platform vendor provides or recommends.

This works at the point of deployment. Over time, it creates compounding problems.

Number management becomes fragmented. Employee direct dial numbers live in one carrier relationship. Contact center queue numbers live in another. Porting a number from one environment to the other — say, repurposing a DID for a new contact center queue — requires inter-carrier coordination and often a full port. Something that should be a routing change becomes a carrier transaction.

Carrier costs are split across two agreements at lower individual volumes. The negotiating leverage that comes from consolidated traffic volume is lost. Organizations paying separate per-minute rates on two agreements are almost always paying more than they would on a single consolidated relationship.

Operational visibility is siloed. When something goes wrong — call quality issues, routing failures, answer rate problems — the Teams environment and the contact center environment each have their own diagnostic tools pointing at their own carrier paths. Correlating the problem across both requires effort that most IT and operations teams cannot spare in real time.

And when the contact center platform changes — which it does, as organizations evolve their customer engagement technology — the carrier infrastructure has to move with it.


How a Shared Carrier Layer Works

Both Teams Phone and the contact center connect to the same SBC, which connects to the same carrier network. The SBC handles the translation between each application's SIP requirements and the carrier. Routing rules in the SBC determine which application receives each inbound call and which carrier path each outbound call uses.

Numbers live in the carrier network, not in either application. A number assigned to a Teams user is a routing rule pointing to the Teams environment. A number assigned to a contact center queue is a routing rule pointing to the contact center. Changing that assignment is a routing update, not a carrier port.

This architecture supports scenarios that separate carrier relationships cannot. An overflow routing rule can redirect contact center overflow calls to Teams users without a handoff between carrier environments. A number can be repurposed from an employee DID to a contact center campaign queue without porting. Failover from the contact center to Teams — or from Teams to the contact center — can be configured at the network layer and triggered automatically when needed.

STIR/SHAKEN attestation is managed once, at the carrier layer, and applies consistently to traffic from both applications. Number reputation monitoring covers the full number inventory across both environments. Carrier analytics — 487 rates, early media signals, route performance — are visible across all traffic from a single instrumentation layer.


What Five9 and Teams on the Same Network Looks Like

Five9 is our most common contact center deployment alongside Teams Phone. As a Five9 2025 Global Partner of the Year, we have built this architecture across a range of enterprise environments.

Five9 connects to the SBC through a certified SIP trunk configuration. Teams connects through Direct Routing on the same SBC. The carrier serves both. End users on Teams notice nothing different. Five9 agents notice nothing different. What changes is the infrastructure underneath: one carrier relationship, one number pool managed centrally, one operational surface to maintain.

Number moves between Teams and Five9 become routing changes handled in minutes. Carrier costs consolidate under a single agreement. Call quality issues are diagnosed from one carrier-layer analytics view.


The Contact Center Migration Case

One of the most compelling use cases for a shared carrier layer is contact center platform migration. Organizations moving from one contact center to another — NiCE to Five9, Genesys to TCN — find the migration substantially simpler when the carrier layer is shared.

The numbers do not move. The carrier relationship does not change. The SBC routing rules update to point at the new platform. The migration scope is the application configuration, not the carrier infrastructure. That is a meaningfully smaller project than rebuilding from scratch.


The Bottom Line

Teams Phone and a contact center running on separate carrier relationships is the common architecture and the more expensive, less visible one. Running both on a shared carrier layer is the architecture that scales cleanly, reduces operational overhead, and makes every future application change cheaper than the last.

One network. Two applications. The carrier layer should not have to know or care which one is handling the call.