Blog Post

Microsoft Mechanics Blog
11 MIN READ

Build video, voice and chat apps that connect to Microsoft Teams | Azure Communication Services

Zachary-Cavanell's avatar
Zachary-Cavanell
Bronze Contributor
Mar 22, 2021
Spoiler
 

Tour the newest updates to Azure Communications Services (ACS). Microsoft CVP, Scott Van Vliet, joins host Jeremy Chapman to give you the details, from core capabilities generally available this month, to new capabilities available in preview, including interoperability with Microsoft Teams and using the Azure Bot Framework to enable Intelligent Voice Response.

 

 

 

If you’re new to Azure Communications Services, it’s a new platform for building rich custom communication experiences that leverage the same enterprise-grade services that back Microsoft Teams all through Azure.

 

Generally available later in March 2021:

  • Foundational capabilities with voice, video chat, SMS and PSTN calling
  • Bring your own existing phone numbers via direct routing with your own SIP trunks.

Public preview:

  • ACS’s interoperability with Microsoft Teams
  • Integration with Azure bot framework for IVR scenarios.
  • UI controls: starting with react controls for video calls and expanding controls available on GitHub
  • To automate, use a no-code approach in ACS with Logic App Designer

 

 

QUICK LINKS:

01:17 — Updates to foundational capabilities: voice, video chat, SMS and PSTN calling

02:49 — Public preview: interoperability with Teams, bot framework, UI controls

03:26 — Demo: see Communication Services in action

07:02 — How to get it working

08:05 — No-code approach using Logic App Designer

10:28 — What’s next for ACS?

10:45 — Wrap Up

 

Link References:

Find out more and get started at https://aka.ms/GetStartedWithACS

For the public preview of new features for Azure Communications Services, go to 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.


Video Transcript:

- Up next on this special edition of Microsoft Mechanics we’re joined once again by Microsoft CVP Scott Van Vliet to take a look at the latest updates to Azure Communication Services. From core capabilities generally available this month for your production workloads and new capabilities available in preview, such as interoperability with Microsoft Teams, integration with the Azure Bot Framework for intelligent voice response, and new UI controls and much more. So Scott, welcome back to the show.

 

- Great to be back Jeremy, thanks for having me.

 

- And thanks so much for joining us from home today. So last time you were on the show about six months ago, we introduced Azure Communication Services. In fact, to catch everyone up if you’re new to the service, it’s a new platform for building rich custom communication experiences that leverage the same enterprise-grade services that back Microsoft Teams all through Azure. Now these are exposed via a selection of APIs and SDKs, and this allows you to hook in the capabilities like voice and video calling over IP, one-to-one and group chat, text messages for SMS, telephony calling with PSTN and deliver authenticated experiences over your identity service of choice to any app, browser, PC and mobile platform, as well as IoT devices on the Edge via Azure, one of the fastest real-time communication networks in the world. So Scott, how have things evolved since the last time you were on Mechanics?

 

- Well, We have been busy and I’m happy to tell you that the foundational capabilities you mentioned with voice, video, chat, SMS and PSTN calling are generally available this month. As part of this, while you can access ACS anywhere in the world, we are expanding our global telephony coverage beyond toll-free numbers in the US, starting with phone numbers available in the UK and Ireland next month, with dozens more countries coming by the end of the year. You’ll also be able to bring your own existing phone numbers via direct routing with your own SIP trunks.

 

- That’s really great news, especially given the interest that we’ve seen in the service from our last show. But how are you seeing this then being leveraged?

 

- There’s been an amazing response to Azure Communication Services across various industries. And this translates to millions of voice and video minutes and tens of millions of chat and SMS messages as many of you experiment with custom app communication experiences. And one of my favorite use cases is from Norwegian company Laerdal Medical, who provide training and education products for life-saving and emergency medical care. They developed a TCPR link app that uses Azure Communication Services to connect their volunteers administering CPR with medical dispatchers via video streaming. So they can get in-the-moment, just-in-time expert feedback as they perform CPR to improve the quality of treatment and patient survival rates. Now they estimate the app will reduce CPR error and save thousands of lives every year.

 

