Ribbon Documentation Portal will be unavailable Thursday February 2nd 2023 between 2:00 PM EST ~ 12:00 PM. More Info
Page tree
Skip to end of metadata
Go to start of metadata

In this article:


This article describes CAC implementation for ERE routing.

Configure SIP Trunk Groups

Note

Ensure that the SIP Trunk Groups are configured with prerequisite configuration steps like LRBT, ERP, DM/PM Rule, Packet Service Profile, and IP Signaling Profile. For more information, refer to Configure ERE for MS Teams.

Tip

The configuration steps described in this article are examples.

Ribbon recommends referring to the SBC and PSX product documentation for detailed information on the commands, parameters, and flags used in the configuration examples of this guide.

Process the steps in the same order as described in this article.

Configure Trunk Groups for Tenant A

To configure trunk group for tenant A, execute the following commands:

% 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

Configure Trunk Groups for Tenant B

To configure trunk group for tenant B, execute the following commands:

% 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

Configure Trunk Groups for Tenant C

To configure trunk group for tenant C, execute the following commands:

% 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


Configure Routing Labels

Create separate routing levels towards each tenant.

Note

For site redundancy, attach different IP-peers on each trunk group, as defined under the heading "Routing Label for Teams" in the page Configure ERE for MS Teams.

% set global callRouting routingLabel TEAMS_RL_A overflowNumber ""
% set global callRouting routingLabel TEAMS_RL_A overflowNOA none
% set global callRouting routingLabel TEAMS_RL_A overflowNPI none
% set global callRouting routingLabel TEAMS_RL_A routePrioritizationType sequence
% set global callRouting routingLabel TEAMS_RL_A action routes
% set global callRouting routingLabel TEAMS_RL_A numRoutesPerCall 10
% set global callRouting routingLabel TEAMS_RL_A routingLabelRoute 1 routeType trunkGroup
% set global callRouting routingLabel TEAMS_RL_A routingLabelRoute 1 trunkGroup TEAMS_TG_A
% set global callRouting routingLabel TEAMS_RL_A routingLabelRoute 1 ipPeer TEAMS_PEER1
% set global callRouting routingLabel TEAMS_RL_A routingLabelRoute 1 proportion 0
% set global callRouting routingLabel TEAMS_RL_A routingLabelRoute 1 cost 1000000
% set global callRouting routingLabel TEAMS_RL_A routingLabelRoute 1 inService inService
% set global callRouting routingLabel TEAMS_RL_A routingLabelRoute 1 testing normal
% set global callRouting routingLabel TEAMS_RL_A routingLabelRoute 2 routeType trunkGroup
% set global callRouting routingLabel TEAMS_RL_A routingLabelRoute 2 trunkGroup TEAMS_TG_A
% set global callRouting routingLabel TEAMS_RL_A routingLabelRoute 2 ipPeer TEAMS_PEER2
% set global callRouting routingLabel TEAMS_RL_A routingLabelRoute 2 proportion 0
% set global callRouting routingLabel TEAMS_RL_A routingLabelRoute 2 cost 1000000
% set global callRouting routingLabel TEAMS_RL_A routingLabelRoute 2 inService inService
% set global callRouting routingLabel TEAMS_RL_A routingLabelRoute 2 testing normal
% set global callRouting routingLabel TEAMS_RL_A routingLabelRoute 3 routeType trunkGroup
% set global callRouting routingLabel TEAMS_RL_A routingLabelRoute 3 trunkGroup TEAMS_TG_A
% set global callRouting routingLabel TEAMS_RL_A routingLabelRoute 3 ipPeer TEAMS_PEER3
% set global callRouting routingLabel TEAMS_RL_A routingLabelRoute 3 proportion 0
% set global callRouting routingLabel TEAMS_RL_A routingLabelRoute 3 cost 1000000
% set global callRouting routingLabel TEAMS_RL_A routingLabelRoute 3 inService inService
% set global callRouting routingLabel TEAMS_RL_A routingLabelRoute 3 testing normal
% commit
% set global callRouting routingLabel TEAMS_RL_B overflowNumber ""
% set global callRouting routingLabel TEAMS_RL_B overflowNOA none
% set global callRouting routingLabel TEAMS_RL_B overflowNPI none
% set global callRouting routingLabel TEAMS_RL_B routePrioritizationType sequence
% set global callRouting routingLabel TEAMS_RL_B action routes
% set global callRouting routingLabel TEAMS_RL_B numRoutesPerCall 10
% set global callRouting routingLabel TEAMS_RL_B routingLabelRoute 1 routeType trunkGroup
% set global callRouting routingLabel TEAMS_RL_B routingLabelRoute 1 trunkGroup TEAMS_TG_B
% set global callRouting routingLabel TEAMS_RL_B routingLabelRoute 1 ipPeer TEAMS_PEER1
% set global callRouting routingLabel TEAMS_RL_B routingLabelRoute 1 proportion 0
% set global callRouting routingLabel TEAMS_RL_B routingLabelRoute 1 cost 1000000
% set global callRouting routingLabel TEAMS_RL_B routingLabelRoute 1 inService inService
% set global callRouting routingLabel TEAMS_RL_B routingLabelRoute 1 testing normal
% set global callRouting routingLabel TEAMS_RL_B routingLabelRoute 2 routeType trunkGroup
% set global callRouting routingLabel TEAMS_RL_B routingLabelRoute 2 trunkGroup TEAMS_TG_B
% set global callRouting routingLabel TEAMS_RL_B routingLabelRoute 2 ipPeer TEAMS_PEER2
% set global callRouting routingLabel TEAMS_RL_B routingLabelRoute 2 proportion 0
% set global callRouting routingLabel TEAMS_RL_B routingLabelRoute 2 cost 1000000
% set global callRouting routingLabel TEAMS_RL_B routingLabelRoute 2 inService inService
% set global callRouting routingLabel TEAMS_RL_B routingLabelRoute 2 testing normal
% set global callRouting routingLabel TEAMS_RL_B routingLabelRoute 3 routeType trunkGroup
% set global callRouting routingLabel TEAMS_RL_B routingLabelRoute 3 trunkGroup TEAMS_TG_B
% set global callRouting routingLabel TEAMS_RL_B routingLabelRoute 3 ipPeer TEAMS_PEER3
% set global callRouting routingLabel TEAMS_RL_B routingLabelRoute 3 proportion 0
% set global callRouting routingLabel TEAMS_RL_B routingLabelRoute 3 cost 1000000
% set global callRouting routingLabel TEAMS_RL_B routingLabelRoute 3 inService inService
% set global callRouting routingLabel TEAMS_RL_B routingLabelRoute 3 testing normal
% commit
% set global callRouting routingLabel TEAMS_RL_C overflowNumber ""
% set global callRouting routingLabel TEAMS_RL_C overflowNOA none
% set global callRouting routingLabel TEAMS_RL_C overflowNPI none
% set global callRouting routingLabel TEAMS_RL_C routePrioritizationType sequence
% set global callRouting routingLabel TEAMS_RL_C action routes
% set global callRouting routingLabel TEAMS_RL_C numRoutesPerCall 10
% set global callRouting routingLabel TEAMS_RL_C routingLabelRoute 1 routeType trunkGroup
% set global callRouting routingLabel TEAMS_RL_C routingLabelRoute 1 trunkGroup TEAMS_TG_C
% set global callRouting routingLabel TEAMS_RL_C routingLabelRoute 1 ipPeer TEAMS_PEER1
% set global callRouting routingLabel TEAMS_RL_C routingLabelRoute 1 proportion 0
% set global callRouting routingLabel TEAMS_RL_C routingLabelRoute 1 cost 1000000
% set global callRouting routingLabel TEAMS_RL_C routingLabelRoute 1 inService inService
% set global callRouting routingLabel TEAMS_RL_C routingLabelRoute 1 testing normal
% set global callRouting routingLabel TEAMS_RL_C routingLabelRoute 2 routeType trunkGroup
% set global callRouting routingLabel TEAMS_RL_C routingLabelRoute 2 trunkGroup TEAMS_TG_C
% set global callRouting routingLabel TEAMS_RL_C routingLabelRoute 2 ipPeer TEAMS_PEER2
% set global callRouting routingLabel TEAMS_RL_C routingLabelRoute 2 proportion 0
% set global callRouting routingLabel TEAMS_RL_C routingLabelRoute 2 cost 1000000
% set global callRouting routingLabel TEAMS_RL_C routingLabelRoute 2 inService inService
% set global callRouting routingLabel TEAMS_RL_C routingLabelRoute 2 testing normal
% set global callRouting routingLabel TEAMS_RL_C routingLabelRoute 3 routeType trunkGroup
% set global callRouting routingLabel TEAMS_RL_C routingLabelRoute 3 trunkGroup TEAMS_TG_C
% set global callRouting routingLabel TEAMS_RL_C routingLabelRoute 3 ipPeer TEAMS_PEER3
% set global callRouting routingLabel TEAMS_RL_C routingLabelRoute 3 proportion 0
% set global callRouting routingLabel TEAMS_RL_C routingLabelRoute 3 cost 1000000
% set global callRouting routingLabel TEAMS_RL_C routingLabelRoute 3 inService inService
% set global callRouting routingLabel TEAMS_RL_C routingLabelRoute 3 testing normal
% commit


Configure 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 which it received the REFER. Teams, in-turn, initiates a new call towards the referred entity. For this purpose, the Standard Route 3 and Username routing entities are configured.

Configure Standard Route 1

Use this configuration to route all 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

Configure Standard Route 2

Use this configuration to route all calls coming from PSTN endpoints towards different Teams tenant Trunk Groups 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

Configure Standard Route 3

Use this configuration to route all 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
% commit
% 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
% commit
% 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
% commit

Configure Username Routing

Use this configuration to route all calls towards the Teams after receiving REFER from the Teams for a call transfer towards TEAMS.

% set global callRouting route trunkGroup TEAMS_TG_A <sbcname> username Sonus_NULL Sonus_NULL all all ALL none SIP.PSTNHUB.MICROSOFT.COM routingLabel TEAMS_RL_A
% commit
% 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
% commit
% 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
% commit



  • No labels