Skip to content

Commit 28cbc03

Browse files
authored
Update custom-teams-endpoint-use-cases.md
1 parent c6bd7ca commit 28cbc03

File tree

1 file changed

+24
-24
lines changed

1 file changed

+24
-24
lines changed

articles/communication-services/concepts/interop/custom-teams-endpoint-use-cases.md

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -13,30 +13,30 @@ ms.service: azure-communication-services
1313
ms.subservice: teams-interop
1414
---
1515

16-
# Custom Teams Endpoint - Use cases
16+
# Custom Teams Endpoint Use cases
1717

18-
Microsoft Teams provides identities managed by Azure Active Directory and calling experiences controlled by Teams Admin Center and policies. Users might have assigned licenses to enable PSTN connectivity and advanced calling capabilities of Teams Phone System. Azure Communication Services are supporting Teams identities for managing Teams VoIP calls, Teams PSTN calls, and join Teams meetings. Developers might extend the Azure Communication Services with Graph API to provide contextual data from Microsoft 365 ecosystem. This page is providing inspiration on how to leverage existing Microsoft technologies to provide an end-to-end experience for calling scenarios with Teams users and Azure Communication Services calling SDKs.
18+
Microsoft Teams provides identities managed by Azure Active Directory and calling experiences controlled by Teams Admin Center and policies. Users might have assigned licenses to enable PSTN connectivity and advanced calling capabilities of Teams Phone System. Azure Communication Services are supporting Teams identities for managing Teams VoIP calls, Teams PSTN calls, and join Teams meetings. Developers might extend the Azure Communication Services with Graph API to provide contextual data from Microsoft 365 ecosystem. This page is providing inspiration on how to use existing Microsoft technologies to provide an end-to-end experience for calling scenarios with Teams users and Azure Communication Services calling SDKs.
1919

2020
## Use case 1: Make outbound Teams PSTN call
2121
This scenario is showing a multi-tenant use case, where company Contoso is providing SaaS to company Fabrikam. SaaS allows Fabrikam's users to make Teams PSTN calls via a custom website that takes the identity of the Teams user and configuration of the PSTN connectivity assigned to that Teams user.
2222

2323
![Diagram is showing user experience of Alice making Teams PSTN call to customer Megan.](./media/custom-teams-endpoint/end-to-end-use-cases/cte-e2e-cte-to-pstn-out-overview.svg)
2424

25-
The following sequence diagram is showing detailed steps of initiating a PSTN call:
25+
The following sequence diagram shows detailed steps of initiation of a Teams PSTN call:
2626

2727
:::image type="content" source="./media/custom-teams-endpoint/end-to-end-use-cases/cte-e2e-cte-to-pstn-out-full.svg" alt-text="Sequence diagram is describing detailed set of steps, that happens to initiate a Teams PSTN call using Azure Communication Services and Teams." lightbox="./media/custom-teams-endpoint/end-to-end-use-cases/cte-e2e-cte-to-pstn-out-full.svg":::
2828

2929
### Steps
3030
1. Authenticate Alice from Fabrikam in Contoso's client application: Alice is using a browser to open Fabrikam's web page and authenticates. You can find more details about [the authentication with Teams identity](./custom-teams-endpoint-authentication-overview.md). If the authentication is successful, Alice is redirected to the initial page.
3131
2. Load customers and their PSTN numbers: Contoso provides custom logic to retrieve the list of customers and their associated phone numbers. This list is rendered on the initial page to Alice.
32-
3. Initiate a call to Megan: Alice selects a button to initiate a PSTN call to Megan in the Contoso's Client application. Client application leverages Azure Communication Services calling SDK to provide the calling capability. First, it creates an instance of callAgent, that holds the Azure Communication Services access token acquired during 1st step.
32+
3. Initiate a call to Megan: Alice selects a button to initiate a PSTN call to Megan in the Contoso's Client application. Client application uses Azure Communication Services calling SDK to provide the calling capability. First, it creates an instance of callAgent, that holds the Azure Communication Services access token acquired during first step.
3333

3434
```js
3535
const callClient = new CallClient();
3636
tokenCredential = new AzureCommunicationTokenCredential('<AlICE_ACCESS_TOKEN>');
3737
callAgent = await callClient.createCallAgent(tokenCredential)
3838
```
39-
Then the user needs to start a call to Megan's phone number.
39+
Then you need to start a call to Megan's phone number.
4040

