Interoperable Vendors


© 2021 Ribbon Communications Operating Company, Inc. © 2021 ECI Telecom Ltd. All rights reserved. The compilation (meaning the collection, arrangement and assembly) of all content on this site is protected by U.S. and international copyright laws and treaty provisions and may not be used, copied, reproduced, modified, published, uploaded, posted, transmitted or distributed in any way, without prior written consent of Ribbon Communications Inc.

The trademarks, logos, service marks, trade names, and trade dress (“look and feel”) on this website, including without limitation the RIBBON and RIBBON logo marks, are protected by applicable US and foreign trademark rights and other proprietary rights and are the property of Ribbon Communications Operating Company, Inc. or its affiliates. Any third-party trademarks, logos, service marks, trade names and trade dress may be the property of their respective owners.  Any uses of the trademarks, logos, service marks, trade names, and trade dress without the prior written consent of Ribbon Communications Operating Company, Inc., its affiliates, or the third parties that own the proprietary rights, are expressly prohibited.


Document Overview

This document provides the configuration snapshot of the interoperability performed between Ribbon's SWe Core on Azure with Microsoft Teams Direct Routing.




This guide contains the following configuration sections: 

Section A: SLB Configuration

  • This section provides configuration details required to setup an SLB on an Azure environment.

Section B: SBC Core Configuration

  • This section provides configuration details required to setup an SWe Core on an Azure environment. 


Scope

This document provides configuration best practices for deploying Ribbon's SWe Core on Azure with Microsoft Teams Direct Routing, providing fail over and load balancing functionality with Ribbon's new SLB (SIP load balance). Note, these are configuration best practices and each customer may have unique needs and networks. Ribbon recommends that customers work with network design and deployment engineers to establish the network design which best meets their requirements. 

Non-Goals

It is not the goal of this guide to provide detailed configurations that will meet the requirements of every customer. Use this guide as a starting point and build the SBC configurations in consultation with network design and deployment engineers.

Audience

This is a technical document intended for telecommunications engineers with the purpose of configuring both the Ribbon SBC Core and the third-party product.

Steps will require navigating the third-party product as well as the Ribbon product using graphical user interface (GUI) or command line interface (CLI).
Understanding of the basic concepts of TCP/UDP/TLS, IP/Routing, and SIP/RTP/SRTP is needed to complete the configuration and any necessary troubleshooting.


Prerequisites

Before starting configuration, ensure that the following prerequisites are fulfilled:

  • To enable direct routing, a Microsoft Phone System license is installed in MS Teams. For more information on Microsoft's licensing requirements, refer to https://docs.microsoft.com/en-us/microsoftteams/direct-routing-plan#licensing-and-other-requirements.
  • Signaling Encryption and Media Encryption licenses are installed on the SBC.
  • For multi-tenant MS Teams deployment, Advance ERE or PSX Access licenses are installed on the SBC. Basic ERE is sufficient for single-tenant MS Teams deployment. For playing ring back tones without DSP licenses, refer to the section "Configure Ring Back Tone (without DSP)".

Licensing 

Microsoft TEAMS Licenses for Direct Routing

A Microsoft Phone System license is needed on MS Teams to enable direct routing. Refer to Microsoft documentation for Microsoft licensing requirements.


SBC Licensing for MS TEAMS Deployment




Product and Device Details


Equipment/ ProductSoftware Version
Ribbon Communications

Ribbon SWe Core

Ribbon SWe SLB

Ribbon HFE

V09.01.00-A010

V09.01.00-S401

UbuntuServer:18.04-LTS

Third-Party Products

Microsoft Teams

Microsoft Teams Client

v.2020.9.5.3 i.USEA.4

1.3.00.21956



The aforementioned software versions were tested during the interop. Later software versions will also support this topology. 


Network Topology Diagram

Deployment Topology




Section A: SLB Configuration

Understanding Meta Variable

In cloud SBC, meta variables are logical mapping of properties of the virtual network interfaces of SBC. Each interface created for the SBC will mapped with a meta variable properties of the defined group allocated in the cloud space. These meta variable will be used while configuring ipInterfaceGroups and sipSigPorts. An example is given below:


Requirements

admin@vsbc1-10.1.2.223> show table system metaVariable

CE NAME           NAME                  VALUE

--------------------------------------------------------

vsbc1-10.1.2.223  IF0.GWV4            10.1.1.1

vsbc1-10.1.2.223  IF0.IPV4              10.1.1.7

vsbc1-10.1.2.223  IF0.Port               Mgt0

vsbc1-10.1.2.223  IF0.RNat             True

vsbc1-10.1.2.223  IF1.GWV4           10.1.2.1

vsbc1-10.1.2.223  IF1.IPV4              10.1.2.223

