Microsoft Introduces the Azure Communication Services (ACS): Twilio Competitor, Not a Native Microsoft Teams API & Comparison to Microsoft Teams Graph Communication API


In Feb 2020 I wrote a prescient article entitled "Where is MS & Microsoft Teams in the OnPrem to CPaaS Journey?" in which I explored where Microsoft was with a "Twilio-like API" for Microsoft Teams. At that time I estimated Microsoft is about 25% (looking back, perhaps a bit generous) of the way to a "Twilio-like API" for Microsoft Teams.

Well, today at Microsoft Ignite 2020 Microsoft has announced the Azure Communication Service, which is most definitely aimed at being a "Twilio-like API", but to accommodate no AAD requirement, it does not interface directly with Microsoft Teams. 

What is the Azure Communication Service?

The Microsoft Developer article describes it like this "Built on the same Microsoft 365 infrastructure that supports Microsoft Teams, ACS offers developers consumption-based use of those same enterprise-ready chat, SMS, video and WebRTC capabilities".

It is an communication platform as a service that provides apis to build your own communication enabled apps. This means for those developers wanting to build a SMS, IM, audio, video & desksharing app, developers don't need to build the low level communication components, they can just use the apis to utilize Microsoft's services.

What is the difference between the "Microsoft Graph Communication APIs" for Microsoft Teams and "Azure Communication Service"?

Here is a quick comparison, first Teams Graph Communications API | Azure Communication Service:

Calls automated with CommAPIs show up in MS Teams reports | Unrelated to MS Teams

Utilizes the MS Teams platform you already paid for | Consumption based, unrelated to MS Teams billing

Requires Teams/AD Users | Does not require AD Users

Integrated to MS Teams/Automated MS Teams calls/meetings | Separate systems from Teams/Could integrate via SBC/Federation? (appears like Microsoft "light up integration to Teams in Preview soon..."-CVP Scott Van Vliet source: )

Increasingly complete server API & no client API | Server API's & Client API's

audio calls, video, PSTN | SMS/IM/audio/video/PSTN/


What Modalities Does ACS Support?

Below are some of the communication methods supported by ACS per the current Docs page:

  • Chat
  • Telephony
  • SMS
  • Voice
  • Video

Our Experience Using the ACS Preview

Building a simple chat and video conferencing app with ACS is very simple. 


ACS looks to provide a very nice Microsoft alternative to Twilio and other CPaaS API options. The Server and Client API components are complete enough to create many interesting solutions today. It is not a replacement to create native Microsoft Teams solutions.

To learn more about the ACS, watch the session "Innovate with Azure Communication Services" from Microsoft Ignite 2020.


Azure Communication Service API Docs:

Ignite 2020 Microsoft Teams Developer Platform Article:


Microsoft Adds "Advanced Communication" License That Teams Users Need On Top of Existing Commercial Licenses to Use Recent Meetings & API Features

At Microsoft Inspire 2020, Microsoft noted that it will be adding a new user license for some select meeting and calling features called "Advanced Communication" license. This license will be additive to existing commercial licenses (like E5).

Some of the types of features that will require the "Advanced Communication" license noted at Inspire 2020 are:

  • Large meetings
  • Customized lobby controls
  • Compliance / policy call recording
  • Etc.
Angela Donohue, in session IDB151 noted the license would be available later this month.

Update: Microsoft has now communicated more granularity[1] on what will be included with the "Advanced Communications" license:

  • Released at launch
    • Live event limits to 20k participant (50 concurrent, 16 hours)
    • Compliance Recording integration (ISV)
    • Contact Center solution integration (ISV)
  • Released later in CY2020
    • 1000 person interactive Teams meeting
    • Interactive meetings for 1000 participants with the capability to enabled up to 20,000 in a 'view only' meeting
    • Custom branded meeting lobby
  • Beyond
    • Additional customizations, tool and communications enhancements will be added to the SKU throughout the calendar year

Some Questions We Had

I had a chance to chat with a person at Microsoft who answered some of my questions related to "Advanced Communications":

