You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Businesses are looking for innovative ways to increase the efficiency of their customer service operations. Azure Communication Services Call Automation provides developers the ability to build programmable customer interactions using real-time event triggers to perform actions based on custom business logic. For example, with support for interoperability with Microsoft Teams, developers can use Call Automation APIs to add subject matter experts (SMEs). These SMEs, who use Microsoft Teams, can be added to an existing customer service call to provide expert advice and help resolve a customer issue.
20
+
Azure Communication Services Call Automation provides developers the ability to build programmable customer interactions using real-time event triggers to perform actions on the call. This programmability enables you to build intelligent calling workflows that can adapt to customer needs in real time and be fully customized for your business logic. You can learn more about the API [here](./call-automation.md). This document describes the interoperability Call Automation supports with Microsoft Teams.
21
21
22
-
This interoperability with Microsoft Teams over VoIP makes it easy for developers to implement per-region multitenant trunks that maximize value and reduce telephony infrastructure overhead. Each new tenant will be able to use this setup in a few minutes after Microsoft Teams admin has granted necessary permissions to the Azure Communication Services resource.
22
+
Developers can use Call Automation APIs to add Teams users to their calling workflows and customer interactions, helping you deliver advanced customer service solutions with easy-to-use REST APIs and SDKs. This interoperability is offered over VoIP to reduce telephony infrastructure overhead. Developers can add Teams users to Azure Communication Services calls using the user's Entra object ID (OID).
23
23
24
24
## Use-cases
25
-
25
+
1. Streamline customer service operations: Enable customer service agents to manage both internal and external customer facing communications through Teams app, by connecting your CCaaS solution to Microsoft Teams. The simplified integration model reduces setup time for both CCaaS and Teams tenant. Each new tenant will be able to use this setup in a few minutes after Microsoft Teams admin grants necessary permissions to the Azure Communication Services resource.
26
26
1. Expert Consultation: Businesses can invite subject matter experts into their customer service workflows for expedient issue resolution, and to improve their first call resolution rate.
27
-
1. Extend customer service workforce with knowledge workers: Businesses can extend their customer service operation with more capacity during peak influx of customer service calls.
28
-
29
-
## Scenario Showcase – Expert Consultation
30
-
A customer service agent, who is using a Contact Center Agent experience, wants to now add a subject matter expert, who is knowledge worker (regular employee) at Contoso and uses Microsoft Teams, into a support call with a customer to provide some expert advice to resolve a customer issue.
31
27
32
-
The dataflow diagram depicts a canonical scenario where a Teams user is added to an ongoing Azure Communication Services call for expert consultation.
28
+
## Scenario Showcase – Streamline customer service operations
29
+
Lets take the example of Contoso Airlines, who uses Teams as their UCaaS solution. For their customer service operations, they want to use AI powered virtual agents to triage and resolve incoming customer calls and hand-off complex issues to human agents (On Microsoft Teams). The below dataflow diagram depicts how this scenario can be achieved using Azure Communication Services.
33
30
34
31
[](./media/call-automation-teams-interop.png#lightbox)
32
+
As previously mentioned, Call automation API enables you to build programmable calling workflows. In this case, Contoso has developed a service that uses Call Automation API to handle and orchestrate customer calls.
33
+
1. Customer calls Contoso's helpline number.
34
+
2. The incoming call is published to Contoso's service, which uses Call Automation API to answer the call.
35
+
3. The service connects the customer to virtual agent/bot to triage the call, using IVR or natural language based voice prompts.
36
+
4. When the bot requests for handing off the call to a human agent for further assistance, Contoso's service identifies an available agent (presence via Graph APIs) and tries to add them to the call.
37
+
5. The Teams user receives the incoming call notification. They accept and join the call.
38
+
39
+
Now, lets look at the scenario where Contoso is already using a CCaaS provider for their customer service operations. The below diagram depicts how CCaaS can use Call automation to connect Contoso's Teams tenant to their CCaaS solution.
40
+
[](./media/call-automation-teams-interop-ccaas.png#lightbox)
41
+
42
+
1. Customer is connected to contact center solution in an ongoing call. The customer might be waiting in queue or interacting with a virtual agent/bot. Contact center solution identifies an available agent on Teams (presence via Graph APIs) to connect to this call.
43
+
1. Contact Center provider has implemented a web service, using Azure Communication Services Call Automation, that requests this Teams user to be added to the call.
44
+
3. Since customer call is handled by contact center provider, they need to configure an SBC with Azure Communication Services Direct Routing in order to route/connect calls to Microsoft. With this model, only the contact center provider needs to have an SBC setup. This SBC can handle connections to multiple Teams tenants, making it easy for developers to implement per-region multitenant trunks that maximize value. Contoso doesn't have to set up Teams Direct Routing for each tenant, thus reducing the telephony overhead and Contoso's onboarding time to contact center provider.
45
+
1. With Teams interop built into Call Automation, Azure Communication Services then uses the Teams user’s ObjectId to add them to the call. The Teams user receives the incoming call notification. They accept and join the call.
46
+
35
47
36
-
1. Customer is on an ongoing call with a Contact Center customer service agent.
37
-
1. During the call, the customer service agent needs expert help from one of the domain experts part of an engineering team. The agent is able to identify a knowledge worker who is available on Teams (presence via Graph APIs) and tries to add them to the call.
38
-
1. Contoso Contact Center’s SBC is already configured with Azure Communication Services Direct Routing where this add participant request is processed.
39
-
1. Contoso Contact Center provider has implemented a web service, using Azure Communication Services Call Automation that receives the “add Participant” request.
40
-
1. With Teams interop built into Azure Communication Services Call Automation, Azure Communication Services then uses the Teams user’s ObjectId to add them to the call. The Teams user receives the incoming call notification. They accept and join the call.
41
-
1. Once the Teams user has provided their expertise, they leave the call. The customer service agent and customer continue wrap up their conversation.
42
48
43
49
## Capabilities
44
50
45
51
The following list presents the set of features that are currently available in the Azure Communication Services Call Automation SDKs for calls with Microsoft Teams users.
| Pre-call scenarios | Place new outbound call to a Microsoft Teams user | ✔️ | ✔️ | ✔️ | ✔️ |
50
-
|| Redirect (forward) a call to a Microsoft Teams user | ✔️ | ✔️ | ✔️ | ✔️ |
51
-
|| Set custom display name for the callee when making a call offer to a Microsoft Teams user | Only on Microsoft Teams desktop and web client | Only on Microsoft Teams desktop and web client |
52
-
| Mid-call scenarios | Add one or more endpoints to an existing call with a Microsoft Teams user | ✔️ | ✔️ | ✔️ | ✔️ |
53
-
|| Play Audio from an audio file | ✔️ | ✔️ | ✔️ | ✔️ |
54
-
|| Recognize user input through DTMF | ❌ | ❌ | ❌ | ❌ |
55
-
|| Remove one or more endpoints from an existing call| ✔️ | ✔️ | ✔️ | ✔️ |
56
-
|| Blind Transfer a 1:1 call to another endpoint | ✔️ | ✔️ | ✔️ | ✔️ |
57
-
|| Hang up a call (remove the call leg) | ✔️ | ✔️ | ✔️ | ✔️ |
58
-
|| Terminate a call (remove all participants and end call)| ✔️ | ✔️ | ✔️ | ✔️ |
59
-
| Query scenarios | Get the call state | ✔️ | ✔️ | ✔️ | ✔️ |
60
-
|| Get a participant in a call | ✔️ | ✔️ | ✔️ | ✔️ |
61
-
|| List all participants in a call | ✔️ | ✔️ | ✔️ | ✔️ |
62
-
| Call Recording*| Start/pause/resume/stop recording (call recording notifications in Teams clients are supported for Teams desktop, web, iOS and Android) | ✔️ | ✔️ | ✔️ | ✔️ |
63
-
64
-
> [!IMPORTANT]
65
-
> During Public preview, you won't be able to stop the call recording if it started after adding the Teams participant.
66
-
67
-
## Supported clients
68
-
> [!IMPORTANT]
69
-
> Teams phone license is a must to use this feature.
| Pre-call scenarios | Place new outbound call to a Microsoft Teams user | ✔️ |
56
+
|| Redirect (forward) a call to a Microsoft Teams user | ✔️ |
57
+
| Mid-call scenarios | Add one or more endpoints to an existing call with a Microsoft Teams user | ✔️ |
58
+
|| Set custom display name for the callee when making a call offer to a Microsoft Teams user | ✔️ |
59
+
|| Play Audio from an audio file or text prompt (text-to-speech) | ✔️ |
60
+
|| Recognize user input through DTMF or voice (speech-to-text) | ❌ |
61
+
|| Remove one or more endpoints from an existing call| ✔️ |
62
+
|| Blind Transfer a 1:1 call to another endpoint | ✔️ |
63
+
|| Hang up a call (remove the call leg) | ✔️ |
64
+
|| Terminate a call (remove all participants and end call)| ✔️ |
65
+
| Query scenarios | Get the call state | ✔️ |
66
+
|| Get a participant in a call | ✔️ |
67
+
|| List all participants in a call | ✔️ |
68
+
| Call Recording | Start/pause/resume/stop recording (call recording notifications in Teams clients are supported) | ✔️ |
69
+
70
+
## Supported Teams clients
70
71
71
72
| Clients | Support |
72
73
| -----------------| ----------- |
73
74
| Microsoft Teams Desktop | ✔️ |
74
75
| Microsoft Teams Web | ✔️ |
75
-
| Azure Communications Services user app signed in with Microsoft 365 Identity | ✔️ |
76
-
77
-
> [!NOTE]
78
-
> While in preview, the support for Microsoft Teams mobile apps is available with limited functionality and some features might not work properly.
79
-
80
-
## Roadmap
81
-
1. Support for Azure Communications Services signed in with Microsoft 365 Identity coming soon.
76
+
| Microsoft Teams iOS | ❌ |
77
+
| Microsoft Teams Android | ❌ |
78
+
| Custom app built using Azure Communications Services, signed in with Microsoft 365 Identity |✔️ |
82
79
80
+
Learn more about the experience for Teams users joining Azure Communication Services calls [here](./../interop/teams-interop-group-calls.md).
83
81
84
82
## Next steps
85
83
86
84
> [!div class="nextstepaction"]
87
-
> [Get started with adding a Microsoft Teams user to an ongoing call using Call Automation](../../how-tos/call-automation/teams-interop-call-automation.md)
85
+
> [Get started with adding a Microsoft Teams user to an ongoing call using Call Automation](./../../how-tos/call-automation/teams-interop-call-automation.md)
88
86
89
87
Here are some articles of interest to you:
90
88
- Learn more about [Call Automation](../../concepts/call-automation/call-automation.md) and its features.
91
89
- Learn about [Play action](../../concepts/call-automation/play-Action.md) to play audio in a call.
92
-
- Learn how to build a [call workflow](../../quickstarts/call-automation/callflows-for-customer-interactions.md) for a customer support scenario.
93
90
- Understand how your resource is [charged for various calling use cases](../pricing.md) with examples.
0 commit comments