Azure Communication Services. Enterprise-grade Video, Voice, & Chat experiences

Azure Communication Services

A brand new platform that leverages the same enterprise-grade services behind Microsoft Teams through Azure to deliver video, voice, and chat experiences, and much more. CVP Scott Van Vliet, joins Jeremy Chapman to announce the public preview of Azure Communication Services, to discuss the significance of delivering these capabilities, and to show you how to build it.

Microsoft Ignite 2020

Imagine taking the same chat, voice, video experiences, and capabilities of Microsoft Teams and making them available to any digital experience you want to build, tailored to your specific scenarios. You can now integrate the proven communications capabilities of Microsoft Teams across your apps, websites, mobile, and IoT platforms via Azure Communication Services with the same secure, compliant enterprise-scale foundation.

Built for the enterprise, you can now build secure connected experiences on your website that incorporate a variety of communications modalities. All this makes rich communication capabilities accessible, wherever your users might be engaging.

QUICK LINKS:

00:03 — What Azure Communication Services is

01:13 — Built for enterprise

02:14– Five communications services

03:46 — Real world demo

06:49 — How to build it

12:14 — How it integrates with Microsoft Teams

Link References:

The public preview of the Azure Communication Services SDK is available today at https://aka.ms/ACSPreview.

Unfamiliar with Microsoft Mechanics? We are Microsoft’s official video series for IT. You can watch and share valuable content and demos of current and upcoming tech from the people who build it at Microsoft.

This video was part of the 2020 Microsoft Ignite lineup.

Video Transcript:

- Hello, and welcome to a special edition of Microsoft Mechanics. Coming up on the show, we catch up with CVP Scott Van Vliet, responsible for Azure Communication Services, a brand new platform that leverages the same enterprise-grade services behind Microsoft Teams through Azure to deliver video, voice and chat experiences, and much more, anywhere our users are across your apps, websites, and mobile platforms. So Scott, welcome to the show.

- Jeremy, thanks for having me.

- So congrats today on your announcement of public preview of Azure Communication Services as I mentioned. But what’s the significance now of delivering these capabilities as part of Azure Communication Services?

- Yeah, we’re really excited. You know, this opens up a whole realm of opportunities. You know, imagine taking the same chat, voice and video experiences, and capabilities of Microsoft Teams and making them available to any digital experience you wanna build, tailored to your specific scenarios. You can now integrate the proven communications capabilities of Microsoft Teams across your apps, websites, mobile and IoT platforms via Azure Communication Services. And it has the same secure, compliant enterprise-scale foundation of Microsoft Teams, which itself is built on Azure, the world’s computer. And has over 75 million daily active users leveraging the platform.

- So can you give us an example of what types of scenarios where this would really light up with?

- Yeah sure, you know, this is built for the enterprise. You can now build secure connected experiences on your website that will incorporate a variety of communications modalities. You know, think of a Telemedicine experience where you can shift from a bot assistant, to a live video call from a doctor. Now the added benefit is that these experiences can be architected to use encryption to meet specific regulatory requirements like HIPAA to preserve patient privacy. Also you can enrich those applications and those experiences further with intelligence, like real-time translation by tapping into other Azure services.

- So all this then makes rich communication capabilities accessible, really wherever your users might be engaging, and you don’t need to be a networking or voice engineer expertise to use it.

- That’s right, you know, all of this can now be achieved by adding just a few lines of code and using your favorite developer tools. In fact, we’ve just gone live with the public preview of our software development kit today.

- So there’s a pretty broad application then and it’s accessible, but can you break down the core communication services that are part of this platform?

- So there are five main communication services exposed via a selection of APIs and SDKs that allow you to hook into the capabilities. These include voice and video calling over IP, where you can do one-on-one calling or meet with groups of up to 50 people and do things like content sharing, message chat, whether that’s one-on-one or with a group of users, you can keep their chat history, using formal communications with emojis and even share files. You can also integrate with text messaging, sending via SMS, and you can actually place real telephone calls in your apps, using a connection to the public switch telephone network, or PSTN, using normal phone numbers for inbound and outbound calls. And we’ve added Network Communication Services for videos with WebRTC, that allows for capabilities that take a standards-based approach to removing the complexity of running the global edge-based deployment. Now you don’t need to worry about any of the complexity of network traversal and traffic between you and your customers. Once your solution connects to Azure, anywhere in the world, we’ll take care of that connectivity for you, with one of the fastest real-time communication networks in the world. You can also enable authenticated experiences using Azure Active Directory or other common identity services. And of course, bring your Azure Communication Services product to any app, browser, PC and mobile platform as well as IoT devices on the edge.