Q. Will "Resource Accounts", used to call auto attendants and call queues require the "Advanced Communication" license?
A. No, "Advanced Communication" license is just a user license and resource accounts will not be changed.

Q. Do Teams Apps or Bot require this license?
A. No.

Q. What features will all need the "Advanced Communication" license?
A. [still collecting the exactly list of what features will require the new license...]

Q. Cost?
A. The "Advanced Communication" license will be available on August 1, 2020. A 60-90 day trial license will be available on August 1. All commercial  licenses can have this added to it, and at this time no license includes it. The license will be $12 per user per month. EDU licensing is $2.50 per user per month.

Some Comments on this change

For users who do not need to advanced meeting features, but need compliance recording, the net effect is paying for usage of the Microsoft Graph API's, and in the case of call recording, a license that costs more than call recording vendors typically charge per user. It is also somewhat unusual for Microsoft to charge for using Graph API's. I am not aware of other products like Exchange, SharePoint or Azure charging to use Graph API to interact with a product a user is already licensed for. Also, in the industry, as already noted, vendors like Zoom include REST API's in their lowest tier user pricing. This could seem like Microsoft is not incentivizing ISV's to build their solutions on the Microsoft communication platform, which is almost certainly not the effect Microsoft is wanting to achieve. 

In Conclusion

Covid19 has been putting pressure on Microsoft to add some features. Microsoft Teams has indeed been receiving a tsunami of features recently. It seems the "Advanced Communication" license may be an effort by Microsoft to recoup some of the costs going into adding these features, and question is if this should be passed on to the customer.

[1] Microsoft "Advanced Communication FAQ" 

Microsoft Teams User tip #28: How Does a Teams Recording Handle Switching Between Webcams?

One of the things I've noticed using Microsoft Teams recording is that the recording will not necessary look or sound exactly like what the meeting organizer saw.

One of the items I noticed today is around switching webcams. When you switch between webcams you will can a momentary blank/black screen. By momentary, I should clarifying that this actually can take some time. Then the new webcam will start presenting.

The interesting thing is that the recording handles this slightly different. In recording the webcam image will freeze until the next camera starts.

In my opinion its really nice that you can switch between webcams so easily using native Microsoft Teams switching capability. In normal scenarios switching between webcams only happens to those with way too much hardware plugged into their PCs, but its good to know what effect switching will have on a recording.

If you want the switching on the recording to happen more smoothly, take a look at using OBS Studio  & webcam driver.

How Microsoft Teams Calls App for Slack Works

Slack and Microsoft Teams have surprised industry watchers by adding a "Microsoft Teams Calls" Slack app. A question is: How does this work? Let's install and see.


First you will need a Slack and Teams account. Sign into Slack and go to: Click "Add to Slack"

Now you will get a Slack permission. Next Teams/Microsoft permissions.

Create & Join Meetings

In essence you will now have a "/teams-calls" bot in Slack that you can create a meeting in any Slack channel. Using the Join button others in the Slack channel can join the meeting.

From my test the time "Meeting started xx ago." is when the meeting was created. The only user that shows for me is the user that created the meeting. If more people join the meeting, the do not show up in the bot post in the channel.

The below example was created 10 minutes ago. I joined the meeting 5 minutes ago. And another user joined after that, but does not show in the channel link to the meeting.


Slack has a call button at the top of the screen. It looks you can set this call button to use Microsoft Teams. I suspect this will use the protocol handler to dial a call using Microsoft Teams (similar to how Outlook and web pages dial from Teams) but I could not find where to configure this feature.

Jump Into Scheduled Meetings

This looks like Slack reminders will surface Outlook Teams Meeting Join info.


From what I can see, this Slack app allows meetings and calling to be initiated from Slack if a user has a Teams account.

COVID19 Progress Tracking

The above chart track the raw number of confirmed cases based on John Hopkins report.

The above chart tracks the percent of country population of confirmed cases.

To see the up to date spreadsheet: Click Here