Search

Page tree
Skip to end of metadata
Go to start of metadata
Table of Contents
 

 

 

 

Document Overview

This document outlines the configuration best practices for the SBC Core family (SBC 5110/5210/5400, SBC 7000, SBC SWe) when deployed with Microsoft TEAMS. The SBCs offer a choice of routing engines. Customers can choose the routing option on SBC-based deployment requirements.

  • Single-Tenant deployments – Any of the Basic ERE, Advanced-ERE or PSX can be used for single-tenant deployments
  • Multi-Tenant deployments – Advanced-ERE or PSX routing options required for multi-tenant deployments

 

Note

Use Basic ERE only for single-tenant deployments. A-ERE or PSX is required for any customer who is deploying or planning to deploy scalable multi-tenant TEAMS configuration.

 

A single IPTG referred to as 'Carrier Trunk’ is used between MS TEAMS and SBC for handling traffic for all tenants configured on the SBC. Customers can configure per tenant DummyTGs if CAC enforcement for each tenant is required.

This guide is laid out in the following sections: 

References


Scope

This document provides configuration best practices for deploying Core SBCs (SBC 5110/5210/5400, SBC 7000, SBC SWe) with Microsoft® Teams. It includes configuration recommendations for available routing choices like basic ERE, Advanced ERE, and PSX on the SBC. 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 and the third-party product. Navigating the third-party product as well as the Ribbon SBC Command Line Interface (CLI) is required. Understanding the basic concepts of TLS/TCP/UDP, IP/Routing, and SIP/SRTP is also necessary to complete the configuration and any required troubleshooting.

Products Versions

The sample configuration uses the following equipment and software:

Table : Requirements

Product

Equipment

Software Version

Ribbon Networks

Ribbon SBC 5400
BMC
BIOS
ConnexIP OS
RibbonDB
EMA
SBX
PSX

V07.02.01-R004
V03.20.00-R000
V02.06.00
V06.02.01-R004
V07.02.01-R004
V07.02.01-R004
V07.02.01-R004
V11.02.01-R001

Third-party Equipment

Microsoft Teams

v.2019.7.4.9 i.ASEA.0 

Teams Client1.2.00.19260

Administration and Debugging Tools

Wireshark2.4.4


Reference Configuration

The following figure illustrates the connectivity between the third-party applications and the Ribbon SBC Core.

Figure : High Level Architecture For Teams deployment

                                                                       


 

This feature allows the SBC to fail over to another site of Office 365 when a primary data center site is down.

Currently, Microsoft Office 365 has the following sites. The following figure illustrates the configuration.

 

Figure : Site Failover

 

Support

For any questions regarding this document or the content herein, contact your maintenance and support provider.

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

Figure : SBC Licensing for MS TEAMS Deployment


 

Section A: Common SBC Configurations

This section contains the basic SBC configurations that need to be configured irrespective of ERE routing or PSX Routing.

RTCP

Configure the RTCP interval and disable send BYE Packet.

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

 

SIP Domain

  1. Specify the global SIP Domain name.
  2. Specify your SBC's FQDN (example: abc.example.com
set global sipDomain SIP.PSTNHUB.MICROSOFT.COM
set global sipDomain SIP2.PSTNHUB.MICROSOFT.COM
set global sipDomain SIP3.PSTNHUB.MICROSOFT.COM
set global sipDomain ABC.EXAMPLE.COM
commit


DSP Resource Allocation

This configuration only applies if the SBC has been deployed with (hardware) DSP resources. If it has not, executing this configuration step has no negative impact. Do not attempt transcoding, so the lack of compression resources will not impact the overall SBC configuration in this document.

set system mediaProfile compression 75 tone 25
commit

Note

This configuration is not required for SWe Core 7.2 release onwards. 

 

Path Check Profile

Create a path check profile that attaches to the Teams side.

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

IP-PEER

Create Ip-peer for all three sites and attach it to the PathCheck profile. 

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

Note

For TLS, the Ribbon SBC Core increments the port number of the IP-Peer by one while sending out any call. Configure a port less than the port on which the remote peer listens. This is only applicable for TLS protocol.

Configuration towards Teams

IP Interface Group

Create an IP interface group.

Note

Replace "x.x.x.x" with the SBC's packet interface (pkt) IP address towards Teams (example pkt1 IP), and "y" with its prefix length. Provide ceName used during an SBC deployment.

set addressContext default ipInterfaceGroup LIF2 ipInterface PKT1_V4 ceName IOTPTFY06 portName pkt1
set addressContext default ipInterfaceGroup LIF2 ipInterface PKT1_V4 ipAddress x.x.x.x prefix Y
set addressContext default ipInterfaceGroup LIF2 ipInterface PKT1_V4 mode inService state enabled
commit

 

SMM to Modify Options Messages

Microsoft Teams requires the SBC's FQDN in the 'From:' and 'Contact:' header. In the below SMM configuration, replace:

  • "user_input1" with SBC's fqdn,
  • "user_input2" with sipSigPort number plus one (For example, if sipSigPort is configured as 5060 then 'user_input2' will be 5061), and
  • "user_input3" with sipSigPort IP address configured in TEAMS_ZONE.

 

Note

The SMM commands below are created to meet the following rules:

  • Rules 1 and 2: Modifies the "Contact" and "From" header value with the user-provided FQDN.
  • Rule 3: Adds the "User-Agent" header field in the SIP OPTIONS request.
set profiles signaling sipAdaptorProfile Modify_Options state enabled
set profiles signaling sipAdaptorProfile Modify_Options advancedSMM disabled
set profiles signaling sipAdaptorProfile Modify_Options profileType messageManipulation
set profiles signaling sipAdaptorProfile Modify_Options rule 1 applyMatchHeader one
set profiles signaling sipAdaptorProfile Modify_Options rule 1 criterion 1 type message
set profiles signaling sipAdaptorProfile Modify_Options rule 1 criterion 1 message
set profiles signaling sipAdaptorProfile Modify_Options rule 1 criterion 1 message messageTypes all
set profiles signaling sipAdaptorProfile Modify_Options rule 1 criterion 2 type header
set profiles signaling sipAdaptorProfile Modify_Options rule 1 criterion 2 header
set profiles signaling sipAdaptorProfile Modify_Options rule 1 criterion 2 header name Contact
set profiles signaling sipAdaptorProfile Modify_Options rule 1 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile Modify_Options rule 1 criterion 2 header hdrInstance all
set profiles signaling sipAdaptorProfile Modify_Options rule 1 action 1 type header
set profiles signaling sipAdaptorProfile Modify_Options rule 1 action 1 operation regsub
set profiles signaling sipAdaptorProfile Modify_Options rule 1 action 1 from
set profiles signaling sipAdaptorProfile Modify_Options rule 1 action 1 from type value
set profiles signaling sipAdaptorProfile Modify_Options rule 1 action 1 from value "<sip:user_input1:user_input2;transport=tls>"
set profiles signaling sipAdaptorProfile Modify_Options rule 1 action 1 to
set profiles signaling sipAdaptorProfile Modify_Options rule 1 action 1 to type header
set profiles signaling sipAdaptorProfile Modify_Options rule 1 action 1 to value Contact
set profiles signaling sipAdaptorProfile Modify_Options rule 1 action 1 regexp
set profiles signaling sipAdaptorProfile Modify_Options rule 1 action 1 regexp string .*
set profiles signaling sipAdaptorProfile Modify_Options rule 1 action 1 regexp matchInstance all
set profiles signaling sipAdaptorProfile Modify_Options rule 2 criterion 1 type message
set profiles signaling sipAdaptorProfile Modify_Options rule 2 criterion 1 message
set profiles signaling sipAdaptorProfile Modify_Options rule 2 criterion 1 message messageTypes all
set profiles signaling sipAdaptorProfile Modify_Options rule 2 criterion 2 type header
set profiles signaling sipAdaptorProfile Modify_Options rule 2 criterion 2 header
set profiles signaling sipAdaptorProfile Modify_Options rule 2 criterion 2 header name From
set profiles signaling sipAdaptorProfile Modify_Options rule 2 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile Modify_Options rule 2 criterion 2 header hdrInstance all
set profiles signaling sipAdaptorProfile Modify_Options rule 2 action 1 type header
set profiles signaling sipAdaptorProfile Modify_Options rule 2 action 1 operation regsub
set profiles signaling sipAdaptorProfile Modify_Options rule 2 action 1 from
set profiles signaling sipAdaptorProfile Modify_Options rule 2 action 1 from type value
set profiles signaling sipAdaptorProfile Modify_Options rule 2 action 1 from value "<sip:user_input1:user_input2;transport=tls>"
set profiles signaling sipAdaptorProfile Modify_Options rule 2 action 1 to
set profiles signaling sipAdaptorProfile Modify_Options rule 2 action 1 to type header
set profiles signaling sipAdaptorProfile Modify_Options rule 2 action 1 to value From
set profiles signaling sipAdaptorProfile Modify_Options rule 2 action 1 regexp
set profiles signaling sipAdaptorProfile Modify_Options rule 2 action 1 regexp string <sip:user_input3>
set profiles signaling sipAdaptorProfile Modify_Options rule 2 action 1 regexp matchInstance all
set profiles signaling sipAdaptorProfile Modify_Options rule 3 criterion 1 type message
set profiles signaling sipAdaptorProfile Modify_Options rule 3 criterion 1 message
set profiles signaling sipAdaptorProfile Modify_Options rule 3 criterion 1 message messageTypes request
set profiles signaling sipAdaptorProfile Modify_Options rule 3 criterion 1 message methodTypes options
set profiles signaling sipAdaptorProfile Modify_Options rule 3 criterion 1 message condition exist
set profiles signaling sipAdaptorProfile Modify_Options rule 3 action 1 type header
set profiles signaling sipAdaptorProfile Modify_Options rule 3 action 1 operation add
set profiles signaling sipAdaptorProfile Modify_Options rule 3 action 1 headerPosition last
set profiles signaling sipAdaptorProfile Modify_Options rule 3 action 1 from
set profiles signaling sipAdaptorProfile Modify_Options rule 3 action 1 from type value
set profiles signaling sipAdaptorProfile Modify_Options rule 3 action 1 from value "Ribbon SBCCore V07.02"
set profiles signaling sipAdaptorProfile Modify_Options rule 3 action 1 to
set profiles signaling sipAdaptorProfile Modify_Options rule 3 action 1 to type header
set profiles signaling sipAdaptorProfile Modify_Options rule 3 action 1 to value User-Agent
commit

 

Zone

Note

This Zone groups the set of objects used for the communication to MS Teams.

Configure the domain name and attach it to the appropriate zone.

set addressContext default zone TEAMS_ZONE id 4
set addressContext default zone TEAMS_ZONE domainName customers.interopdomain.com
set addressContext default zone TEAMS_ZONE messageManipulation outputAdapterProfile Modify_Options
commit

SIP Signaling Port

