Microsoft Teams – Architecture Overview…


I told a customer “Microsoft Teams is NOT a Skype for Business replacement, the next version or upgraded skin for it” and he asked “Then what it is?”…my reply was “It is the next generation Intelligent Communications platform” and now I’m writing this blog based on that 🙂

This is such times I see customers increasingly overwhelmed and trying to digest the Microsoft Teams move given the Roadmap  is well published and transparent to all.

Specially, the current Skype for Business On-prem and Hybrid customers are struggling in “fit in” to the bandwagon since the perception of the “Cloud” has not been accepted as a matured service platform in some corners of the world.

The bottom line is that the technology has been advanced to an ultimate level we face “evolve or die” situation where Unified Communication has no exemption.

It is very important to be convinced that the Teams is not yet another product from Microsoft which we install and run on our computers and devices. It has been completely changing the way we communicate and will be the immediate future of a single pane of glass.

From the architecture point of view Microsoft Teams is a complete ground-up platform constructed based on cloud centric Microservices service model while Skype for Business was built on Monolithic model.

The best advantage I see in this new architecture is the intelligent Teams client which can operate on different platforms without signifying fundamental differences in each instance, which means Teams client can apply updates without platform boundaries.

The completeness of Teams is all about rich user experience of Azure AD, Office 365 Groups, SharePoint Online, OneNote, OneDrive, Exchange, PowerBI, Machine Learning and brand new Chat/Calling/meeting platform in one window.

So, I wouldn’t introduce Teams as a next SFBO, but the “next generation Intelligent Communications platform”…

Microsoft Teams Calling Application Preference

————————————–Please see the most updated post here-————————————–

I’ve been recently working with a customer to enable PSTN calling for Skype for Business Online for a group of pilot users and realised that the customer had assumed that Microsoft Teams should be automatically function just like the SfB client but it wasn’t the case.

It raised an important flag of importance to follow Microsoft Official Guidelines for transitioning from SFBO to Microsoft Teams with the controller in the hand.

However, the customers who have adopted Microsoft Teams alongside with SFBO should clearly understand the basis of client preference for fully featured calling experience. Technically, if they have both SFBO and Teams enabled and being used, the default user experience would be;

  • SfB client can make and receive PSTN calls
  • Teams client can make PSTN calls but not receiving an incoming call toast
  • It both clients running on the same device, SfB client receives the incoming PSTN calling toast
  • If the SfB client is not signed in but Teams client is running, the incoming call will be forwarded to the Voicemail
  • If the user has clients running on multiple devices (multiple point of presence), any SfB client or App will take the precedence of incoming call

How to change this behaviour?….pretty easy…

Microsoft added Microsoft Teams Inter-op policies last year by introducing some new Power-Shell commands to SFBO command list to control this behaviour during the transition. these policies can control both Chat and Calling Default client behaviour but we are focusing on Calling in our scenario.

The default Global policy is always applied to all users and set as below;


Here, CallingDefaultClient : Default is which means SfB client is preferred. (Default always means SfB Client/App)

To override default Global policy, administrator should assign a pre-defined custom policies (Tags) or create a new policy;


we can choose 2 Tags out of 7 in our case as below;

Scenario 1 – if you need to change the Calling Application Preference without user intervention, use below tag which makes the Teams as the preferred client for all Incoming and outgoing PSTN calls.

allowed teams

Command : Grant-CsTeamsInteropPolicy -PolicyName Tag:DisallowOverrideCallingTeamsChatTeams -Identity

Scenario 2 – if you need to keep the default configuration but allow users to change the  Calling Application Preference by themselves, use below tag which enables a drop down box listing client options within Teams settings section.

Allowed true

Command : Grant-CsTeamsInteropPolicy -PolicyName Tag:AllowOverrideCallingDefaultChatDefault -Identity

Once, this policy is applied users should exit and sign-in to Teams Client to make this effect. (If changes not visible, don’t be panic…its cloud and may take like 10 minutes…try again)

The new options will be displayed as below;

pref call

and test a call…you must see the incoming call toast on Teams client now…

call incoming

This configuration will be added as part of new SfB and Teams Admin console soon…no to Shell then 🙂