- And that’s really a great example of real-time communications. And I’m sure we’ll see even more examples now with the general availability of core services coming soon. But there’s more for everyone to look forward to that you’ve just launched today as part of the public preview.

 

- We have, and this is actually what I’m going to be demonstrating today in the next few minutes. This includes Azure Communication Services interoperability with Microsoft Teams and integration with Azure Bot Framework to connect chat bots to traditional telephone numbers so that the bot can speak responses via natural language processing from Azure Cognitive Services for interactive voice response or IVR scenarios. And lastly, an overwhelming number of you have requested UI controls. So we’ve started with react controls for video calls and we’ll be expanding to controls available on GitHub over the next few months.

 

- Can we see how this would work in action?

 

- Well, of course. So Jeremy, last time we talked I was having trouble with my refrigerator and I showed you how we could build a simple customer support video chat application using Azure Communication Services. I thought we could revisit that customer support scenario, but this time take a look at some of the awesome integrations we made into Office and Azure with a Microsoft Teams meeting, Microsoft Graph, and the Bot Framework. So I’m having trouble with my car and I couldn’t resist visiting the Microsoft Mechanics.

 

- That’s why we’re here.

 

- So I’m going to contact the Microsoft Mechanics by dialing the 1800 number on their website. And I’ll be greeted by a bot. As we go through this you’ll be able to see the logic behind the bot with the decision tree, for its responses on the side. So I’ll dial the number and wait for the bot to pick up.

 

- [Bot] Hello and welcome to the Microsoft Mechanics customer support bot. Am I speaking with Scott?

- Yes.

- [Bot] Hi Scott. I see you recently purchased a vehicle from us. How can I help you today?

- Well, I’m having a mechanical issue.

- [Bot] Okay. Can you tell me more about the issue?

- My car is making a rattling noise coming from inside.

- [Bot] Let me transfer you to someone. Would you like to continue on a voice call or a video call.

- Lets do a video call.

- [Bot] I’ve set up an appointment with a technician. Look out for an SMS message at this number with a direct link to the video call. Is there anything else I can help you with today?

- No, that’s it. Thank you so much. So at this stage, once I receive and tap into the SMS I’ll be in a video call with the technician who is on Teams. In this case, that’s you Jeremy. So I’m going to tap in on my phone and be on hold on while I’m waiting for you.

 

- Okay Scott. So why don’t you head over to your car and we’re going to take the call from there. Okay. So now if we switch over to my screen, I’m in the support channel in Microsoft Teams and I can see a message from the bot. Now it’s already checked my calendar. It knows that I’m free and it’s letting me know that Scott is waiting for a technician. And it’s even provided a description of the issue that he’s facing. So I’ve got now all the contexts I need. And from here I can join the video call. So I’ll go ahead and admit Scott into the meeting. Okay, so I can see you now Scott. And I understand that you’ve got a noise coming from the interior of your car. So why don’t we troubleshoot this a bit further? Can you tell me about the noise, when you hear it, What it sounds?

 

- Sure, let me flip the camera here so you can see what I’m looking at. So the noise is kind of this plasticky rattling sound coming from the center of car. And it kind of happens when I go over bumps. And so I’ve checked the vents. I’ve also checked the center console here. I’ve also checked the cup holders and even I’ve checked the glove box and I can’t find out what’s going on.

 

- Are you sure you’ve checked all the compartments?

- I think so.

- What about the overhead console there?

- Oh, here yeah. I usually keep my sunglasses in here. Let me take a look.

- All right so I think I just saw the problem. There’s a little man that’s in your sunglass holder.

- This guy? Oh man, my kids keep coming into my truck and they’ve got to stop doing this.

- So I have a feeling this is going to take care of your rattle. Is there anything else I can help you with?

- No, I think you’ve solved the problem. Thank you so much.

 

- Perfect. No problem. So while Scott heads back, just a quick recap. So we just saw IVR integration with escalation to Microsoft Teams, adding a video feed for the caller. And the UI controls that were on Scott’s phone: those are also part of the new public preview. So I’ll go ahead and admit Scott.

 