Set the SIP Signaling port, which is a logical address used to send and receive SIP call signaling packets and is permanently bound to a specific zone.

Note

  • The Ribbon SBC Core listens on two ports, one defined under sipSigPort for TCP & UDP and one port for TLS to receive incoming traffic.
  • Replace "x.x.x.x" with SIP Signaling Port IP address towards Teams.
set addressContext default zone TEAMS_ZONE id 4 sipSigPort 4 ipInterfaceGroupName LIF2 ipAddressV4 x.x.x.x portNumber 5060 transportProtocolsAllowed sip-tls-tcp
set addressContext default zone TEAMS_ZONE id 4 sipSigPort 4 state enabled mode inService
commit

 

DNS Group

Create DNS objects for DNS resolution within a particular zone. Use the interface which has public connectivity.

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

IP Static Route

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

Note

Replace "x.x.x.x" with destination IP, "Y" with the prefix length and "z.z.z.z" with the PKT1 gateway IP address.

set addressContext default staticRoute X.X.X.X Y Z.Z.Z.Z LIF2 PKT1_V4 preference 100
commit


SIP Trunk Group

Create a SIP Trunk Group for the Teams side. 

It is mandatory to configure Trunk Group names using capital letters.

  • Configure ingressIpPrefix with the value "52.112.0.0 14" only on the SBC Inbound TG.
  • Do not provision any ingressIpPrefix for SBC Outbound TGs since these are used only as Egress TGs.
  • The Teams SIP Proxy server does not support the Update method and requires a Re-Invite. The Teams SIP Proxy Server only supports a new RFC for call hold, which is a=inactive.
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG state enabled
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG mode inService
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG downstreamForkingSupport enabled
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG signaling methods update reject
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 media mediaIpInterfaceGroupName LIF2
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG media sdpAttributesSelectiveRelay enabled
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG ingressIpPrefix 52.112.0.0 14


SMM Profiles towards Teams

Outbound

The SMM commands below serve the following purpose:

  • Rule 1: Stores the "From" header hostname and stores it in a variable (var1).
  • Rule 2 and 3: Replaces the current value of Contact header and PPI with variable (var1).
  • Rule 4-7: Used mainly for handling transfer scenario in a multi-tenant deployment. It populates the correct tenant information from the "Ribbon" parameter and adds it in "Contact" and "PPI" headers.
  • Rule 8 -10: Addresses the addition of lifetime parameter in the crypto line for all the requests and responses.
  • Rule 11: Adds the USER-AGENT header to all the Request messages.
  • Rule 12: Adds the SERVER header to all the Response messages.
  • Rule 13: Adds transport=tls in the 200 OK response to the Invite with replaces in a CallQ scenario.

 

Note

Attach this profile to each outbound TG.

set profiles signaling sipAdaptorProfile HeaderModifications state enabled
set profiles signaling sipAdaptorProfile HeaderModifications advancedSMM disabled
set profiles signaling sipAdaptorProfile HeaderModifications profileType messageManipulation
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 applyMatchHeader one
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 criterion 1 type message
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 criterion 1 message
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 criterion 1 message messageTypes requestAll
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 criterion 2 type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 criterion 2 header
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 criterion 2 header name From
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 criterion 2 header hdrInstance all
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 1 type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 1 operation store
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 1 headerInfo fieldValue
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 1 from
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 1 from type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 1 from value From
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 1 to
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 1 to type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 1 to variableValue var1
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 1 to variableScopeValue local
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 2 type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 2 operation regpredel
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 2 to
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 2 to type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 2 to variableValue var1
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 2 regexp
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 2 regexp string @.*>
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 2 regexp matchInstance all
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 3 type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 3 operation regdel
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 3 to
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 3 to type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 3 to variableValue var1
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 3 regexp
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 3 regexp string "(;user=phone>)|>"
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 3 regexp matchInstance all
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 4 type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 4 operation append
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 4 from
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 4 from type value
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 4 from value :
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 4 to
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 4 to type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 4 to variableValue var1
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 4 to variableScopeValue local
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 applyMatchHeader one
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 criterion 1 type message
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 criterion 1 message
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 criterion 1 message messageTypes requestAll
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 criterion 2 type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 criterion 2 header
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 criterion 2 header name Contact
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 criterion 2 header hdrInstance all
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 action 1 type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 action 1 operation regsub
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 action 1 headerInfo fieldValue
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 action 1 from
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 action 1 from type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 action 1 from variableValue var1
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 action 1 to
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 action 1 to type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 action 1 to value Contact
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 action 1 regexp
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 action 1 regexp string @.*:
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 action 1 regexp matchInstance all
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 applyMatchHeader one
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 criterion 1 type message
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 criterion 1 message
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 criterion 1 message messageTypes all
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 criterion 2 type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 criterion 2 header
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 criterion 2 header name P-Preferred-Identity
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 criterion 2 header hdrInstance all
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 action 1 type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 action 1 operation regsub
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 action 1 headerInfo fieldValue
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 action 1 from
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 action 1 from type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 action 1 from variableValue var1
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 action 1 to
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 action 1 to type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 action 1 to value P-Preferred-Identity
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 action 1 regexp
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 action 1 regexp string @.*:
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 action 1 regexp matchInstance all
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 criterion 1 type message
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 criterion 1 message
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 criterion 1 message messageTypes request
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 criterion 1 message methodTypes invite
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 criterion 1 message condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 criterion 2 type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 criterion 2 header
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 criterion 2 header name Request-Line
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 criterion 3 type parameter
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 criterion 3 parameter
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 criterion 3 parameter condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 criterion 3 parameter paramType uri
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 criterion 3 parameter name Ribbon
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 1 type parameter
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 1 operation store
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 1 paramType uri
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 1 from
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 1 from type parameter
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 1 from value Ribbon
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 1 to
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 1 to type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 1 to variableValue var2
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 2 type parameter
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 2 operation delete
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 2 paramType uri
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 2 from
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 2 from type parameter
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 2 from value Ribbon
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 2 to
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 2 to type parameter
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 2 to value Ribbon
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 criterion 1 type message
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 criterion 1 message
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 criterion 1 message messageTypes request
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 criterion 1 message methodTypes invite
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 criterion 1 message condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 criterion 2 type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 criterion 2 header
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 criterion 2 header name From
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 criterion 3 type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 criterion 3 variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 criterion 3 variable condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 criterion 3 variable variableID var2
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 action 1 type token
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 action 1 operation modify
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 action 1 from
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 action 1 from type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 action 1 from variableValue var2
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 action 1 to
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 action 1 to type token
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 action 1 to tokenValue urihostname
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 criterion 1 type message
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 criterion 1 message
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 criterion 1 message messageTypes request
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 criterion 1 message methodTypes invite
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 criterion 1 message condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 criterion 2 type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 criterion 2 header
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 criterion 2 header name Contact
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 criterion 3 type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 criterion 3 variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 criterion 3 variable condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 criterion 3 variable variableID var2
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 action 1 type token
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 action 1 operation modify
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 action 1 from
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 action 1 from type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 action 1 from variableValue var2
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 action 1 to
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 action 1 to type token
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 action 1 to tokenValue urihostname
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 criterion 1 type message
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 criterion 1 message
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 criterion 1 message messageTypes request
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 criterion 1 message methodTypes invite
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 criterion 1 message condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 criterion 2 type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 criterion 2 header
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 criterion 2 header name P-Preferred-Identity
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 criterion 3 type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 criterion 3 variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 criterion 3 variable condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 criterion 3 variable variableID var2
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 action 1 type token
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 action 1 operation modify
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 action 1 from
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 action 1 from type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 action 1 from variableValue var2
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 action 1 to
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 action 1 to type token
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 action 1 to tokenValue urihostname
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 criterion 1 type message
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 criterion 1 message
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 criterion 1 message messageTypes all
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 criterion 1 message condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 criterion 2 type messageBody
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 criterion 2 messageBody
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 criterion 2 messageBody condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 action 1 type messageBody
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 action 1 operation regstore
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 action 1 from
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 action 1 from type messageBody
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 action 1 from messageBodyValue all
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 action 1 to
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 action 1 to type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 action 1 to variableValue var4
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 action 1 regexp
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 action 1 regexp string "a=crypto.*?\r\n"
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 action 1 regexp matchInstance one
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 criterion 1 type message
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 criterion 1 message
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 criterion 1 message messageTypes all
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 criterion 1 message condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 criterion 2 type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 criterion 2 variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 criterion 2 variable condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 criterion 2 variable variableID var4
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 action 1 type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 action 1 operation regsub
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 action 1 from
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 action 1 from type value
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 action 1 from value "|2^31\r\n"
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 action 1 to variableScopeValue local 
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 action 1 to type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 action 1 to variableValue var4
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 action 1 regexp
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 action 1 regexp string "(\r\n)|(\|2\^31\r\n)"
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 action 1 regexp matchInstance one
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 criterion 1 type message
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 criterion 1 message
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 criterion 1 message messageTypes all
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 criterion 1 message condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 criterion 2 type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 criterion 2 variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 criterion 2 variable condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 criterion 2 variable variableID var4
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 action 1 type messageBody
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 action 1 operation regsub
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 action 1 from
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 action 1 from type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 action 1 from variableValue var4
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 action 1 to
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 action 1 to type messageBody
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 action 1 to messageBodyValue all
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 action 1 regexp
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 action 1 regexp string "a=crypto.*?\r\n"
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 action 1 regexp matchInstance one
set profiles signaling sipAdaptorProfile HeaderModifications rule 11 applyMatchHeader all
set profiles signaling sipAdaptorProfile HeaderModifications rule 11 criterion 1 type message
set profiles signaling sipAdaptorProfile HeaderModifications rule 11 criterion 1 message
set profiles signaling sipAdaptorProfile HeaderModifications rule 11 criterion 1 message messageTypes requestAll
set profiles signaling sipAdaptorProfile HeaderModifications rule 11 action 1 type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 11 action 1 operation add
set profiles signaling sipAdaptorProfile HeaderModifications rule 11 action 1 headerPosition last
set profiles signaling sipAdaptorProfile HeaderModifications rule 11 action 1 from
set profiles signaling sipAdaptorProfile HeaderModifications rule 11 action 1 from type value
set profiles signaling sipAdaptorProfile HeaderModifications rule 11 action 1 from value "Ribbon SBCCore V07.02"
set profiles signaling sipAdaptorProfile HeaderModifications rule 11 action 1 to
set profiles signaling sipAdaptorProfile HeaderModifications rule 11 action 1 to type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 11 action 1 to value USER-AGENT
set profiles signaling sipAdaptorProfile HeaderModifications rule 12 applyMatchHeader all
set profiles signaling sipAdaptorProfile HeaderModifications rule 12 criterion 1 type message
set profiles signaling sipAdaptorProfile HeaderModifications rule 12 criterion 1 message
set profiles signaling sipAdaptorProfile HeaderModifications rule 12 criterion 1 message messageTypes responseAll
set profiles signaling sipAdaptorProfile HeaderModifications rule 12 action 1 type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 12 action 1 operation add
set profiles signaling sipAdaptorProfile HeaderModifications rule 12 action 1 headerPosition last
set profiles signaling sipAdaptorProfile HeaderModifications rule 12 action 1 from
set profiles signaling sipAdaptorProfile HeaderModifications rule 12 action 1 from type value
set profiles signaling sipAdaptorProfile HeaderModifications rule 12 action 1 from value "Ribbon SBCCore V07.02"
set profiles signaling sipAdaptorProfile HeaderModifications rule 12 action 1 to
set profiles signaling sipAdaptorProfile HeaderModifications rule 12 action 1 to type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 12 action 1 to value SERVER
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 applyMatchHeader one
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 criterion 1 type message
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 criterion 1 message
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 criterion 1 message messageTypes response
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 criterion 1 message statusCode 200
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 criterion 2 type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 criterion 2 header
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 criterion 2 header name Contact
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 criterion 2 header hdrInstance all
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 action 1 type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 action 1 operation regsub
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 action 1 headerInfo headerValue
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 action 1 from
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 action 1 from type value
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 action 1 from value "5061;transport=tls>"
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 action 1 to
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 action 1 to type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 action 1 to value Contact
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 action 1 regexp
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 action 1 regexp string "5061\>"
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 action 1 regexp matchInstance all
commit
Outbound in case of Single Tenant

