Skip to content

Commit 3a90ef6

Browse files
committed
Merge branch 'main' of https://github.com/MicrosoftDocs/azure-docs-pr into nw-vnetflow
2 parents dbf5fc5 + ba3f6ce commit 3a90ef6

37 files changed

+1556
-1353
lines changed

articles/azure-cache-for-redis/cache-migration-guide.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ description: Learn how to migrate your existing cache to Azure Cache for Redis
77
ms.topic: conceptual
88
ms.custom:
99
- ignite-2024
10+
- migration
11+
- aws-to-azure
1012
ms.date: 11/17/2021
1113
---
1214
# Migrate to Azure Cache for Redis

articles/azure-resource-manager/management/resource-name-rules.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Naming rules and restrictions for Azure resources
33
description: Learn the rules and restrictions for naming Azure resources.
44
ms.topic: conceptual
5-
ms.date: 02/19/2025
5+
ms.date: 03/14/2025
66
---
77

88
# Naming rules and restrictions for Azure resources
@@ -634,9 +634,10 @@ In the following tables, the term alphanumeric refers to:
634634
> | netAppAccounts / backups | NetApp account | 3-225 | Alphanumerics, underscores, periods, and hyphens <br><br> Start with alphanumeric. |
635635
> | netAppAccounts / backupPolicies | NetApp account | 1-64 | Alphanumerics, underscores, and hyphens <br><br> Start with alphanumeric. |
636636
> | netAppAccounts / capacityPools | NetApp account | 1-64 | Alphanumerics, underscores, and hyphens<br><br>Start with alphanumeric. |
637+
> | netAppAccounts / shareNames | NetApp account | 1-64 | Alphanumerics and hyphens. <br><br>Start with alphanumeric.<br><br>Underscores aren't supported. |
637638
> | netAppAccounts / snapshots | NetApp account | 1-255 | Alphanumerics, underscores, and hyphens <br><br> Start with alphanumeric. |
638639
> | netAppAccounts / snapshotPolicies | NetApp account | 1-64 | Alphanumerics, underscores, and hyphens<br><br>Start with alphanumeric. |
639-
> | netAppAccounts / volumes | NetApp account | 1-64 | Alphanumerics, underscores, and hyphens <br><br> Start with alphanumeric. <br><br> Volume can't be named `bin` or `default`. |
640+
> | netAppAccounts / volumes | NetApp account | 1-64 | Alphanumerics and hyphens <br><br> Start with alphanumeric. <br><br> Volume can't be named `bin` or `default`. |
640641
> | netAppAccounts / volumeGroups | NetApp account | 3-64 | Alphanumerics, underscores, and hyphens<br><br>Start with alphanumeric. |
641642
642643
## Microsoft.Network