vsbc1-10.1.2.223  IF1.Port               Ha0

vsbc1-10.1.2.223  IF1.RNat             True

vsbc1-10.1.2.223  IF2.GWV4           10.1.5.1

vsbc1-10.1.2.223  IF2.IPV4              10.1.5.6

vsbc1-10.1.2.223  IF2.Port               Pkt0

vsbc1-10.1.2.223  IF2.RNat             True

vsbc1-10.1.2.223  IF3.GWV4           10.1.6.1

vsbc1-10.1.2.223  IF3.IPV4              10.1.6.6

vsbc1-10.1.2.223  IF3.Port               Pkt1

vsbc1-10.1.2.223  IF3.RNat             True

vsbc1-10.1.2.223  IF0.FIPV4            52.188.153.52

vsbc1-10.1.2.223  IF0.PrefixV4          24

vsbc1-10.1.2.223  IF1.PrefixV4          24

vsbc1-10.1.2.223  IF2.PrefixV4          24

vsbc1-10.1.2.223  IF3.PrefixV4          24

vsbc1-10.1.2.223  HFE_IF2.FIPV4      13.92.45.35

vsbc1-10.1.2.223  HFE_IF3.FIPV4       10.1.4.7

vsbc1-10.1.2.223  HFE_IF2.IFName    IF_HFE_PKT0

vsbc1-10.1.2.223  HFE_IF3.IFName    IF_HFE_PKT1

vsbc1-10.1.2.223  secondaryIPList.Pkt0  ['10.1.5.6']

vsbc1-10.1.2.223  secondaryIPList.Pkt1  ['10.1.6.6']

vsbc2-10.1.2.214  IF0.GWV4              10.1.1.1

vsbc2-10.1.2.214  IF0.IPV4                 10.1.1.8

vsbc2-10.1.2.214  IF0.Port                  Mgt0

vsbc2-10.1.2.214  IF0.RNat                True

vsbc2-10.1.2.214  IF1.GWV4              10.1.2.1

vsbc2-10.1.2.214  IF1.IPV4                10.1.2.214

vsbc2-10.1.2.214  IF1.Port                 Ha0

vsbc2-10.1.2.214  IF1.RNat               True

vsbc2-10.1.2.214  IF2.GWV4             10.1.5.1

vsbc2-10.1.2.214  IF2.IPV4               10.1.5.6

vsbc2-10.1.2.214  IF2.Port               Pkt0

vsbc2-10.1.2.214  IF2.RNat             True

vsbc2-10.1.2.214  IF3.GWV4           10.1.6.1

vsbc2-10.1.2.214  IF3.IPV4              10.1.6.6

vsbc2-10.1.2.214  IF3.Port               Pkt1

vsbc2-10.1.2.214  IF3.RNat             True

vsbc2-10.1.2.214  IF0.FIPV4            52.249.176.238

vsbc2-10.1.2.214  IF0.PrefixV4          24

vsbc2-10.1.2.214  IF1.PrefixV4          24

vsbc2-10.1.2.214  IF2.PrefixV4          24

vsbc2-10.1.2.214  IF3.PrefixV4          24

vsbc2-10.1.2.214  HFE_IF2.FIPV4      13.92.45.35

vsbc2-10.1.2.214  HFE_IF3.FIPV4       10.1.4.7

vsbc2-10.1.2.214  HFE_IF2.IFName     IF_HFE_PKT0

vsbc2-10.1.2.214  HFE_IF3.IFName     IF_HFE_PKT1

vsbc2-10.1.2.214  secondaryIPList.Pkt0  ['10.1.5.7']

vsbc2-10.1.2.214  secondaryIPList.Pkt1  ['10.1.6.7']


Create IP Interface Group

Create an IP Interface Group with specific meta variables.


set addressContext default ipInterfaceGroup LIF1 ipInterface PKT0_V4 portName pkt0
set addressContext default ipInterfaceGroup LIF1 ipInterface PKT0_V4 ipVarV4 IF2.IPV4
set addressContext default ipInterfaceGroup LIF1 ipInterface PKT0_V4 prefixVarV4 IF2.PrefixV4
set addressContext default ipInterfaceGroup LIF1 ipInterface PKT0_V4 ipPublicVarV4 HFE_IF2.FIPV4
set addressContext default ipInterfaceGroup LIF1 ipInterface PKT0_V4 mode inService
set addressContext default ipInterfaceGroup LIF1 ipInterface PKT0_V4 state enabled
commit
set addressContext default ipInterfaceGroup LIF2 ipInterface PKT1_V4 portName pkt1
set addressContext default ipInterfaceGroup LIF2 ipInterface PKT1_V4 ipVarV4 IF3.IPV4
set addressContext default ipInterfaceGroup LIF2 ipInterface PKT1_V4 prefixVarV4 IF3.PrefixV4
set addressContext default ipInterfaceGroup LIF2 ipInterface PKT1_V4 ipPublicVarV4 HFE_IF3.FIPV4
set addressContext default ipInterfaceGroup LIF2 ipInterface PKT1_V4 mode inService
set addressContext default ipInterfaceGroup LIF2 ipInterface PKT1_V4 state enabled
commit

