Ignite 2020: Introducing Azure Communication Services

Microsoft Teams’ growth has exploded as the COVID-19 pandemic has forced more and more companies to shift to home working and virtual meetings. With more than 5 billion daily meeting minutes, Teams relies heavily on Azure’s global network of fiber-connected hyperscale data centers and its growing number of metroscale edge sites. It’s a powerful set of technologies, with support for text, voice, and video communications, all wrapped up in apps that run on the Web, on PCs, and on mobile devices.

What if you could take advantage of those same services in your own code, using them to add global, stress-tested, reliable communications features without spending time learning how to construct calls in WebRTC? With the launch of a public preview of Azure Communication Services (ACS), now you can. Microsoft is unbundling many of Teams’ foundational services, turning them into APIs that can be quickly integrated into new and existing apps.

As Scott Van Vliet, CVP, Intelligent Communications at Azure noted, “The service that my team runs that powers Teams has been built on Azure since day one, so we were kind of born in the cloud with Teams. And thinking about the value we get from being on the Azure platform, we started thinking about what are ways in which we think people can leverage this platform?” The pandemic may have accelerated Microsoft’s plans to release ACS to help companies improve their remote working, but it’s an expansion that’s clearly been in the works for some time. The mature APIs used by Teams are ready to launch a fully fledged service that’s able to support as wide a set of scenarios as possible.

Building Teams’ back-end services into your code

Building on the internal APIs used in Teams, ACS is designed to support many different communication scenarios: one-to-one, one-to-many, many-to-many, browser, apps, bots, and even the public switched telephony network. You can also mix different options in the same app, much like Teams where you can change your communications mode as your interactions deepen or become more focused. It’s easy to image an ACS-based customer service application starting as text chat in a bot and then moving to a human agent when more complex answers are required, or even to a video call if problem diagnosis calls for images.

Developing with ACS is much like working with any other Azure service. Microsoft has provided a series of SDKs and client libraries to help you build code, treating ACS as a data plane that links application end points routing calls and messages. Browser-based applications can use the provided ACS JavaScript libraries. Similarly you can build these services into native desktop and mobile apps, tying in other Azure services like Windows Notifications to add additional features, or working with platform-specific APIs such as Google Firebase on Android and Apple Push Notifications on iOS.

Use REST-based voice and video with ACS

Access to the service is via REST APIs, so you can use it with your choice of languages and platforms. If you prefer to use an SDK, these will be available for .NET Core (ready for .NET 5 in November, with support for .NET Standard 2.0), JavaScript, Java, and Python. They will be joined by client SDKs for both iOS and Android. The client libraries that underpin the SDKs are a mix of open and closed source; the open versions are available on GitHub. With many call center and CRM applications written in Java, it’s not surprising to see it among the first set of languages supported, giving platform providers the opportunity to add support or for you to write your own extensions.

Copyright © 2020 IDG Communications, Inc.