Note

Configurations in this section are applicable only to single-tenant deployments using Basic ERE. Skip this section if you are using Advanced ERE or PSX as a routing engine.

The SMM rules below are created to serve the following purpose:

  • Rule 1-3: Adding tenant FQDN (in this case A.abc.example.com) to "From", "Contact" and "PPI" header hostname and store it in a variable (var1).
  • Rule 4-7: Used mainly for handling transfer scenario in a multi-tenant deployment. It populates the correct tenant information from "Ribbon" parameter and adds it in "Contact" and "PPI" headers.
  • Rule 8 -10: Handles the addition of the lifetime parameter in the crypto line for all the requests and responses.
  • Rule 11: Adds the USER-AGENT header to all the Request messages.
  • Rule 12: Adds the SERVER header to all the Response messages.
  • Rule 13: Adds transport=tls in the 200 OK response to the Invite with replaces in a CallQ scenario.
set profiles signaling sipAdaptorProfile HeaderModifications state enabled
set profiles signaling sipAdaptorProfile HeaderModifications advancedSMM disabled
set profiles signaling sipAdaptorProfile HeaderModifications profileType messageManipulation
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 applyMatchHeader one
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 criterion 1 type message
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 criterion 1 message
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 criterion 1 message messageTypes all
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 criterion 2 type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 criterion 2 header
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 criterion 2 header name From
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 1 type token
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 1 operation modify
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 1 from
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 1 from type value
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 1 from value A.abc.example.com
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 1 to
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 1 to type token
set profiles signaling sipAdaptorProfile HeaderModifications rule 1 action 1 to tokenValue urihostname
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 applyMatchHeader one
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 criterion 1 type message
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 criterion 1 message
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 criterion 1 message messageTypes all
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 criterion 2 type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 criterion 2 header
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 criterion 2 header name P-Preferred-Identity
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 action 1 type token
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 action 1 operation modify
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 action 1 from
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 action 1 from type value
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 action 1 from value A.abc.example.com
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 action 1 to
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 action 1 to type token
set profiles signaling sipAdaptorProfile HeaderModifications rule 2 action 1 to tokenValue urihostname
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 criterion 1 type message
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 criterion 1 message
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 criterion 1 message messageTypes all
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 criterion 1 message condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 criterion 2 type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 criterion 2 header
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 criterion 2 header name Contact
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 action 1 type token
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 action 1 operation modify
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 action 1 from
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 action 1 from type value
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 action 1 from value A.abc.example.com
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 action 1 to
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 action 1 to type token
set profiles signaling sipAdaptorProfile HeaderModifications rule 3 action 1 to tokenValue urihostname
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 criterion 1 type message
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 criterion 1 message
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 criterion 1 message messageTypes request
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 criterion 1 message methodTypes invite
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 criterion 1 message condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 criterion 2 type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 criterion 2 header
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 criterion 2 header name Request-Line
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 criterion 3 type parameter
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 criterion 3 parameter
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 criterion 3 parameter condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 criterion 3 parameter paramType uri
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 criterion 3 parameter name Ribbon
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 1 type parameter
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 1 operation store
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 1 paramType uri
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 1 from
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 1 from type parameter
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 1 from value Ribbon
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 1 to
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 1 to type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 1 to variableValue var2
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 2 type parameter
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 2 operation delete
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 2 paramType uri
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 2 from
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 2 from type parameter
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 2 from value Ribbon
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 2 to
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 2 to type parameter
set profiles signaling sipAdaptorProfile HeaderModifications rule 4 action 2 to value Ribbon
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 criterion 1 type message
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 criterion 1 message
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 criterion 1 message messageTypes request
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 criterion 1 message methodTypes invite
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 criterion 1 message condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 criterion 2 type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 criterion 2 header
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 criterion 2 header name From
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 criterion 3 type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 criterion 3 variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 criterion 3 variable condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 criterion 3 variable variableID var2
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 action 1 type token
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 action 1 operation modify
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 action 1 from
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 action 1 from type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 action 1 from variableValue var2
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 action 1 to
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 action 1 to type token
set profiles signaling sipAdaptorProfile HeaderModifications rule 5 action 1 to tokenValue urihostname
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 criterion 1 type message
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 criterion 1 message
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 criterion 1 message messageTypes request
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 criterion 1 message methodTypes invite
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 criterion 1 message condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 criterion 2 type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 criterion 2 header
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 criterion 2 header name Contact
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 criterion 3 type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 criterion 3 variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 criterion 3 variable condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 criterion 3 variable variableID var2
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 action 1 type token
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 action 1 operation modify
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 action 1 from
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 action 1 from type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 action 1 from variableValue var2
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 action 1 to
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 action 1 to type token
set profiles signaling sipAdaptorProfile HeaderModifications rule 6 action 1 to tokenValue urihostname
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 criterion 1 type message
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 criterion 1 message
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 criterion 1 message messageTypes request
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 criterion 1 message methodTypes invite
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 criterion 1 message condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 criterion 2 type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 criterion 2 header
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 criterion 2 header name P-Preferred-Identity
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 criterion 3 type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 criterion 3 variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 criterion 3 variable condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 criterion 3 variable variableID var2
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 action 1 type token
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 action 1 operation modify
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 action 1 from
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 action 1 from type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 action 1 from variableValue var2
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 action 1 to
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 action 1 to type token
set profiles signaling sipAdaptorProfile HeaderModifications rule 7 action 1 to tokenValue urihostname
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 criterion 1 type message
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 criterion 1 message
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 criterion 1 message messageTypes all
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 criterion 1 message condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 criterion 2 type messageBody
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 criterion 2 messageBody
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 criterion 2 messageBody condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 action 1 type messageBody
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 action 1 operation regstore
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 action 1 from
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 action 1 from type messageBody
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 action 1 from messageBodyValue all
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 action 1 to
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 action 1 to type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 action 1 to variableValue var4
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 action 1 regexp
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 action 1 regexp string "a=crypto.*?\r\n"
set profiles signaling sipAdaptorProfile HeaderModifications rule 8 action 1 regexp matchInstance one
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 criterion 1 type message
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 criterion 1 message
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 criterion 1 message messageTypes all
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 criterion 1 message condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 criterion 2 type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 criterion 2 variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 criterion 2 variable condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 criterion 2 variable variableID var4
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 action 1 type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 action 1 operation regsub
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 action 1 from
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 action 1 from type value
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 action 1 from value "|2^31\r\n"
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 action 1 to variableScopeValue local
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 action 1 to type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 action 1 to variableValue var4
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 action 1 regexp
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 action 1 regexp string "(\r\n)|(\|2\^31\r\n)"
set profiles signaling sipAdaptorProfile HeaderModifications rule 9 action 1 regexp matchInstance one
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 criterion 1 type message
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 criterion 1 message
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 criterion 1 message messageTypes all
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 criterion 1 message condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 criterion 2 type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 criterion 2 variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 criterion 2 variable condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 criterion 2 variable variableID var4
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 action 1 type messageBody
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 action 1 operation regsub
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 action 1 from
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 action 1 from type variable
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 action 1 from variableValue var4
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 action 1 to
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 action 1 to type messageBody
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 action 1 to messageBodyValue all
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 action 1 regexp
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 action 1 regexp string "a=crypto.*?\r\n"
set profiles signaling sipAdaptorProfile HeaderModifications rule 10 action 1 regexp matchInstance one
set profiles signaling sipAdaptorProfile HeaderModifications rule 11 applyMatchHeader all
set profiles signaling sipAdaptorProfile HeaderModifications rule 11 criterion 1 type message
set profiles signaling sipAdaptorProfile HeaderModifications rule 11 criterion 1 message
set profiles signaling sipAdaptorProfile HeaderModifications rule 11 criterion 1 message messageTypes requestAll
set profiles signaling sipAdaptorProfile HeaderModifications rule 11 action 1 type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 11 action 1 operation add
set profiles signaling sipAdaptorProfile HeaderModifications rule 11 action 1 headerPosition last
set profiles signaling sipAdaptorProfile HeaderModifications rule 11 action 1 from
set profiles signaling sipAdaptorProfile HeaderModifications rule 11 action 1 from type value
set profiles signaling sipAdaptorProfile HeaderModifications rule 11 action 1 from value "Ribbon SBCCore V07.02"
set profiles signaling sipAdaptorProfile HeaderModifications rule 11 action 1 to
set profiles signaling sipAdaptorProfile HeaderModifications rule 11 action 1 to type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 11 action 1 to value USER-AGENT
set profiles signaling sipAdaptorProfile HeaderModifications rule 12 applyMatchHeader all
set profiles signaling sipAdaptorProfile HeaderModifications rule 12 criterion 1 type message
set profiles signaling sipAdaptorProfile HeaderModifications rule 12 criterion 1 message
set profiles signaling sipAdaptorProfile HeaderModifications rule 12 criterion 1 message messageTypes responseAll
set profiles signaling sipAdaptorProfile HeaderModifications rule 12 action 1 type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 12 action 1 operation add
set profiles signaling sipAdaptorProfile HeaderModifications rule 12 action 1 headerPosition last
set profiles signaling sipAdaptorProfile HeaderModifications rule 12 action 1 from
set profiles signaling sipAdaptorProfile HeaderModifications rule 12 action 1 from type value
set profiles signaling sipAdaptorProfile HeaderModifications rule 12 action 1 from value "Ribbon SBCCore V07.02"
set profiles signaling sipAdaptorProfile HeaderModifications rule 12 action 1 to
set profiles signaling sipAdaptorProfile HeaderModifications rule 12 action 1 to type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 12 action 1 to value SERVER
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 applyMatchHeader one
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 criterion 1 type message
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 criterion 1 message
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 criterion 1 message messageTypes response
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 criterion 1 message statusCode 200
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 criterion 2 type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 criterion 2 header
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 criterion 2 header name Contact
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 criterion 2 header hdrInstance all
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 action 1 type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 action 1 operation regsub
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 action 1 headerInfo headerValue
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 action 1 from
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 action 1 from type value
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 action 1 from value "5061;transport=tls>"
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 action 1 to
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 action 1 to type header
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 action 1 to value Contact
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 action 1 regexp
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 action 1 regexp string "5061\>"
set profiles signaling sipAdaptorProfile HeaderModifications rule 13 action 1 regexp matchInstance all
commit


Inbound Profile

The SMM rules below are created to serve the following purpose:

  • Rule 1: Stores a urihostname value of "To" header and stores it in a variable.
  • Rule 2: Creates a dummy parameter in the "refer-to" header with name "Ribbon" and stores the variable. This is useful for a call transfer scenario in multi-tenant deployment.
  • Rule 3: Makes the Max-Forward value 0 so that the SBC responds back with 200 OK to the OPTIONS.

 

Note

Attach this profile to each outbound TGs.

set profiles signaling sipAdaptorProfile REFER state enabled
set profiles signaling sipAdaptorProfile REFER advancedSMM disabled
set profiles signaling sipAdaptorProfile REFER profileType messageManipulation
set profiles signaling sipAdaptorProfile REFER rule 1 criterion 1 type message
set profiles signaling sipAdaptorProfile REFER rule 1 criterion 1 message
set profiles signaling sipAdaptorProfile REFER rule 1 criterion 1 message messageTypes request
set profiles signaling sipAdaptorProfile REFER rule 1 criterion 1 message methodTypes refer
set profiles signaling sipAdaptorProfile REFER rule 1 criterion 1 message condition exist
set profiles signaling sipAdaptorProfile REFER rule 1 criterion 2 type header
set profiles signaling sipAdaptorProfile REFER rule 1 criterion 2 header
set profiles signaling sipAdaptorProfile REFER rule 1 criterion 2 header name To
set profiles signaling sipAdaptorProfile REFER rule 1 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile REFER rule 1 action 1 type token
set profiles signaling sipAdaptorProfile REFER rule 1 action 1 operation store
set profiles signaling sipAdaptorProfile REFER rule 1 action 1 from
set profiles signaling sipAdaptorProfile REFER rule 1 action 1 from type token
set profiles signaling sipAdaptorProfile REFER rule 1 action 1 from tokenValue urihostname
set profiles signaling sipAdaptorProfile REFER rule 1 action 1 to
set profiles signaling sipAdaptorProfile REFER rule 1 action 1 to type variable
set profiles signaling sipAdaptorProfile REFER rule 1 action 1 to variableValue var1
set profiles signaling sipAdaptorProfile REFER rule 2 criterion 1 type message
set profiles signaling sipAdaptorProfile REFER rule 2 criterion 1 message
set profiles signaling sipAdaptorProfile REFER rule 2 criterion 1 message messageTypes request
set profiles signaling sipAdaptorProfile REFER rule 2 criterion 1 message methodTypes refer
set profiles signaling sipAdaptorProfile REFER rule 2 criterion 1 message condition exist
set profiles signaling sipAdaptorProfile REFER rule 2 criterion 2 type header
set profiles signaling sipAdaptorProfile REFER rule 2 criterion 2 header
set profiles signaling sipAdaptorProfile REFER rule 2 criterion 2 header name Refer-To
set profiles signaling sipAdaptorProfile REFER rule 2 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile REFER rule 2 action 1 type parameter
set profiles signaling sipAdaptorProfile REFER rule 2 action 1 operation add
set profiles signaling sipAdaptorProfile REFER rule 2 action 1 paramType uri
set profiles signaling sipAdaptorProfile REFER rule 2 action 1 from
set profiles signaling sipAdaptorProfile REFER rule 2 action 1 from type variable
set profiles signaling sipAdaptorProfile REFER rule 2 action 1 from variableValue var1
set profiles signaling sipAdaptorProfile REFER rule 2 action 1 to
set profiles signaling sipAdaptorProfile REFER rule 2 action 1 to type parameter
set profiles signaling sipAdaptorProfile REFER rule 2 action 1 to value Ribbon
set profiles signaling sipAdaptorProfile REFER rule 3 applyMatchHeader one
set profiles signaling sipAdaptorProfile REFER rule 3 criterion 1 type message
set profiles signaling sipAdaptorProfile REFER rule 3 criterion 1 message
set profiles signaling sipAdaptorProfile REFER rule 3 criterion 1 message messageTypes request
set profiles signaling sipAdaptorProfile REFER rule 3 criterion 1 message methodTypes options
set profiles signaling sipAdaptorProfile REFER rule 3 criterion 2 type header
set profiles signaling sipAdaptorProfile REFER rule 3 criterion 2 header
set profiles signaling sipAdaptorProfile REFER rule 3 criterion 2 header name Max-Forwards
set profiles signaling sipAdaptorProfile REFER rule 3 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile REFER rule 3 criterion 2 header hdrInstance all
set profiles signaling sipAdaptorProfile REFER rule 3 action 1 type header
set profiles signaling sipAdaptorProfile REFER rule 3 action 1 operation modify
set profiles signaling sipAdaptorProfile REFER rule 3 action 1 headerInfo headerValue
set profiles signaling sipAdaptorProfile REFER rule 3 action 1 from
set profiles signaling sipAdaptorProfile REFER rule 3 action 1 from type value
set profiles signaling sipAdaptorProfile REFER rule 3 action 1 from value 0
set profiles signaling sipAdaptorProfile REFER rule 3 action 1 to
set profiles signaling sipAdaptorProfile REFER rule 3 action 1 to type header
set profiles signaling sipAdaptorProfile REFER rule 3 action 1 to value Max-Forwards
commit
Attaching SMM profiles
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG signaling messageManipulation inputAdapterProfile REFER outputAdapterProfile HeaderModifications

 

TLS Configuration

Generate a CSR with OpenSSL 

Note

 In this example, the certificate is generated with the below command using a ".cer" extension; however, the ".der" extension is also acceptable.

 openssl x509 -outform der -in Baltimore_cert.pem -out Baltimore_cert.cer

# To create a Certificate Signing Request (CSR) and key file for a Subject Alternative Name (SAN) certificate with multiple subject alternate names, complete the following procedure:
 
Create an OpenSSL configuration file (text file) on the local computer by editing the fields to the company requirements.
 
Note 1: In the example used in this article the configuration file is req.conf.
 
Note 2: req_extensions will put the subject alternative names in a CSR, whereas x509_extensions would be used when creating an actual certificate file.
 
[req]
		distinguished_name = req_distinguished_name
		req_extensions = v3_req
		prompt = no
		[req_distinguished_name]
		C = US
		ST = VA
		L = SomeCity
		O = MyCompany
		OU = MyDivision
		CN = www.company.com
		[v3_req]
		keyUsage = keyEncipherment, dataEncipherment
		extendedKeyUsage = serverAuth
		subjectAltName = @alt_names
		[alt_names]
		DNS.1 = www.company.com
		DNS.2 = company.com
		DNS.3 = www.company.net
		DNS.4 = company.net
 
Make sure there are no whitespaces at the end of the lines.
 
#Run the following commands to create the Certificate Signing Request (CSR) and a new Key file:
openssl req -new -out company_san.csr -newkey rsa:2048 -nodes -sha256 -keyout company_san.key.temp -config req.conf
 
#Run the following command to verify the Certificate Signing Request:
openssl req -text -noout -verify -in company_san.csr
  
# After receiving the CSR with above information, provide it to CA (Certificate Authority). You will then receive the proper CA signed certificate in .crt format that is convertable into other formats using openssl. 

# By default, you should receive two or more certificate from CA (depanding upon your CA). One is the SBC certificate, and other is CA's root and intermediate certificate. 

# Upload the certificates to the SBC at /opt/sonus/external and convert them into SBC-readable format, i.e. SBC certificate is in .pem or .p12 format and root certificate is in .cer or .der.
 
#Converting .crt to .pem USING OPENSSL for SBC certificate.
openssl x509 -in sbc_cert.crt -out sbc_cert.der -outform DER
openssl x509 -in sbc_cert.der -inform DER -out sbc_cert.pem -outform PEM
 
#After generating sbc_cert.pem file, convert it to .p12 format using below command.
openssl pkcs12 -export -out sbc1_cert.p12 -in sbc_cert.pem -inkey /opt/sonus/csrkey.key
 
#CONVERTING CRT to CER USING OPENSSL for CA's root and intermediate certificate.
openssl x509 -in root_cert.crt -out root_cert.cer -outform DER
 
 
## Use Baltimore's Root Certificate which is downloadable from the below link. It is present in .pem format. Convert it to .cer format using openssl command.
### http://certificate.fyicenter.com/319_Root_CA_Baltimore_CyberTrust_Root_CyberTrust_Baltimore_IE.html
 
#CONVERTING PEM to CER USING OPENSSL
openssl x509 -outform der -in Baltimore_cert.pem -out Baltimore_cert.cer
 
After converting all these certificates upload them on SBC at /opt/sonus/external location.

 

Generate Required Certificates  

#Create Crypto Suite Profile.
set profiles security cryptoSuiteProfile CRYPT_PROF entry 1 cryptoSuite AES-CM-128-HMAC-SHA1-80

#Import Public CA Root Certificate into database.
set system security pki certificate CA_ROOT_CERT type remote fileName root_cert.cer state enabled

#Import Baltimore Certificate into database.
set system security pki certificate BALTIMORE_CERT type remote fileName Baltimore_cert.cer state enabled

#Import Public CA Certified SBC Server Certificate into database
set system security pki certificate SBC_CERT filename sbc1_cert.p12 passPhrase <Password defined during CSR generation> state enabled type local

#Create TLS Profile
set profiles security tlsProfile TLS_PROF clientCertName SBC_CERT serverCertName SBC_CERT cipherSuite1 tls_ecdhe_rsa_with_aes_256_cbc_sha384 cipherSuite2 tls_ecdhe_rsa_with_aes_128_cbc_sha authClient true allowedRoles clientandserver acceptableCertValidationErrors invalidPurpose
set profiles security tlsProfile TLS_PROF v1_1 enable
set profiles security tlsProfile TLS_PROF v1_0 disable
set profiles security tlsProfile TLS_PROF v1_2 enable
commit

 

Attach TLS Profile to SIP Signaling Port 

set addressContext default zone Teams_ZONE sipSigPort 4 state disabled mode outOfService
commit
set addressContext default zone Teams_ZONE sipSigPort 4 tlsProfileName TLS_PROF
commit
set addressContext default zone Teams_ZONE sipSigPort 4 state enabled mode inService
commit