4141
```js
4242
const pstnCallee = { phoneNumber: '<MEGAN_PHONE_NUMBER_E164_FORMAT>' }
@@ -50,20 +50,20 @@ This scenario is showing a multi-tenant use case, where company Contoso is provi
5050

5151
![Diagram is showing user experience of Alice receiving Teams PSTN call from customer Megan.](./media/custom-teams-endpoint/end-to-end-use-cases/cte-e2e-cte-to-pstn-in-overview.svg)
5252

53-
The following sequence diagram is showing detailed steps of receiving a PSTN call:
53+
The following sequence diagram shows detailed steps for accepting incoming Teams PSTN calls:
5454

5555
:::image type="content" source="./media/custom-teams-endpoint/end-to-end-use-cases/cte-e2e-cte-to-pstn-in-full.svg" alt-text="Sequence diagram is describing detailed set of steps, that happens to receive a Teams PSTN call using Azure Communication Services and Teams." lightbox="./media/custom-teams-endpoint/end-to-end-use-cases/cte-e2e-cte-to-pstn-in-full.svg":::
5656

5757
### Steps
5858
1. Authenticate Alice from Fabrikam in Contoso's client application: Alice is using a browser to open Fabrikam's web page and authenticates. You can find more details about [the authentication with Teams identity](./custom-teams-endpoint-authentication-overview.md). If the authentication is successful, Alice is redirected to the initial page.
59-
2. Subscribe for receiving calls: Client application leverages Azure Communication Services calling SDK to provide the calling capability. First, it creates an instance of callAgent, that holds the Azure Communication Services access token acquired during 1st step.
59+
2. Subscribe for receiving calls: Client application uses Azure Communication Services calling SDK to provide the calling capability. First, it creates an instance of callAgent, that holds the Azure Communication Services access token acquired during first step.
6060

6161
```js
6262
const callClient = new CallClient();
6363
tokenCredential = new AzureCommunicationTokenCredential('<AlICE_ACCESS_TOKEN>');
6464
callAgent = await callClient.createCallAgent(tokenCredential)
6565
```
66-
Then user subscribes to the incoming call event.
66+
Then you subscribe to the incoming call event.
6767

6868
```js
6969
const incomingCallHandler = async (args: { incomingCall: IncomingCall }) => {
@@ -74,23 +74,23 @@ const incomingCallHandler = async (args: { incomingCall: IncomingCall }) => {
7474
};
7575
callAgent.on('incomingCall', incomingCallHandler);
7676
```
77-
The method _showIncomingCall_ is a custom Contoso's method that will render a user interface to indicate incoming calls and two buttons to accept and decline the call. If the user selects accept button, then the following code is used:
77+
The method _showIncomingCall_ is a custom Contoso's method that will render a user interface to indicate incoming calls and two buttons to accept and decline the call. If you select accept button, then the following code is used:
7878

7979
```js
8080
// Accept the call
8181
var call = await incomingCall.accept();
8282
```
8383

84-
If the user selects the decline button, then the following code is used:
84+
If you select the decline button, then the following code is used:
8585

8686

8787
```js
8888
// Reject the call
8989
incomingCall.reject();
9090
```
9191

92-
3. Megan start's a call to PSTN number assigned to Teams user Alice: Megan uses her phone to call Alice. The carrier network will connect to Teams PSTN connectivity assigned to Alice and it will ring all Teams endpoints registered for Alice. It includes existing Teams desktop, mobile, web clients, and applications based on Azure Communication Services calling SDK authenticated as Alice.
93-
4. Contoso's client application shows Megan's incoming call: Client application receives incoming call notification. _showIncomingCall_ method would use custom Contoso's logic to translate the phone number to customer's name (e.g., a database storing key-value pairs phone number and customer name). When the information is retrieved the notification is shown to Alice in Contoso's client application.
92+
3. Megan start's a call to PSTN number assigned to Teams user Alice: Megan uses her phone to call Alice. The carrier network will connect to Teams PSTN connectivity assigned to Alice and it will ring all Teams endpoints registered for Alice. It includes: Teams desktop, mobile, web clients, and applications based on Azure Communication Services calling SDK.
93+
4. Contoso's client application shows Megan's incoming call: Client application receives incoming call notification. _showIncomingCall_ method would use custom Contoso's logic to translate the phone number to customer's name (for example, a database storing key-value pairs consisting of a phone number and customer name). When the information is retrieved, the notification is shown to Alice in Contoso's client application.
9494
5. Alice accepts the call: Alice selects a button to accept the call and the connection between Alice and Megan is established.
9595

9696

@@ -99,7 +99,7 @@ This scenario is showing a multi-tenant use case, where company Contoso is provi
9999

100100
![Diagram is showing user experience of Alice making Teams VoIP call to colleague Megan.](./media/custom-teams-endpoint/end-to-end-use-cases/cte-e2e-cte-to-voip-out-overview.svg)
101101

102-
The following sequence diagram is showing detailed steps of initiating a VoIP call:
102+
The following sequence diagram shows detailed steps for initiation of a Teams VoIP call:
103103

104104
:::image type="content" source="./media/custom-teams-endpoint/end-to-end-use-cases/cte-e2e-cte-to-voip-out-full.svg" alt-text="Sequence diagram is describing detailed set of steps, that happens to initiate a Teams VoIP call using Azure Communication Services and Teams." lightbox="./media/custom-teams-endpoint/end-to-end-use-cases/cte-e2e-cte-to-voip-out-full.svg":::
105105

@@ -116,7 +116,7 @@ Response: response.body.value[1].displayName; // ”Megan Bowen”
116116

117117
Contoso's client application will then show the list of users and the ability to initiate a call to a given user.
118118

119-
3. Initiate a call to Megan: Alice selects a button to initiate a Teams VoIP call to Megan in the Contoso's Client application. Client application leverages Azure Communication Services calling SDK to provide the calling capability. Calls in Teams Clients are associated with Teams chat. First, the application requests creation of a dedicated chat for the VoIP call.
119+
3. Initiate a call to Megan: Alice selects a button to initiate a Teams VoIP call to Megan in the Contoso's Client application. Client application uses Azure Communication Services calling SDK to provide the calling capability. Calls in Teams Clients are associated with Teams chat. First, the application requests creation of a dedicated chat for the VoIP call.
120120

121121
```
122122
POST https://graph.microsoft.com/v1.0/chats
@@ -144,14 +144,14 @@ Permissions: Chat.Create (delegated)
144144
Response: response.body.value.id; // "19:8c0a1a67-50ce-4114-bb6c-da9c5dbcf6ca_e8b753b5-4117-464e-9a08-713e1ff266b3@unq.gbl.spaces"
145145
```
146146

147-
Then the client application creates an instance of callAgent, that holds the Azure Communication Services access token acquired during 1st step.
147+
Then the client application creates an instance of callAgent, that holds the Azure Communication Services access token acquired during first step.
148148

149149
```js
150150
const callClient = new CallClient();
151151
tokenCredential = new AzureCommunicationTokenCredential('<AlICE_ACCESS_TOKEN>');
152152
callAgent = await callClient.createCallAgent(tokenCredential)
153153
```
154-
Then user starts a call to Megan's Teams ID.
154+
Then you start a call to Megan's Teams ID.
155155

156156
```js
157157
var teamsUser = { microsoftTeamsUserId: 'e8b753b5-4117-464e-9a08-713e1ff266b3'};
@@ -167,13 +167,13 @@ This scenario is showing a multi-tenant use case, where company Contoso is provi
167167

168168
![Diagram is showing user experience of Alice receiving Teams VoIP call from customer Megan.](./media/custom-teams-endpoint/end-to-end-use-cases/cte-e2e-cte-to-voip-in-overview.svg)
169169

170-
The following sequence diagram is showing detailed steps of receiving a VoIP call:
170+
The following sequence diagram shows detailed steps for accepting incoming Teams VoIP calls:
171171

172172
:::image type="content" source="./media/custom-teams-endpoint/end-to-end-use-cases/cte-e2e-cte-to-voip-in-full.svg" alt-text="Sequence diagram is describing detailed set of steps, that happens to receive a Teams VoIP call using Azure Communication Services. Graph API, and Teams." lightbox="./media/custom-teams-endpoint/end-to-end-use-cases/cte-e2e-cte-to-voip-in-full.svg":::
173173

174174
### Steps
175175
1. Authenticate Alice from Fabrikam in Contoso's client application: Alice is using a browser to open Fabrikam's web page and authenticates. You can find more details about [the authentication with Teams identity](./custom-teams-endpoint-authentication-overview.md). If the authentication is successful, Alice is redirected to the initial page.
176-
2. Subscribe for receiving calls: Client application leverages Azure Communication Services calling SDK to provide the calling capability. First, it creates an instance of callAgent, that holds the Azure Communication Services access token acquired during 1st step.
176+
2. Subscribe for receiving calls: Client application uses Azure Communication Services calling SDK to provide the calling capability. First, it creates an instance of callAgent, that holds the Azure Communication Services access token acquired during first step.
177177

178178
```js
179179
const callClient = new CallClient();
@@ -191,22 +191,22 @@ const incomingCallHandler = async (args: { incomingCall: IncomingCall }) => {
191191
};
192192
callAgent.on('incomingCall', incomingCallHandler);
193193
```
194-
The method _showIncomingCall_ is a custom Contoso's method that will render a user interface to indicate incoming calls and two buttons to accept and decline the call. If the user selects accept button then the following code is used:
194+
The method _showIncomingCall_ is a custom Contoso's method that will render a user interface to indicate incoming calls and two buttons to accept and decline the call. If you select accept button then the following code is used:
195195

196196
```js
197197
// Accept the call
198198
var call = await incomingCall.accept();
199199
```
200200

201-
If the user selects the decline button, then the following code is used:
201+
If you select the decline button, then the following code is used:
202202

203203

204204
```js
205205
// Reject the call
206206
incomingCall.reject();
207207
```
208208

209-
3. Megan start's a VoIP call to Teams user Alice: Megan uses her Teams desktop client to call Alice. The Teams infrastructure will ring all endpoints associated with Alice. It includes existing Teams desktop, mobile, web clients, and applications based on Azure Communication Services calling SDK authenticated as Alice.
209+
3. Megan start's a VoIP call to Teams user Alice: Megan uses her Teams desktop client to call Alice. The Teams infrastructure will ring all endpoints associated with Alice. It includes: Teams desktop, mobile, web clients, and applications based on Azure Communication Services calling SDK.
210210
4. Contoso's client application shows Megan's incoming call: Client application receives incoming call notification. _showIncomingCall_ method would use Graph API to translate the Teams user ID to display name.
211211

212212
```
@@ -216,7 +216,7 @@ Response: response.body.value.displayName; // ”Megan Bowen”
216216
response.body.value.id; // "e8b753b5-4117-464e-9a08-713e1ff266b3"
217217
```
218218

219-
When the information is retrieved the notification is shown to Alice in Contoso's client application.
219+
When the information is retrieved, the notification is shown to Alice in Contoso's client application.
220220

221221
5. Alice accepts the call: Alice selects a button to accept the call and the connection between Alice and Megan is established.
222222

@@ -225,7 +225,7 @@ This scenario is showing a multi-tenant use case, where company Contoso is provi
225225

226226
![Diagram is showing user experience of Alice joining Teams Meeting.](./media/custom-teams-endpoint/end-to-end-use-cases/cte-e2e-cte-to-meeting-overview.svg)
227227

228-
The following sequence diagram is showing detailed steps of joining a Teams meeting:
228+
The following sequence diagram shows detailed steps for joining a Teams meeting:
229229

230230
:::image type="content" source="./media/custom-teams-endpoint/end-to-end-use-cases/cte-e2e-cte-to-meeting-full.svg" alt-text="Sequence diagram is describing detailed set of steps, that happens to join a Teams meeting using Azure Communication Services, Graph API, and Teams." lightbox="./media/custom-teams-endpoint/end-to-end-use-cases/cte-e2e-cte-to-meeting-full.svg":::
231231

@@ -245,7 +245,7 @@ Response: response.body.value[0].subject; // ”Project Tailspin”
245245

246246
Contoso's client application will then show the list of Teams meetings and the ability to join them.
247247

248-
3. Join Teams meeting "Project Tailspin": Alice selects a button to join Teams meeting "Project Tailspin" in the Contoso's Client application. Client application leverages Azure Communication Services calling SDK to provide the calling capability. Client applications create an instance of callAgent, that holds the Azure Communication Services access token acquired during 1st step.
248+
3. Join Teams meeting "Project Tailspin": Alice selects a button to join Teams meeting "Project Tailspin" in the Contoso's Client application. Client application uses Azure Communication Services calling SDK to provide the calling capability. Client applications create an instance of callAgent, that holds the Azure Communication Services access token acquired during first step.
249249

250250
```js
251251
const callClient = new CallClient();

0 commit comments

Comments
 (0)