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
Do I have permission to turn on video, do I have permission to turn on mic, do I have permission to share screen? Those permissions are examples of participant capabilities that you can learn from the capabilities API. Learning the capabilities can help build a user interface that only shows the buttons related to the actions the local user has permissions to.
17
+
During a call, does a participant have permission to turn on video, turn on mic, or share screen?
18
+
19
+
These permissions are examples of participant capabilities that you can learn from the capabilities API operation. You can use capabilities to build a user interface that only shows the buttons related to the actions the local user can perform.
18
20
19
21
## Prerequisites
20
22
21
23
- An Azure account with an active subscription. [Create an account for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F).
22
24
- A deployed Communication Services resource. [Create a Communication Services resource](../../quickstarts/create-communication-resource.md).
23
25
- A user access token to enable the calling client. For more information, see [Create and manage access tokens](../../quickstarts/identity/access-tokens.md).
24
-
- Optional: Complete the quick start to [add voice calling to your application](../../quickstarts/voice-video-calling/getting-started-with-calling.md)
26
+
- Optional: Complete the quick start to [add voice calling to your application](../../quickstarts/voice-video-calling/getting-started-with-calling.md).
The ability to view capabilities is an extended feature of the core `Call` API. It enables you to obtain the capabilities of the local participant in the current call.
-*Transferor*: The person who initiates the transfer request.
26
-
-*Transferee*: The person who is being transferred.
27
-
-*Transfer target*: The person who is being transferred to.
25
+
-*Transferor*: The person initiating the transfer request.
26
+
-*Transferee*: The person being transferred.
27
+
-*Transfer target*: The person the call is being transferred to.
28
28
29
29
### Transfer to participant:
30
30
31
31
1. There's already a connected call between the *transferor* and the *transferee*. The *transferor* decides to transfer the call from the *transferee* to the *transfer target*.
32
-
1. The *transferor* calls the `transfer`API.
32
+
1. The *transferor* calls the `transfer`operation.
33
33
1. The *transfer target* receives an incoming call.
34
34
35
-
To transfer a current call, you can use the `transfer`API. `transfer` takes the optional `transferCallOptions`, which allows you to set a `disableForwardingAndUnanswered` flag:
35
+
To transfer a current call, you can use the `transfer`operation. The `transfer`operation takes the optional `transferCallOptions`, enabling you to set a `disableForwardingAndUnanswered` flag:
36
36
37
37
-`disableForwardingAndUnanswered = false`: If the *transfer target* doesn't answer the transfer call, the transfer follows the *transfer target* forwarding and unanswered settings.
38
38
-`disableForwardingAndUnanswered = true`: If the *transfer target* doesn't answer the transfer call, the transfer attempt ends.
@@ -52,10 +52,10 @@ const transfer = callTransferApi.transfer({targetParticipant: id});
52
52
1. There's already a connected call between the *transferor* and the *transferee*.
53
53
2. There's already a connected call between the *transferor* and the *transfer target*.
54
54
3. The *transferor* decides to transfer the call with the *transferee* to the call with *transfer target*.
55
-
4. The *transferor* calls the `transfer`API.
55
+
4. The *transferor* calls the `transfer`operation.
56
56
6. The *transfer target* receives an incoming call.
57
57
58
-
To transfer a current call, you can use the `transfer` API.
58
+
To transfer a current call, use `transfer`.
59
59
60
60
```js
61
61
// transfer to the target call specifying the call id
consttransferError=transfer.error; // transfer error code that describes the failure if a transfer request failed
78
78
```
79
79
80
-
The *transferee* can listen to a `transferAccepted` event. The listener for this event has a `TransferEventArgs` which contains the call object of the new transfer call
80
+
The *transferee* can listen to a `transferAccepted` event. The listener for this event has a `TransferEventArgs`, which contains the call object of the new transfer call
81
81
between the *transferee* and the *transfer target*.
1. There is a connected call between the *transferor* and the *transferee*.
102
+
1. There's a connected call between the *transferor* and the *transferee*.
103
103
2. The Teams User Identifier of the *target participant voicemail* is known.
104
104
3. The *transferor* decides to transfer the call with the *transferee* to the *target participant's voicemail* using the target participant's Teams User Identifier.
105
-
4. The *transferor* calls the `transfer` API.
105
+
4. The *transferor* calls `transfer`.
106
106
5. The *transferee* receives the transfer request.
107
107
108
-
To transfer a current call, you can use the `transfer` API.
108
+
To transfer a current call, you can use `transfer`.
109
109
110
110
```js
111
111
// transfer to the target participant voicemail specified by their Teams User Identifier
consttransferError=transfer.error; // transfer error code that describes the failure if a transfer request failed
128
128
```
129
129
130
-
The *transferee* can listen to a `transferAccepted` event. The listener for this event has a `TransferEventArgs` which contains the call object of the new transfer call
131
-
between the *transferee* and the *target participant voicemail*.
130
+
The *transferee* can listen to a `transferAccepted` event. The listener for this event has a `TransferEventArgs`, which contains the call object of the new transfer call
131
+
between the *transferee* and the *target participant voicemail*.
132
132
133
133
```js
134
134
// Transferee can subscribe to the transferAccepted event
The *transferor* can subscribe to events for change of the state of the transfer. If the call to the *transferee*was successfully connected with *target participant voicemail*, *transferor* can hang up the original call with *transferee*.
140
+
The *transferor* can subscribe to events for change of the state of the transfer. If the call to the *transferee* successfully connected with *target participant voicemail*, *transferor* can hang up the original call with *transferee*.
When forwarding or transferring a call, `transferInfo` is populated with information about the prior call state. This includes `callerInfo` which describes the initial caller and `transferorInfo` which describes the entity transferring or forwarding the call. For example, if an ACS user places a call to a Teams call queue which then distributes the call to a M365 user, the `callerInfo` would specify the ACS user and the `transferorInfo` would specify the Teams call queue. Callers and transferors have the ability to update their displayName, and if this occurs the callerInfoChanged or transferorInfoChanged events will fire. For more information on change events see [Event: callerInfoChanged](../../events.md?pivots=platform-web#event-callerinfochanged) and [Event: transferorInfoChanged](../../events.md?pivots=platform-web#event-transferorinfochanged). This applies to all calls and for any identity (BYOI or M365).
151
+
152
+
When a participant forwards or transfers a call, `transferInfo` is populated with information about the prior call state. This information includes `callerInfo`, which describes the initial caller and `transferorInfo`, which describes the entity transferring or forwarding the call.
153
+
154
+
For example, if an Azure Communication Services user places a call to a Teams call queue, which then distributes the call to a Microsoft 365 user, the `callerInfo` would specify the Azure Communication Services user and the `transferorInfo` would specify the Teams call queue. Callers and transferors have the ability to update their `displayName`. If they do, the change triggers the `callerInfoChanged` or `transferorInfoChanged` events.
155
+
156
+
For more information about change events, see [Event: callerInfoChanged](../../events.md?pivots=platform-web#event-callerinfochanged) and [Event: transferorInfoChanged](../../events.md?pivots=platform-web#event-transferorinfochanged). Change events apply to all calls and for any identity, including bring your own identity (BYOI) or Microsoft 365.
Copy file name to clipboardExpand all lines: articles/communication-services/how-tos/calling-sdk/transfer-calls.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,22 +7,22 @@ ms.author: chpalm
7
7
ms.service: azure-communication-services
8
8
ms.subservice: calling
9
9
ms.topic: how-to
10
-
ms.date: 08/10/2021
10
+
ms.date: 06/20/2025
11
11
ms.custom: template-how-to
12
12
13
13
#Customer intent: As a developer, I want to learn how to transfer calls so that users have the option to transfer calls.
14
14
---
15
15
16
16
# Transfer calls
17
17
18
-
During an active call, you may want to transfer the call to another person, number, or to voicemail. Let's learn how.
18
+
During an active call, you can want to transfer the call to another person, number, or to voicemail. Let's learn how.
19
19
20
20
## Prerequisites
21
21
22
22
- An Azure account with an active subscription. [Create an account for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F).
23
23
- A deployed Communication Services resource. [Create a Communication Services resource](../../quickstarts/create-communication-resource.md).
24
24
- A user access token to enable the calling client. For more information, see [Create and manage access tokens](../../quickstarts/identity/access-tokens.md).
25
-
- Optional: Complete the quickstart to [add voice calling to your application](../../quickstarts/voice-video-calling/getting-started-with-calling.md)
25
+
- Optional: Complete [add voice calling to your application](../../quickstarts/voice-video-calling/getting-started-with-calling.md).
0 commit comments