Direct Routing For Microsoft Phone System With Cisco Unified Border Element (CUBE) v12.8.0
Direct Routing For Microsoft Phone System With Cisco Unified Border Element (CUBE) v12.8.0
11 June, 2020
This application note describes a tested CUBE configuration for connecting Microsoft Phone System to
the PSTN using Verizon’s IP Trunking service. CUBE can be configured to connect with many service
providers offering SIP trunking services. Please refer to your service provider documentation and the
content provided at www.cisco.com/go/interoperability for guidance on how to adjust this tested
configuration to meet the specific requirements of your trunking service.
This document assumes the reader is knowledgeable with the terminology and configuration of Direct
Routing for Microsoft Phone System. Only CUBE configurations required for this tested solution are
presented. Feature configuration and most importantly the dial plan, are customer specific so must be
customized accordingly.
• This application note describes how to configure Direct Routing for Microsoft Phone System to the
PSTN (Verizon) via CUBE v12.8.0 [IOS-XE – 17.2.1r].
• Testing was performed in accordance with Direct Routing for Microsoft Phone System test
methodology with media bypass disabled and among features verified were – basic calls, DTMF
transport, blind transfer, consultative transfer, call forward, ad-hoc conference and hold/resume.
• The CUBE configuration detailed in this document is based on a lab environment that has been used
to detail the important settings required for successful interoperability with a simple dial plan.
Microsoft guidance for the configuration of call routing and policy in Phone System must be
followed to ensure calls compete as expected.
• The network topology includes the Microsoft Phone System, Teams client and CUBE. Microsoft
365 admin center is used to configure a gateway trunk associated with CUBE’s public FQDN.
Verizon was used as the service provider with a SIP trunk to CUBE using its public IP Address.
• SIP signaling used between CUBE and Microsoft Phone System Direct routing is over TLS and to
Verizon is over UDP transport.
Hardware
• A Cisco ISR 4321 router was used for this tested solution. Any CUBE platform may be used
though, (refer to https://www.cisco.com/go/cube) for more information.
• Microsoft Windows computer (to run Microsoft Teams client)
Software
• CUBE-Version: 12.8.0 [IOS-XE 17.2.1r]
• Microsoft Office 365 Tenant with Phone System license
• Microsoft Teams desktop client version 1.3.00.12058
• The Phone System tenant must be configured to generate ring back audio to the PSTN caller
during blind transfer.
• CUBE does not support RTCP multiplexing.
• CUBE will forward, but not generate RTCP.
• CUBE does not generate comfort noise (CN) towards Phone System clients when PSTN mutes
the call.
• Instructions for setting up the Ringback bot for Direct Routing can be found here
https://docs.microsoft.com/en-us/microsoftteams/direct-routing-ringback-bot
Prerequisites
The following is required before adding CUBE as a Direct Routing Session Bordering Controller:
Licensing
Ensure that the appropriate licenses are enabled for using CUBE and TLS. The following licenses are
required for an ISR4000 series platform. Refer to CUBE documentation for license requirements for
other platforms.
license boot level uck9
license boot level securityk9
IP Networking
Note: CUBE and service provider addresses used in this guide are fictional and provided for illustration
purposes only.
interface GigabitEthernet0/0/0
description towards Microsoft Phone System
ip address 192.0.2.2 255.255.255.0
!
interface GigabitEthernet0/0/1
description towards PSTN (Verizon)
ip address 203.0.113.2 255.255.255.0
Domain Name
Use the same domain name for the router as used for the Microsoft 365 tenant.
DNS Servers
DNS must be configured to resolve addresses for Microsoft Direct Routing servers.
NTP Servers
Configure a suitable NTP source to ensure that the correct time is used by the platform.
• AffirmTrust
• AddTrust External CA Root
• Baltimore CyberTrust Root
• Buypass
• Cybertrust
• Class 3 Public Primary Certification Authority
• Comodo Secure Root CA
• Deutsche Telekom
• DigiCert Global Root CA
• DigiCert High Assurance EV Root CA
• Entrust
• GlobalSign
• Go Daddy
• GeoTrust
• Verisign, Inc.
• Starfield
• Symantec Enterprise Mobile Root for Microsoft
• SwissSign
• Thawte Timestamping CA
• Trustwave
• TeliaSonera
• T-Systems International GmbH (Deutsche Telekom)
• QuoVadis
The following steps describe how to create and install a compatible certificate.
Authenticate CA Certificate
Enter the following command, then paste the CA certificate that verifies the host certificate into the
trust point (usually the intermediate certificate). Open the base 64 CER/PEM file with notepad, copy the
text, and paste it into the terminal when prompted:
Explanation
Command Description
ip address trusted list Allows traffic from Phone System and the PSTN. Refer to
Microsoft documentation for address and port information to
use for firewall configuration.
allow-connections sip to sip Allow back to back user agent connections between two SIP
call legs
rtcp-keepalive Enables CUBE to send RTCP keepalive packets for the session
keepalive
3. Replace CUBE IP address with Fully qualified domain names (FQDN) in both the ‘From’ and ‘Contact’
headers of INVITE and OPTIONS messages.
4. Set the audio SDP attribute to inactive instead of sendonly for calls on hold.
5. Set “user=phone” in all requests.
6. Add the “X-MS-SBC” header containing SBC version details in all request and response.
7. Set crypto life-time as 2^31 in all SDP sent from CUBE.
1. Handle REFER and ensure that the subsequent INVITE is sent to the correct Phone System proxy.
2. Add a routing prefix to the user part of REFER To header to direct the subsequent INVITE to
Microsoft Phone System
3. Remove “ice-candidates” in SDP request and response, which are not required when Media Bypass
is disabled.
4. Ensure that the correct platform ID is used, as described above.
SRTP crypto
Used to set the crypto cipher for the Microsoft Phone System trunk.
voice class srtp-crypto 1
crypto 1 AES_CM_128_HMAC_SHA1_80
Dial peers
Outbound Dial-peer to the PSTN using UDP with RTP:
dial-peer voice 100 voip
description outbound to PSTN
destination-pattern 21T
rtp payload-type comfort-noise 13
session protocol sipv2
session target ipv4:19.51.100.0:5088
voice-class codec 1
voice-class sip tenant 100
dtmf-relay rtp-nte
no vad
Outbound Dial-peer to Phone System for REFER using TLS with SRTP:
To correctly handle call transfers, INVITEs following a REFER from Phone System, must be directed back
to Phone System. Inbound REFER messages are processed by dial peer 290 and the associated SIP
Privacy Headers
Phone System can be configured to send privacy headers if required, using the following the command.
To forward the P-Asserted-Identity and Privacy headers sent from Phone System to the PSTN, add the
following configuration.
From: <sip:[email protected]>;tag=1E5FC8C-1642
If your service provider requires the same format, but with the original caller details from Phone System
in place, consider the following alternative configuration:
The following configuration contains a sample configuration of CUBE with all parameters detailed above.
sbc#sh run
Building configuration...
version 17.2
service timestamps debug datetime msec
service timestamps log datetime msec
service call-home
platform qfp utilization monitor load 80
no platform punt-keepalive disable-kernel-core
!
hostname sbc
!
boot-start-marker
boot system flash isr4300-universalk9.17.02.01r.SPA.bin
boot-end-marker
!
logging buffered 10000000
!
ip name-server 208.67.222.222 208.67.220.220
ip domain name example.com
!
crypto pki trustpoint sbc
enrollment terminal
fqdn sbc.example.com
subject-name cn=sbc.example.com
subject-alt-name sbc.example.com
revocation-check crl
rsakeypair sbc
!
crypto pki trustpoint ROOT
enrollment terminal
revocation-check none
!
Login into http://portal.office.com/ using your Microsoft 365 tenant administrator credentials
Select the Admin Icon in Office 365 to login Microsoft 365 Admin Center.
Select “Add a user” from the Microsoft 365 Admin Center as shown below
Enter the user details, password and assign required license to the users then Click Add
Select the Admin icon from the Microsoft 365 Admin center home page and navigate to Microsoft
Teams admin center as shown below
Select Users from the Microsoft Teams Admin Center to view the list of available users
Under user properties, navigate to Accounts and set the Teams upgrade mode to Teams only
Under user properties, navigate to Policies and set the Calling Policy as shown below. Here in the below
example custom policy “Busy on Busy enabled” is assigned to user. Procedure to create custom policy is
shown in the next section
Under user properties, navigate to Policies and set the Caller ID Policy as shown below. In this example,
caller ID policy “Anonymoustest” is assigned to user. The procedure to create a custom policy is shown
in the next section
Create calling policy to turn on Busy on Busy. Click save to complete the configuration
Enter the caller ID policy Name and select the “Replace the Caller ID with Anonymous”. Click save to
complete the configuration
Note: The following actions may also be completed using Microsoft Teams admin center.
Use the following commands to set DID and enable Enterprise Voice, Hosted Voicemail and LineURI for
Teams users.
Example:
After creating an Online PSTN Gateway use “Get-CsOnlinePstnGateway” command to view the online
PSTN gateway details. Gateway Identity must be a valid FQDN for the Microsoft 365 tenant to reach
CUBE.
For example:
Use the following command to view the settings for the new SBC.
For example:
PS C:\WINDOWS\system32> Get-CsOnlinePstnUsage
Identity : Global
Usage : {PSTN usage record Unrestricted}
For example:
For example:
Acronym Definitions
CUBE Cisco Unified Border Element
PSTN Public Switched Telephone Network
CN Comfort Noise
MS Teams Microsoft Teams
SBC Session Border Controller
THE SPECIFICATIONS AND INFORMATION REGARDING THE PRODUCTS IN THIS MANUAL ARE SUBJECT TO CHANGE
WITHOUT NOTICE. ALL STATEMENTS, INFORMATION, AND RECOMMENDATIONS IN THIS MANUAL ARE BELIEVED TO
BE ACCURATE BUT ARE PRESENTED WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. USERS MUST TAKE
FULL RESPONSIBILITY FOR THEIR APPLICATION OF ANY PRODUCTS. IN NO EVENT SHALL CISCOOR ITS SUPPLIERS BE
LIABLE FOR ANY INDIRECT, SPECIAL, CONSEQUENTIAL, OR INCIDENTAL DAMAGES, INCLUDING, WITHOUT
LIMITATION, LOST PROFITS OR LOSS OR DAMAGE TO DATA ARISING OUT OF THE USE OR INABILITY TO USE THIS
MANUAL, EVEN IF CISCOOR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES