EasyUC for Microsoft Teams
Teams Direct Routing from start to finish
End-to-end checklist from an empty system to the first call from Teams into an EasyUC script.
In EasyUC: EasyUC Teams → Teams → SBC Setup, then Teams Tenants
What it is for
This chapter leads through the whole setup of Microsoft Teams Direct Routing with EasyUC’s integrated SBC in a fixed order. At the end a Teams user calls a number and lands in an EasyUC script. Each stage refers to the chapter with the details.
For understanding: the Teams tenant sends calls to certain numbers over an encrypted SIP trunk to the SBC on the EasyUC server. The SBC hands them to the script that belongs to the number. There, announcements, menus, queues, agents or the attendant console take over. In the opposite direction EasyUC delivers calls to Teams users over the same trunk, for example to attendants with a Teams device.
From Teams the SBC accepts only calls to script numbers. The order is therefore: network, SBC, tenant, certificate, sign-in, script with number, trunk and voice routes, policy for the users, test call.
Prerequisites
- EasyUC is installed, the licence module
teamsis present and switched on in the EasyUC Manager. - An EasyUC user with the role EasyUC Teams (
ROLE_APP_TEAMS_WORKSPACE) and the sub-permissions SBC bearbeiten, TENANTS bearbeiten and SCRIPTS bearbeiten. - A fixed public IPv4 address and access to firewall and NAT.
- Access to the public DNS zone of the customer domain.
- An administrator of the Microsoft 365 tenant: for the domain, for an app registration with admin consent and with the Teams Administrator role.
- Teams users with a Teams Phone licence and Enterprise Voice for the test.
Step by step, stage 1: Prepare network and DNS
Step by step, stage 2: Enable the SBC
Step by step, stage 3: Create the tenant and get the certificate
Step by step, stage 4: Store the Microsoft access
Step by step, stage 5: Create a script with a Teams number
Step by step, stage 6: Set up the trunk and voice routes in Teams
Step by step, stage 7: Assign numbers and make the test call
Fields and options
| Field / action | Meaning and use |
|---|---|
| Hostname | One name per tenant in the customer’s domain, for example sbc.kunde.de. |
| Public IP / Media IP | Outer address for Microsoft and local address for RTP. |
| TLS port | Default 5061, the next free port for each further tenant. |
| RTP range | Default UDP 20000 to 20999. |
| Certificate | Let’s Encrypt over DNS-01, by hand with a TXT record or automatically with Cloudflare. |
| Graph permissions | User.Read.All, Presence.Read.All, TeamworkDevice.Read.All; for the app sign-in to Teams PowerShell Organization.Read.All and the Teams Administrator directory role; for presence sync Presence.ReadWrite.All. |
| Objects in Teams | PSTN gateway, PSTN usage, voice route and voice routing policy, named EasyUC- plus the first label of the hostname. |
| Script number | International format with a leading +, exactly one script per number per tenant. |
| Further tenants | Repeat stages 1 and 3 to 7 per customer with its own hostname and its own TLS port. Stage 2 applies to all tenants together. |
Check the result and narrow down errors
- Success: certificate valid, trunk active, Last OPTIONS current, script Reachable, Routes in Teams Up to date, and the test call reaches the greeting.
- The SBC service does not report in: check stage 2 and the service in the EasyUC Manager.
- The certificate stays on DNS entry required: the TXT record is not yet publicly visible or has an old value.
- „Microsoft kennt die Domain dieses SBC-Namens in diesem Tenant nicht.“ Verify the domain in the Microsoft 365 tenant (stage 1).
- The trunk stays down: check the firewall for the inbound TLS port and outbound TCP 5061, environment production instead of staging, hostname exactly as in the certificate.
- Teams reports an error immediately when dialling and the call is missing from the call history: the user lacks the EasyUC policy, or Teams has not applied it yet.
- The call is in the history but is rejected: the number does not belong to any active script of this tenant. Check Scripts over this trunk on the tenant page.
- The call is answered but there is no audio: check public IP, media IP and the UDP rule.
- For numbers from Operator Connect a separate path applies: chapter “Operator Connect through Teams forwarding”.
Related chapters
- DNS, public IP and firewall for the SBC
- Enable the Teams SBC and set the network details
- Create and manage a Teams tenant
- SBC certificate per tenant
- Graph access and Teams admin sign-in
- Make a script reachable via Microsoft Teams
- Set up the trunk and voice routes in Teams
- Teams number plan and number assignment
- Teams calls, SIP flow and captures