- Okay, So it’s pretty modular and you can pick the communication services you wanna use, architect those within your new or existing apps and services, and only pay for what you use, but this is Mechanics, so why don’t we make this real for everyone?

- Now I’m gonna show you an Azure Communication Services enriched website experience, and show you how I built it. Now let’s imagine a scenario here. I’ll be the consumer and you be the customer service technician. Now, I’m having an issue with my refrigerator, the ice cubes are not coming out, and I know it’s gonna be hard to get someone out to my house right now during everything that’s going on. So, here I’m on the Contoso Appliance website, and I can see that there is a virtual assistant bot, which you see a lot on websites to help answer common questions. But what’s different is once I select Can I help you? I have a way to connect directly with a representative, using their appointment service that I can take on my phone. Now I’ll type in my phone number. In the background, it will check the availability of a technician and send me a confirmation message over SMS with a link that I can tap on at the start of my appointment. So now let’s switch over to my phone. So when I see a link, I don’t have to download an app or authenticate. By tapping on that link, it will take me directly to the mobile web experience, where I can join the call. So Jeremy, why don’t you play the part of the technician and show us your view within the customer services app.

- Look’s like the call started and I can see you just fine, but so let’s investigate then and take a look at what’s going on with your fridge.

- Yeah, thanks Jeremy, I really appreciate the help, you know, I’m trying to get some ice on these hot days and it’s just not coming out. So I’m gonna walk over here to my fridge, and when I get here, I’m just gonna flip the camera and here’s the ice maker or at least the dispenser on the front. And when I push the ice button, push the lever, nothing’s coming out.

- All right, so what I want you to do then is open the freezer side of the refrigerator.

- [Scott] You got it.

- And we’re gonna take a look at the ice maker.

- [Scott] All right, so here’s the ice service machine. I’m gonna open up the flap and check it out, there’s no ice.

- Okay, so I think I know what the issue is, but since this is Mechanics, we’ll explain what’s going on. So there’s a flap or usually an armature that kind of says whether or not the ice tray’s full, and it looks like it’s stuck in the full position by a little man that’s hanging upside down.

- [Scott] Huh? What are you talking about? I’m gonna take a look, what the? Oh, man, it looks like my kids must’ve been playing in the icebox again. Alright, well check it out, after I took him out, that thing popped out. Is that what you were talking about?

- Yeah, that’s the flap, so it’s gonna think that the ice tray is empty, So now you should be good to go.

- [Scott] Oh cool, I hear something happening, looks like a motor go. And look. Check this out. Looks like there’s a light on. I think it’s working.

- [Jeremy] So glad I could help and please fill out the survey when it comes and give me five stars if you wouldn’t mind.

- You got it.

- So while Scott’s walking back, that was a rich real-time communication experience to an everyday scenario that really benefits from having that two-way video communication.

- Right, and if you wanted to add all of this to an existing website, It might require you needing to know a thing or two about SMS message handling and video call integration among other things. But with Azure Communication Services, it’s pretty turn-key.

- Okay, but the devil’s in the details, so why don’t you show everyone how you built it.

- So let’s start at the beginning. The first things I’ll need to do are to create an Azure Communication Services resource, get a phone number, and a connection string. So here from the Azure portal, I’ll search for communication, now as I type you’ll see Azure Communication Services. I’ll select it and I can create a new resource, but in my case, I’ll click View. Now I’ve already created and provisioned an Azure communication service resource with a name. It’s just like provisioning any other Azure resource. I’ll click into Contoso Ignite and we can see all the different capabilities here on the left. In our case, we need to be able to send SMS messages like we just saw, so I need to have a phone number. So, I’ll select phone numbers, and this shows me the phone number that I got earlier. I can see that it’s a US toll-free number and we’ll be using this later in our code. But before I do that, I’m gonna click on the Keys tab over here and take the connection string from the primary key. We will use this next in our actual code to authorize the API calls in the communication services SDK.

- Okay with a config done, can we see then what’s behind the app?