Create Static Route

Create a default route for the destination IP to enter the network through a particular interface.

Use gateway IP address of associated network interface.  

set addressContext default staticRoute 0.0.0.0 0 10.1.5.1 LIF1 PKT0_V4 preference 100
set addressContext default staticRoute 0.0.0.0 0 10.1.6.1 LIF2 PKT1_V4 preference 100
commit


PSTN Configuration

Define zone, interfaces and sipSigport use by SLB to communicate with PSTN network.


Create Zone

This Zone groups the set of objects used to communicate to PSTN.


set addressContext default zone PSTN_ZONE id 4
commit


Create SIP Signaling Port

Define the SIP Signaling port, which is a logical address permanently bound to a specific zone, that sends and receives SIP call signaling packets.


set addressContext default zone PSTN_ZONE id 4
set addressContext default zone PSTN_ZONE sipSigPort 4 ipInterfaceGroupName LIF1
set addressContext default zone PSTN_ZONE sipSigPort 4 portNumber 5060
set addressContext default zone PSTN_ZONE sipSigPort 4 transportProtocolsAllowed sip-udp
set addressContext default zone PSTN_ZONE sipSigPort 4 ipVarV4 IF2.IPV4
set addressContext default zone PSTN_ZONE sipSigPort 4 ipPublicVarV4 HFE_IF2.FIPV4
set addressContext default zone PSTN_ZONE sipSigPort 4 mode inService
set addressContext default zone PSTN_ZONE sipSigPort 4 state enabled
commit


SBC Configuration

Define zone, interfaces and sipSigport use by SLB to communicate with SBC. 


Create Zone

This Zone groups the set of objects used to communicate towards SBC.


set addressContext default zone SBC_ZONE id 6
commit



Create SIP Signaling Port

Define the SIP Signaling port, which is a logical address permanently bound to a specific zone, that sends and receives SIP call signaling packets.

set addressContext default zone SBC_ZONE sipSigPort 6 ipInterfaceGroupName LIF2
set addressContext default zone SBC_ZONE sipSigPort 6 portNumber 5060
set addressContext default zone SBC_ZONE sipSigPort 6 transportProtocolsAllowed sip-udp,sip-tcp
set addressContext default zone SBC_ZONE sipSigPort 6 ipVarV4 IF3.IPV4
set addressContext default zone SBC_ZONE sipSigPort 6 ipPublicVarV4 HFE_IF3.FIPV4
set addressContext default zone SBC_ZONE sipSigPort 6 mode inService
set addressContext default zone SBC_ZONE sipSigPort 6 state enabled
commit

TEAMS Configuration


Create Zone

This Zone groups the set of objects used to communicate towards TEAMS.


set addressContext default zone TEAMS_ZONE id 5
commit


Create SIP Signaling Port

Define the SIP signaling port, which is a logical address permanently bound to a specific zone, that sends and receives SIP call signaling packets.


set addressContext default zone TEAMS_ZONE id 5
set addressContext default zone TEAMS_ZONE sipSigPort 5 ipInterfaceGroupName LIF1
set addressContext default zone TEAMS_ZONE sipSigPort 5 portNumber 5070
set addressContext default zone TEAMS_ZONE sipSigPort 5 transportProtocolsAllowed sip-udp,sip-tcp,sip-tls-tcp
set addressContext default zone TEAMS_ZONE sipSigPort 5 ipVarV4 IF2.IPV4
set addressContext default zone TEAMS_ZONE sipSigPort 5 ipPublicVarV4 HFE_IF2.FIPV4
set addressContext default zone TEAMS_ZONE sipSigPort 5 mode inService
set addressContext default zone TEAMS_ZONE sipSigPort 5 state enabled
commit


Adding TLS Profile on SipSigPort


For information related to TLS certificate generation and adding it in SBC, refer to the following page on Ribbon's website - https://doc.rbbn.com/display/ALLDOC/SBC+8.2+-+Configure+SBC+for+TLS



set addressContext default zone TEAMS_ZONE sipSigPort 5 mode outOfService
set addressContext default zone TEAMS_ZONE sipSigPort 5 state disable
set addressContext default zone TEAMS_ZONE sipSigPort 5 tlsProfileName TLS_PROF
set addressContext default zone TEAMS_ZONE sipSigPort 5 mode inService
set addressContext default zone TEAMS_ZONE sipSigPort 5 state enabled
commit


