Search

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

 

 

Table of Contents

 

Overview

This document provides the one-time configuration required on the SBC for a multi tenant deployment using single Trunk Group towards MS Teams.

References


Scope

This document provides the Ribbon SBC Core (SWe/5xx0/5400/7000) and PSX configuration with Microsoft® Teams for documented products and their versions. This is a general reference document that requires user input during the configuration. For PSX configuration, the screen captures in this document are limited to only the necessary provisioning areas. This document provides a sample of the Ribbon SBC 5400 configuration used during compliance testing.

Non-Goals

This document does not provide the test case details, success criteria, processes, and execution steps of testing that was performed.

This document outlines the configuration:

Configuration on SBC with CLI

  • MS Teams Configuration on SBC Core
  • PSTN Configuration on SBC Core
  • Configuration Required for Teams Media Bypass.

Configuration on PSX

  • MS Teams Configuration on PSX.
  • PSTN Configuration on PSX
  • Configuration Required for Teams Media Bypass

Introduction

Microsoft® Technology Adoption Program (TAP) Testing is performed between Microsoft® Teams and the Ribbon’s SBC Core (SWe/5400/5210/5110/7000). This document outlines the configuration, observations, and the overall testing experience with the device under test (DUT).

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.

  

Requirements

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 and the Ribbon SBC Core.

 

Figure : High Level Architecture For Teams deployment

                                                                       


 

Support

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

Prerequisites

  • Microsoft Teams' configuration should be deployed in Office 365 with proper licenses. Verify clients have the necessary licenses for making enterprise voice call.
  • SBC is required to have DSP cards or vDSP licenses to support ‘RFC 3960 Early Media and Ringing Tone Generation’ for MS TEAMS deployment.

 

SBC Configuration


This section provides a sample of the Ribbon SBC 5400 configuration used during compliance testing. The following commands and configurations are only for reference. Other configurations are also possible based on the requirement.

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

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


Enabling Remote PSX Server

The following command disables the local PSX server and enables the remote PSX server.

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 

 

Disabling rtcpBye Packet

set system media mediaRtcpControl sendBYEPacket disabled
commit

 

Microsoft Teams Configuration on SBC

IP Interface Group

Create an IP interface group.

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 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 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.

Below SMM rules are created to serve the following purpose:

Rule 1 & 2 : It is modifying the "Contact" and "From" header value with the user provided FQDN.

Rule 3 : It is adding 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

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

 

Configure the domain name and attach it with 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


Creating IP-PEER

Creating dummy Ip-peer and attaching PathCheck profile. 

set addressContext default zone TEAMS_ZONE ipPeer TEAMS_IPP policy sip fqdn sip.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

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. Please note, this is only applicable for TLS protocol.


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.

The Ribbon SBC Core listens on two ports, one defined under sipSigPort for TCP & UDP and plus 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


SIP Trunk Group


Create a SIP Trunk Group for the Teams side. For ingressIpPrefix, kindly replace X.X.X.X with the IP address that you want to allow from the Teams server.

Teams SIP Proxy server does not support the Update method and requires a Re-Invite. 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 media mediaIpInterfaceGroupName LIF2
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG media sdpAttributesSelectiveRelay enabled
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 ingressIpPrefix x.x.x.x x
set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG 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.

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

TLS Configuration

Generate a CSR with OpenSSL

 

# Generate a private key (Use any Linux OS to execute openssl cmds)
openssl genrsa -out /opt/sonus/csrkey.key 2048

# Generating the CSR requires another openssl command along with file location, name of your newly created key, path and file name for your CSR. 
# You are also prompted for information to populate the CSR.
openssl req -new -key /opt/sonus/csrkey.key -out /opt/sonus/certcsr.csr

 
The Country Name is mandatory and takes a two-letter country code:US
The State or Province Name field requires a full name:Taxes
The Locality Name field is for your city or town:Plano
In the Organization Name field, add your company or organization:Ribbon
Organizational Unit Name is an optional field for your department or section:Engineering
The Common Name field is used for the Fully Qualified Domain Name (FQDN) of the server (can be * if it is a wildcard): *.example.com
Email address is an optional field for this request: You can hit Enter to skip forward
The challenge password: <User define>
Company name: Ribbon
 
 
# 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


Outbound Teams SMM Profile

 

Below SMM rules are created to serve the following purpose:

Rule 1 : It is storing the "From" header hostname and store it in a variable (var1).

Rule 2 & 3: It is replacing the current value of Contact header and PPI with variable (var1).

Rule 4-7 : It is 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 : It handles addition of lifetime parameter in the crypto line for all the requests and responses.

Rule 11 : It will add the USER-AGENT header to all the Request messages.

Rule 12 : It will add the SERVER header to all the Response messages.

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


SMM Profile for Inbound

 

Below SMM rules are created to serve the following purpose:

Rule 1 : It is storing a urihostname value of "To" header and stores it in a variable.

Rule 2 : It creates a dummy parameter in the "refer-to" header with name "Ribbon" and store the variable. This is useful for a call transfer scenario in multi-tenant deployment.

Rule 3 : It makes the Max-Forward value to 0, so that SBC responds back with 200 OK to the OPTIONS.



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


Attaching SMM profiles

set addressContext default zone TEAMS_ZONE sipTrunkGroup TEAMS_TG signaling messageManipulation inputAdapterProfile REFER outputAdapterProfile HeaderModifications

 

PSTN Side Configuration


IP Interface Group

Create an IP interface group.

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.

Replace "x.x.x.x" with 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


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.

 

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


IP Static Route

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

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


Inbound SMM Profile

 

Below 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", SBC receives "Contact" header with "Gr" parameter, due to which SBC transparently passes "Contact" header to Egress side (the Teams side) and resulted in 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 Required for Teams Media Bypass

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

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

 

Configuration on PSX

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

Creating Gateway

Configure a gateway with SBC name and it's 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.

Figure : Element Routing Priority

 

Teams' Side Configuration

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

 
 

 

Tone and Announcement Profile 

Figure : Tone And Announcement Profile

 

DM/PM Criteria

Figure : DM/PM Criteria

 

DM/PM Rule

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

 

IP Signalling Peer Group

Figure : IP Peer Group

 

Crypto Suit Profile

Figure : Crypto Profile

 

Packet Service Profile

Figure : TEAMS PSP 1/5

Figure : TEAMS PSP 2/5

Figure : TEAMS PSP 3/5

RTCP-MUX should be enabled for media bypass scenarios to work.

Figure : TEAMS PSP 4/5

Figure : TEAMS PSP 5/5

 

Packet Service Profile ID Group

Figure : TEAMS PSP

 

SIP Domain

Figure : SIP Domain

 

Trunk Group 

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 6/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

 

PSTN Side Configuration

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.

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

 

When call transfer is initiated by Teams, as per the Teams recommendation, SBC should send the INVITE back to the same Teams entity from where REFER is received. Teams in-turn will initiate 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 all the calls coming from PSTN end points towards Teams (irrespective of digits or FQDN).

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