There are a few areas that result in the TLS negotiation issue. One area involves assigning the incorrect port. Ensure the following is accomplished: 

  • MS Teams listens on port number 5061 (default setting).

  • Configure port number 5060 on Teams IP-Peer as Ribbon SBC Core increments the port by 1 when transport protocol is TLS.

  • For tenant's SBC configuration on Teams, use the same port number that is configured under the SBC sipSigPort.

 

Configuration towards PSTN

IP Interface Group

Create an IP interface group.

Note

Replace "x.x.x.x" with the SBC's packet interface (pkt) IP address towards PSTN (example pkt0 IP), and "y" with its prefix length. Provide ceName used during SBC deployment.

set addressContext default ipInterfaceGroup LIF1 ipInterface PKT1_V4 ceName IOTPTFY06 portName pkt0
set addressContext default ipInterfaceGroup LIF1 ipInterface PKT1_V4 ipAddress x.x.x.x prefix Y
set addressContext default ipInterfaceGroup LIF1 ipInterface PKT1_V4 mode inService state enabled
commit


Zone

Create a Zone that groups the set of objects that are used for the communication to PSTN.

set addressContext default zone PSTN_ZONE id 2
commit 

 

SIP Signaling Port

Create a SIP Signaling port, which is the logical address permanently bound to a specific zone, to send and receive SIP call signaling packets.

Note

Replace "x.x.x.x" with the SBC's pkt0 IP address.

set addressContext default zone PSTN_ZONE id 2 sipSigPort 1 ipInterfaceGroupName LIF1 ipAddressV4 x.x.x.x portNumber 5060 transportProtocolsAllowed sip-tcp,sip-udp,sip-tls-tcp
set addressContext default zone PSTN_ZONE id 2 sipSigPort 1 mode inService state enabled
commit


IP Static Route

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

Note

Replace "x.x.x.x" with destination IP, "Y" with the prefix length and "z.z.z.z" with the PKT0 gateway IP address.

set addressContext default staticRoute X.X.X.X Y Z.Z.Z.Z LIF1 PKT0_V4 preference 100
commit


SIP Trunk Group

Create a SIP Trunk Group towards the PSTN side. For ingressIpPrefix, replace X.X.X.X with the IP address that you want to allow from the PSTN side.

It is mandatory to configure Trunk Group names using capital letters.

set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG media mediaIpInterfaceGroupName LIF1
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG downstreamForkingSupport enabled 
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 ingressIpPrefix X.X.X.X X
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG mode inService state enabled
commit


SMM Profile towards PSTN

The SMM rule is created to serve the following purpose:

  • Rule 1: Looks for the Gr parameter in the "Contact" header. The SMM removes the parameter if present.

Use Case

In case of "Anonymous calling", the SBC receives the "Contact" header with "Gr" parameter, due to which the SBC transparently passes the "Contact" header to the Egress side (the Teams side), which may result in a call failure.

set profiles signaling sipAdaptorProfile REMOVEGR state enabled
set profiles signaling sipAdaptorProfile REMOVEGR advancedSMM disabled
set profiles signaling sipAdaptorProfile REMOVEGR profileType messageManipulation
set profiles signaling sipAdaptorProfile REMOVEGR rule 1 criterion 1 type message
set profiles signaling sipAdaptorProfile REMOVEGR rule 1 criterion 1 message
set profiles signaling sipAdaptorProfile REMOVEGR rule 1 criterion 1 message messageTypes request
set profiles signaling sipAdaptorProfile REMOVEGR rule 1 criterion 1 message methodTypes invite
set profiles signaling sipAdaptorProfile REMOVEGR rule 1 criterion 1 message condition exist
set profiles signaling sipAdaptorProfile REMOVEGR rule 1 criterion 2 type header
set profiles signaling sipAdaptorProfile REMOVEGR rule 1 criterion 2 header
set profiles signaling sipAdaptorProfile REMOVEGR rule 1 criterion 2 header name Contact
set profiles signaling sipAdaptorProfile REMOVEGR rule 1 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile REMOVEGR rule 1 criterion 3 type parameter
set profiles signaling sipAdaptorProfile REMOVEGR rule 1 criterion 3 parameter
set profiles signaling sipAdaptorProfile REMOVEGR rule 1 criterion 3 parameter condition exist
set profiles signaling sipAdaptorProfile REMOVEGR rule 1 criterion 3 parameter paramType uri
set profiles signaling sipAdaptorProfile REMOVEGR rule 1 criterion 3 parameter name gr
set profiles signaling sipAdaptorProfile REMOVEGR rule 1 action 1 type parameter
set profiles signaling sipAdaptorProfile REMOVEGR rule 1 action 1 operation delete
set profiles signaling sipAdaptorProfile REMOVEGR rule 1 action 1 paramType uri
set profiles signaling sipAdaptorProfile REMOVEGR rule 1 action 1 to
set profiles signaling sipAdaptorProfile REMOVEGR rule 1 action 1 to type parameter
set profiles signaling sipAdaptorProfile REMOVEGR rule 1 action 1 to value gr
Attaching SMM profiles
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG signaling messageManipulation inputAdapterProfile REMOVEGR
commit


Configuration for Teams Media Bypass

To support Media Bypass on Teams, the SBC must support ice and rtcp-mux.

Note

Enable this parameter across all TEAMs TGs.

set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG services natTraversal iceSupport iceWebrtc
commit

 

Enabling Remote PSX Server

The following command disables the local PSX server and enables the remote PSX server. Skip this step if basic ERE or Advanced ERE is used for call routing.

set system policyServer localServer "PSX_LOCAL_SERVER" state "disabled" mode "outOfService" 
commit
set system policyServer remoteServer "RBBNMSPSX" ipAddress "172.16.106.149" state "enabled" mode "active"
commit 

 

Section B: ERE Routing

This section provides the configurations that are needed when basic ERE or Advanced ERE is used for routing. Skip this section if an external PSX is used for routing.

LRBT Profile

  1. Create a Local Ringback Tone (LRBT) profile that is attached to the Teams side as well as PSTN sides. 

  2. Enable Dynamic LRBT.

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

Codec Entry

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

set profiles media codecEntry G711SS-DEFAULT dtmf relay rfc2833
set profiles media codecEntry G711SS-DEFAULT packetSize 20
commit

Note

Since Teams supports comfort noise, use G711SS-DEFAULT in the Packet Service Profile.

Element Routing Priority

Create Element Routing Priority, by assigning highest priority to the 'Entity Type' Trunk Group for all the 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

 

DM/PM Criteria

Configurations in this section are applicable to only Advanced ERE deployments. Skip this section if you are using single-tenant deployment using basic ERE.

Create DM/PM Criteria based on the tenant's number prefix. In the below example, the "TEAMS_TENANT_A" profile is created to match the called number "2414445".

set profiles digitParameterHandling dmPmCriteria TEAMS_TENET_A criteriaType digit
set profiles digitParameterHandling dmPmCriteria TEAMS_TENET_A digitType calledNumber
set profiles digitParameterHandling dmPmCriteria TEAMS_TENET_A parameterPresenceCheck exists
set profiles digitParameterHandling dmPmCriteria TEAMS_TENET_A digitCriteria egressFlag value send
set profiles digitParameterHandling dmPmCriteria TEAMS_TENET_A digitCriteria egressFlag operation ignore
set profiles digitParameterHandling dmPmCriteria TEAMS_TENET_A digitCriteria digitMatch value startDigitPosition 0
set profiles digitParameterHandling dmPmCriteria TEAMS_TENET_A digitCriteria digitMatch value numberOfDigits 7
set profiles digitParameterHandling dmPmCriteria TEAMS_TENET_A digitCriteria digitMatch value matchValue 2414445
set profiles digitParameterHandling dmPmCriteria TEAMS_TENET_A digitCriteria digitMatch operation equals
set profiles digitParameterHandling dmPmCriteria TEAMS_TENET_A digitCriteria natureOfAddress value 950
set profiles digitParameterHandling dmPmCriteria TEAMS_TENET_A digitCriteria natureOfAddress operation ignore
set profiles digitParameterHandling dmPmCriteria TEAMS_TENET_A digitCriteria numberingPlanIndicator value data
set profiles digitParameterHandling dmPmCriteria TEAMS_TENET_A digitCriteria numberingPlanIndicator operation ignore
set profiles digitParameterHandling dmPmCriteria TEAMS_TENET_A digitCriteria numberLength value 0
set profiles digitParameterHandling dmPmCriteria TEAMS_TENET_A digitCriteria numberLength operation ignore
set profiles digitParameterHandling dmPmCriteria TEAMS_TENET_A digitCriteria presentationMatch value none
set profiles digitParameterHandling dmPmCriteria TEAMS_TENET_A digitCriteria presentationMatch operation ignore
set profiles digitParameterHandling dmPmCriteria TEAMS_TENET_A digitCriteria screeningMatch value none
set profiles digitParameterHandling dmPmCriteria TEAMS_TENET_A digitCriteria screeningMatch operation ignore
commit

Note

Repeat this criterion for all prefix types.

 

DM/PM Rule

Configurations in this section are applicable to only Advanced ERE deployments. Skip this section if you are using single-tenant deployment using basic ERE.

Create DM/PM rule, and attach the Criteria created under DM/PM Criteria. If the value matches, SBC will put the tenant's FQDN in the "From" header. "A.abc.example.com" in this case.