Create Common Interface

Create common interface on SLB to communicate with SBC. 


set system slb commInterface addressContext default
set system slb commInterface ipInterfaceGroup LIF2
set system slb commInterface pktIpVar IF3.IPV4
commit


Section B: SBC Configuration


Create IP Interface Group


Provide ceName used during the SBC deployment.


set addressContext default ipInterfaceGroup LIF1 ipInterface PKT0_V4 ceName vsbcSystem
set addressContext default ipInterfaceGroup LIF1 ipInterface PKT0_V4 portName pkt0
set addressContext default ipInterfaceGroup LIF1 ipInterface PKT0_V4 ipVarV4 IF2.IPV4
set addressContext default ipInterfaceGroup LIF1 ipInterface PKT0_V4 prefixVarV4 IF2.PrefixV4
set addressContext default ipInterfaceGroup LIF1 ipInterface PKT0_V4 ipPublicVarV4 IF2.FIPV4
set addressContext default ipInterfaceGroup LIF1 ipInterface PKT0_V4 mode inService
set addressContext default ipInterfaceGroup LIF1 ipInterface PKT0_V4 state enabled
commit
set addressContext default ipInterfaceGroup LIF2 ipInterface PKT1_V4 ceName vsbcSystem
set addressContext default ipInterfaceGroup LIF2 ipInterface PKT1_V4 portName pkt1
set addressContext default ipInterfaceGroup LIF2 ipInterface PKT1_V4 ipVarV4 IF3.IPV4
set addressContext default ipInterfaceGroup LIF2 ipInterface PKT1_V4 prefixVarV4 IF3.PrefixV4
set addressContext default ipInterfaceGroup LIF2 ipInterface PKT1_V4 mode inService
set addressContext default ipInterfaceGroup LIF2 ipInterface PKT1_V4 state enabled
commit



Create DNS group

Create DNS group and attach it to specific zone.

set addressContext default dnsGroup EXT_DNS type ip
set addressContext default dnsGroup EXT_DNS interface LIF2
set addressContext default dnsGroup EXT_DNS server DNS2 state enabled
set addressContext default dnsGroup EXT_DNS server DNS2 ipAddress 8.8.8.8
commit


Registering SBC with SLB

Enabling SLB usage on SBC.

set system slb usage enable
commit

Define the common ipInterfaceGroup interface and its corresponding meta variable.

set system slb commInterface addressContext default ipInterfaceGroup LIF2 pktIpVar IF3.IPV4
commit

Replace "x.x.x.x" with the public IP address of the meta variable of LIF2 interface of SLB. 

set system slb slbAddress default ipAddress x.x.x.x
commit

Configure RTCP for Media

Configure the RTCP report interval.

set system media mediaRtcpControl senderReportInterval 5
set system media mediaRtcpControl sendBYEPacket disabled
commit


Configure Ring Back Tone (without DSP)

Configure Ring back tones to play on certain codecs, even though DSP cards/licenses are not available.

set profiles media toneCodecEntry g711u codec g711 law ULaw
commit
set profiles media toneAsAnnouncementProfile toneType defRing codecType g711u segmentId 20001
commit

Configure SIP Domain

Configure the global SIP domain name.

The SBC performs a failover to another Office 365 site when the primary data center site is down. Currently, Microsoft Office 365 uses the following sites.

set global sipDomain SIP.PSTNHUB.MICROSOFT.COM
set global sipDomain SIP2.PSTNHUB.MICROSOFT.COM
set global sipDomain SIP3.PSTNHUB.MICROSOFT.COM
commit

Create a Local Ring Back Tone

Create a Local Ring Back Tone (LRBT) profile that is attached to the Teams side and the PSTN side.

If DSP cards/licenses are not available, set the flag announcementBasedTones to enable. Ensure that you execute the configuration described in the section "Ring Back Tone (without DSP)" in earlier section.

set profiles media toneAndAnnouncementProfile LRBT_PROF
set profiles media toneAndAnnouncementProfile LRBT_PROF localRingBackTone signalingTonePackageState enable makeInbandToneAvailable enable
set profiles media toneAndAnnouncementProfile LRBT_PROF localRingBackTone flags useThisLrbtForIngress enable
set profiles media toneAndAnnouncementProfile LRBT_PROF localRingBackTone flags dynamicLRBT enable
commit

Create Codec Entry

Create a Codec Entry with the supported codec and packet size of 20.

set profiles media codecEntry G711-default dtmf relay rfc2833
set profiles media codecEntry G711-default packetSize 20
commit

