Skip to content

Commit 126e42b

Browse files
authored
Merge pull request #296677 from MicrosoftDocs/main
3/20/2025 AM Publish
2 parents 6d8f5e4 + fbfae09 commit 126e42b

File tree

190 files changed

+758
-5140
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

190 files changed

+758
-5140
lines changed

articles/active-directory-b2c/tutorial-create-user-flows.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ Next, specify that the application should be treated as a public client:
213213
1. Ensure that **"isFallbackPublicClient": true** is set in the application manifest:
214214
1. In the left menu, under **Manage**, select **Manifest** to open application manifest.
215215
1. Switch from the **Microsoft Graph App Manifest (New)** tab to the **AAD Graph App Manifest (Deprecating Soon)** tab.
216-
1. Find **allowPublicClient** key and ensure its value is set to **true**.
216+
1. Find **isFallbackPublicClient** key and ensure its value is set to **true**.
217217

218218

219219
Now, grant permissions to the API scope you exposed earlier in the *IdentityExperienceFramework* registration:

articles/application-gateway/ingress-controller-install-new.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ If you use [Cloud Shell](https://shell.azure.com/), you don't need to install He
288288
1. Install the AGIC package:
289289
290290
```bash
291-
helm install agic-controller oci://mcr.microsoft.com/azure-application-gateway/charts/ingress-azure --version 1.7.5 -f helm-config.yaml
291+
helm install agic-controller oci://mcr.microsoft.com/azure-application-gateway/charts/ingress-azure --version 1.8.0 -f helm-config.yaml
292292
```
293293
294294
## Install a sample app

articles/azure-netapp-files/azure-netapp-files-network-topologies.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ services: azure-netapp-files
55
author: ram-kakani
66
ms.service: azure-netapp-files
77
ms.topic: conceptual
8-
ms.date: 02/28/2025
8+
ms.date: 03/20/2025
99
ms.author: ramakk
1010
ms.custom: references_regions
1111
---
@@ -40,7 +40,7 @@ The following table describes what’s supported for each network features confi
4040
| Number of IPs in a VNet (including immediately peered VNets) accessing volumes in an Azure NetApp Files hosting VNet | [Same standard limits as virtual machines (VMs)](../azure-resource-manager/management/azure-subscription-service-limits.md#azure-resource-manager-virtual-networking-limits) | 1000 |
4141
| Azure NetApp Files delegated subnets per VNet | 1 | 1 |
4242
| [Network Security Groups](../virtual-network/network-security-groups-overview.md) (NSGs) on Azure NetApp Files delegated subnets | Yes | No |
43-
| NSG support for private endpoints | Yes* | No |
43+
| [NSG support for private endpoints](../private-link/disable-private-endpoint-network-policy.md) | Yes | No |
4444
| [User-defined routes](../virtual-network/virtual-networks-udr-overview.md#user-defined) (UDRs) on Azure NetApp Files delegated subnets | Yes | No |
4545
| Connectivity to [Private Endpoints](../private-link/private-endpoint-overview.md) | Yes | No |
4646
| Connectivity to [Service Endpoints](../virtual-network/virtual-network-service-endpoints-overview.md) | Yes | No |
@@ -49,8 +49,6 @@ The following table describes what’s supported for each network features confi
4949
| Dual stack (IPv4 and IPv6) VNet | No <br> (IPv4 only supported) | No <br> (IPv4 only supported) |
5050
| Traffic routed via NVA from peered VNet | Yes | No |
5151

52-
\* This feature is currently in preview in all regions where Azure NetApp Files is supported. For guidance on configuring NSG policies for private endpoints, see [Manage network policies for private endpoints](../private-link/disable-private-endpoint-network-policy.md).
53-
5452
### Supported network topologies
5553

5654
The following table describes the network topologies supported by each network features configuration of Azure NetApp Files.

articles/azure-netapp-files/whats-new.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ author: b-hchen
66
ms.service: azure-netapp-files
77
ms.custom: linux-related-content
88
ms.topic: overview
9-
ms.date: 03/13/2025
9+
ms.date: 03/20/2025
1010
ms.author: anfdocs
1111
---
1212

@@ -16,6 +16,10 @@ Azure NetApp Files is updated regularly. This article provides a summary about t
1616

1717
## March 2025
1818

19+
* [Network security group (NSG) support for private link connectivity](azure-netapp-files-network-topologies.md) is now generally available (GA)
20+
21+
Azure NetApp Files now supports private links with NSGs in all regions. This feature enables you to apply NSG policies to private link endpoints, enhancing the security of your workload deployments.
22+
1923
* [Application volume group for Oracle](application-volume-group-oracle-introduction.md) is now generally available (GA)
2024

2125
Application volume group for Oracle enables you to deploy all volumes required to install and operate Oracle databases at enterprise scale, with optimal performance and according to best practices in a single one-step and optimized workflow. The application volume group feature uses the Azure NetApp Files ability to place all volumes in the same availability zone as the VMs to achieve automated, latency-optimized deployments. Azure NetApp Files application volume group shortens Oracle database deployment time and increases overall application performance and stability, including the use of multiple storage endpoints. The application volume group feature supports a wide range of Oracle database layouts from small databases with a single volume up to multi 100-TiB sized databases. Application volume group for Oracle is supported in all Azure NetApp Files-enabled regions.

articles/communication-services/how-tos/call-automation/actions-for-call-control.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ A successful response provides you with CallConnection object that you can use t
247247
1. `CallConnected` event notifying that you successfully connect to the call.
248248
2. `ParticipantsUpdated` event that contains the latest list of participants in the call.
249249

250-
At any point after a successful connection, if your service is disconnected from this call you will be notified via a CallDisconected event. Failure to connect to the call in the first place results in ConnectFailed event.
250+
At any point after a successful connection, if your service is disconnected from this call you will be notified via a CallDisconnected event. Failure to connect to the call in the first place results in ConnectFailed event.
251251

252252
![Sequence diagram for connecting to call.](media/connect-call-flow.png)
253253

@@ -489,7 +489,7 @@ voip_headers = {"customVoipHeader1", "customVoipHeaderValue1"}
489489
result = call_connection_client.transfer_call_to_participant(
490490
target_participant=transfer_destination,
491491
voip_headers=voip_headers,
492-
opration_context="Your context",
492+
operation_context="Your context",
493493
operationCallbackUrl="<url_endpoint>"
494494
)
495495
```
@@ -548,7 +548,7 @@ options.getCustomCallingContext().addVoip("voipHeaderName", "voipHeaderValue");
548548
Response<TransferCallResult> transferResponse = callConnectionAsync.transferToParticipantCallWithResponse(options).block();
549549

550550
// Transfer Pstn User
551-
CommunicationIdentifier transferDestination = new PhoneNumberIdentifier("<taget_phoneNumber>");
551+
CommunicationIdentifier transferDestination = new PhoneNumberIdentifier("<target_phoneNumber>");
552552
CommunicationIdentifier transferee = new PhoneNumberIdentifier("<transferee_phoneNumber>");
553553
TransferCallToParticipantOptions options = new TransferCallToParticipantOptions(transferDestination);
554554
options.setTransferee(transferee);
@@ -578,7 +578,7 @@ options.customCallingContext = customCallingContext;
578578
const result = await callConnection.transferCallToParticipant(transferDestination, options);
579579

580580
// Transfer pstn User
581-
const transferDestination = { phoneNumber: "<taget_phoneNumber>" };
581+
const transferDestination = { phoneNumber: "<target_phoneNumber>" };
582582
const transferee = { phoneNumber: "<transferee_phoneNumber>" };
583583
const options = { transferee: transferee, operationContext: "<Your_context>", operationCallbackUrl: "<url_endpoint>" };
584584

@@ -596,7 +596,7 @@ const result = await callConnection.transferCallToParticipant(transferDestinatio
596596
```python
597597
# Transfer to user
598598
transfer_destination = CommunicationUserIdentifier("<user_id>")
599-
transferee = CommnunicationUserIdentifer("transferee_user_id")
599+
transferee = CommunicationUserIdentifier("transferee_user_id")
600600
call_connection_client = call_automation_client.get_call_connection("<call_connection_id_from_ongoing_call>")
601601

602602
# create custom context
@@ -606,13 +606,13 @@ result = call_connection_client.transfer_call_to_participant(
606606
target_participant=transfer_destination,
607607
transferee=transferee,
608608
voip_headers=voip_headers,
609-
opration_context="Your context",
609+
operation_context="Your context",
610610
operationCallbackUrl="<url_endpoint>"
611611
)
612612

613613
# Transfer to PSTN user
614-
transfer_destination = PhoneNumberIdentifer("<target_phoneNumber>")
615-
transferee = PhoneNumberIdentifer("transferee_phoneNumber")
614+
transfer_destination = PhoneNumberIdentifier("<target_phoneNumber>")
615+
transferee = PhoneNumberIdentifier("transferee_phoneNumber")
616616

617617
# create custom context
618618
sip_headers={}
@@ -624,7 +624,7 @@ result = call_connection_client.transfer_call_to_participant(
624624
target_participant=transfer_destination,
625625
transferee=transferee,
626626
sip_headers=sip_headers,
627-
opration_context="Your context",
627+
operation_context="Your context",
628628
operationCallbackUrl="<url_endpoint>"
629629
)
630630
```
@@ -737,7 +737,7 @@ call_connection_client = call_automation_client.get_call_connection(
737737
result = call_connection_client.add_participant(
738738
target,
739739
voip_headers=voip_headers,
740-
opration_context="Your context",
740+
operation_context="Your context",
741741
operationCallbackUrl="<url_endpoint>"
742742
)
743743

@@ -756,7 +756,7 @@ call_connection_client = call_automation_client.get_call_connection(
756756
result = call_connection_client.add_participant(
757757
target,
758758
sip_headers=sip_headers,
759-
opration_context="Your context",
759+
operation_context="Your context",
760760
operationCallbackUrl="<url_endpoint>",
761761
source_caller_id_number=caller_id_number
762762
)
@@ -833,7 +833,7 @@ call_connection_client = call_automation_client.get_call_connection(
833833
result = call_connection_client.add_participant(target)
834834

835835
# cancel the request
836-
call_connection_client.cancel_add_participant_operation(result.invitation_id, opration_context="Your context", operationCallbackUrl="<url_endpoint>")
836+
call_connection_client.cancel_add_participant_operation(result.invitation_id, operation_context="Your context", operationCallbackUrl="<url_endpoint>")
837837
```
838838
-----
839839

@@ -881,7 +881,7 @@ remove_this_user = CommunicationUserIdentifier("<user_id>")
881881
call_connection_client = call_automation_client.get_call_connection(
882882
"<call_connection_id_from_ongoing_call>"
883883
)
884-
result = call_connection_client.remove_participant(remove_this_user, opration_context="Your context", operationCallbackUrl="<url_endpoint>")
884+
result = call_connection_client.remove_participant(remove_this_user, operation_context="Your context", operationCallbackUrl="<url_endpoint>")
885885
```
886886

887887
-----

articles/communication-services/how-tos/call-automation/control-mid-call-media-actions.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@ if event.type == "Microsoft.Communication.ContinuousDtmfRecognitionToneFailed":
328328
```
329329
-----
330330
331-
### ContinuousDtmfRecogntionStopped Event
331+
### ContinuousDtmfRecognitionStopped Event
332332
Example of how to handle when continuous DTMF recognition has stopped, this could be because your application invoked the `StopContinuousDtmfRecognitionAsync` event or because the call has ended.
333333
### [csharp](#tab/csharp)
334334
``` csharp
@@ -353,7 +353,7 @@ if (event.type === "Microsoft.Communication.ContinuousDtmfRecognitionStopped") {
353353
### [Python](#tab/python)
354354
```python
355355
if event.type == "Microsoft.Communication.ContinuousDtmfRecognitionStopped":
356-
app.logger.info("Tone stoped: context=%s", event.data["operationContext"])
356+
app.logger.info("Tone stopped: context=%s", event.data["operationContext"])
357357
```
358358
-----
359359

articles/communication-services/how-tos/call-automation/custom-context.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ options.getCustomCallingContext().addVoip("voipHeaderName", "voipHeaderValue");
155155
Response<TransferCallResult> transferResponse = callConnectionAsync.transferToParticipantCallWithResponse(options).block();
156156

157157
//Transfer a PSTN call to phone number and set UUI and custom SIP headers
158-
CommunicationIdentifier transferDestination = new PhoneNumberIdentifier("<taget_phoneNumber>");
158+
CommunicationIdentifier transferDestination = new PhoneNumberIdentifier("<target_phoneNumber>");
159159
TransferCallToParticipantOptions options = new TransferCallToParticipantOptions(transferDestination);
160160
options.getCustomCallingContext().addSipUui("UUIvalue");
161161
options.getCustomCallingContext().addSipX("sipHeaderName", "value");
@@ -174,7 +174,7 @@ options.customCallingContext = customCallingContext;
174174
const result = await callConnection.transferCallToParticipant(transferDestination, options);
175175

176176
//Transfer a PSTN call to phone number and set UUI and custom SIP headers
177-
const transferDestination = { phoneNumber: "<taget_phoneNumber>" };
177+
const transferDestination = { phoneNumber: "<target_phoneNumber>" };
178178
const transferee = { phoneNumber: "<transferee_phoneNumber>" };
179179
const options = { transferee: transferee, operationContext: "<Your_context>", operationCallbackUrl: "<url_endpoint>" };
180180
const customCallingContext: CustomCallingContext = [];
@@ -188,27 +188,27 @@ const result = await callConnection.transferCallToParticipant(transferDestinatio
188188
```python
189189
#Transfer to communication services user and include one VOIP header
190190
transfer_destination = CommunicationUserIdentifier("<user_id>")
191-
transferee = CommnunicationUserIdentifer("transferee_user_id")
191+
transferee = CommunicationUserIdentifier("transferee_user_id")
192192
voip_headers = {"customVoipHeader1", "customVoipHeaderValue1"}
193193
result = call_connection_client.transfer_call_to_participant(
194194
target_participant=transfer_destination,
195195
transferee=transferee,
196196
voip_headers=voip_headers,
197-
opration_context="Your context",
197+
operation_context="Your context",
198198
operationCallbackUrl="<url_endpoint>"
199199
)
200200

201201
#Transfer a PSTN call to phone number and set UUI and custom SIP headers
202-
transfer_destination = PhoneNumberIdentifer("<target_phoneNumber>")
203-
transferee = PhoneNumberIdentifer("transferee_phoneNumber")
202+
transfer_destination = PhoneNumberIdentifier("<target_phoneNumber>")
203+
transferee = PhoneNumberIdentifier("transferee_phoneNumber")
204204
sip_headers={}
205205
sip_headers["X-MS-Custom-headerName"] = "headerValue"
206206
sip_headers["User-To-User"] = "uuivalue"
207207
result = call_connection_client.transfer_call_to_participant(
208208
target_participant=transfer_destination,
209209
transferee=transferee,
210210
sip_headers=sip_headers,
211-
opration_context="Your context",
211+
operation_context="Your context",
212212
operationCallbackUrl="<url_endpoint>"
213213
)
214214
```

articles/communication-services/how-tos/call-automation/handle-events-with-event-processor.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ else
100100
```
101101

102102
> [!WARNING]
103-
> EventProcessor utilizes OperationContext to track event with its related request. If OperationContext was not set during request, EventProcessor will set generated GUID to track future events to the request. If you are setting your own OperationContext during reuest, EventProcessor will still work - but it's advised to set them differently from request to request, to allow EventProcessor to distinguish request 1's event and request 2's event.
103+
> EventProcessor utilizes OperationContext to track event with its related request. If OperationContext was not set during request, EventProcessor will set generated GUID to track future events to the request. If you are setting your own OperationContext during request, EventProcessor will still work - but it's advised to set them differently from request to request, to allow EventProcessor to distinguish request 1's event and request 2's event.
104104
105105
## Handling events with Ongoing EventProcessor
106106

@@ -110,10 +110,10 @@ Some events could happen anytime during the call, such as CallDisconnected or Pa
110110
// Use your call automation client that established the call
111111
CallAutomationEventProcessor eventProcessor = callAutomationClient.GetEventProcessor();
112112

113-
// attatch ongoing EventProcessor for this particular call,
113+
// attach ongoing EventProcessor for this particular call,
114114
// then prints out # of participants in the call
115-
eventProcessor.AttachOngoingEventProcessor<ParticipantsUpdated>(callConnectionId, recievedEvent => {
116-
logger.LogInformation($"Number of participants in this Call: [{callConnectionId}], Number Of Participants[{recievedEvent.Participants.Count}]");
115+
eventProcessor.AttachOngoingEventProcessor<ParticipantsUpdated>(callConnectionId, receivedEvent => {
116+
logger.LogInformation($"Number of participants in this Call: [{callConnectionId}], Number Of Participants[{receivedEvent.Participants.Count}]");
117117
});
118118
```
119119

@@ -130,7 +130,7 @@ If you would like to wait for specific event with given predicate without relyin
130130
// Use your call automation client that established the call
131131
CallAutomationEventProcessor eventProcessor = callAutomationClient.GetEventProcessor();
132132

133-
// With given matching informations, wait for this specific event
133+
// With given matching information, wait for this specific event
134134
CallDisconnected disconnectedEvent = (CallDisconnected)await eventProcessor.WaitForEvent(predicate
135135
=>
136136
predicate.CallConnectionId == myConnectionId

articles/communication-services/how-tos/call-automation/includes/play-audio-how-to-js.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ const playSource: SsmlSource = { ssmlText: ssmlToPlay, kind: "ssmlSource" };
100100
### Custom voice models
101101
If you wish to enhance your prompts more and include custom voice models, the play action Text-To-Speech now supports these custom voices. These are a great option if you are trying to give customers a more local, personalized experience or have situations where the default models may not cover the words and accents you're trying to pronounce. To learn more about creating and deploying custom models you can read this [guide](/azure/ai-services/speech-service/how-to-custom-voice).
102102

103-
**Custom voice names regular text exmaple**
103+
**Custom voice names regular text example**
104104
``` javascript
105105
const textToPlay = "Welcome to Contoso";
106106
// Provide VoiceName and CustomVoiceEndpointID to play your custom voice

articles/communication-services/how-tos/call-automation/includes/play-audio-how-to-python.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ call_automation_client.get_call_connection(call_connection_id).play_media(
175175
### Custom voice models
176176
If you wish to enhance your prompts more and include custom voice models, the play action Text-To-Speech now supports these custom voices. These are a great option if you are trying to give customers a more local, personalized experience or have situations where the default models may not cover the words and accents you're trying to pronounce. To learn more about creating and deploying custom models you can read this [guide](/azure/ai-services/speech-service/how-to-custom-voice).
177177

178-
**Custom voice names regular text exmaple**
178+
**Custom voice names regular text example**
179179
``` python
180180
text_to_play = "Welcome to Contoso"
181181

0 commit comments

Comments
 (0)