Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

Pages Menu
TwitterRssFacebook

Posted by on Mar 2, 2021 in Azure Communication Services, Development, Microsoft Teams

With Teams Interop for Azure Communication Services, developers can finally create native Web and Mobile experiences

With Teams Interop for Azure Communication Services, developers can finally create native Web and Mobile experiences

“It’s a pretty big day for the Teams Developer Platform.”

It’s a pretty big day for the Teams Developer Platform. It’s come about in a slightly unusual fashion, but one of the key missing pieces of functionality for developers has finally be realised: a first-party way for developers to create their own clients that can interact with Microsoft Teams clients for chat, voice and video.

Older developers will remember the Skype for Business Client SDK and the ability to run in UI-suppressed mode (that I was talking about way back in 2014!). This enabled us to build applications that contained Skype for Business functionality, presented within a 3rd party application. With Microsoft Teams, this has never been possible, until now.

Why do I say it’s come about in an unusual fashion? Well, because it’s arrived courtesy of work done by a completely separate team – the Azure Communication Services team. Under the hood and behind the scenes, of course, it’s all one company and one set of people, but it underlines the point that as a developer you can’t be too blinkered to just your immediate problem domain and space. This interop feature directly impacts Microsoft Teams developers but requires developers to skill-up on a related technology, Azure Communication Services.

What just got announced?

So, why am I so excited? Today, at Microsoft Ignite 2021, Microsoft announced that Azure Communication Services will become generally available this month and that it supports Teams Interop functionality in preview. This will allow for an ACS application to directly join a Microsoft Teams meeting, showing as a guest user. They will benefit from the rich experience Teams has, such as blurred background, but as an ACS application can have a completely customised look and feel. There are React components for WebRTC-based web application, plus native iOS and Android libraries for mobile applications.

This is a good way to understand how Azure Communication Services works with Microsoft Teams. It’s not Teams, but it powers some of the audio/video/chat functionality that Teams has. In Azure Communication Services, Microsoft are opening up their global, powerful communication platform for use by everyone.

For more detail behind Azure Communication Services, I would suggest reading my previous blog posts: Azure Communication Services: what it is, how you use it, and why it’s AMAZING! and the more practical, code-heavy demo: How to: Create your own Family Video Room using Azure Communication Services without writing any code.

I want to build an Azure Communication Services Teams Interop App. How do I do that?

If you’re familiar with using Azure Communication Services already then you can join any Teams meeting with just the Join URL.  You can get this from the meeting details, but it’s also exposed in Microsoft Graph calls to create or get a meeting (see the onlineMeeting resource type and its methods). Once you have that, you can join just like you would join an ACS Group call, just using a special join context of meetingLink:

call = callAgent.join({meetingLink: meetingLinkInput.value}, {});
view raw gistfile1.txt hosted with ❤ by GitHub

Everything about how the call works stays exactly the same as for a regular ACS call, so your existing code will work just the same. And, in the Teams meeting, the user shows up as a regular guest user (the display name of “ACS User” is the displayName value you provide when you create the CallAgent in ACS)

and in the participant list, just as you’d expect:

I’ll be going into a lot more detail about using this new functionality in Day 8 of the Learn ACS series.

If you’re new to Azure Communication Services…

If you are new to Azure Communication Services; you’re not alone – it’s not even GA yet! Luckily for you, I’m celebrating this news by kicking off a 15+ day series of blog posts, focused on learning Azure Communication Services. It’s totally free and is a mixture of blog posts, code samples for fully-working demos, and videos. Get started on your Azure Communication Services journey today at learnacs.dev.

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.

Share to Microsoft Teams