Element Routing Priority

Create an Element Routing Priority profile by assigning the highest priority to the 'Entity Type' Trunk Group for all required Call Types.


set profiles callRouting elementRoutingPriority TEAMS entry _private 1 entityType none
set profiles callRouting elementRoutingPriority TEAMS entry nationalOperator 1 entityType none
set profiles callRouting elementRoutingPriority TEAMS entry localOperator 1 entityType none
set profiles callRouting elementRoutingPriority TEAMS entry nationalType 1 entityType trunkGroup
set profiles callRouting elementRoutingPriority TEAMS entry nationalType 2 entityType none
set profiles callRouting elementRoutingPriority TEAMS entry internationalType 1 entityType none
set profiles callRouting elementRoutingPriority TEAMS entry internationalOperator 1 entityType none
set profiles callRouting elementRoutingPriority TEAMS entry longDistanceOperator 1 entityType none
set profiles callRouting elementRoutingPriority TEAMS entry ipVpnService 1 entityType none
set profiles callRouting elementRoutingPriority TEAMS entry test 1 entityType none
set profiles callRouting elementRoutingPriority TEAMS entry transit 1 entityType none
set profiles callRouting elementRoutingPriority TEAMS entry otherCarrierChosen 1 entityType none
set profiles callRouting elementRoutingPriority TEAMS entry carrierCutThrough 1 entityType none
set profiles callRouting elementRoutingPriority TEAMS entry userName 1 entityType trunkGroup
set profiles callRouting elementRoutingPriority TEAMS entry userName 2 entityType none
set profiles callRouting elementRoutingPriority TEAMS entry mobile 1 entityType none
commit


PSTN Configuration

Create Zone

A Zone groups the set of objects used to communicate to PSTN.


Provide same zone name and id as configured in SLB. 


set addressContext default zone PSTN_ZONE id 4
commit


Create sipSigPort

Create the SIP Signaling port with same ID and SLB name that is configured in the SLB.


set addressContext default zone PSTN_ZONE sipSigPort 4 slbName default
commit

Create IP Signaling Profile

Create an IP Signaling Profile for the PSTN side. The IPSP is specified within the SIP Trunk Group configuration.

set profiles signaling ipSignalingProfile PSTN_IPSP ipProtocolType sipOnly
set profiles signaling ipSignalingProfile PSTN_IPSP commonIpAttributes flags includeReasonHeader enable
set profiles signaling ipSignalingProfile PSTN_IPSP commonIpAttributes flags includeTransportTypeInContactHeader enable
set profiles signaling ipSignalingProfile PSTN_IPSP commonIpAttributes flags minimizeRelayingOfMediaChangesFromOtherCallLegAll enable
set profiles signaling ipSignalingProfile PSTN_IPSP commonIpAttributes flags relayDataPathModeChangeFromOtherCallLeg enable
set profiles signaling ipSignalingProfile PSTN_IPSP commonIpAttributes flags sendPtimeInSdp enable
set profiles signaling ipSignalingProfile PSTN_IPSP commonIpAttributes flags lockDownPreferredCodec enable
set profiles signaling ipSignalingProfile PSTN_IPSP egressIpAttributes flags disable2806Compliance enable
commit

Create Packet Service Profile

Create a Packet Service Profile for TEAMS, and attach it to the PSTN Trunk Group.

set profiles media packetServiceProfile PSTN_PSP
set profiles media packetServiceProfile PSTN_PSP codec codecEntry1 G711-default
set profiles media packetServiceProfile PSTN_PSP rtcpOptions rtcp disable
set profiles media packetServiceProfile PSTN_PSP preferredRtpPayloadTypeForDtmfRelay 101
set profiles media packetServiceProfile PSTN_PSP silenceInsertionDescriptor g711SidRtpPayloadType 13 heartbeat enable
commit

Create SIP Trunk Group

Configure the SIP Trunk Group with additional configurations like LRBTERPPSP, and IPSP created in previous steps.

set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG media mediaIpInterfaceGroupName LIF1
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG ingressIpPrefix 0.0.0.0 0
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG downstreamForkingSupport enabled
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG policy carrier 0000
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG policy country 1
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG policy localizationVariant northAmerica
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG policy tgIPVersionPreference both-ipv4-and-ipv6
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG policy preferredIdentity disable
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG policy digitParameterHandling numberingPlan NANP_ACCESS
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG policy callRouting elementRoutingPriority DEFAULT_IP
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG policy media packetServiceProfile PSTN_PSP
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG policy media toneAndAnnouncementProfile LRBT_PROF
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG policy services classOfService DEFAULT_IP
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG policy signaling ipSignalingProfile PSTN_IPSP
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG policy featureControlProfile DEFAULT_IP
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG policy ingress flags nonZeroVideoBandwidthBasedRoutingForSip enable
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG policy ingress flags nonZeroVideoBandwidthBasedRoutingForH323 disable
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG policy ingress flags hdPreferredRouting disable
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG policy ingress flags hdSupportedRouting disable
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG signaling methods notify allow
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG signaling rel100Support enabled
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG signaling relayNonInviteRequest enabled
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG signaling honorMaddrParam enabled
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG services dnsSupportType a-only
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG state enabled
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG mode inService
commit

