IP Corp > News > news > Microsoft Teams & CUCM Simultaneous Ringing
  • George Goglidze
  • 2 Comments

by George Goglidze, CCIE #19926

1. Lab information

To find out more about the actual integration of CUCM with Microsoft Teams, we explain this in detail on the following link:
https://ipcorp.co.uk/microsoft-teams-direct-routing-cisco-cucm-integration/

1.1. User setup

On CUCM side, I have an user with number: +442050000001

On Microsoft Teams side, I have enabled user for DR / Enterprisevoice with the same number: +442050000001

SBC is configured to forward all incoming calls to +44205000XXXX to CUCM. Therefore all incoming calls are going to Cisco CallManager first and then it’s up to CallManager where to send the call.

The feature to achive simulateneous ringing on Cisco CUCM and Microsoft Teams at the same time, is via Cisco’s Mobility / Single Number Reach feature. We will explain detailed steps how to do it below.

2. Call scenario

PSTN user calling number +442050000001. We expect this call to Ring on Jabber device, and also on Microsoft Teams simultaneously.

3. CUCM Setup

There are few steps that we need to configure on CUCM, and first step is to prepare a separate Partition/CSS pair for only Simulataneous calling. Because we are assigning same DDI number to the user on Cisco side and on Microsoft side, we need to make sure that we isolate the Route Patterns that are being used for SNR feature.

First we go to Class of Control > Partition and create a partition for SNR. In my case I created partition called:

  • PT_Simultaneous_Ring

Now we go to Class of Control > Calling Search Space and create a CSS that will include the partition created above. In my case I created CSS called:

  • CSS_Simultaneous_Ring
    • Including partition: PT_Simultaneous_Ring

Now we can create a Route Pattern that will point to the SBC. But we need to make sure when we send the call to the SBC, we differentiate this call somehow, as if we just send it to the DDI (+442050000001), the SBC will recognize this as a number on the CUCM, and will loop the call back to CUCM.

To avoid the routing loop I have removed the + and prefix the number with “0001”.

Here is how we do it.

Go to Route/Hunt > Route Pattern and create a new Route Pattern like this:

Do not forget to configure the called number translations as below:

Now we must configure user features.

We must enable Mobility feature for an user.

We will go to: User Management > End User and find the user we reqire the Mobility feature for.

Once we are inside the user’s configuration, we can enable the following checkbox.

Next we will configure the Remote Destination Profile.

Go to Device > Device Settings > Remote Destination Profile and configure an RDP Profile for the user:

Please pay attention, the Rerouting Calling Search Space must be set to the new CSS (CSS_Simultaneous_Ring) we created above.

Next we will configure the actual Remote Destination:.

Go to Device > Remote Destination and configure the following:

Please pay attention, the Destination number must be same as the user’s DDI. As we said same number is assigned to the user on MS Teams DR and CUCM as well.

After this, we move to the SBC configuration.

4. SBC Setup

We must add a new destination on the SBC, that will match the calls that start with “0001”, the prefix that we created for Microsoft Teams simultaneous ring.

I already had three dial-peers that points to Microsof Teams. I’ll show them here as an example:

dial-peer voice 200 voip
rtp payload-type comfort-noise 13
session protocol sipv2
session target dns:sip.pstnhub.microsoft.com
destination e164-pattern-map 200
voice-class codec 1
voice-class stun-usage 1
voice-class sip tenant 200
voice-class sip options-keepalive profile 200
dtmf-relay rtp-nte
srtp
fax protocol none
no vad
!
dial-peer voice 201 voip
preference 1
rtp payload-type comfort-noise 13
session protocol sipv2
session target dns:sip2.pstnhub.microsoft.com
destination e164-pattern-map 200
voice-class codec 1
voice-class stun-usage 1
voice-class sip tenant 200
voice-class sip options-keepalive profile 200
dtmf-relay rtp-nte
srtp
fax protocol none
no vad
!
dial-peer voice 202 voip
preference 2
rtp payload-type comfort-noise 13
session protocol sipv2
session target dns:sip3.pstnhub.microsoft.com
destination e164-pattern-map 200
voice-class codec 1
voice-class stun-usage 1
voice-class sip tenant 200
voice-class sip options-keepalive profile 200
dtmf-relay rtp-nte
srtp
fax protocol none
no vad
!

As you can see, the dial-peers are matching on the destinations in the pattern map:

  • e164-pattern-map 200

We will need to add the following destination

voice class e164-pattern-map 200
e164 0001T
!

Now, the final bit is that we need to remove the prefix “0001” and add the “+” instead to make sure the number we send to Microsoft Teams is in the correct +e164 format.

We will add the following translation rule / profile and add it to the appropriate Dial-Peers:

voice translation-rule 10
rule 2 /^0001\(.*\)/ /+\1/
!
!
voice translation-profile TO_TEAMS
translate called 10
!

dial-peer voice 200 voip
translation-profile outgoing TO_TEAMS
!
dial-peer voice 201 voip
translation-profile outgoing TO_TEAMS
!
dial-peer voice 202 voip
translation-profile outgoing TO_TEAMS
!

This is all we need to do.

Now we can enjoy having the same number in Microsoft Teams and Cisco CUCM. I hope this has been helpful 

I hope you liked the blog, and would appreciate if you subscribe to our page on LinkedIn or Twitter.

Leave a Reply

2 Comments

  • Dariusz

    Hello George,
    Another excellent article!!
    Question: Do Teams respect “Reason: SIP ;cause=200 ;text=”Call completed elsewhere”” signaling (RFC3326) ??

    For us:
    When the call is answered on Teams there is no “missed call” notification on Cisco.
    When answered on Cisco…. Teams client shows “missed call”.