set profiles digitParameterHandling dmPmRule TEAMS_TENET_A_MOD subRule 0 criteria TEAMS_TENET_A
set profiles digitParameterHandling dmPmRule TEAMS_TENET_A_MOD subRule 0 ruleType uri
set profiles digitParameterHandling dmPmRule TEAMS_TENET_A_MOD subRule 0 uriParameterManipulation uriType callingUri
set profiles digitParameterHandling dmPmRule TEAMS_TENET_A_MOD subRule 0 uriParameterManipulation uriParameterManipulation userParameter none
set profiles digitParameterHandling dmPmRule TEAMS_TENET_A_MOD subRule 0 uriParameterManipulation uriParameterManipulation scheme none
set profiles digitParameterHandling dmPmRule TEAMS_TENET_A_MOD subRule 0 uriParameterManipulation uriParameterManipulation username none
set profiles digitParameterHandling dmPmRule TEAMS_TENET_A_MOD subRule 0 uriParameterManipulation uriParameterManipulation presentation none
set profiles digitParameterHandling dmPmRule TEAMS_TENET_A_MOD subRule 0 uriParameterManipulation userInfoManipulation startCharacterPosition 0
set profiles digitParameterHandling dmPmRule TEAMS_TENET_A_MOD subRule 0 uriParameterManipulation userInfoManipulation numberOfCharacters 0
set profiles digitParameterHandling dmPmRule TEAMS_TENET_A_MOD subRule 0 uriParameterManipulation userInfoManipulation userinfoLength noInput
set profiles digitParameterHandling dmPmRule TEAMS_TENET_A_MOD subRule 0 uriParameterManipulation userInfoManipulation replacement type constant
set profiles digitParameterHandling dmPmRule TEAMS_TENET_A_MOD subRule 0 uriParameterManipulation userInfoManipulation replacement characterString callingNumber
set profiles digitParameterHandling dmPmRule TEAMS_TENET_A_MOD subRule 0 uriParameterManipulation userInfoManipulation replacement startCharacterPosition 0
set profiles digitParameterHandling dmPmRule TEAMS_TENET_A_MOD subRule 0 uriParameterManipulation userInfoManipulation replacement numberOfCharacters 0
set profiles digitParameterHandling dmPmRule TEAMS_TENET_A_MOD subRule 0 uriParameterManipulation userInfoManipulation replacement value ""
set profiles digitParameterHandling dmPmRule TEAMS_TENET_A_MOD subRule 0 uriParameterManipulation hostPortManipulation portNumber noChange
set profiles digitParameterHandling dmPmRule TEAMS_TENET_A_MOD subRule 0 uriParameterManipulation hostPortManipulation startCharacterPosition 0
set profiles digitParameterHandling dmPmRule TEAMS_TENET_A_MOD subRule 0 uriParameterManipulation hostPortManipulation numberOfCharacters 64
set profiles digitParameterHandling dmPmRule TEAMS_TENET_A_MOD subRule 0 uriParameterManipulation hostPortManipulation replacement type constant
set profiles digitParameterHandling dmPmRule TEAMS_TENET_A_MOD subRule 0 uriParameterManipulation hostPortManipulation replacement characterString none
set profiles digitParameterHandling dmPmRule TEAMS_TENET_A_MOD subRule 0 uriParameterManipulation hostPortManipulation replacement startCharacterPosition 0
set profiles digitParameterHandling dmPmRule TEAMS_TENET_A_MOD subRule 0 uriParameterManipulation hostPortManipulation replacement numberOfCharacters 0
set profiles digitParameterHandling dmPmRule TEAMS_TENET_A_MOD subRule 0 uriParameterManipulation hostPortManipulation replacement value A.abc.example.com
commit

Note

Repeat this rule for all required tenants by increasing the subRule id.

Packet Service Profile (PSP)

Create a Packet Service Profile (PSP) for the Teams side. The PSP is specified within the SIP trunk group configuration.

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
commit


IP Signaling Profile (IPSP)

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 flags disable2806Compliance enable
set profiles signaling ipSignalingProfile TEAMS_IPSP egressIpAttributes domainName useIpSignalingPeerDomainInRequestUri 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


SIP Trunk Group towards Teams

Configure the SIP Trunk Group with additional configurations like LRBT,ERPDM/PM Rule, PSP, IPSP created in the previous steps. 

It is mandatory to configure Trunk Group names using capital letters.

Skip configuring "digitParameterHandling egressDmPmRule" below in the case of Single Tenant deployment using basic ERE. It is applicable only for A-ERE routing option.

set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG mode outOfService state disabled
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 digitParameterHandling egressDmPmRule TEAMS_TENET_A_MOD
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG policy sipDomain SIP.PSTNHUB.MICROSOFT.COM
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG mode inService state enabled
commit

 

Routing Label for Teams

set global callRouting routingLabel TEAMS_RL routingLabelRoute 1 trunkGroup TEAMS_TG ipPeer TEAMS_PEER inService inService
commit

 

Packet Service Profile towards PSTN

Create a packet service profile for PSTN and attach it to the PSTN Trunk Group.

set profiles media packetServiceProfile PSTN_PSP rtcpOptions rtcp disable
set profiles media packetServiceProfile PSTN_PSP peerAbsenceAction none
set profiles media packetServiceProfile PSTN_PSP silenceInsertionDescriptor g711SidRtpPayloadType 13
set profiles media packetServiceProfile PSTN_PSP silenceInsertionDescriptor heartbeat enable
set profiles media packetServiceProfile PSTN_PSP aal1PayloadSize 47
set profiles media packetServiceProfile PSTN_PSP codec codecEntry1 G711SS-DEFAULT
set profiles media packetServiceProfile PSTN_PSP packetToPacketControl transcode conditional
set profiles media packetServiceProfile PSTN_PSP packetToPacketControl codecsAllowedForTranscoding thisLeg ""
set profiles media packetServiceProfile PSTN_PSP packetToPacketControl codecsAllowedForTranscoding otherLeg ""
set profiles media packetServiceProfile PSTN_PSP flags digitDetectSendEnabled disable
set profiles media packetServiceProfile PSTN_PSP flags useDirectMedia disable
set profiles media packetServiceProfile PSTN_PSP secureRtpRtcp flags allowFallback disable
set profiles media packetServiceProfile PSTN_PSP secureRtpRtcp flags enableSrtp disable
set profiles media packetServiceProfile PSTN_PSP secureRtpRtcp flags resetROCOnKeyChange disable
set profiles media packetServiceProfile PSTN_PSP secureRtpRtcp flags resetEncDecROCOnDecKeyChange disable
set profiles media packetServiceProfile PSTN_PSP secureRtpRtcp flags updateCryptoKeysOnModify disable
set profiles media packetServiceProfile PSTN_PSP secureRtpRtcp flags allowPassthru disable
set profiles media packetServiceProfile PSTN_PSP preferredRtpPayloadTypeForDtmfRelay 101
set profiles media packetServiceProfile PSTN_PSP honorRemotePrecedence disable
set profiles media packetServiceProfile PSTN_PSP sendRoutePSPPrecedence disable
commit


SIP Trunk Group towards PSTN

Configure the SIP Trunk Group with additional configurations like LRBTERPDM/PM RulePSPIPSP created in the previous steps. 

It is mandatory to configure Trunk Group names using capital letters.

set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG mode outOfService state disabled
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 digitParameterHandling numberingPlan NANP_ACCESS
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG policy callRouting elementRoutingPriority TEAMS
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 DEFAULT_SIP
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG policy featureControlProfile DEFAULT_IP
set addressContext default zone PSTN_ZONE sipTrunkGroup PSTN_TG mode inService state enabled
commit

Routing Label towards PSTN

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

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


Call Routing  

Note

When call transfer is initiated by Teams (as per the Teams recommendation), the SBC sends the INVITE back to the same Teams entity from where REFER is received. 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

This entry is used to route all the calls coming from 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

This entry is used to route all the calls coming from PSTN endpoints towards different Teams tenant TG's based on 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

This entry is used to route all the calls towards the Teams after receiving REFER from the 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
Username Routing

This entry is used to route all the 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

 


Section C: PSX Configurations

This section provides the configuration aspects required on the PSX side. For any other configurations, refer the standard configuration guide.

Gateway

Configure a gateway with SBC name and the management IP address.

Figure : Gateway creation 1/3

 

Use the same name of Gateway that is configured in SBC.

Figure : Gateway Creation 2/3

Figure : Gateway Creation 3/3

 

Element Routing Priority

Assign the highest priority to the 'Entity Type' Trunk Group for all the required Call Types.

Tone and Announcement Profile 

Figure : Tone And Announcement Profile

Configuration towards Teams

IP Signaling Profile

Figure : Creating IPSP 1/12

Figure : Creating IPSP 2/12

Figure : Creating IPSP 3/12

Figure : Creating IPSP 4/12

Figure : Creating IPSP 5/12

Figure : Creating IPSP 6/12

Figure : Creating IPSP 7/12

Figure : Creating IPSP 8/12

Figure : Creating IPSP 9/12

Figure : Creating IPSP 10/12

Figure : Creating IPSP 11/12

Figure : Creating IPSP 12/12

 
 

DM/PM Criteria

Skip this entry for Single Tenant deployments.

Figure : DM/PM Criteria

Note

Repeat this criteria for all of the required number ranges that identify specific tenants.

 

DM/PM Rule

Skip this entry for Single Tenant deployments.

Add the tenant information under the Replacement value. For example : A.customers.interopdomain.com

Figure : DM/PM rule 1/2

Figure : DM/PM Rule 2/2

Note

Repeat this for each tenant values by matching different criteria. If the value matches, the PSX places the tenant's FQDN in the "From" header. "A.customers.interopdomain.com" in this example.

 

IP Signalling Peer Group

Figure : IP Peer Group

 

Crypto Suite Profile

Figure : Crypto Profile

 

Packet Service Profile

Figure : TEAMS PSP 1/5

Figure : TEAMS PSP 2/5

Figure : TEAMS PSP 3/5

Note

Enable RTCP-MUX in order for media bypass scenarios to work.

Figure : TEAMS PSP 4/5

Note

Set Payload type Silence Insertion Descriptor to "13".

Figure : TEAMS PSP 5/5

 

Packet Service Profile ID Group

Figure : TEAMS PSP

 

SIP Domain

Figure : SIP Domain

 

Trunk Group 

It is mandatory to configure Trunk Group names using capital letters.

Figure : TEAMS Trunk Group 1/7

Figure : Teams Trunk Group 2/7

Figure : Teams Trunk Group 3/7

Do not configure "Out DM/PM Rule" with "TEAMS_TENANT_MOD" for Single Tenant deployments.

Figure : Teams Trunk Group 4/7

Figure : Teams Trunk Group 5/7

Figure : Teams Trunk Group 7/7

 

Routing Label

Figure : Routing Label 1/4

Figure : Routing Label 2/4

Figure : Routing Label 3/4

Figure : Routing Label 4/4

 

Configuration towards PSTN

IP Signaling Profile

Create an IP signaling profile for the PSTN side. 

Figure : IPSP Configuration 1/8

Figure : IPSP Configuration 2/8

Figure : IPSP Configuration 3/8

Figure : IPSP Configuration 4/8

Figure : IPSP Configuration 5/8

Figure : IPSP Configuration 6/8

Figure : IPSP Configuration 7/8

Figure : PSTN IPSP 8/8

Packet Service Profile

Figure : Access’s PSP Profile 1/3

Transcoding can be Conditional or Only, depending upon the requirement.

Figure : Access’s PSP Profile: 2/3

Figure : Access’s PSP Profile 3/3

 

Packet Service Profile ID Group 

Figure : Packet Service Profile ID Group

 

Tone and Announcement Profile 

Figure : Tone And Announcement Profile

 

IP Peer

Figure : IP Peer

 

Trunk Group

Create a trunk group towards the PSTN side.

It is mandatory to configure Trunk Group names using capital letters.

Figure : Trunk Group 1/3

Figure : Trunk Group 2/3

Figure : Trunk Group 3/3

 

Routing Label

Figure : Creating Routing label (RL) 1/2

Figure : Creating Routing label (RL) 2/2

 

Call Routing

Note

When a call transfer is initiated by Teams (as per the Teams recommendation), the SBC sends the INVITE back to the same Teams entity from where REFER is received. 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