IP Peer towards PSTN

Replace the x.x.x.x with the IP address provided by your SIP Trunk provider.

set addressContext default zone PSTN_ZONE ipPeer PSTN_IPP ipAddress x.X.X.X ipPort 5060
commit

TEAMS Configuration

Create Zone

This Zone groups the set of objects used to communicate to MS TEAMS. Configure the domain name (for example, sbc-fqdn.domain.com)


Provide the same Zone name and ID as configured in the SLB. 

set addressContext default zone TEAMS_ZONE id 5
commit

Create sipSigPort

Create the SIP Signaling port with same ID and SLB name that is configured in the SLB.

set addressContext default zone TEAMS_ZONE sipSigPort 5 slbName default
commit

Create IP Signaling Profile

Create an IP Signaling Profile for the Teams side. The IPSP is specified within the SIP Trunk Group configuration.

set profiles signaling ipSignalingProfile TEAMS_IPSP ipProtocolType sipOnly
set profiles signaling ipSignalingProfile TEAMS_IPSP commonIpAttributes flags includeReasonHeader enable
set profiles signaling ipSignalingProfile TEAMS_IPSP commonIpAttributes flags includeTransportTypeInContactHeader enable
set profiles signaling ipSignalingProfile TEAMS_IPSP commonIpAttributes flags routeUsingRecvdFqdn enable
set profiles signaling ipSignalingProfile TEAMS_IPSP commonIpAttributes flags sendPtimeInSdp enable
set profiles signaling ipSignalingProfile TEAMS_IPSP commonIpAttributes flags sendRtcpPortInSdp enable
set profiles signaling ipSignalingProfile TEAMS_IPSP commonIpAttributes flags storePChargingVector enable
set profiles signaling ipSignalingProfile TEAMS_IPSP commonIpAttributes flags publishIPInHoldSDP enable
set profiles signaling ipSignalingProfile TEAMS_IPSP commonIpAttributes relayFlags statusCode4xx6xx enable
set profiles signaling ipSignalingProfile TEAMS_IPSP commonIpAttributes flags minimizeRelayingOfMediaChangesFromOtherCallLegAll enable
set profiles signaling ipSignalingProfile TEAMS_IPSP commonIpAttributes flags relayDataPathModeChangeFromOtherCallLeg enable
set profiles signaling ipSignalingProfile TEAMS_IPSP commonIpAttributes optionTagInRequireHeader suppressReplaceTag enable
set profiles signaling ipSignalingProfile TEAMS_IPSP egressIpAttributes numberGlobalizationProfile DEFAULT_IP
set profiles signaling ipSignalingProfile TEAMS_IPSP egressIpAttributes flags disable2806Compliance enable
set profiles signaling ipSignalingProfile TEAMS_IPSP egressIpAttributes domainName useIpSignalingPeerDomainInRequestUri enable
set profiles signaling ipSignalingProfile TEAMS_IPSP egressIpAttributes domainName useSipDomainInPAIHeader enable
set profiles signaling ipSignalingProfile TEAMS_IPSP egressIpAttributes domainName useSipDomainNameInFromField enable
set profiles signaling ipSignalingProfile TEAMS_IPSP egressIpAttributes domainName useZoneLevelDomainNameInContact enable
set profiles signaling ipSignalingProfile TEAMS_IPSP egressIpAttributes privacy transparency disable
set profiles signaling ipSignalingProfile TEAMS_IPSP egressIpAttributes privacy privacyInformation pPreferredId
set profiles signaling ipSignalingProfile TEAMS_IPSP egressIpAttributes privacy flags includePrivacy enable
set profiles signaling ipSignalingProfile TEAMS_IPSP egressIpAttributes privacy flags privacyRequiredByProxy disable
set profiles signaling ipSignalingProfile TEAMS_IPSP egressIpAttributes privacy flags msLyncPrivacySupport enable
set profiles signaling ipSignalingProfile TEAMS_IPSP egressIpAttributes redirect flags forceRequeryForRedirection enable
set profiles signaling ipSignalingProfile TEAMS_IPSP egressIpAttributes transport type1 tlsOverTcp
set profiles signaling ipSignalingProfile TEAMS_IPSP ingressIpAttributes flags sendSdpIn200OkIf18xReliable enable
commit