- Sure, let’s look at the underlying code in Visual Studio Code. Now there are three things that we need to do. First, send an SMS message from my web service. Second, create a user access token for the group call. And finally, connect my web clients to a group video chat. So, here’s a code for my asp.net website. It’s an asp.net core web API site and I’ve also added the Azure Communication Services SDK, and my project file that you can see here. Next, I’ll use the connection string we just copied and add it to my config file along with the phone number I just got, so I can reference them in the code later. I have an API controller here that I will use to send the SMS message. The first thing I do is create a new SMS client with the Azure Communication Services SDK. When the HTTP post method is called in this API, the message we want to send will be passed along to the destination phone number. In this case, the message contains the link that accesses the video call.

- Okay, so this gets through that and the initial handshake and the connection back to the customer, but what do I need to do then to wire up all the AV components and get those to work?

- Well, let me show you. We’re gonna use WebRTC within the web browser, but by the way, we could have built this into a mobile app using the Azure Communication Services SDK for Windows, iOS, and for Android. This will allow us to integrate the video directly into the company’s mobile website, and the approach we’re using with WebRTC. So, let’s get back to the code. Now before I do that, the first thing I need to do is create an access token on my website’s backend that can be handed out to each of the participating clients. Let me do that in Code now. I have another API controller here that gets created with a user token client using the same configuration string as before. Now when the HTTP post method is called on this API, I’ll issue a token with the VoIP or voiceover IP capability. In this case, we’re using an anonymous and authenticated connection.

- Okay so, but for those folks that are watching that might have a little bit higher security bar than unauthenticated connections, what options do we have to secure that link?

- There are a few things that we can do here. Instead of leaving this experience unauthenticated, we can require authentication with your chosen identity provider like Azure Active Directory. Additionally, you can require two-factor authentication using SMS, using that same SMS client we sent before to validate the phone number of the customer trying to connect to the call.

- Great, so we can implement then the security measures that suit our needs, but, back to our code, now we just need to include our two-way video stream into the customer care web client that we saw.

- Right, so first off, our web client will need an authentication token from my web service. Now I have some simple HTML setup to display the video. From my JavaScript code, I’m gonna call into the web service and get the authentication token, then use it to create a call client. Once I’ve created that call client, I can create some call parameters, like which camera I want to use, the idea of my group, and use those to join a group call. When the call is joined, I’ll set up a couple of event handlers: one when participants join, and one when the video streams are added. In the video stream handler, I’ll render the new video stream into the HTML element I had before, and finally, I’ll hook up the local camera to the preview HTML element, so I can render it on top of the incoming call. Now when the call is finished, I’ll call hang up on the call object.

- Okay, now beyond this so you can extend this up even further, right?

- Absolutely, that was just basic SMS and video chat, but of course, from here you can do much more. You can add features like muting, switching cameras, screen-sharing and handling up to 50 participants in that group call.

- And to take that kind of to the next level, I guess we could probably use some of the services within Azure to extend that even further than the things that you just mentioned.

- Yeah, and that’s an area we’re really excited about. You know, as you build these communication-rich experiences, our cloud integration model makes it easier than ever to extend them further. And we are making an SDK available for the preview, so you can connect with Azure services like Azure Cognitive Services to add AI-driven capabilities like live transcriptions, or Azure Bot Framework, for intelligent and interactive chatbot experiences like you saw on the demo. Azure Media Services, where you can do things like take a meeting recording and broadcast it beyond your company walls. And of course, you can tap into the power and capabilities of Microsoft 365 by using Microsoft Graph.

- Okay, so the sky’s the limit then with these types of apps, but one more question I think a lot of people are wondering is, how does Azure Communication Services then integrate with Microsoft Teams?

- Well that’s something we’re gonna light up soon in the public preview. You know, imagine the same scenario that I just showed you. The customer would be on a lightweight mobile experience that was custom-built for Contoso Appliances. And the technician could be on that same familiar Teams experience they use every day to join that same call.

- This is really exciting and so important right now, especially where delivering these types of responsive and high-touch communication experiences can help people feel a lot more connected through video, but what’s the best way to learn more?

- Jeremy, I’m a firm believer that the best way to learn is to try, and so you can start kicking the tires right now. The public preview of the Azure Communication Services SDK is available today at aka.ms/ACSPreview. And for extra inspiration, you’ll find tons of quick starts and samples to get you started.

- So thank you, Scott for the great overview of Azure Communication Services. And we really hope that we answered all of your questions and let us know what you think. Also keep watching Microsoft Mechanics for the latest tech updates. Subscribe if you haven’t already, and thanks for watching.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store