articles/communication-services/.openpublishing.redirection.communication-services.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -475,6 +475,11 @@
475475
"source_path_from_root": "/articles/communication-services/concepts/interop/teams-interop-group-calls.md",
476476
"redirect_url": "/azure/communication-services/concepts/interop/guest/calling-capabilities",
477477
"redirect_document_id": false
478+
},
479+
{
480+
"source_path_from_root": "/azure/communication-services/concepts/interop/calling-chat.md",
481+
"redirect_url": "/azure/communication-services/concepts/interop/teams-user-calling",
482+
"redirect_document_id": false
478483
}
479484
]
480485
}
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
---
2+
title: Building Answer Machine Detection
3+
titleSuffix: An Azure Communication Services concept document
4+
description: Learn how to
5+
author: Kunaal
6+
ms.service: azure-communication-services
7+
ms.subservice: call-automation
8+
ms.topic: conceptual
9+
ms.date: 03/07/2025
10+
ms.author: kpunjabi
11+
ms.custom: public_preview
12+
---
13+
14+
# Implementing Answer Machine Detection with Call Automation
15+
16+
Answer Machine Detection (AMD) helps contact centers identify whether a call is answered by a human or an answering machine. This article describes how to implement an AMD solution using Dual-Tone Multi-Frequency (DTMF) tones with Azure Communication Services existing play and recognize APIs.
17+
18+
To achieve this goal, developers can implement logic that uses the call connected event and plays an automated message. This message requests the callee to press a specific key to verify they're human before connecting them to an agent or playing a more specific message.
19+
20+
## Step-by-step guide
21+
1. Create an outbound call. For more information about creating outbound calls, see [Make an outbound call using Call Automation](../../quickstarts/call-automation/quickstart-make-an-outbound-call.md).
22+
2. Once the call is answered, you get a `CallConnected` event. This event lets your application know that the call is answered. At this stage, it could be a human or an answer machine.
23+
3. After receiving the `CallConnected` event your application should use the [recognize API](./recognize-action.md) and play a message to the callee requesting them to press a number on their dial pad to validate they're human, for example, your application might say "This is a call from [your company name] regarding [reason for call]. Press 1 to be connected to an agent."
24+
4. If the user presses a key on the dialpad, Azure Communication Services sends a `RecognizeCompleted` event to your application. This indicates that a human answered the call and you should continue with your regular workflow.
25+
5. If no DTMF input is received, Azure Communication Services sends a `RecognizeFailed` event to your application. This indicates that this call went to voicemail and you should follow your voicemail flow for this call.
26+
27+
## Example code
28+
29+
```csharp
30+
//... rest of your code
31+
32+
var ttsMessage = "This is a call from [your company name] regarding [reason for call]. Please press 1 to be connected to an agent.";
33+
var playSource = new TextSource(ttsMessage)
34+
{
35+
PlaySourceId = "playSourceId"
36+
};
37+
38+
var playOptions = new PlayOptions
39+
{
40+
Loop = false
41+
};
42+
43+
callConnection.Play(playSource, playOptions);
44+
45+
var recognizeOptions = new RecognizeOptions(new DtmfOptions(new[] { DtmfTone.One }))
46+
{
47+
InterruptPrompt = false,
48+
InitialSilenceTimeout = TimeSpan.FromSeconds(5),
49+
PlayPrompt = playSource
50+
};
51+
52+
var recognizeResult = callConnection.Recognize(recognizeOptions);
53+
54+
// Handle the recognition result
55+
if (recognizeResult.Status == RecognizeResultStatus.Recognized && recognizeResult.RecognizedTone == DtmfTone.One)
56+
{
57+
// Connect the call to an agent
58+
Console.WriteLine("Human detected. Connecting to an agent...");
59+
// Add your logic to connect the call to an agent
60+
}
61+
else
62+
{
63+
// Classify the call as an answering machine
64+
Console.WriteLine("No response detected. Classifying as an answering machine...");
65+
// Add your logic to handle answering machine
66+
}
67+
68+
//... rest of your code
69+
```
70+
71+
## Next steps
72+
- Learn more about [Call Automation](../../concepts/call-automation/call-automation.md) and its features.
73+
- Learn more about [Play action](../../concepts/call-automation/play-action.md).
74+
- Learn more about [Recognize action](../../concepts/call-automation/recognize-action.md).

articles/communication-services/concepts/interop/calling-chat.md

Lines changed: 0 additions & 61 deletions
This file was deleted.

articles/communication-services/concepts/rooms/room-concept.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ Following table shows when to use Virtual Rooms.
4545
| When user roles and permissions are needed to conduct well-managed communications. | ✔️ |
4646
| When solution requires Teams interoperability.* ||
4747

48-
\* If the solution requires interoperability between Teams and Azure Communication Services, use [Teams interoperability calls](../interop/calling-chat.md)
48+
\* If the solution requires interoperability between Teams and Azure Communication Services, use [Teams interoperability calls](../interop/teams-user-calling.md)
4949

5050
## How to conduct calls in Virtual Rooms
5151

articles/communication-services/how-tos/calling-sdk/includes/manage-calls/manage-calls-android.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ ms.author: rifox
1010
## Place a call
1111

1212
To create and start a call you need to call the `CallAgent.startCall()` method and provide the `Identifier` of the callee(s).
13-
To join a group call you need to call the `CallAgent.join()` method and provide the groupId. Group Ids must be in GUID or UUID format.
13+
To join a group call you need to call the `CallAgent.join()` method and provide the groupId. Group IDs must be in GUID or UUID format.
1414

1515
Call creation and start are synchronous. The call instance allows you to subscribe to all events on the call.
1616

@@ -176,7 +176,7 @@ call.unmute(appContext).get();
176176