Create Packet Service Profile

Create a Packet Service Profile for Teams, and attach it to the TEAMS Trunk Group.

set profiles media packetServiceProfile TEAMS_PSP
set profiles media packetServiceProfile TEAMS_PSP codec codecEntry1 G711SS-DEFAULT
set profiles media packetServiceProfile TEAMS_PSP rtcpOptions rtcp enable terminationForPassthrough enable
set profiles media packetServiceProfile TEAMS_PSP preferredRtpPayloadTypeForDtmfRelay 101
set profiles media packetServiceProfile TEAMS_PSP silenceInsertionDescriptor g711SidRtpPayloadType 13 heartbeat enable
set profiles media packetServiceProfile TEAMS_PSP secureRtpRtcp flags enableSrtp enable
set profiles media packetServiceProfile TEAMS_PSP secureRtpRtcp flags allowFallback enable
set profiles media packetServiceProfile TEAMS_PSP secureRtpRtcp cryptoSuiteProfile CRYPT_PROF
commit

Create SIP Trunk Group

Configure the SIP Trunk Group with additional configurations like LRBTERPPSP, and IPSP created in the previous steps.

set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG media mediaIpInterfaceGroupName LIF1
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG ingressIpPrefix 0.0.0.0 0
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG downstreamForkingSupport enabled
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG policy carrier 0000
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG policy country 1
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG policy localizationVariant northAmerica
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG policy tgIPVersionPreference both-ipv4-and-ipv6
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG policy preferredIdentity disable
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG policy digitParameterHandling numberingPlan NANP_ACCESS
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG policy callRouting elementRoutingPriority TEAMS
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG policy media packetServiceProfile TEAMS_PSP
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG policy media toneAndAnnouncementProfile LRBT_PROF
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG policy services classOfService DEFAULT_IP
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG policy signaling ipSignalingProfile TEAMS_IPSP
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG policy featureControlProfile DEFAULT_IP
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG policy ingress flags nonZeroVideoBandwidthBasedRoutingForSip enable
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG policy ingress flags nonZeroVideoBandwidthBasedRoutingForH323 disable
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG policy ingress flags hdPreferredRouting disable
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG policy ingress flags hdSupportedRouting disable
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG signaling methods notify allow
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG signaling rel100Support enabled
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG signaling relayNonInviteRequest enabled
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG signaling honorMaddrParam enabled
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG services dnsSupportType a-only
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG state enabled
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG mode inService
commit

Create PathCheck Profile

Create and attach a Path Check Profile to the Teams side.

set profiles services pathCheckProfile TEAMS_OPTIONS protocol sipOptions sendInterval 20 replyTimeoutCount 1 recoveryCount 1
set profiles services pathCheckProfile TEAMS_OPTIONS transportPreference preference1 tls-tcp
commit

Create IP Peer towards MS TEAMS

Create an IP Peer for all three sites configured as global SIP Domain names, and attach it to the Path Check Profile.

set addressContext default zone TEAMS_ZONE ipPeer TEAMS_PEER1 policy sip fqdn sip.pstnhub.microsoft.com fqdnPort 5060
set addressContext default zone TEAMS_ZONE ipPeer TEAMS_PEER2 policy sip fqdn sip2.pstnhub.microsoft.com fqdnPort 5060
set addressContext default zone TEAMS_ZONE ipPeer TEAMS_PEER3 policy sip fqdn sip3.pstnhub.microsoft.com fqdnPort 5060
commit
set addressContext default zone TEAMS_ZONE ipPeer TEAMS_PEER1 pathCheck profile TEAMS_OPTIONS
set addressContext default zone TEAMS_ZONE ipPeer TEAMS_PEER1 pathCheck profile TEAMS_OPTIONS hostName sip.pstnhub.microsoft.com hostPort 5060 state enabled
commit
set addressContext default zone TEAMS_ZONE ipPeer TEAMS_PEER2 pathCheck profile TEAMS_OPTIONS
set addressContext default zone TEAMS_ZONE ipPeer TEAMS_PEER2 pathCheck profile TEAMS_OPTIONS hostName sip2.pstnhub.microsoft.com hostPort 5060 state enabled
commit
set addressContext default zone TEAMS_ZONE ipPeer TEAMS_PEER3 pathCheck profile TEAMS_OPTIONS
set addressContext default zone TEAMS_ZONE ipPeer TEAMS_PEER3 pathCheck profile TEAMS_OPTIONS hostName sip3.pstnhub.microsoft.com hostPort 5060 state enabled
commit

Create Static Route 

Create a default route for the destination IP to enter the network through a particular interface.