PSX uses this entry to route all the calls coming from Teams towards PSTN end points (irrespective of digits or FQDN).

Figure : Standard Route towards PSTN

 

Standard Route 2

PSX uses this entry to route the calls coming from PSTN end points towards different Teams tenant TG's based on called digits.

Figure : Standard Route Towards Teams

 

Standard Route 3

PSX uses this entry to route all the calls towards the Teams after receiving REFER from the Teams for a call transfer towards PSTN.

Figure : Standard Route Towards Teams

 

Username Routing

PSX uses this entry to route all the calls towards the Teams after receiving REFER from the Teams for a call transfer towards TEAMS.

Figure : Username Routing Towards Teams

 

 

Section D: Call Admission Control (CAC) for Multi-Tenant Deployment

Note

Skip this section if you do not want to implement call admission control for each tenant in a multi-tenant deployment.

This section describes the implementation of the Call Admission Control (CAC) profile which provides the ability for each SIP registered or static endpoint to have individualized limits on the number of active calls, bandwidth size, call rates, over-subscription amounts, burst sizes, etc. There is a single incoming trunk from Teams to SBC, where traffic for all tenants is received. When a customer wishes to implement CAC limits for each tenant. Dummy TGs are created for each tenant. When the call comes from Teams, based on tenant information, they are assigned to tenants Dummy TG based on SMM CACSUPERTGREFER defined under Inbound Profile2. These dummy TGs have the CAC profiles configured for enforcing desired CAC limits per tenant.

Common Configurations

Trunk Group

Configure the SIP Trunk Groups for each tenant to enforce tenant-level CAC towards MS TEAMS.

It is mandatory to configure Trunk Group names using capital letters.

TG for tenant A

Do not forget to adjust the CAC limits as per customer requirements for each tenant. 

set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A state enabled
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A mode inService
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A media mediaIpInterfaceGroupName LIF2
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A downstreamForkingSupport enabled
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac callLimit 10
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac bandwidthLimit unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac bandwidthVideoThreshold 0
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac callLimitThreshold 0
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac bandwidthLimitThreshold 0
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac emergencyOversubscription 10
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac extendedEmergencyIpLimit 0
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac registrationLimit unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac estimatedChildRegistrations 1
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac subscriptionLimit unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac tcpMediaLimit unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac hpcOversubscription 10
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac ingress callRateMax 5
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac ingress callBurstMax 5
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac ingress registerRateMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac ingress registerBurstMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac ingress callLimit unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac ingress emergencyOversubscription 10
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac ingress extendedEmergencyIpLimit 0
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac ingress subscribeRateMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac ingress subscribeBurstMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac ingress otherReqRateMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac ingress otherReqBurstMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac ingress hpcOversubscription 10
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac egress callRateMax 5
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac egress callBurstMax 5
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac egress registerRateMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac egress registerBurstMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac egress callLimit unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac egress emergencyOversubscription 10
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac egress extendedEmergencyIpLimit 0
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac egress subscribeRateMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac egress subscribeBurstMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac egress otherReqRateMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac egress otherReqBurstMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A cac egress hpcOversubscription 10
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A signaling methods update reject
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A signaling rel100Support enabled
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A signaling relayNonInviteRequest enabled
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A signaling honorMaddrParam enabled
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A services dnsSupportType a-only
commit
TG for tenant B
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B state enabled
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B mode inService
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B media mediaIpInterfaceGroupName LIF2
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B downstreamForkingSupport enabled
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac callLimit 10
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac bandwidthLimit unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac bandwidthVideoThreshold 0
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac callLimitThreshold 0
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac bandwidthLimitThreshold 0
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac emergencyOversubscription 10
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac extendedEmergencyIpLimit 0
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac registrationLimit unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac estimatedChildRegistrations 1
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac subscriptionLimit unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac tcpMediaLimit unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac hpcOversubscription 10
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac ingress callRateMax 5
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac ingress callBurstMax 5
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac ingress registerRateMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac ingress registerBurstMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac ingress callLimit unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac ingress emergencyOversubscription 10
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac ingress extendedEmergencyIpLimit 0
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac ingress subscribeRateMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac ingress subscribeBurstMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac ingress otherReqRateMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac ingress otherReqBurstMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac ingress hpcOversubscription 10
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac egress callRateMax 5
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac egress callBurstMax 5
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac egress registerRateMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac egress registerBurstMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac egress callLimit unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac egress emergencyOversubscription 10
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac egress extendedEmergencyIpLimit 0
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac egress subscribeRateMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac egress subscribeBurstMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac egress otherReqRateMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac egress otherReqBurstMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B cac egress hpcOversubscription 10
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B signaling methods update reject
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B signaling rel100Support enabled
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B signaling relayNonInviteRequest enabled
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B signaling honorMaddrParam enabled
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B services dnsSupportType a-only
commit
TG for tenant C
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C media mediaIpInterfaceGroupName LIF2
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C downstreamForkingSupport enabled
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac callLimit 10
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac bandwidthLimit unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac bandwidthVideoThreshold 0
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac callLimitThreshold 0
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac bandwidthLimitThreshold 0
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac emergencyOversubscription 10
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac extendedEmergencyIpLimit 0
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac registrationLimit unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac estimatedChildRegistrations 1
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac subscriptionLimit unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac tcpMediaLimit unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac hpcOversubscription 10
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac ingress callRateMax 5
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac ingress callBurstMax 5
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac ingress registerRateMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac ingress registerBurstMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac ingress callLimit unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac ingress emergencyOversubscription 10
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac ingress extendedEmergencyIpLimit 0
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac ingress subscribeRateMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac ingress subscribeBurstMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac ingress otherReqRateMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac ingress otherReqBurstMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac ingress hpcOversubscription 10
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac egress callRateMax 5
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac egress callBurstMax 5
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac egress registerRateMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac egress registerBurstMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac egress callLimit unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac egress emergencyOversubscription 10
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac egress extendedEmergencyIpLimit 0
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac egress subscribeRateMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac egress subscribeBurstMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac egress otherReqRateMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac egress otherReqBurstMax unlimited
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C cac egress hpcOversubscription 10
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C signaling methods update reject
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C signaling rel100Support enabled
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C signaling relayNonInviteRequest enabled
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C signaling honorMaddrParam enabled
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C services dnsSupportType a-only
commit

 

SMM Profiles towards Teams

Inbound Profile2

The SMM rules below are created to serve the following purpose:

  • Rule 1: Stores a urihostname value of "To" header and stores it in a variable.
  • Rule 2: Creates a dummy parameter in the "refer-to" header with the name "Ribbon" and stores the variable. This is useful for a call transfer scenario in a multi-tenant deployment.
  • Rule 3: Sets the Max-Forward value to 0, so that SBC responds back with 200 OK to the OPTIONS.
  • Rule 4: Stores TEAMS_A_TG as the trunk group when the TO header matches the regex - a.customers.interopdomain.com.
  • Rule 5: Stores TEAMS_B_TG as the trunk group when the TO header matches the regex - b.customers.interopdomain.com.
  • Rule 6: Stores TEAMS_C_TG as the trunk group when the TO header matches the regex - c.customers.interopdomain.com.

 

Note

Accomplish the following:
  • Attach this profile to only the Inbound TG.
  • Replace the "criterion 3 token regexp string" with the required tenant information.
  • Create separate rules for each tenant.
set profiles signaling sipAdaptorProfile CACSUPERTGREFER state enabled
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 1 criterion 1 type message
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 1 criterion 1 message
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 1 criterion 1 message messageTypes request
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 1 criterion 1 message methodTypes refer
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 1 criterion 1 message condition exist
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 1 criterion 2 type header
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 1 criterion 2 header
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 1 criterion 2 header name To
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 1 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 1 action 1 type token
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 1 action 1 operation store
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 1 action 1 from
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 1 action 1 from type token
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 1 action 1 from tokenValue urihostname
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 1 action 1 to
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 1 action 1 to type variable
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 1 action 1 to variableValue var1
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 2 criterion 1 type message
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 2 criterion 1 message
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 2 criterion 1 message messageTypes request
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 2 criterion 1 message methodTypes refer
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 2 criterion 1 message condition exist
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 2 criterion 2 type header
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 2 criterion 2 header
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 2 criterion 2 header name Refer-To
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 2 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 2 action 1 type parameter
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 2 action 1 operation add
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 2 action 1 paramType uri
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 2 action 1 from
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 2 action 1 from type variable
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 2 action 1 from variableValue var1
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 2 action 1 to
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 2 action 1 to type parameter
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 2 action 1 to value Ribbon
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 3 applyMatchHeader one
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 3 criterion 1 type message
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 3 criterion 1 message
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 3 criterion 1 message messageTypes request
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 3 criterion 1 message methodTypes options
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 3 criterion 2 type header
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 3 criterion 2 header
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 3 criterion 2 header name Max-Forwards
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 3 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 3 criterion 2 header hdrInstance all
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 3 action 1 type header
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 3 action 1 operation modify
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 3 action 1 headerInfo headerValue
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 3 action 1 from
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 3 action 1 from type value
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 3 action 1 from value 0
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 3 action 1 to
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 3 action 1 to type header
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 3 action 1 to value Max-Forwards
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 4 applyMatchHeader one
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 4 criterion 1 type message
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 4 criterion 1 message
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 4 criterion 1 message messageTypes requestAll
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 4 criterion 2 type header
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 4 criterion 2 header
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 4 criterion 2 header name TO
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 4 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 4 criterion 2 header hdrInstance all
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 4 criterion 3 type token
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 4 criterion 3 token
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 4 criterion 3 token condition regex-match
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 4 criterion 3 token tokenType urihostname
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 4 criterion 3 token regexp
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 4 criterion 3 token regexp string a.customers.interopdomain.com
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 4 action 1 type variable
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 4 action 1 operation storeIpTg
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 4 action 1 from
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 4 action 1 from type value
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 4 action 1 from value TEAMS_A_TG
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 4 action 1 to
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 4 action 1 to type variable
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 4 action 1 to variableValue var2
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 4 action 1 to variableScopeValue local
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 5 applyMatchHeader one
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 5 criterion 1 type message
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 5 criterion 1 message
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 5 criterion 1 message messageTypes requestAll
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 5 criterion 2 type header
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 5 criterion 2 header
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 5 criterion 2 header name TO
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 5 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 5 criterion 2 header hdrInstance all
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 5 criterion 3 type token
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 5 criterion 3 token
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 5 criterion 3 token condition regex-match
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 5 criterion 3 token tokenType urihostname
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 5 criterion 3 token regexp
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 5 criterion 3 token regexp string b.customers.interopdomain.com
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 5 action 1 type variable
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 5 action 1 operation storeIpTg
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 5 action 1 from
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 5 action 1 from type value
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 5 action 1 from value TEAMS_B_TG
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 5 action 1 to
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 5 action 1 to type variable
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 5 action 1 to variableValue var3
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 5 action 1 to variableScopeValue local
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 6 applyMatchHeader one
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 6 criterion 1 type message
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 6 criterion 1 message
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 6 criterion 1 message messageTypes requestAll
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 6 criterion 2 type header
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 6 criterion 2 header
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 6 criterion 2 header name TO
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 6 criterion 2 header condition exist
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 6 criterion 2 header hdrInstance all
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 6 criterion 3 type token
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 6 criterion 3 token
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 6 criterion 3 token condition regex-match
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 6 criterion 3 token tokenType urihostname
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 6 criterion 3 token regexp
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 6 criterion 3 token regexp string c.customers.interopdomain.com
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 6 action 1 type variable
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 6 action 1 operation storeIpTg
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 6 action 1 from
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 6 action 1 from type value
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 6 action 1 from value TEAMS_C_TG
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 6 action 1 to
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 6 action 1 to type variable
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 6 action 1 to variableValue var3
set profiles signaling sipAdaptorProfile CACSUPERTGREFER rule 6 action 1 to variableScopeValue local
commit

 