177177
While you are in a call, the hardware volume keys on the phone should allow the user to change the call volume.
178178
This is done by using the method `setVolumeControlStream` with the stream type `AudioManager.STREAM_VOICE_CALL` on the Activity where the call is being placed.
179-
This allows the hardware volume keys to change the volume of the call (denoted by a phone icon or something similar on the volume slider), preventing to change the volume for other sound profiles, like alarms, media or system wide volume. For more information, you can check [Handling changes in audio output
179+
This allows the hardware volume keys to change the volume of the call (denoted by a phone icon or something similar on the volume slider), preventing changing the volume for other sound profiles, like alarms, media or system wide volume. For more information, you can check [Handling changes in audio output
180180
| Android Developers](https://developer.android.com/guide/topics/media-apps/volume-and-earphones).
181181

182182
```java
@@ -267,6 +267,8 @@ State can be one of
267267
> [!NOTE]
268268
> To use this API please use the Azure Communication Services Calling Android SDK version 2.11.0 or higher.
269269

270+
Now when a PSTN participant is muted, they should get an announcement that they have been muted and that they can press a key combination (e.g. *6) to unmute themselves. When they press *6, they should be unmuted.
271+
270272
To mute all other participants in a call, use the `muteAllRemoteParticipants` API on the call.
271273

272274
```java
@@ -296,7 +298,7 @@ call = callAgent.startCall(context, participants, options);
296298
startService(yourForegroundServiceIntent);
297299
```
298300

299-
And stop the Foreground Service when you hangup the call or the call's status is Disconnected, for example:
301+
And stop the Foreground Service when you hang up the call or the call's status is Disconnected, for example:
300302

301303
```java
302304
call.hangUp(new HangUpOptions()).get();

articles/communication-services/how-tos/calling-sdk/includes/manage-calls/manage-calls-ios.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,8 @@ var videoStreams = remoteParticipant.videoStreams // [RemoteVideoStream, RemoteV
238238
> [!NOTE]
239239
> To use this API please use the Azure Communication Services Calling iOS SDK version 2.13.0 or higher.
240240
241+
Now when a PSTN participant is muted, they should get an announcement that they have been muted and that they can press a key combination (e.g. *6) to unmute themselves. When they press *6, they should be unmuted.
242+
241243
To mute all other participants in a call, use the `muteAllRemoteParticipants` API on the call.
242244

243245
```swift

articles/communication-services/toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -998,6 +998,8 @@ items:
998998
href: how-tos/call-automation/play-action.md
999999
- name: Gather user input with recognize action
10001000
href: how-tos/call-automation/recognize-action.md
1001+
- name: Implement Answer Machine Detection
1002+
href: concepts/call-automation/answer-machine-detection.md
10011003
- name: Call recording
10021004
items:
10031005
- name: Call recording overview

articles/digital-twins/how-to-use-power-platform-logic-apps-connector.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,16 +73,14 @@ Perform the following steps to create a sample flow with the connector in Power
7373
### Logic Apps
7474

7575
Perform the following steps to create a sample flow with the connector in Logic Apps.
76-
1. Navigate to your logic app in the [Azure portal](https://portal.azure.com). Select **Workflows** from the left navigation menu, and **+ Add**. Follow the prompts to create a new workflow.
77-
1. Select your new flow and enter into the **Designer**.
76+
1. Navigate to your logic app in the [Azure portal](https://portal.azure.com). Select **Development Tools > Logic app designer** from the left navigation menu.
7877
1. Add a trigger to your app.
79-
1. Select **Choose an operation** to add an action from the Azure Digital Twins connector. Search for *Azure Digital Twins* on the **Azure** tab to find the data connection. Select the Azure Digital Twins connection.
78+
1. Add an action to the flow. To find the Azure Digital Twins connector, search for *Azure Digital Twins*. Select **See more**.
8079
:::image type="content" source="media/how-to-use-power-platform-logic-apps-connector/logic-apps-action.png" alt-text="Screenshot of Logic Apps, showing the Azure Digital Twins connector." lightbox="media/how-to-use-power-platform-logic-apps-connector/logic-apps-action.png":::
81-
1. You see a list of all the [actions](/connectors/azuredigitaltwins) that are available with the connector. Pick one of them to interact with the [Azure Digital Twins APIs](/rest/api/azure-digitaltwins/).
82-
1. After selecting an action from the Azure Digital Twins connector, you're asked to enter authentication details to create the connection.
80+
1. This shows you a list of all the [actions](/connectors/azuredigitaltwins) that are available with the connector. Pick one of them to interact with the [Azure Digital Twins APIs](/rest/api/azure-digitaltwins/).
81+
1. After selecting an action from the Azure Digital Twins connector, you're asked to enter authentication details to create the connection. Where the connection asks for **ADT Instance Name**, enter the [host name of your instance](how-to-set-up-instance-portal.md#verify-success-and-collect-important-values).
8382
1. You can continue to edit or add more steps to your workflow, using other connectors to build out your integration scenario.
8483

85-
8684
## Limitations and suggestions
8785

8886
Here are some limitations of the connector and suggestions for working with them.

0 commit comments

Comments
 (0)