Use gateway IP address of associated network interface.  

set addressContext default staticRoute 0.0.0.0 0 10.1.3.1 LIF1 PKT0_V4 preference 100
set addressContext default staticRoute 0.0.0.0 0 10.1.4.1 LIF2 PKT1_V4 preference 100
commit

Routing Label

Create a Routing Label with a single Routing Label Route to bind the Trunk Group with the specific IP Peer.

set global callRouting routingLabel PSTN_RL routingLabelRoute 1 trunkGroup PSTN_TG ipPeer PSTN_IPP inService inService
set global callRouting routingLabel TEAMS_RL routingLabelRoute 1 trunkGroup TEAMS_TG ipPeer TEAMS1_IPP inService inService
commit


Call Routing 


When call transfer is initiated by MS TEAMS (as per the TEAMS recommendation), the SBC sends the INVITE back to the same TEAMS entity from which it received the REFER.

MS TEAMS, in-turn, initiates a new call towards the referred entity.

For this purpose, Standard Route 3 and Username routing entities are configured.

Standard Route 1

Use this entry to allow the SBC to route all calls coming from MS TEAMS towards PSTN endpoints (irrespective of digits or FQDN).


set global callRouting route trunkGroup TEAMS_TG <sbcname> standard Sonus_NULL 1 all all ALL none Sonus_NULL routingLabel PSTN_RL
commit

Standard Route 2

Use this entry to allow the SBC to route all calls coming from PSTN endpoints towards different MS TEAMS tenant Trunk Groups, based on the called digits.


set global callRouting route none Sonus_NULL Sonus_NULL standard 2414445 1 all all ALL none Sonus_NULL routingLabel TEAMS_RL
commit


Standard Route 3

Use this entry to allow the SBC to route all calls towards the MS TEAMS after receiving REFER from the MS TEAMS , for a call transfer towards PSTN.

set global callRouting route trunkGroup TEAMS_TG <sbcname> standard Sonus_NULL Sonus_NULL all all ALL none SIP.PSTNHUB.MICROSOFT.COM routingLabel TEAMS_RL
commit

Username Routing

Use this entry to allow the SBC to route all calls towards the TEAMS  after receiving REFER from the TEAMS for a call transfer towards TEAMS.


set global callRouting route trunkGroup TEAMS_TG <sbcname> username Sonus_NULL Sonus_NULL all all ALL none SIP.PSTNHUB.MICROSOFT.COM routingLabel TEAMS_RL
commit

Adding Routes on Azure

  1. Login to Azure portal.
  2. Search for "Routing Table", Click on your SBC/SLB.
  3. Add routes for MS Teams IP, PSTN IP and DNS IP.



Whitelisting IPs on Network Security Group (NSG)


  1. Login to Azure portal.
  2. Search for "Virtual Machine", Click on your SBC/SLB.
  3. Click on "Networking". Under "Inbound port rule" add IPs for MS Teams, PSTN and DNS.
  4. Repeat the process for "Outbound port rules".

Supplementary Services & Features Coverage

The following checklist depicts the set of services/features covered through the configuration defined in this Interop Guide. 


Sr. No.Supplementary Services/ FeaturesCoverage
01.Teams To PSTN Calling

(tick)

02.PSTN To Teams Calling

(tick)

03Verification of Ringing & local Ringback Tone

(tick)

04Cancel Call

(tick)

05.Voicemail Deposit

(tick)

06.Early Media

(tick)

07.DTMF Using RFC2833

(tick)

08Call Forward No Answer

(tick)

09Call Forward Unconditional

(tick)

10.Call Forward Busy(tick)
11.Blind Transfer(tick)
12,Attendant Transfer(tick)
13.Call Park and Retrieval(tick)
14.Conferencing(tick)
15.Long duration call(tick)
16.Long Duration Hold and Resume(tick)
17. RTCP PassThrough(tick)
18.RTCP Generation(tick)
19.Comfort Noise PassThrough(tick)
20.Comfort Noise Generation(tick)
21.Simultaneous Ringing(tick)
22.Delegate Ringing(tick)
23.SLB High Availability & Load Sharing(tick)
24.Music on Hold(tick)

Legend

Supported

Not Supported


Support

For any support related queries about this guide, please contact your local Ribbon representative, or use the details below:

References

For detailed information about Ribbon products & solutions, please visit:

https://ribboncommunications.com/products

Conclusion

This configuration guide provides a definite approach for successfully configuring SWe Core on Azure environment with SLB & HFE support. This configuration is applicable to almost all major supplementary services & call flows using this topology.





© 2021 Ribbon Communications Operating Company, Inc. © 2021 ECI Telecom Ltd. All rights reserved.