Skip to content

Commit 582075f

Browse files
authored
Adding the create call failed event (#46847)
* Adding the create call failed event * adding the create call failed * Adding the live test * updating the asset file and changelog * remove the unwanted changes
1 parent 7b45df6 commit 582075f

File tree

16 files changed

+292
-19
lines changed

16 files changed

+292
-19
lines changed

sdk/communication/Azure.Communication.CallAutomation/CHANGELOG.md

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
11
# Release History
22

3-
## 1.3.0-beta.2 (Unreleased)
3+
## 1.3.0-beta.2 (2024-10-25)
44

55
### Features Added
66

7-
### Breaking Changes
8-
9-
### Bugs Fixed
10-
11-
### Other Changes
7+
- Added CreateCallFailed event to signify when create call API fails to establish a call
128

139
## 1.3.0-beta.1 (2024-08-02)
1410

sdk/communication/Azure.Communication.CallAutomation/api/Azure.Communication.CallAutomation.netstandard2.0.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,7 @@ public static partial class CallAutomationModelFactory
178178
public static Azure.Communication.CallAutomation.ContinuousDtmfRecognitionStopped ContinuousDtmfRecognitionStopped(string callConnectionId = null, string serverCallId = null, string correlationId = null, string operationContext = null, Azure.Communication.CallAutomation.ResultInformation resultInformation = null) { throw null; }
179179
public static Azure.Communication.CallAutomation.ContinuousDtmfRecognitionToneFailed ContinuousDtmfRecognitionToneFailed(string callConnectionId = null, string serverCallId = null, string correlationId = null, Azure.Communication.CallAutomation.ResultInformation resultInformation = null, string operationContext = null) { throw null; }
180180
public static Azure.Communication.CallAutomation.ContinuousDtmfRecognitionToneReceived ContinuousDtmfRecognitionToneReceived(int? sequenceId = default(int?), Azure.Communication.CallAutomation.DtmfTone? tone = default(Azure.Communication.CallAutomation.DtmfTone?), string callConnectionId = null, string serverCallId = null, string correlationId = null, Azure.Communication.CallAutomation.ResultInformation resultInformation = null, string operationContext = null) { throw null; }
181+
public static Azure.Communication.CallAutomation.CreateCallFailed CreateCallFailed(string callConnectionId = null, string serverCallId = null, string correlationId = null, Azure.Communication.CallAutomation.ResultInformation resultInformation = null, string operationContext = null) { throw null; }
181182
public static Azure.Communication.CallAutomation.CreateCallResult CreateCallResult(Azure.Communication.CallAutomation.CallConnection callConnection = null, Azure.Communication.CallAutomation.CallConnectionProperties callConnectionProperties = null) { throw null; }
182183
public static Azure.Communication.CallAutomation.DtmfResult DtmfResult(System.Collections.Generic.IEnumerable<Azure.Communication.CallAutomation.DtmfTone> tones = null) { throw null; }
183184
public static Azure.Communication.CallAutomation.HoldFailed HoldFailed(string callConnectionId = null, string serverCallId = null, string correlationId = null, string operationContext = null, Azure.Communication.CallAutomation.ResultInformation resultInformation = null) { throw null; }
@@ -623,9 +624,15 @@ internal ContinuousDtmfRecognitionToneReceived() { }
623624
public partial class CreateCallEventResult
624625
{
625626
internal CreateCallEventResult() { }
627+
public Azure.Communication.CallAutomation.CreateCallFailed FailureResult { get { throw null; } }
626628
public bool IsSuccess { get { throw null; } }
627629
public Azure.Communication.CallAutomation.CallConnected SuccessResult { get { throw null; } }
628630
}
631+
public partial class CreateCallFailed : Azure.Communication.CallAutomation.CallAutomationEventBase
632+
{
633+
internal CreateCallFailed() { }
634+
public static Azure.Communication.CallAutomation.CreateCallFailed Deserialize(string content) { throw null; }
635+
}
629636
public partial class CreateCallOptions
630637
{
631638
public CreateCallOptions(Azure.Communication.CallAutomation.CallInvite callInvite, System.Uri callbackUri) { }

sdk/communication/Azure.Communication.CallAutomation/assets.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
"AssetsRepo": "Azure/azure-sdk-assets",
33
"AssetsRepoPrefixPath": "net",
44
"TagPrefix": "net/communication/Azure.Communication.CallAutomation",
5-
"Tag": "net/communication/Azure.Communication.CallAutomation_b677f9cd0a"
5+
"Tag": "net/communication/Azure.Communication.CallAutomation_1bf9634fdc"
66
}

sdk/communication/Azure.Communication.CallAutomation/src/CallAutomationEventProcessor/EventResult/CreateCallEventResult.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,17 @@ public class CreateCallEventResult
1616
/// </summary>
1717
public CallConnected SuccessResult { get; }
1818

19-
internal CreateCallEventResult(bool isSuccess, CallConnected successResult)
19+
/// <summary>
20+
/// <see cref="CreateCallFailed"/> evnet will be returned when the call was not created.
21+
/// </summary>
22+
/// <value></value>
23+
public CreateCallFailed FailureResult { get; }
24+
25+
internal CreateCallEventResult(bool isSuccess, CallConnected successResult, CreateCallFailed failureResult)
2026
{
2127
IsSuccess = isSuccess;
2228
SuccessResult = successResult;
29+
FailureResult = failureResult;
2330
}
2431
}
2532
}

sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CreateCallFailed.Serialization.cs

Lines changed: 68 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CreateCallFailed.cs

Lines changed: 33 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sdk/communication/Azure.Communication.CallAutomation/src/Models/CallAutomationModelFactory.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -552,5 +552,18 @@ public static TranscriptionFailed TranscriptionFailed(string operationContext =
552552

553553
return new TranscriptionFailed(internalObject);
554554
}
555+
556+
/// <summary>
557+
/// Initializes a new instance of create call failed event.
558+
/// </summary>
559+
public static CreateCallFailed CreateCallFailed(
560+
string callConnectionId = default,
561+
string serverCallId = default,
562+
string correlationId = default,
563+
ResultInformation resultInformation = default,
564+
string operationContext = default)
565+
{
566+
return new CreateCallFailed(callConnectionId, serverCallId, correlationId, operationContext, resultInformation);
567+
}
555568
}
556569
}

sdk/communication/Azure.Communication.CallAutomation/src/Models/CreateCallResult.cs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public CreateCallEventResult WaitForEventProcessor(CancellationToken cancellatio
4848
var returnedEvent = _evHandler.WaitForEventProcessor(filter
4949
=> filter.CallConnectionId == _callConnectionId
5050
&& (filter.OperationContext == _operationContext || _operationContext is null)
51-
&& (filter.GetType() == typeof(CallConnected)),
51+
&& (filter.GetType() == typeof(CallConnected) || filter.GetType() == typeof(CreateCallFailed)),
5252
cancellationToken);
5353

5454
return SetReturnedEvent(returnedEvent);
@@ -69,15 +69,23 @@ public async Task<CreateCallEventResult> WaitForEventProcessorAsync(Cancellation
6969
var returnedEvent = await _evHandler.WaitForEventProcessorAsync(filter
7070
=> filter.CallConnectionId == _callConnectionId
7171
&& (filter.OperationContext == _operationContext || _operationContext is null)
72-
&& (filter.GetType() == typeof(CallConnected)),
72+
&& (filter.GetType() == typeof(CallConnected) || filter.GetType() == typeof(CreateCallFailed)),
7373
cancellationToken).ConfigureAwait(false);
7474

7575
return SetReturnedEvent(returnedEvent);
7676
}
7777

7878
private static CreateCallEventResult SetReturnedEvent(CallAutomationEventBase returnedEvent)
7979
{
80-
return new CreateCallEventResult(true, (CallConnected)returnedEvent);
80+
switch (returnedEvent)
81+
{
82+
case CallConnected:
83+
return new CreateCallEventResult(true, (CallConnected)returnedEvent, null);
84+
case CreateCallFailed:
85+
return new CreateCallEventResult(false, null, (CreateCallFailed)returnedEvent);
86+
default:
87+
throw new NotSupportedException(returnedEvent.GetType().Name);
88+
}
8189
}
8290
}
8391
}

sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/CallAutomationEventParser.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,8 @@ private static CallAutomationEventBase Deserialize(string eventData, string type
158158
return MediaStreamingStopped.Deserialize(eventData);
159159
case nameof(MediaStreamingFailed):
160160
return MediaStreamingFailed.Deserialize(eventData);
161+
case nameof(CreateCallFailed):
162+
return CreateCallFailed.Deserialize(eventData);
161163
default:
162164
return null;
163165
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT License.
3+
using System.Text.Json;
4+
using Azure.Core;
5+
namespace Azure.Communication.CallAutomation
6+
{
7+
/// <summary>
8+
/// The create call failed event.
9+
/// </summary>
10+
[CodeGenModel("CreateCallFailed", Usage = new string[] { "output" }, Formats = new string[] { "json" })]
11+
public partial class CreateCallFailed : CallAutomationEventBase
12+
{
13+
/// <summary>
14+
/// Deserialize <see cref="CreateCallFailed"/> event.
15+
/// </summary>
16+
/// <param name="content">The json content.</param>
17+
/// <returns>The new <see cref="CreateCallFailed"/> object.</returns>
18+
public static CreateCallFailed Deserialize(string content)
19+
{
20+
using var document = JsonDocument.Parse(content);
21+
JsonElement element = document.RootElement;
22+
return DeserializeCreateCallFailed(element);
23+
}
24+
}
25+
}

0 commit comments

Comments
 (0)