Learn Azure Communication Services Day 1 – What is Azure Communication Services (ACS), an Introduction
This blog post is part of a series called “Learn ACS“, all about Microsoft Azure Communication Services. The series covers a high-level overview of capabilities and considerations, then dives into the development detail of using ACS in your application. Find the rest of the posts in the series at learnACS.dev.
Azure Communication Services (ACS) is a new Microsoft Azure offering, which enables developers to add communication services such as SMS, WebRTC or PSTN to their applications. It was first announced at Microsoft Ignite in November 2020 when it was made available for Public Preview. Now, in March 2021 – again at Microsoft Ignite – it’s due to become Generally Available this month. At the same time, additional functionality such as Teams Interop has been introduced as a public preview feature.
ACS is a developer platform, not an end-user service or product. It’s something that makes it easier for developers to add communication capabilities to their own applications: it’s not an application itself: there’s nothing for users to download. If you’re familiar with Azure’s SignalR service, it’s conceptually similar to that.
There are many providers out there already that provide a platform for communication, whether that’s VoIP, PSTN or SMS. However, ACS will be attractive to enterprises, especially those who are already invested in the Microsoft Azure platform. Being part of Azure makes it easier to achieve specific compliance needs such as GDPR or HIPAA, and means that access can be controlled using Azure Active Directory just like any other Azure resource.
What can ACS do?
There are a few different parts to ACS. Firstly, it’s a platform for VoIP calls via WebRTC. Using ACS you can make and receive peer-to-peer and group calls. These can be audio and/or video and can include screen sharing and chat. There is also support for outbound calling via PSTN.
Secondly, it’s also a platform for sending and receiving SMS messages, and for managing the flow of long-lived conversations via SMS.
We’re going to be going into a lot more detail about these capabilities in later blog posts.
What can you do with ACS?
ACS gives you (the developer) complete control of the user interface of calls, enabling you to either deeply embed the calling experience into an application, or provide a completely customised front-end for users. This makes it ideal for customer-facing solutions that require video or audio functionality. Contact-centers, customer-service, expert systems and more can all benefit from ACS. In addition, the SMS platform can be used to provide another way for users to interact with your application.
What tools are there for ACS developers?
At its core, ACS is an API and developers can access it in this way if needed. However, there are several libraries available that make it easier to work with.
ACS also supports Events, via EventGrid. This means that it’s possible to push incoming activities (such as incoming calls) to an Azure Function or a Service Bus Queue without writing any code and build up an entirely server-less and highly scalable model using Azure components.
There are also several UI components that can be used to abstract some of the effort in building your own user interface if you don’t need as much customisation.
How much is ACS?
ACS is billed on a per-usage basis. As of publishing, this is $0.004 per user per minute of audio/video, and $0.0008 per SMS message. There’s no difference in charging between audio and video calls.
That’s a brief introduction to Azure’s latest communication platform. In the upcoming posts we’re going to look at how ACS works, considerations when choosing a communication provider and then jump into writing code. Links for all blog posts can be found at learnACS.dev. You can also subscribe to my YouTube channel for videos about ACS (and much more!).