- Yeah, this is the next chapter in building rich real-time communication experiences with Azure Communication Services.

 

- And the great thing is it feels like a super high-touch experience from the conversational, intelligent virtual assistant all the way up to the various escalations that we saw to a human expert, in this case it was me. So how did you get all of this working?

 

- Well, let me show you the code. First, I can use the Bot Framer Composer to quickly visualize the flow of my interactive voice bot. And here’s the decision tree that the bot goes through with each interaction. I can test and debug this flow as a text-based chat bot that uses LUIS and Azure Cognitive Services for natural language understanding. And I can also publish to Azure, right from the composer. You can see here on the flow, where the bot made a decision: when I asked it to talk to an agent. It could have connected directly via PST into a phone number and I would have started talking immediately to a live person. Or it can follow the path I’ve demoed here where it used Microsoft Graph and Azure Communication Services to set up a Microsoft Teams meeting with the technician and send a join link to the customer via SMS message.

 

- So what did you use then to navigate the logic and flow that was needed to automate all those steps?

 

- Well, I could write this in native code using the Azure Communication Services STKs for .net or JavaScript, for example. But there is a much easier, no code path using a logic app. So here I am in the logic app designer. First, I’m going to create an HTTP request. This is the HTTP endpoint that my IVR bot will call to send the SMS message. I’m going to paste in an example JSON payload that I would send. The designer automatically parses that data and builds a schema for me with the customer’s name, the meeting join link and the phone number. Now I can add an Azure Communication Service step to send an SMS message. The phone number I have for my Azure Communication Services resource is available from the dropdown, and the parameters from the HTTP request are already available for me to use as inputs to the send SMS connector. So I’ll put in a phone number here, and I’ll create a custom message with the customer’s name and a link to join that Microsoft Teams meeting. Now I can take this URL and paste it back into the Bot Composer.

 

- Okay, so now we have the bot connected to the service. We’re creating Teams meetings and sending SMS text messages. But what did you have to do then to get this all working with the phone number?

 

- So from the Azure Portal, I can connect the bot to a PSTN phone number. I’ve already connected this bot to the direct line speech and web chat channels. I can now also connect the bot to the PSTN phone number using Azure Communication Services. I’ll click on the Telephony channel down here and add in the phone number, the end point information and the access key from my Azure Communication Services resource.

 

- With those pieces in place, how did you then set up the inter-op between Microsoft Teams and your app?

 

- Well, that’s the next step. My service backend can call Microsoft Graph APIs and set up the meeting. Here from Microsoft Graph Explorer, I can test out the query I want to use. I’ll post to the online meetings create or get API with the meeting information. This returns a boatload of metadata about the meeting. For my Azure Communication Services app to connect to the Teams call, I’ll need the tenant ID and the thread ID. I just pass this information into the Communication Services APIs when I join a group meeting. The Microsoft Mechanics mobile web app uses all the same APIs that are available to all Azure Communication Services apps to join and connect and interact with the video call.

 

- Awesome. So this looked pretty straight forward to recreate all those different steps. And it’s really great to see the latest round of functionality, but I know you and the team are never done. So what are you working on next?

 

- We really appreciate getting all the feedback from you. In fact, we’re working on connecting several cool capabilities, such as call recording and live transcription to Azure Cognitive Services so that you can do things like sentiment analysis. And there’s a lot more coming that I’ll share with you next time.

 

- Okay. So if you want to get started building out some of this stuff, what do you recommend?

 

- Well, you can start kicking the tires now with the core features of voice, video, chat, SMS and PSTN calling generally available this month. And you can find out more at aka.ms/GetStartedWithACS. For the public preview of the next features for Azure Communication Services, you can find more information at aka.ms/ACSPreview and that includes the interoperability with Microsoft Teams.

 

- Awesome stuff. Thanks again so much for joining us today, Scott. And hopefully we answered all of your questions about Azure Communication Services and let us know what you think. And also keep watching Microsoft Mechanics for the latest tech updates. Subscribe if you haven’t already and we’ll see you next time.

Updated Apr 01, 2021
Version 2.0
No CommentsBe the first to comment