Pages Menu

Posted by on Dec 30, 2021 in Azure Communication Services, Microsoft Teams

Embed Teams client in a webpage with new public preview functionality from ACS

Embed Teams client in a webpage with new public preview functionality from ACS

I missed this in last month’s announcement about GA of Teams Interop for Teams meetings, but since reading through some of the documentation pages, there’s another feature currently in public preview which is potentially equally as useful and exciting.

Azure Communication Services has a rich UI library of web controls that let developers create unique client experiences for voice, video and chat. If you want to create a branded, customised experience in a webpage then you can do that with Azure Communication Services.

The only “downside” has been that every user has needed to have an ACS identity. This is only a problem for users who already have an existing identity, such as a Microsoft Teams account tied to their AD identity. There hasn’t been any way to associate the two, meaning that users could potentially receive incoming calls on both identities at the same time. Besides, it would be confusing for users to have to manage two different calling systems if they are already used to using Microsoft Teams.

The GA announcement last month made this easier in part because it allowed ACS users to join Teams meetings which can also, by definition, be joined by Teams users. But it didn’t address the needs of users who are currently using Microsoft Teams but want to use a different client to make and receive calls.

Now, though, there is a new public preview feature, which allows ACS to use a Microsoft Teams identity to make and receive calls. It means that developers can use the same ACS libraries to build unique web-based experiences, but users can continue to use a single Teams identity. Calls made in the ACS client will be true Teams calls, Teams presence will change, no second incoming call etc.

This diagram from the Microsoft Docs pages lays out all the options now available. On the left-hand side are Teams users, using their Teams identities and not requiring additional ACS identities. The top-left is the “normal” Teams client, the bottom-left is a custom experience in a webpage using the new public preview features. On the right-hand side are users without Teams identities: these could be anonymous users joining via the built-in Teams experience (top-right), or Bring Your Own Identity users using ACS Identity in a custom interface (bottom-right):

Right now, this feature is in public preview only – meaning there is no service-level agreement, and it’s not recommended for production use. In addition, it is only supported for web-based applications, not the mobile libraries that ACS has for iOS and Android. Users will need a valid Teams license to use this feature.

Voice & Video, Not Chat

It’s a subtle but important call-out in the graphic above and mentioned in the documentation, but this public preview feature doesn’t cover chat. That’s because, for Teams identity users, if you want to provide an experience for sending and receiving chat messages outside of Teams you can already do this using Microsoft Graph. This public preview feature focuses just on the voice and video functionality (including things like participant lists, screen sharing, etc.)


There is a charge for having Teams users use custom web applications, though. Because the calls that those users make and receive through a custom web application are being made possible through ACS APIs, they are charged at the standard ACS price, which is currently $0.004 per minute (but you should check the latest price before using it). This only applies to users who connect using ACS APIs though, not native Teams client users. However, if you are embedding Teams functionality into an internal website with the intention that all users of the website will use it to make or receive calls then it’s worth considering.

If you can forgive the appalling graphic work, then it looks something like this. The yellow dollar signs represent additional per-minute charges you will pay for using ACS APIs, and the green strike-throughs don’t attract any additional charge (they are covered through your existing Teams licenses):

I’m going to be recording a how-to video, showing how to set up all the pre-requisites to enable this, and obtain the necessary access tokens to use ACS with a Microsoft Teams identity, in the next few weeks so keep an eye out for that if you’d like to understand in more detail how this works.

Written by Tom Morgan

Tom is a Microsoft Teams Platform developer and Microsoft MVP who has been blogging for over a decade. Find out more.
Buy the book: Building and Developing Apps & Bots for Microsoft Teams. Now available to purchase online with free updates.

Post a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.