Attaching SMM Profiles
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG signaling messageManipulation inputAdapterProfile CACSUPERTGREFER
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A signaling messageManipulation inputAdapterProfile REFER outputAdapterProfile HeaderModifications
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B signaling messageManipulation inputAdapterProfile REFER outputAdapterProfile HeaderModifications
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C signaling messageManipulation inputAdapterProfile REFER outputAdapterProfile HeaderModifications

 

ERE configurations in case of CAC

Trunk Group

Configure the Tenant SIP Trunk Groups with additional configurations like LRBT,ERPDM/PM RulePSPIPSP created in the previous steps. 

It is mandatory to configure Trunk Group names using capital letters.

TG for tenant A
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A mode outOfService state disabled
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A policy carrier 0000
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A policy country 1
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A policy localizationVariant northAmerica
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A policy tgIPVersionPreference both-ipv4-and-ipv6
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A policy preferredIdentity disable
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A policy digitParameterHandling numberingPlan NANP_ACCESS
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A policy callRouting elementRoutingPriority TEAMS
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A policy media packetServiceProfile TEAMS_PSP
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A policy media toneAndAnnouncementProfile LRBT_PROF
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A policy services classOfService DEFAULT_IP
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A policy signaling ipSignalingProfile TEAMS_IPSP
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A policy featureControlProfile DEFAULT_IP
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A policy digitParameterHandling egressDmPmRule TEAMS_TENET_A_MOD
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A policy sipDomain SIP.PSTNHUB.MICROSOFT.COM
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_A mode inService state enabled
commit
TG for tenant B
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B mode outOfService state disabled
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B policy carrier 0000
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B policy country 1
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B policy localizationVariant northAmerica
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B policy tgIPVersionPreference both-ipv4-and-ipv6
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B policy preferredIdentity disable
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B policy digitParameterHandling numberingPlan NANP_ACCESS
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B policy callRouting elementRoutingPriority TEAMS
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B policy media packetServiceProfile TEAMS_PSP
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B policy media toneAndAnnouncementProfile LRBT_PROF
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B policy services classOfService DEFAULT_IP
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B policy signaling ipSignalingProfile TEAMS_IPSP
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B policy featureControlProfile DEFAULT_IP
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B policy digitParameterHandling egressDmPmRule TEAMS_TENET_A_MOD
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B policy sipDomain SIP.PSTNHUB.MICROSOFT.COM
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_B mode inService state enabled
commit
TG for tenant C
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C mode outOfService state disabled
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C policy carrier 0000
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C policy country 1
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C policy localizationVariant northAmerica
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C policy tgIPVersionPreference both-ipv4-and-ipv6
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C policy preferredIdentity disable
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C policy digitParameterHandling numberingPlan NANP_ACCESS
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C policy callRouting elementRoutingPriority TEAMS
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C policy media packetServiceProfile TEAMS_PSP
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C policy media toneAndAnnouncementProfile LRBT_PROF
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C policy services classOfService DEFAULT_IP
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C policy signaling ipSignalingProfile TEAMS_IPSP
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C policy featureControlProfile DEFAULT_IP
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C policy digitParameterHandling egressDmPmRule TEAMS_TENET_A_MOD
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C policy sipDomain SIP.PSTNHUB.MICROSOFT.COM
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG_C mode inService state enabled
commit

Routing Label

Note

Create separate routing labels towards each tenants.

set global callRouting routingLabel TEAMS_RL_A routingLabelRoute 1 trunkGroup TEAMS_TG_A ipPeer TEAMS_PEER inService inService
commit
set global callRouting routingLabel TEAMS_RL_B routingLabelRoute 1 trunkGroup TEAMS_TG_B ipPeer TEAMS_PEER inService inService
commit
set global callRouting routingLabel TEAMS_RL_C routingLabelRoute 1 trunkGroup TEAMS_TG_C ipPeer TEAMS_PEER inService inService
commit

Call Routing  

Note

When a call transfer is initiated by Teams (as per the Teams recommendation), the SBC sends the INVITE back to the same Teams entity from where REFER is received. Teams, in-turn, initiates a new call towards the referred entity. For this purpose, the Standard Route 3 and Username routing entities are configured.

Standard Route 1

This entry is used to route all the calls coming from Teams towards PSTN endpoints (irrespective of digits or FQDN).

set global callRouting route trunkGroup TEAMS_TG_A <sbcname> standard Sonus_NULL 1 all all ALL none Sonus_NULL routingLabel PSTN_RL
commit
set global callRouting route trunkGroup TEAMS_TG_B <sbcname> standard Sonus_NULL 1 all all ALL none Sonus_NULL routingLabel PSTN_RL
commit
set global callRouting route trunkGroup TEAMS_TG_C <sbcname> standard Sonus_NULL 1 all all ALL none Sonus_NULL routingLabel PSTN_RL
commit
Standard Route 2

This entry is used to route all the calls coming from PSTN endpoints towards different Teams tenant TG's based on called digits.

set global callRouting route none Sonus_NULL Sonus_NULL standard 2414445 1 all all ALL none Sonus_NULL routingLabel TEAMS_RL_A
commit
set global callRouting route none Sonus_NULL Sonus_NULL standard 2414446 1 all all ALL none Sonus_NULL routingLabel TEAMS_RL_B
commit
set global callRouting route none Sonus_NULL Sonus_NULL standard 2414447 1 all all ALL none Sonus_NULL routingLabel TEAMS_RL_C
commit
Standard Route 3

This entry is used to route all the calls towards the Teams after receiving REFER from the Teams for a call transfer towards PSTN.

set global callRouting route trunkGroup TEAMS_TG_A <sbcname> standard Sonus_NULL Sonus_NULL all all ALL none SIP.PSTNHUB.MICROSOFT.COM routingLabel TEAMS_RL_A
set global callRouting route trunkGroup TEAMS_TG_B <sbcname> standard Sonus_NULL Sonus_NULL all all ALL none SIP.PSTNHUB.MICROSOFT.COM routingLabel TEAMS_RL_B
set global callRouting route trunkGroup TEAMS_TG_C <sbcname> standard Sonus_NULL Sonus_NULL all all ALL none SIP.PSTNHUB.MICROSOFT.COM routingLabel TEAMS_RL_C
Username Routing

This entry is used to route all the calls towards the Teams after receiving REFER from the Teams for a call transfer towards TEAMS.

set global callRouting route trunkGroup TEAMS_TG_A <sbcname> username Sonus_NULL Sonus_NULL all all ALL none SIP.PSTNHUB.MICROSOFT.COM routingLabel TEAMS_RL_A
set global callRouting route trunkGroup TEAMS_TG_B <sbcname> username Sonus_NULL Sonus_NULL all all ALL none SIP.PSTNHUB.MICROSOFT.COM routingLabel TEAMS_RL_B
set global callRouting route trunkGroup TEAMS_TG_C <sbcname> username Sonus_NULL Sonus_NULL all all ALL none SIP.PSTNHUB.MICROSOFT.COM routingLabel TEAMS_RL_C

PSX configurations in case of CAC

Trunk Group 

It is mandatory to configure Trunk Group names using capital letters.

Figure : TEAMS Trunk Group 1/7

Figure : Teams Trunk Group 2/7

Figure : Teams Trunk Group 3/7

Figure : Teams Trunk Group 4/7

Figure : Teams Trunk Group 5/7

Figure : Teams Trunk Group 7/7

Note

Repeat the TG creation steps 2-7 above for each tenant. They are used as outbound TG's. Keep all other parameter the same.

Figure : Teams Outbound Trunk Group2

Figure : Teams Outbound Trunk Group 3

 

Routing Label

Create separate routing labels towards each tenant. Keep other parameters under Routing Label 2/4 similar.

Figure : Routing Label 1/7

Figure : Routing Label 2/7

Figure : Routing Label 3/7

Figure : Routing Label 4/7

Figure : Routing Label 5/7

Figure : Routing Label 6/7

Figure : Routing Label 7/7

 

Call Routing

Note

Create the following additional standard routes when using CAC.

Standard Route 1

The PSX uses this entry to route all the calls coming from Teams towards PSTN endpoints (irrespective of digits or FQDN).

Figure : Standard Route towards PSTN

Figure : Standard Route towards PSTN

 

Figure : Standard Route towards PSTN

Standard Route 2

The PSX uses this entry to route the calls coming from PSTN end points towards different Teams tenant TGs based on called digits.

Figure : Standard Route Towards Teams

Figure : Standard Route Towards Teams

Figure : Standard Route Towards Teams

 

Standard Route 3

The PSX uses this entry to route all the calls towards the Teams after receiving REFER from the Teams for a call transfer towards PSTN.

If multiple domain names are used, create this standard route for all domains.

Figure : Standard Route Towards Teams

Figure : Standard Route Towards Teams

Figure : Standard Route Towards Teams

 

Username Routing

The PSX uses this entry to route all the calls towards the Teams after receiving REFER from the Teams for a call transfer towards TEAMS.

Note

If multiple domain names are used, create this username route for all domains.

Figure : Username Routing Towards Teams

Figure : Username Routing Towards Teams

Figure : Username Routing Towards Teams

Section E: Basic Troubleshooting Steps

 

Certificates

Issues may occur during certificate exchange resulting in a failure of TLS negotiation. Note the following points for troubleshooting:

  • Install the root and all intermediate certificates provided by your CA on the SBC.

  • Ensure that SBC's FQDN configured on the Teams side is identical to the one on SBC's certificate.

  • In case of a wildcard certificate, ensure the correct number of spaces exist before the domain name.

    Example:

    A wild card certificate generated for *.example.com is not valid for *.customers.example.com. Refer to Tls Configuration section for a detailed explanation on SBC-supported certificate format.