diff --git a/sdk/communication/Azure.Communication.CallAutomation/CHANGELOG.md b/sdk/communication/Azure.Communication.CallAutomation/CHANGELOG.md index 2c2e9b2b1326..ad5f40eb4e78 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/CHANGELOG.md +++ b/sdk/communication/Azure.Communication.CallAutomation/CHANGELOG.md @@ -1,14 +1,21 @@ # Release History -## 1.0.0-beta.2 (Unreleased) - -### Features Added - -### Breaking Changes - -### Bugs Fixed - -### Other Changes +## 1.0.0 (2023-05-29) + +### Features Added +- Outbound calls can now be created without providing a User Identifier. This value can be specified in the CallAutomationClientOption if desired. +- AnswerCall now accepts OperationContext. +- Calls can be answered by a specific communication identifier user. +- RemoveParticipant now sends success and failure events with the request. +- ParticipantsUpdated event now includes a sequence number to distinguish the ordering of events. +- CallConnectionProperties now includes CorrelationId. +- StartRecording now accepts ChannelAffinity. +- Added EventProcessor, an easy and powerful way to handle Call Automation events. See README for details. + +### Breaking Changes +- AddParticipant and RemoveParticipant now only accept one participant at a time. +- CallSource has been flattened out. +- CallInvite model replaces previous models for handling outbound calls. ## 1.0.0-beta.1 (2022-11-07) This is a refresh of Azure Communication Service's Calling-Server library. It is now called Call Automation. Call Automation enables developers to build call workflows. Personalise customer interactions by listening to call events and take actions based on your business logic. For more information, please see the [README][read_me]. diff --git a/sdk/communication/Azure.Communication.CallAutomation/README.md b/sdk/communication/Azure.Communication.CallAutomation/README.md index 23cff7638021..ecb9714cabd8 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/README.md +++ b/sdk/communication/Azure.Communication.CallAutomation/README.md @@ -9,7 +9,7 @@ This package contains a C# SDK for Azure Communication Call Automation. Install the Azure Communication CallAutomation client library for .NET with [NuGet][nuget]: ```dotnetcli -dotnet add package Azure.Communication.CallAutomation --prerelease +dotnet add package Azure.Communication.CallAutomation ``` ### Prerequisites @@ -87,11 +87,11 @@ public IActionResult OnMidConnectionCallBackEvent([FromBody] CloudEvent[] events # cast the event into a ParticipantUpdated event and do something with it. Eg. iterate through the participants ParticipantsUpdated updatedEvent = (ParticipantsUpdated)ev; break; - case AddParticipantsSucceeded ev: - # logic to handle an AddParticipantsSucceeded event + case AddParticipantSucceeded ev: + # logic to handle an AddParticipantSucceeded event break; - case AddParticipantsFailed ev: - # logic to handle an AddParticipantsFailed event + case AddParticipantFailed ev: + # logic to handle an AddParticipantFailed event break; case CallTransferAccepted ev: # logic to handle CallTransferAccepted event @@ -155,10 +155,10 @@ CancellationToken token = cts.Token; try { // this will wait until CreateCall is completed or Timesout! - CreateCallEventResult eventResult = await createCallResult.WaitForEventAsync(token); + CreateCallEventResult eventResult = await createCallResult.WaitForEventProcessorAsync(token); // Once this is recieved, you know the call is now connected. - CallConnected returnedEvent = eventResult.SuccessEvent; + CallConnected returnedEvent = eventResult.SuccessResult; // ...Do more actions, such as Play or AddParticipant, since the call is established... } diff --git a/sdk/communication/Azure.Communication.CallAutomation/api/Azure.Communication.CallAutomation.netstandard2.0.cs b/sdk/communication/Azure.Communication.CallAutomation/api/Azure.Communication.CallAutomation.netstandard2.0.cs index c23d804ce819..f6adfd0632bb 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/api/Azure.Communication.CallAutomation.netstandard2.0.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/api/Azure.Communication.CallAutomation.netstandard2.0.cs @@ -44,11 +44,8 @@ internal AnswerCallEventResult() { } public partial class AnswerCallOptions { public AnswerCallOptions(string incomingCallContext, System.Uri callbackUri) { } - public Azure.Communication.CommunicationUserIdentifier AnsweredByIdentifier { get { throw null; } set { } } - public System.Uri AzureCognitiveServicesEndpointUrl { get { throw null; } set { } } public System.Uri CallbackUri { get { throw null; } } public string IncomingCallContext { get { throw null; } } - public Azure.Communication.CallAutomation.MediaStreamingOptions MediaStreamingOptions { get { throw null; } set { } } public string OperationContext { get { throw null; } set { } } } public partial class AnswerCallResult @@ -59,18 +56,13 @@ internal AnswerCallResult() { } public Azure.Communication.CallAutomation.AnswerCallEventResult WaitForEventProcessor(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public System.Threading.Tasks.Task WaitForEventProcessorAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } } - public partial class BlobStorage : Azure.Communication.CallAutomation.ExternalStorage - { - public BlobStorage(System.Uri containerUri) { } - public System.Uri ContainerUri { get { throw null; } } - } public partial class CallAutomationClient { protected CallAutomationClient() { } public CallAutomationClient(string connectionString) { } public CallAutomationClient(string connectionString, Azure.Communication.CallAutomation.CallAutomationClientOptions options) { } public CallAutomationClient(System.Uri endpoint, Azure.Core.TokenCredential credential, Azure.Communication.CallAutomation.CallAutomationClientOptions options = null) { } - public CallAutomationClient(System.Uri pmaEndpoint, string connectionString, Azure.Communication.CallAutomation.CallAutomationClientOptions options = null) { } + public Azure.Communication.CommunicationUserIdentifier Source { get { throw null; } } public virtual Azure.Response AnswerCall(Azure.Communication.CallAutomation.AnswerCallOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public virtual Azure.Response AnswerCall(string incomingCallContext, System.Uri callbackUri, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public virtual System.Threading.Tasks.Task> AnswerCallAsync(Azure.Communication.CallAutomation.AnswerCallOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } @@ -84,7 +76,6 @@ public CallAutomationClient(System.Uri pmaEndpoint, string connectionString, Azu public virtual Azure.Communication.CallAutomation.CallConnection GetCallConnection(string callConnectionId) { throw null; } public virtual Azure.Communication.CallAutomation.CallRecording GetCallRecording() { throw null; } public virtual Azure.Communication.CallAutomation.CallAutomationEventProcessor GetEventProcessor() { throw null; } - public virtual Azure.Communication.CommunicationUserIdentifier GetSourceIdentity() { throw null; } public virtual Azure.Response RedirectCall(Azure.Communication.CallAutomation.RedirectCallOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public virtual Azure.Response RedirectCall(string incomingCallContext, Azure.Communication.CallAutomation.CallInvite callInvite, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public virtual System.Threading.Tasks.Task RedirectCallAsync(Azure.Communication.CallAutomation.RedirectCallOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } @@ -96,22 +87,13 @@ public CallAutomationClient(System.Uri pmaEndpoint, string connectionString, Azu } public partial class CallAutomationClientOptions : Azure.Core.ClientOptions { - public CallAutomationClientOptions(Azure.Communication.CallAutomation.CallAutomationClientOptions.ServiceVersion version = Azure.Communication.CallAutomation.CallAutomationClientOptions.ServiceVersion.V2023_01_15_Preview) { } + public CallAutomationClientOptions(Azure.Communication.CallAutomation.CallAutomationClientOptions.ServiceVersion version = Azure.Communication.CallAutomation.CallAutomationClientOptions.ServiceVersion.V2023_03_06) { } public Azure.Communication.CommunicationUserIdentifier Source { get { throw null; } set { } } public enum ServiceVersion { - V2023_01_15_Preview = 1, + V2023_03_06 = 1, } } - public static partial class CallAutomationErrorMessages - { - public const string InvalidCognitiveServiceHttpsUriMessage = "Cognitive Service Uri has to be in well-formed, valid https format."; - public const string InvalidHttpsUriMessage = "Callback Uri has to be in well-formed, valid https format."; - public const string InvalidInvitationTimeoutInSeconds = "InvitationTimeoutInSeconds has to be between 1 and 180 seconds."; - public const string InvalidRepeatabilityHeadersMessage = "Invalid RepeatabilityHeaders. RepeatabilityHeaders is only valid when RepeatabilityRequestId and RepeatabilityFirstSent are set to non-default value."; - public const string OperationContextExceedsMaxLength = "OperationContext exceeds maximum string length of 5000."; - public const string UserToUserInformationExceedsMaxLength = "UserToUserInformation exceeds maximum string length of 5000."; - } public abstract partial class CallAutomationEventBase { protected CallAutomationEventBase() { } @@ -148,19 +130,13 @@ public static partial class CallAutomationModelFactory public static Azure.Communication.CallAutomation.AddParticipantSucceeded AddParticipantSucceeded(string callConnectionId = null, string serverCallId = null, string correlationId = null, string operationContext = null, Azure.Communication.CallAutomation.ResultInformation resultInformation = null, Azure.Communication.CommunicationIdentifier participant = null) { throw null; } public static Azure.Communication.CallAutomation.AnswerCallResult AnswerCallResult(Azure.Communication.CallAutomation.CallConnection callConnection = null, Azure.Communication.CallAutomation.CallConnectionProperties callConnectionProperties = null) { throw null; } public static Azure.Communication.CallAutomation.CallConnected CallConnected(string callConnectionId = null, string serverCallId = null, string correlationId = null, string operationContext = null) { throw null; } - public static Azure.Communication.CallAutomation.CallConnectionProperties CallConnectionProperties(string callConnectionId = null, string serverCallId = null, System.Collections.Generic.IEnumerable targets = null, Azure.Communication.CallAutomation.CallConnectionState callConnectionState = default(Azure.Communication.CallAutomation.CallConnectionState), System.Uri callbackUri = null, Azure.Communication.CommunicationIdentifier sourceIdentity = null, Azure.Communication.PhoneNumberIdentifier sourceCallerIdNumber = null, string sourceDisplayName = null, string mediaSubscriptionId = null) { throw null; } + public static Azure.Communication.CallAutomation.CallConnectionProperties CallConnectionProperties(string callConnectionId = null, string serverCallId = null, System.Collections.Generic.IEnumerable targets = null, Azure.Communication.CallAutomation.CallConnectionState callConnectionState = default(Azure.Communication.CallAutomation.CallConnectionState), System.Uri callbackUri = null, Azure.Communication.CommunicationIdentifier sourceIdentity = null, Azure.Communication.PhoneNumberIdentifier sourceCallerIdNumber = null, string sourceDisplayName = null, Azure.Communication.CommunicationIdentifier answeredBy = null) { throw null; } public static Azure.Communication.CallAutomation.CallDisconnected CallDisconnected(string callConnectionId = null, string serverCallId = null, string correlationId = null, string operationContext = null) { throw null; } public static Azure.Communication.CallAutomation.CallParticipant CallParticipant(Azure.Communication.CommunicationIdentifier identifier = null, bool isMuted = false) { throw null; } public static Azure.Communication.CallAutomation.CallTransferAccepted CallTransferAccepted(string callConnectionId = null, string serverCallId = null, string correlationId = null, string operationContext = null, Azure.Communication.CallAutomation.ResultInformation resultInformation = null) { throw null; } public static Azure.Communication.CallAutomation.CallTransferFailed CallTransferFailed(string callConnectionId = null, string serverCallId = null, string correlationId = null, string operationContext = null, Azure.Communication.CallAutomation.ResultInformation resultInformation = null) { throw null; } - public static Azure.Communication.CallAutomation.ChoiceResult ChoiceResult(string label = null, string recognizedPhrase = null) { throw null; } - public static Azure.Communication.CallAutomation.CollectTonesResult CollectTonesResult(System.Collections.Generic.IEnumerable tones = null) { throw null; } - 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; } - public static Azure.Communication.CallAutomation.ContinuousDtmfRecognitionToneFailed ContinuousDtmfRecognitionToneFailed(string callConnectionId = null, string serverCallId = null, string correlationId = null, string operationContext = null, Azure.Communication.CallAutomation.ResultInformation resultInformation = null) { throw null; } - public static Azure.Communication.CallAutomation.ContinuousDtmfRecognitionToneReceived ContinuousDtmfRecognitionToneReceived(Azure.Communication.CallAutomation.ToneInfo toneInfo = null, string callConnectionId = null, string serverCallId = null, string correlationId = null, string operationContext = null, Azure.Communication.CallAutomation.ResultInformation resultInformation = null) { throw null; } public static Azure.Communication.CallAutomation.CreateCallResult CreateCallResult(Azure.Communication.CallAutomation.CallConnection callConnection = null, Azure.Communication.CallAutomation.CallConnectionProperties callConnectionProperties = null) { throw null; } public static Azure.Communication.CallAutomation.DtmfResult DtmfResult(System.Collections.Generic.IEnumerable tones = null) { throw null; } - public static Azure.Communication.CallAutomation.MuteParticipantsResponse MuteParticipantsResponse(string operationContext = null) { throw null; } public static Azure.Communication.CallAutomation.ParticipantsUpdated ParticipantsUpdated(string callConnectionId = null, string serverCallId = null, string correlationId = null, System.Collections.Generic.IEnumerable participants = null, int sequenceNumber = 0) { throw null; } public static Azure.Communication.CallAutomation.PlayCanceled PlayCanceled(string callConnectionId = null, string serverCallId = null, string correlationId = null, string operationContext = null) { throw null; } public static Azure.Communication.CallAutomation.PlayCompleted PlayCompleted(string callConnectionId = null, string serverCallId = null, string correlationId = null, string operationContext = null, Azure.Communication.CallAutomation.ResultInformation resultInformation = null) { throw null; } @@ -174,12 +150,7 @@ public static partial class CallAutomationModelFactory public static Azure.Communication.CallAutomation.RemoveParticipantResult RemoveParticipantResult(string operationContext = null) { throw null; } public static Azure.Communication.CallAutomation.RemoveParticipantSucceeded RemoveParticipantSucceeded(string callConnectionId = null, string serverCallId = null, string correlationId = null, string operationContext = null, Azure.Communication.CallAutomation.ResultInformation resultInformation = null, Azure.Communication.CommunicationIdentifier participant = null) { throw null; } public static Azure.Communication.CallAutomation.ResultInformation ResultInformation(int? code = default(int?), int? subCode = default(int?), string message = null) { throw null; } - public static Azure.Communication.CallAutomation.SendDtmfCompleted SendDtmfCompleted(string callConnectionId = null, string serverCallId = null, string correlationId = null, string operationContext = null, Azure.Communication.CallAutomation.ResultInformation resultInformation = null) { throw null; } - public static Azure.Communication.CallAutomation.SendDtmfFailed SendDtmfFailed(string callConnectionId = null, string serverCallId = null, string correlationId = null, string operationContext = null, Azure.Communication.CallAutomation.ResultInformation resultInformation = null) { throw null; } - public static Azure.Communication.CallAutomation.SpeechResult SpeechResult(string speech = null) { throw null; } - public static Azure.Communication.CallAutomation.ToneInfo ToneInfo(int sequenceId = 0, Azure.Communication.CallAutomation.DtmfTone tone = default(Azure.Communication.CallAutomation.DtmfTone)) { throw null; } public static Azure.Communication.CallAutomation.TransferCallToParticipantResult TransferCallToParticipantResult(string operationContext = null) { throw null; } - public static Azure.Communication.CallAutomation.UnmuteParticipantsResponse UnmuteParticipantsResponse(string operationContext = null) { throw null; } } public partial class CallConnected : Azure.Communication.CallAutomation.CallAutomationEventBase { @@ -203,10 +174,6 @@ protected CallConnection() { } public virtual System.Threading.Tasks.Task>> GetParticipantsAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public virtual Azure.Response HangUp(bool forEveryone, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public virtual System.Threading.Tasks.Task HangUpAsync(bool forEveryone, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual Azure.Response MuteParticipants(Azure.Communication.CallAutomation.MuteParticipantsOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual Azure.Response MuteParticipants(Azure.Communication.CommunicationIdentifier targetParticipant, string operationContext = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual System.Threading.Tasks.Task> MuteParticipantsAsync(Azure.Communication.CallAutomation.MuteParticipantsOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual System.Threading.Tasks.Task> MuteParticipantsAsync(Azure.Communication.CommunicationIdentifier targetParticipant, string operationContext = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public virtual Azure.Response RemoveParticipant(Azure.Communication.CallAutomation.RemoveParticipantOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public virtual Azure.Response RemoveParticipant(Azure.Communication.CommunicationIdentifier participantToRemove, string operationContext = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public virtual System.Threading.Tasks.Task> RemoveParticipantAsync(Azure.Communication.CallAutomation.RemoveParticipantOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } @@ -215,24 +182,19 @@ protected CallConnection() { } public virtual Azure.Response TransferCallToParticipant(Azure.Communication.CommunicationIdentifier targetParticipant, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public virtual System.Threading.Tasks.Task> TransferCallToParticipantAsync(Azure.Communication.CallAutomation.TransferToParticipantOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public virtual System.Threading.Tasks.Task> TransferCallToParticipantAsync(Azure.Communication.CommunicationIdentifier targetParticipant, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual Azure.Response UnmuteParticipants(Azure.Communication.CallAutomation.UnmuteParticipantsOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual Azure.Response UnmuteParticipants(Azure.Communication.CommunicationIdentifier targetParticipant, string operationContext = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual System.Threading.Tasks.Task> UnmuteParticipantsAsync(Azure.Communication.CallAutomation.UnmuteParticipantsOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual System.Threading.Tasks.Task> UnmuteParticipantsAsync(Azure.Communication.CommunicationIdentifier targetParticipant, string operationContext = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } } public partial class CallConnectionProperties { internal CallConnectionProperties() { } - public Azure.Communication.CommunicationUserIdentifier AnsweredByIdentifier { get { throw null; } } + public Azure.Communication.CommunicationUserIdentifier AnsweredBy { get { throw null; } } public System.Uri CallbackUri { get { throw null; } } public string CallConnectionId { get { throw null; } } public Azure.Communication.CallAutomation.CallConnectionState CallConnectionState { get { throw null; } } public string CorrelationId { get { throw null; } } - public string MediaSubscriptionId { get { throw null; } } public string ServerCallId { get { throw null; } } + public Azure.Communication.CommunicationIdentifier Source { get { throw null; } } public Azure.Communication.PhoneNumberIdentifier SourceCallerIdNumber { get { throw null; } } public string SourceDisplayName { get { throw null; } } - public Azure.Communication.CommunicationIdentifier SourceIdentity { get { throw null; } } public System.Collections.Generic.IReadOnlyList Targets { get { throw null; } } } [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] @@ -265,14 +227,12 @@ internal CallDisconnected() { } } public partial class CallInvite { - public CallInvite(Azure.Communication.CommunicationUserIdentifier targetIdentity, System.Collections.Generic.IDictionary voipHeaders = null) { } - public CallInvite(Azure.Communication.MicrosoftTeamsUserIdentifier targetIdentity, System.Collections.Generic.IDictionary voipHeaders = null) { } - public CallInvite(Azure.Communication.PhoneNumberIdentifier targetPhoneNumberIdentity, Azure.Communication.PhoneNumberIdentifier callerIdNumber, System.Collections.Generic.IDictionary sipHeaders = null) { } - public System.Collections.Generic.IDictionary SipHeaders { get { throw null; } } + public CallInvite(Azure.Communication.CommunicationUserIdentifier targetIdentity) { } + public CallInvite(Azure.Communication.MicrosoftTeamsUserIdentifier targetIdentity) { } + public CallInvite(Azure.Communication.PhoneNumberIdentifier targetPhoneNumberIdentity, Azure.Communication.PhoneNumberIdentifier callerIdNumber) { } public Azure.Communication.PhoneNumberIdentifier SourceCallerIdNumber { get { throw null; } } public string SourceDisplayName { get { throw null; } set { } } public Azure.Communication.CommunicationIdentifier Target { get { throw null; } } - public System.Collections.Generic.IDictionary VoipHeaders { get { throw null; } } } public abstract partial class CallLocator : System.IEquatable { @@ -296,14 +256,8 @@ protected CallMedia() { } public virtual Azure.Response PlayToAll(Azure.Communication.CallAutomation.PlayToAllOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public virtual System.Threading.Tasks.Task> PlayToAllAsync(Azure.Communication.CallAutomation.PlaySource playSource, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public virtual System.Threading.Tasks.Task> PlayToAllAsync(Azure.Communication.CallAutomation.PlayToAllOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual Azure.Response SendDtmf(System.Collections.Generic.IEnumerable tones, Azure.Communication.CommunicationIdentifier targetParticipant, string operationContext = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual System.Threading.Tasks.Task> SendDtmfAsync(System.Collections.Generic.IEnumerable tones, Azure.Communication.CommunicationIdentifier targetParticipant, string operationContext = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual Azure.Response StartContinuousDtmfRecognition(Azure.Communication.CommunicationIdentifier targetParticipant, string operationContext = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual System.Threading.Tasks.Task StartContinuousDtmfRecognitionAsync(Azure.Communication.CommunicationIdentifier targetParticipant, string operationContext = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public virtual Azure.Response StartRecognizing(Azure.Communication.CallAutomation.CallMediaRecognizeOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } public virtual System.Threading.Tasks.Task> StartRecognizingAsync(Azure.Communication.CallAutomation.CallMediaRecognizeOptions options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual Azure.Response StopContinuousDtmfRecognition(Azure.Communication.CommunicationIdentifier targetParticipant, string operationContext = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public virtual System.Threading.Tasks.Task StopContinuousDtmfRecognitionAsync(Azure.Communication.CommunicationIdentifier targetParticipant, string operationContext = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } } [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] public readonly partial struct CallMediaRecognitionType : System.IEquatable @@ -311,10 +265,7 @@ protected CallMedia() { } private readonly object _dummy; private readonly int _dummyPrimitive; public CallMediaRecognitionType(string value) { throw null; } - public static Azure.Communication.CallAutomation.CallMediaRecognitionType Choices { get { throw null; } } public static Azure.Communication.CallAutomation.CallMediaRecognitionType Dtmf { get { throw null; } } - public static Azure.Communication.CallAutomation.CallMediaRecognitionType Speech { get { throw null; } } - public static Azure.Communication.CallAutomation.CallMediaRecognitionType SpeechOrDtmf { get { throw null; } } public bool Equals(Azure.Communication.CallAutomation.CallMediaRecognitionType other) { throw null; } [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] public override bool Equals(object obj) { throw null; } @@ -325,11 +276,6 @@ protected CallMedia() { } public static bool operator !=(Azure.Communication.CallAutomation.CallMediaRecognitionType left, Azure.Communication.CallAutomation.CallMediaRecognitionType right) { throw null; } public override string ToString() { throw null; } } - public partial class CallMediaRecognizeChoiceOptions : Azure.Communication.CallAutomation.CallMediaRecognizeOptions - { - public CallMediaRecognizeChoiceOptions(Azure.Communication.CommunicationIdentifier targetParticipant, System.Collections.Generic.List recognizeChoices) : base (default(Azure.Communication.CallAutomation.RecognizeInputType), default(Azure.Communication.CommunicationIdentifier)) { } - public System.Collections.Generic.IList RecognizeChoices { get { throw null; } } - } public partial class CallMediaRecognizeDtmfOptions : Azure.Communication.CallAutomation.CallMediaRecognizeOptions { public CallMediaRecognizeDtmfOptions(Azure.Communication.CommunicationIdentifier targetParticipant, int maxTonesToCollect) : base (default(Azure.Communication.CallAutomation.RecognizeInputType), default(Azure.Communication.CommunicationIdentifier)) { } @@ -346,22 +292,8 @@ protected CallMediaRecognizeOptions(Azure.Communication.CallAutomation.Recognize public bool InterruptPrompt { get { throw null; } set { } } public string OperationContext { get { throw null; } set { } } public Azure.Communication.CallAutomation.PlaySource Prompt { get { throw null; } set { } } - public string SpeechLanguage { get { throw null; } set { } } public Azure.Communication.CommunicationIdentifier TargetParticipant { get { throw null; } } } - public partial class CallMediaRecognizeSpeechOptions : Azure.Communication.CallAutomation.CallMediaRecognizeOptions - { - public CallMediaRecognizeSpeechOptions(Azure.Communication.CommunicationIdentifier targetParticipant) : base (default(Azure.Communication.CallAutomation.RecognizeInputType), default(Azure.Communication.CommunicationIdentifier)) { } - public System.TimeSpan EndSilenceTimeoutInMs { get { throw null; } set { } } - } - public partial class CallMediaRecognizeSpeechOrDtmfOptions : Azure.Communication.CallAutomation.CallMediaRecognizeOptions - { - public CallMediaRecognizeSpeechOrDtmfOptions(Azure.Communication.CommunicationIdentifier targetParticipant, int maxTonesToCollect) : base (default(Azure.Communication.CallAutomation.RecognizeInputType), default(Azure.Communication.CommunicationIdentifier)) { } - public System.TimeSpan EndSilenceTimeoutInMs { get { throw null; } set { } } - public System.TimeSpan InterToneTimeout { get { throw null; } set { } } - public int MaxTonesToCollect { get { throw null; } } - public System.Collections.Generic.IReadOnlyList StopTones { get { throw null; } set { } } - } public partial class CallParticipant { internal CallParticipant() { } @@ -436,21 +368,7 @@ public partial class ChannelAffinity { public ChannelAffinity(Azure.Communication.CommunicationIdentifier participant) { } public int? Channel { get { throw null; } set { } } - public Azure.Communication.CommunicationIdentifier Participant { get { throw null; } set { } } - } - public partial class ChoiceResult : Azure.Communication.CallAutomation.RecognizeResult - { - internal ChoiceResult() { } - public string Label { get { throw null; } } - public string RecognizedPhrase { get { throw null; } } - public override Azure.Communication.CallAutomation.RecognizeResultType ResultType { get { throw null; } } - } - public partial class CollectTonesResult : Azure.Communication.CallAutomation.RecognizeResult - { - internal CollectTonesResult() { } - public override Azure.Communication.CallAutomation.RecognizeResultType ResultType { get { throw null; } } - public System.Collections.Generic.IReadOnlyList Tones { get { throw null; } } - public string ConvertToString() { throw null; } + public Azure.Communication.CommunicationIdentifier Participant { get { throw null; } } } [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] public partial struct ContentTransferOptions : System.IEquatable @@ -469,22 +387,6 @@ public partial struct ContentTransferOptions : System.IEquatable targets, System.Uri callbackUri) { } - public System.Uri AzureCognitiveServicesEndpointUrl { get { throw null; } set { } } public System.Uri CallbackUri { get { throw null; } } - public Azure.Communication.CallAutomation.MediaStreamingOptions MediaStreamingOptions { get { throw null; } set { } } public string OperationContext { get { throw null; } set { } } - public System.Collections.Generic.IDictionary SipHeaders { get { throw null; } set { } } public Azure.Communication.PhoneNumberIdentifier SourceCallerIdNumber { get { throw null; } set { } } public string SourceDisplayName { get { throw null; } set { } } public System.Collections.Generic.IEnumerable Targets { get { throw null; } } - public System.Collections.Generic.IDictionary VoipHeaders { get { throw null; } set { } } } public partial class DtmfResult : Azure.Communication.CallAutomation.RecognizeResult { @@ -561,34 +457,11 @@ internal DtmfResult() { } public char ToChar() { throw null; } public override string ToString() { throw null; } } - public abstract partial class ExternalStorage - { - protected ExternalStorage() { } - public Azure.Communication.CallAutomation.RecordingStorageType StorageType { get { throw null; } protected set { } } - } public partial class FileSource : Azure.Communication.CallAutomation.PlaySource { public FileSource(System.Uri fileUri) { } public System.Uri FileUri { get { throw null; } } } - [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] - public readonly partial struct GenderType : System.IEquatable - { - private readonly object _dummy; - private readonly int _dummyPrimitive; - public GenderType(string value) { throw null; } - public static Azure.Communication.CallAutomation.GenderType Female { get { throw null; } } - public static Azure.Communication.CallAutomation.GenderType Male { get { throw null; } } - public bool Equals(Azure.Communication.CallAutomation.GenderType other) { throw null; } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public override bool Equals(object obj) { throw null; } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public override int GetHashCode() { throw null; } - public static bool operator ==(Azure.Communication.CallAutomation.GenderType left, Azure.Communication.CallAutomation.GenderType right) { throw null; } - public static implicit operator Azure.Communication.CallAutomation.GenderType (string value) { throw null; } - public static bool operator !=(Azure.Communication.CallAutomation.GenderType left, Azure.Communication.CallAutomation.GenderType right) { throw null; } - public override string ToString() { throw null; } - } public partial class GroupCallLocator : Azure.Communication.CallAutomation.CallLocator { public GroupCallLocator(string id) { } @@ -603,7 +476,6 @@ public GroupCallLocator(string id) { } private readonly int _dummyPrimitive; public MediaEventReasonCode(string value) { throw null; } public static Azure.Communication.CallAutomation.MediaEventReasonCode CompletedSuccessfully { get { throw null; } } - public static Azure.Communication.CallAutomation.MediaEventReasonCode PlayCognitiveServicesPlayError { get { throw null; } } public static Azure.Communication.CallAutomation.MediaEventReasonCode PlayDownloadFailed { get { throw null; } } public static Azure.Communication.CallAutomation.MediaEventReasonCode PlayInvalidFileFormat { get { throw null; } } public static Azure.Communication.CallAutomation.MediaEventReasonCode RecognizeDtmfOptionMatched { get { throw null; } } @@ -612,10 +484,6 @@ public GroupCallLocator(string id) { } public static Azure.Communication.CallAutomation.MediaEventReasonCode RecognizeInterDigitTimedOut { get { throw null; } } public static Azure.Communication.CallAutomation.MediaEventReasonCode RecognizeMaxDigitsReceived { get { throw null; } } public static Azure.Communication.CallAutomation.MediaEventReasonCode RecognizePlayPromptFailed { get { throw null; } } - public static Azure.Communication.CallAutomation.MediaEventReasonCode RecognizeSpeechNotRecognized { get { throw null; } } - public static Azure.Communication.CallAutomation.MediaEventReasonCode RecognizeSpeechOptionMatched { get { throw null; } } - public static Azure.Communication.CallAutomation.MediaEventReasonCode RecognizeSpeechOptionNotMatched { get { throw null; } } - public static Azure.Communication.CallAutomation.MediaEventReasonCode RecognizeSpeechServiceConnectionError { get { throw null; } } public static Azure.Communication.CallAutomation.MediaEventReasonCode RecognizeStopToneDetected { get { throw null; } } public static Azure.Communication.CallAutomation.MediaEventReasonCode UnspecifiedError { get { throw null; } } public bool Equals(Azure.Communication.CallAutomation.MediaEventReasonCode other) { throw null; } @@ -629,117 +497,6 @@ public GroupCallLocator(string id) { } public static bool operator !=(Azure.Communication.CallAutomation.MediaEventReasonCode left, Azure.Communication.CallAutomation.MediaEventReasonCode right) { throw null; } public override string ToString() { throw null; } } - [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] - public readonly partial struct MediaStreamingAudioChannel : System.IEquatable - { - private readonly object _dummy; - private readonly int _dummyPrimitive; - public MediaStreamingAudioChannel(string value) { throw null; } - public static Azure.Communication.CallAutomation.MediaStreamingAudioChannel Mixed { get { throw null; } } - public static Azure.Communication.CallAutomation.MediaStreamingAudioChannel Unmixed { get { throw null; } } - public bool Equals(Azure.Communication.CallAutomation.MediaStreamingAudioChannel other) { throw null; } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public override bool Equals(object obj) { throw null; } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public override int GetHashCode() { throw null; } - public static bool operator ==(Azure.Communication.CallAutomation.MediaStreamingAudioChannel left, Azure.Communication.CallAutomation.MediaStreamingAudioChannel right) { throw null; } - public static implicit operator Azure.Communication.CallAutomation.MediaStreamingAudioChannel (string value) { throw null; } - public static bool operator !=(Azure.Communication.CallAutomation.MediaStreamingAudioChannel left, Azure.Communication.CallAutomation.MediaStreamingAudioChannel right) { throw null; } - public override string ToString() { throw null; } - } - public partial class MediaStreamingAudioData : Azure.Communication.CallAutomation.MediaStreamingPackageBase - { - internal MediaStreamingAudioData() { } - public string Data { get { throw null; } } - public bool IsSilent { get { throw null; } } - public Azure.Communication.CommunicationIdentifier Participant { get { throw null; } } - public System.DateTime Timestamp { get { throw null; } } - } - public partial class MediaStreamingConfiguration - { - public MediaStreamingConfiguration(System.Uri transportUrl, Azure.Communication.CallAutomation.MediaStreamingTransport transportType, Azure.Communication.CallAutomation.MediaStreamingContent contentType, Azure.Communication.CallAutomation.MediaStreamingAudioChannel audioChannelType) { } - public Azure.Communication.CallAutomation.MediaStreamingAudioChannel AudioChannelType { get { throw null; } } - public Azure.Communication.CallAutomation.MediaStreamingContent ContentType { get { throw null; } } - public Azure.Communication.CallAutomation.MediaStreamingTransport TransportType { get { throw null; } } - public System.Uri TransportUrl { get { throw null; } } - } - [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] - public readonly partial struct MediaStreamingContent : System.IEquatable - { - private readonly object _dummy; - private readonly int _dummyPrimitive; - public MediaStreamingContent(string value) { throw null; } - public static Azure.Communication.CallAutomation.MediaStreamingContent Audio { get { throw null; } } - public bool Equals(Azure.Communication.CallAutomation.MediaStreamingContent other) { throw null; } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public override bool Equals(object obj) { throw null; } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public override int GetHashCode() { throw null; } - public static bool operator ==(Azure.Communication.CallAutomation.MediaStreamingContent left, Azure.Communication.CallAutomation.MediaStreamingContent right) { throw null; } - public static implicit operator Azure.Communication.CallAutomation.MediaStreamingContent (string value) { throw null; } - public static bool operator !=(Azure.Communication.CallAutomation.MediaStreamingContent left, Azure.Communication.CallAutomation.MediaStreamingContent right) { throw null; } - public override string ToString() { throw null; } - } - public partial class MediaStreamingMetadata : Azure.Communication.CallAutomation.MediaStreamingPackageBase - { - public MediaStreamingMetadata() { } - [System.Text.Json.Serialization.JsonPropertyNameAttribute("channels")] - public int Channels { get { throw null; } set { } } - [System.Text.Json.Serialization.JsonPropertyNameAttribute("encoding")] - public string Encoding { get { throw null; } set { } } - [System.Text.Json.Serialization.JsonPropertyNameAttribute("length")] - public int Length { get { throw null; } set { } } - [System.Text.Json.Serialization.JsonPropertyNameAttribute("subscriptionId")] - public string MediaSubscriptionId { get { throw null; } set { } } - [System.Text.Json.Serialization.JsonPropertyNameAttribute("sampleRate")] - public int SampleRate { get { throw null; } set { } } - } - public partial class MediaStreamingOptions - { - public MediaStreamingOptions(System.Uri transportUri, Azure.Communication.CallAutomation.MediaStreamingTransport transportType, Azure.Communication.CallAutomation.MediaStreamingContent contentType, Azure.Communication.CallAutomation.MediaStreamingAudioChannel audioChannelType) { } - public Azure.Communication.CallAutomation.MediaStreamingAudioChannel MediaStreamingAudioChannel { get { throw null; } } - public Azure.Communication.CallAutomation.MediaStreamingContent MediaStreamingContent { get { throw null; } } - public Azure.Communication.CallAutomation.MediaStreamingTransport MediaStreamingTransport { get { throw null; } } - public System.Uri TransportUri { get { throw null; } } - } - public abstract partial class MediaStreamingPackageBase - { - protected MediaStreamingPackageBase() { } - } - public static partial class MediaStreamingPackageParser - { - public static Azure.Communication.CallAutomation.MediaStreamingPackageBase Parse(System.BinaryData json) { throw null; } - public static Azure.Communication.CallAutomation.MediaStreamingPackageBase Parse(byte[] receivedBytes) { throw null; } - public static Azure.Communication.CallAutomation.MediaStreamingPackageBase Parse(string stringJson) { throw null; } - } - [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] - public readonly partial struct MediaStreamingTransport : System.IEquatable - { - private readonly object _dummy; - private readonly int _dummyPrimitive; - public MediaStreamingTransport(string value) { throw null; } - public static Azure.Communication.CallAutomation.MediaStreamingTransport Websocket { get { throw null; } } - public bool Equals(Azure.Communication.CallAutomation.MediaStreamingTransport other) { throw null; } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public override bool Equals(object obj) { throw null; } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public override int GetHashCode() { throw null; } - public static bool operator ==(Azure.Communication.CallAutomation.MediaStreamingTransport left, Azure.Communication.CallAutomation.MediaStreamingTransport right) { throw null; } - public static implicit operator Azure.Communication.CallAutomation.MediaStreamingTransport (string value) { throw null; } - public static bool operator !=(Azure.Communication.CallAutomation.MediaStreamingTransport left, Azure.Communication.CallAutomation.MediaStreamingTransport right) { throw null; } - public override string ToString() { throw null; } - } - public partial class MuteParticipantsOptions - { - public MuteParticipantsOptions(System.Collections.Generic.IEnumerable targetParticipants) { } - public string OperationContext { get { throw null; } set { } } - public System.Collections.Generic.IReadOnlyList TargetParticipants { get { throw null; } } - } - public partial class MuteParticipantsResponse - { - internal MuteParticipantsResponse() { } - public string OperationContext { get { throw null; } } - } public partial class ParticipantsUpdated : Azure.Communication.CallAutomation.CallAutomationEventBase { internal ParticipantsUpdated() { } @@ -773,10 +530,10 @@ internal PlayFailed() { } } public partial class PlayOptions { - public PlayOptions(Azure.Communication.CallAutomation.PlaySource playSource, System.Collections.Generic.IEnumerable playTo) { } + public PlayOptions(System.Collections.Generic.IEnumerable playSources, System.Collections.Generic.IEnumerable playTo) { } public bool Loop { get { throw null; } set { } } public string OperationContext { get { throw null; } set { } } - public Azure.Communication.CallAutomation.PlaySource PlaySource { get { throw null; } } + public System.Collections.Generic.IReadOnlyList PlaySources { get { throw null; } } public System.Collections.Generic.IReadOnlyList PlayTo { get { throw null; } } } public partial class PlayResult @@ -788,27 +545,20 @@ internal PlayResult() { } public abstract partial class PlaySource { protected PlaySource() { } - public string PlaySourceId { get { throw null; } set { } } + public string PlaySourceCacheId { get { throw null; } set { } } } public partial class PlayToAllOptions { - public PlayToAllOptions(Azure.Communication.CallAutomation.PlaySource playSource) { } + public PlayToAllOptions(System.Collections.Generic.IEnumerable playSources) { } public bool Loop { get { throw null; } set { } } public string OperationContext { get { throw null; } set { } } - public Azure.Communication.CallAutomation.PlaySource PlaySource { get { throw null; } } + public System.Collections.Generic.IReadOnlyList PlaySources { get { throw null; } } } public partial class RecognizeCanceled : Azure.Communication.CallAutomation.CallAutomationEventBase { internal RecognizeCanceled() { } public static Azure.Communication.CallAutomation.RecognizeCanceled Deserialize(string content) { throw null; } } - public partial class RecognizeChoice - { - public RecognizeChoice(string label, System.Collections.Generic.IEnumerable phrases) { } - public string Label { get { throw null; } set { } } - public System.Collections.Generic.IList Phrases { get { throw null; } } - public Azure.Communication.CallAutomation.DtmfTone? Tone { get { throw null; } set { } } - } public partial class RecognizeCompleted : Azure.Communication.CallAutomation.CallAutomationEventBase { internal RecognizeCompleted() { } @@ -829,10 +579,7 @@ internal RecognizeFailed() { } private readonly object _dummy; private readonly int _dummyPrimitive; public RecognizeInputType(string value) { throw null; } - public static Azure.Communication.CallAutomation.RecognizeInputType Choices { get { throw null; } } public static Azure.Communication.CallAutomation.RecognizeInputType Dtmf { get { throw null; } } - public static Azure.Communication.CallAutomation.RecognizeInputType Speech { get { throw null; } } - public static Azure.Communication.CallAutomation.RecognizeInputType SpeechOrDtmf { get { throw null; } } public bool Equals(Azure.Communication.CallAutomation.RecognizeInputType other) { throw null; } [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] public override bool Equals(object obj) { throw null; } @@ -854,9 +601,7 @@ protected RecognizeResult() { } private readonly object _dummy; private readonly int _dummyPrimitive; public RecognizeResultType(string value) { throw null; } - public static Azure.Communication.CallAutomation.RecognizeResultType ChoiceResult { get { throw null; } } - public static Azure.Communication.CallAutomation.RecognizeResultType CollectTonesResult { get { throw null; } } - public static Azure.Communication.CallAutomation.RecognizeResultType SpeechResult { get { throw null; } } + public static Azure.Communication.CallAutomation.RecognizeResultType DtmfResult { get { throw null; } } public bool Equals(Azure.Communication.CallAutomation.RecognizeResultType other) { throw null; } [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] public override bool Equals(object obj) { throw null; } @@ -954,24 +699,6 @@ internal RecordingStateResult() { } public string RecordingId { get { throw null; } } public Azure.Communication.CallAutomation.RecordingState? RecordingState { get { throw null; } } } - [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] - public readonly partial struct RecordingStorageType : System.IEquatable - { - private readonly object _dummy; - private readonly int _dummyPrimitive; - public RecordingStorageType(string value) { throw null; } - public static Azure.Communication.CallAutomation.RecordingStorageType Acs { get { throw null; } } - public static Azure.Communication.CallAutomation.RecordingStorageType BlobStorage { get { throw null; } } - public bool Equals(Azure.Communication.CallAutomation.RecordingStorageType other) { throw null; } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public override bool Equals(object obj) { throw null; } - [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] - public override int GetHashCode() { throw null; } - public static bool operator ==(Azure.Communication.CallAutomation.RecordingStorageType left, Azure.Communication.CallAutomation.RecordingStorageType right) { throw null; } - public static implicit operator Azure.Communication.CallAutomation.RecordingStorageType (string value) { throw null; } - public static bool operator !=(Azure.Communication.CallAutomation.RecordingStorageType left, Azure.Communication.CallAutomation.RecordingStorageType right) { throw null; } - public override string ToString() { throw null; } - } public partial class RedirectCallOptions { public RedirectCallOptions(string incomingCallContext, Azure.Communication.CallAutomation.CallInvite callInvite) { } @@ -1024,29 +751,6 @@ internal ResultInformation() { } public string Message { get { throw null; } } public int? SubCode { get { throw null; } } } - public partial class SendDtmfCompleted : Azure.Communication.CallAutomation.CallAutomationEventBase - { - internal SendDtmfCompleted() { } - public static Azure.Communication.CallAutomation.SendDtmfCompleted Deserialize(string content) { throw null; } - } - public partial class SendDtmfEventResult - { - internal SendDtmfEventResult() { } - public Azure.Communication.CallAutomation.SendDtmfFailed FailureResult { get { throw null; } } - public bool IsSuccess { get { throw null; } } - public Azure.Communication.CallAutomation.SendDtmfCompleted SuccessResult { get { throw null; } } - } - public partial class SendDtmfFailed : Azure.Communication.CallAutomation.CallAutomationEventBase - { - internal SendDtmfFailed() { } - public static Azure.Communication.CallAutomation.SendDtmfFailed Deserialize(string content) { throw null; } - } - public partial class SendDtmfResult - { - internal SendDtmfResult() { } - public Azure.Communication.CallAutomation.SendDtmfEventResult WaitForEventProcessor(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - public System.Threading.Tasks.Task WaitForEventProcessorAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; } - } public partial class ServerCallLocator : Azure.Communication.CallAutomation.CallLocator { public ServerCallLocator(string id) { } @@ -1054,17 +758,6 @@ public ServerCallLocator(string id) { } public override int GetHashCode() { throw null; } public override string ToString() { throw null; } } - public partial class SpeechResult : Azure.Communication.CallAutomation.RecognizeResult - { - internal SpeechResult() { } - public override Azure.Communication.CallAutomation.RecognizeResultType ResultType { get { throw null; } } - public string Speech { get { throw null; } } - } - public partial class SsmlSource : Azure.Communication.CallAutomation.PlaySource - { - public SsmlSource(string ssmlText) { } - public string SsmlText { get { throw null; } } - } public partial class StartRecognizingCallMediaResult { internal StartRecognizingCallMediaResult() { } @@ -1083,28 +776,11 @@ public partial class StartRecordingOptions public StartRecordingOptions(Azure.Communication.CallAutomation.CallLocator callLocator) { } public System.Collections.Generic.IList AudioChannelParticipantOrdering { get { throw null; } } public System.Collections.Generic.IList ChannelAffinity { get { throw null; } set { } } - public Azure.Communication.CallAutomation.ExternalStorage ExternalStorage { get { throw null; } set { } } public Azure.Communication.CallAutomation.RecordingChannel RecordingChannel { get { throw null; } set { } } public Azure.Communication.CallAutomation.RecordingContent RecordingContent { get { throw null; } set { } } public Azure.Communication.CallAutomation.RecordingFormat RecordingFormat { get { throw null; } set { } } public System.Uri RecordingStateCallbackUri { get { throw null; } set { } } } - public partial class TextSource : Azure.Communication.CallAutomation.PlaySource - { - public TextSource(string text) { } - public TextSource(string text, string voiceName) { } - public TextSource(string text, string sourceLocale, Azure.Communication.CallAutomation.GenderType gender) { } - public string SourceLocale { get { throw null; } set { } } - public string Text { get { throw null; } } - public Azure.Communication.CallAutomation.GenderType? VoiceGender { get { throw null; } set { } } - public string VoiceName { get { throw null; } set { } } - } - public partial class ToneInfo - { - internal ToneInfo() { } - public int SequenceId { get { throw null; } } - public Azure.Communication.CallAutomation.DtmfTone Tone { get { throw null; } } - } public partial class TransferCallToParticipantEventResult { internal TransferCallToParticipantEventResult() { } @@ -1121,23 +797,10 @@ internal TransferCallToParticipantResult() { } } public partial class TransferToParticipantOptions { - public TransferToParticipantOptions(Azure.Communication.CommunicationUserIdentifier targetIdentity, System.Collections.Generic.IDictionary voipHeaders = null) { } - public TransferToParticipantOptions(Azure.Communication.MicrosoftTeamsUserIdentifier targetIdentity, System.Collections.Generic.IDictionary voipHeaders = null) { } - public TransferToParticipantOptions(Azure.Communication.PhoneNumberIdentifier targetPhoneNumberIdentity, System.Collections.Generic.IDictionary sipHeaders = null) { } + public TransferToParticipantOptions(Azure.Communication.CommunicationUserIdentifier targetIdentity) { } + public TransferToParticipantOptions(Azure.Communication.MicrosoftTeamsUserIdentifier targetIdentity) { } + public TransferToParticipantOptions(Azure.Communication.PhoneNumberIdentifier targetPhoneNumberIdentity) { } public string OperationContext { get { throw null; } set { } } - public System.Collections.Generic.IDictionary SipHeaders { get { throw null; } } public Azure.Communication.CommunicationIdentifier Target { get { throw null; } } - public System.Collections.Generic.IDictionary VoipHeaders { get { throw null; } } - } - public partial class UnmuteParticipantsOptions - { - public UnmuteParticipantsOptions(System.Collections.Generic.IEnumerable targetParticipant) { } - public string OperationContext { get { throw null; } set { } } - public System.Collections.Generic.IReadOnlyList TargetParticipants { get { throw null; } } - } - public partial class UnmuteParticipantsResponse - { - internal UnmuteParticipantsResponse() { } - public string OperationContext { get { throw null; } } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Azure.Communication.CallAutomation.csproj b/sdk/communication/Azure.Communication.CallAutomation/src/Azure.Communication.CallAutomation.csproj index edcaf620e4b7..f89d55b578cc 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Azure.Communication.CallAutomation.csproj +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Azure.Communication.CallAutomation.csproj @@ -1,12 +1,12 @@  - This client library enables working with the Microsoft Azure Communication Call Automation service. + This client library enables working with the Microsoft Azure Communication Call Automation service. For this release, see notes - https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/communication/Azure.Communication.CallAutomation/README.md and https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/communication/Azure.Communication.CallAutomation/CHANGELOG.md. Microsoft Azure Communication Call Automation quickstart - https://learn.microsoft.com/azure/communication-services/quickstarts/voice-video-calling/callflows-for-customer-interactions?pivots=programming-language-csharp Azure Communication CallAutomation Service - 1.0.0-beta.2 + 1.0.0 Microsoft Azure Communication CallAutomation Service;Microsoft;Azure;Azure Communication Service;Azure Communication CallAutomation Service;Calling;Communication;$(PackageCommonTags) $(RequiredTargetFrameworks) diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/CallAutomationClient.cs b/sdk/communication/Azure.Communication.CallAutomation/src/CallAutomationClient.cs index d5fc89f27d08..71dc939be46f 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/CallAutomationClient.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/CallAutomationClient.cs @@ -9,6 +9,7 @@ using Azure.Core.Pipeline; using Azure.Communication.Pipeline; using System.Collections.Generic; +using System.Net; namespace Azure.Communication.CallAutomation { @@ -26,7 +27,14 @@ public class CallAutomationClient internal CallMediaRestClient CallMediaRestClient { get; } internal CallRecordingRestClient CallRecordingRestClient { get; } internal CallAutomationEventProcessor EventProcessor { get; } - internal CommunicationUserIdentifier Source { get; } + + /// + /// CommunicationUserIdentifier that makes the outbound call. + /// This can be provided by providing CallAutomationClientOption during construction of CallAutomationClient. + /// If left blank, service will create one each request. + /// + /// + public CommunicationUserIdentifier Source { get; } #region public constructors /// Initializes a new instance of . @@ -56,17 +64,6 @@ public CallAutomationClient(Uri endpoint, TokenCredential credential, CallAutoma Argument.CheckNotNull(credential, nameof(credential)), options ?? new CallAutomationClientOptions()) { } - - /// Initializes a new instance of with custom PMA endpoint. - /// Endpoint for PMA - /// Connection string acquired from the Azure Communication Services resource. - /// Client option exposing , , , etc. - public CallAutomationClient(Uri pmaEndpoint, string connectionString, CallAutomationClientOptions options = default) - : this( - pmaEndpoint, - options ?? new CallAutomationClientOptions(), - ConnectionString.Parse(connectionString)) - { } #endregion #region private constructors @@ -90,13 +87,6 @@ private CallAutomationClient(Uri endpoint, HttpPipeline httpPipeline, CallAutoma EventProcessor = new CallAutomationEventProcessor(); Source = options.Source; } - - private CallAutomationClient(Uri endpoint, CallAutomationClientOptions options, ConnectionString connectionString) - : this( - endpoint: endpoint, - httpPipeline: options.CustomBuildHttpPipeline(connectionString), - options: options) - { } #endregion /// Initializes a new instance of for mocking. @@ -146,7 +136,7 @@ public virtual async Task> AnswerCallAsync(AnswerCall var answerResponse = await AzureCommunicationServicesRestClient.AnswerCallAsync(request, repeatabilityHeaders.RepeatabilityRequestId, - repeatabilityHeaders.GetRepeatabilityFirstSentString(), + repeatabilityHeaders.RepeatabilityFirstSent, cancellationToken) .ConfigureAwait(false); @@ -199,7 +189,7 @@ public virtual Response AnswerCall(AnswerCallOptions options, var answerResponse = AzureCommunicationServicesRestClient.AnswerCall(request, repeatabilityHeaders.RepeatabilityRequestId, - repeatabilityHeaders.GetRepeatabilityFirstSentString(), + repeatabilityHeaders.RepeatabilityFirstSent, cancellationToken); var result = new AnswerCallResult(GetCallConnection(answerResponse.Value.CallConnectionId), new CallConnectionProperties(answerResponse.Value)); @@ -217,24 +207,9 @@ public virtual Response AnswerCall(AnswerCallOptions options, private AnswerCallRequestInternal CreateAnswerCallRequest(AnswerCallOptions options) { - // validate callbackUri - if (!IsValidHttpsUri(options.CallbackUri)) - { - throw new ArgumentException(CallAutomationErrorMessages.InvalidHttpsUriMessage); - } - AnswerCallRequestInternal request = new AnswerCallRequestInternal(options.IncomingCallContext, options.CallbackUri.AbsoluteUri); - // Add custom cognitive service domain name - if (options.AzureCognitiveServicesEndpointUrl != null) - { - if (!IsValidHttpsUri(options.AzureCognitiveServicesEndpointUrl)) - { - throw new ArgumentException(CallAutomationErrorMessages.InvalidCognitiveServiceHttpsUriMessage); - } - request.AzureCognitiveServicesEndpointUrl = options.AzureCognitiveServicesEndpointUrl.AbsoluteUri; - } - request.MediaStreamingConfiguration = CreateMediaStreamingOptionsInternal(options.MediaStreamingOptions); - request.AnsweredByIdentifier = Source == null ? null : new CommunicationUserIdentifierModel(Source.Id); + + request.AnsweredBy = Source == null ? null : new CommunicationUserIdentifierModel(Source.Id); request.OperationContext = options.OperationContext; return request; @@ -271,14 +246,10 @@ public virtual async Task RedirectCallAsync(RedirectCallOptions option RedirectCallRequestInternal request = new RedirectCallRequestInternal(options.IncomingCallContext, CommunicationIdentifierSerializer.Serialize(options.CallInvite.Target)); var repeatabilityHeaders = new RepeatabilityHeaders(); - request.CustomContext = new CustomContextInternal( - options.CallInvite.SipHeaders == null ? new ChangeTrackingDictionary() : options.CallInvite.SipHeaders, - options.CallInvite.VoipHeaders == null ? new ChangeTrackingDictionary() : options.CallInvite.VoipHeaders); - return await AzureCommunicationServicesRestClient.RedirectCallAsync( request, repeatabilityHeaders.RepeatabilityRequestId, - repeatabilityHeaders.GetRepeatabilityFirstSentString(), + repeatabilityHeaders.RepeatabilityFirstSent, cancellationToken ).ConfigureAwait(false); } @@ -320,14 +291,10 @@ public virtual Response RedirectCall(RedirectCallOptions options, CancellationTo RedirectCallRequestInternal request = new RedirectCallRequestInternal(options.IncomingCallContext, CommunicationIdentifierSerializer.Serialize(options.CallInvite.Target)); var repeatabilityHeaders = new RepeatabilityHeaders(); - request.CustomContext = new CustomContextInternal( - options.CallInvite.SipHeaders == null ? new ChangeTrackingDictionary() : options.CallInvite.SipHeaders, - options.CallInvite.VoipHeaders == null ? new ChangeTrackingDictionary() : options.CallInvite.VoipHeaders); - return AzureCommunicationServicesRestClient.RedirectCall( request, repeatabilityHeaders.RepeatabilityRequestId, - repeatabilityHeaders.GetRepeatabilityFirstSentString(), + repeatabilityHeaders.RepeatabilityFirstSent, cancellationToken); } catch (Exception ex) @@ -370,7 +337,7 @@ public virtual async Task RejectCallAsync(RejectCallOptions options, C return await AzureCommunicationServicesRestClient.RejectCallAsync( request, repeatabilityHeaders.RepeatabilityRequestId, - repeatabilityHeaders.GetRepeatabilityFirstSentString(), + repeatabilityHeaders.RepeatabilityFirstSent, cancellationToken ).ConfigureAwait(false); } @@ -414,7 +381,7 @@ public virtual Response RejectCall(RejectCallOptions options, CancellationToken return AzureCommunicationServicesRestClient.RejectCall( request, repeatabilityHeaders.RepeatabilityRequestId, - repeatabilityHeaders.GetRepeatabilityFirstSentString(), + repeatabilityHeaders.RepeatabilityFirstSent, cancellationToken ); } @@ -466,7 +433,7 @@ public virtual async Task> CreateCallAsync(CreateCall var createCallResponse = await AzureCommunicationServicesRestClient.CreateCallAsync( request, repeatabilityHeaders.RepeatabilityRequestId, - repeatabilityHeaders.GetRepeatabilityFirstSentString(), + repeatabilityHeaders.RepeatabilityFirstSent, cancellationToken ).ConfigureAwait(false); @@ -526,7 +493,7 @@ public virtual Response CreateCall(CreateCallOptions options, var createCallResponse = AzureCommunicationServicesRestClient.CreateCall( request, repeatabilityHeaders.RepeatabilityRequestId, - repeatabilityHeaders.GetRepeatabilityFirstSentString(), + repeatabilityHeaders.RepeatabilityFirstSent, cancellationToken ); @@ -571,7 +538,7 @@ public virtual async Task> CreateGroupCallAsync(Creat var createCallResponse = await AzureCommunicationServicesRestClient.CreateCallAsync( request, repeatabilityHeaders.RepeatabilityRequestId, - repeatabilityHeaders.GetRepeatabilityFirstSentString(), + repeatabilityHeaders.RepeatabilityFirstSent, cancellationToken ).ConfigureAwait(false); @@ -616,7 +583,7 @@ public virtual Response CreateGroupCall(CreateGroupCallOptions var createCallResponse = AzureCommunicationServicesRestClient.CreateCall( request, repeatabilityHeaders.RepeatabilityRequestId, - repeatabilityHeaders.GetRepeatabilityFirstSentString(), + repeatabilityHeaders.RepeatabilityFirstSent, cancellationToken ); @@ -645,24 +612,10 @@ private CreateCallRequestInternal CreateCallRequest(CreateCallOptions options) ? null : new PhoneNumberIdentifierModel(options?.CallInvite?.SourceCallerIdNumber?.PhoneNumber), SourceDisplayName = options?.CallInvite?.SourceDisplayName, - SourceIdentity = Source == null ? null : new CommunicationUserIdentifierModel(Source.Id), + Source = Source == null ? null : new CommunicationUserIdentifierModel(Source.Id), }; - request.CustomContext = new CustomContextInternal( - options.CallInvite.SipHeaders == null ? new ChangeTrackingDictionary() : options.CallInvite.SipHeaders, - options.CallInvite.VoipHeaders == null ? new ChangeTrackingDictionary() : options.CallInvite.VoipHeaders); - - // Add custom cognitive service domain name - if (options.AzureCognitiveServicesEndpointUrl != null) - { - if (!IsValidHttpsUri(options.AzureCognitiveServicesEndpointUrl)) - { - throw new ArgumentException(CallAutomationErrorMessages.InvalidCognitiveServiceHttpsUriMessage); - } - request.AzureCognitiveServicesEndpointUrl = options.AzureCognitiveServicesEndpointUrl.AbsoluteUri; - } request.OperationContext = options.OperationContext; - request.MediaStreamingConfiguration = CreateMediaStreamingOptionsInternal(options.MediaStreamingOptions); return request; } @@ -677,25 +630,10 @@ private CreateCallRequestInternal CreateCallRequest(CreateGroupCallOptions optio ? null : new PhoneNumberIdentifierModel(options?.SourceCallerIdNumber?.PhoneNumber), SourceDisplayName = options?.SourceDisplayName, - SourceIdentity = Source == null ? null : new CommunicationUserIdentifierModel(Source.Id), + Source = Source == null ? null : new CommunicationUserIdentifierModel(Source.Id), }; - request.CustomContext = new CustomContextInternal( - options.SipHeaders == null ? new ChangeTrackingDictionary() : options.SipHeaders, - options.VoipHeaders == null ? new ChangeTrackingDictionary() : options.VoipHeaders); - - // Add custom cognitive service domain name - if (options.AzureCognitiveServicesEndpointUrl != null) - { - if (!IsValidHttpsUri(options.AzureCognitiveServicesEndpointUrl)) - { - throw new ArgumentException(CallAutomationErrorMessages.InvalidCognitiveServiceHttpsUriMessage); - } - request.AzureCognitiveServicesEndpointUrl = options.AzureCognitiveServicesEndpointUrl.AbsoluteUri; - } request.OperationContext = options.OperationContext; - request.MediaStreamingConfiguration = CreateMediaStreamingOptionsInternal(options.MediaStreamingOptions); - return request; } @@ -711,14 +649,6 @@ private static bool IsValidHttpsUri(Uri uri) { return Uri.IsWellFormedUriString(uriString, UriKind.Absolute) && new Uri(uriString).Scheme == Uri.UriSchemeHttps; } - private static MediaStreamingOptionsInternal CreateMediaStreamingOptionsInternal(MediaStreamingOptions configuration) - { - return configuration == default - ? default - : new MediaStreamingOptionsInternal(configuration.TransportUri.AbsoluteUri, configuration.MediaStreamingTransport, configuration.MediaStreamingContent, - configuration.MediaStreamingAudioChannel); - } - /// Initializes a new instance of CallConnection. . /// The call connection id for the GetCallConnection instance. public virtual CallConnection GetCallConnection(string callConnectionId) @@ -767,24 +697,5 @@ public virtual CallAutomationEventProcessor GetEventProcessor() throw; } } - - /// - /// Get source identity used by Call Automation client. - /// - /// - public virtual CommunicationUserIdentifier GetSourceIdentity() - { - using DiagnosticScope scope = _clientDiagnostics.CreateScope($"{nameof(CallAutomationClient)}.{nameof(GetSourceIdentity)}"); - scope.Start(); - try - { - return Source; - } - catch (Exception ex) - { - scope.Failed(ex); - throw; - } - } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/CallAutomationClientOptions.cs b/sdk/communication/Azure.Communication.CallAutomation/src/CallAutomationClientOptions.cs index cdb8687367e2..17645318596f 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/CallAutomationClientOptions.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/CallAutomationClientOptions.cs @@ -16,7 +16,7 @@ public class CallAutomationClientOptions : ClientOptions /// /// The latest version of the CallAutomation service. /// - internal const ServiceVersion LatestVersion = ServiceVersion.V2023_01_15_Preview; + internal const ServiceVersion LatestVersion = ServiceVersion.V2023_03_06; internal string ApiVersion { get; } @@ -32,7 +32,7 @@ public CallAutomationClientOptions(ServiceVersion version = LatestVersion) { ApiVersion = version switch { - ServiceVersion.V2023_01_15_Preview => "2023-01-15-preview", + ServiceVersion.V2023_03_06 => "2023-03-06", _ => throw new ArgumentOutOfRangeException(nameof(version)), }; } @@ -43,10 +43,10 @@ public CallAutomationClientOptions(ServiceVersion version = LatestVersion) public enum ServiceVersion { /// - /// The Beta of the CallAutomation service. + /// The GA1 of the CallAutomation service. /// #pragma warning disable CA1707 // Identifiers should not contain underscores - V2023_01_15_Preview = 1 + V2023_03_06 = 1 #pragma warning restore CA1707 // Identifiers should not contain underscores } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/CallAutomationEventProcessor/EventResult/SendDtmfEventResult.cs b/sdk/communication/Azure.Communication.CallAutomation/src/CallAutomationEventProcessor/EventResult/SendDtmfEventResult.cs deleted file mode 100644 index aae51d7e1d70..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/CallAutomationEventProcessor/EventResult/SendDtmfEventResult.cs +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -namespace Azure.Communication.CallAutomation -{ - /// is returned from WaitForEvent of . - public class SendDtmfEventResult - { - /// - /// Indicates whether the returned event is considered successful or not. - /// - public bool IsSuccess { get; internal set; } - - /// - /// event will be returned once the dtmf tones have been sent successfully. - /// - public SendDtmfCompleted SuccessResult { get; } - - /// - /// event will be returned if send dtmf tones completed unsuccessfully. - /// - public SendDtmfFailed FailureResult { get; } - - internal SendDtmfEventResult(bool isSuccess, SendDtmfCompleted successResult, SendDtmfFailed failureResult) - { - IsSuccess = isSuccess; - SuccessResult = successResult; - FailureResult = failureResult; - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/CallConnection.cs b/sdk/communication/Azure.Communication.CallAutomation/src/CallConnection.cs index 3fabda497b15..3af27d55599d 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/CallConnection.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/CallConnection.cs @@ -104,7 +104,7 @@ public virtual async Task HangUpAsync(bool forEveryone, CancellationTo return await RestClient.TerminateCallAsync( CallConnectionId, repeatabilityHeaders.RepeatabilityRequestId, - repeatabilityHeaders.GetRepeatabilityFirstSentString(), + repeatabilityHeaders.RepeatabilityFirstSent, cancellationToken ).ConfigureAwait(false); } @@ -139,7 +139,7 @@ public virtual Response HangUp(bool forEveryone, CancellationToken cancellationT return RestClient.TerminateCall( CallConnectionId, repeatabilityHeaders.RepeatabilityRequestId, - repeatabilityHeaders.GetRepeatabilityFirstSentString(), + repeatabilityHeaders.RepeatabilityFirstSent, cancellationToken ); } @@ -212,7 +212,7 @@ public virtual async Task> TransferCal CallConnectionId, request, repeatabilityHeaders.RepeatabilityRequestId, - repeatabilityHeaders.GetRepeatabilityFirstSentString(), + repeatabilityHeaders.RepeatabilityFirstSent, cancellationToken ).ConfigureAwait(false); @@ -282,7 +282,7 @@ public virtual Response TransferCallToParticipa CallConnectionId, request, repeatabilityHeaders.RepeatabilityRequestId, - repeatabilityHeaders.GetRepeatabilityFirstSentString(), + repeatabilityHeaders.RepeatabilityFirstSent, cancellationToken ); @@ -302,18 +302,7 @@ private static TransferToParticipantRequestInternal CreateTransferToParticipantR { TransferToParticipantRequestInternal request = new TransferToParticipantRequestInternal(CommunicationIdentifierSerializer.Serialize(options.Target)); - request.CustomContext = new CustomContextInternal( - options.SipHeaders == null ? new ChangeTrackingDictionary() : options.SipHeaders, - options.VoipHeaders == null ? new ChangeTrackingDictionary() : options.VoipHeaders); - - if (options.OperationContext != null && options.OperationContext.Length > CallAutomationConstants.InputValidation.StringMaxLength) - { - throw new ArgumentException(CallAutomationErrorMessages.OperationContextExceedsMaxLength); - } - else - { - request.OperationContext = options.OperationContext == default ? Guid.NewGuid().ToString() : options.OperationContext; - } + request.OperationContext = options.OperationContext == default ? Guid.NewGuid().ToString() : options.OperationContext; return request; } @@ -352,7 +341,7 @@ public virtual async Task> AddParticipantAsync(Ad callConnectionId: CallConnectionId, request, repeatabilityHeaders.RepeatabilityRequestId, - repeatabilityHeaders.GetRepeatabilityFirstSentString(), + repeatabilityHeaders.RepeatabilityFirstSent, cancellationToken: cancellationToken ).ConfigureAwait(false); @@ -400,7 +389,7 @@ public virtual Response AddParticipant(AddParticipantOptio callConnectionId: CallConnectionId, request, repeatabilityHeaders.RepeatabilityRequestId, - repeatabilityHeaders.GetRepeatabilityFirstSentString(), + repeatabilityHeaders.RepeatabilityFirstSent, cancellationToken: cancellationToken ); @@ -430,20 +419,7 @@ private static AddParticipantRequestInternal CreateAddParticipantRequest(AddPart OperationContext = options.OperationContext == default ? Guid.NewGuid().ToString() : options.OperationContext }; - if (options.InvitationTimeoutInSeconds != null && - (options.InvitationTimeoutInSeconds < CallAutomationConstants.InputValidation.MinInvitationTimeoutInSeconds || - options.InvitationTimeoutInSeconds > CallAutomationConstants.InputValidation.MaxInvitationTimeoutInSeconds)) - { - throw new ArgumentException(CallAutomationErrorMessages.InvalidInvitationTimeoutInSeconds); - } - else - { - request.InvitationTimeoutInSeconds = options.InvitationTimeoutInSeconds; - } - - request.CustomContext = new CustomContextInternal( - options.ParticipantToAdd.SipHeaders == null ? new ChangeTrackingDictionary() : options.ParticipantToAdd.SipHeaders, - options.ParticipantToAdd.VoipHeaders == null ? new ChangeTrackingDictionary() : options.ParticipantToAdd.VoipHeaders); + request.InvitationTimeoutInSeconds = options.InvitationTimeoutInSeconds; return request; } @@ -517,7 +493,7 @@ public virtual async Task>> GetParticipa cancellationToken: cancellationToken ).ConfigureAwait(false); - IReadOnlyList result = response.Value.Values.Select(t => new CallParticipant(t)).ToList(); + IReadOnlyList result = response.Value.Value.Select(t => new CallParticipant(t)).ToList(); return Response.FromValue(result, response.GetRawResponse()); } @@ -543,7 +519,7 @@ public virtual Response> GetParticipants(Cancella cancellationToken: cancellationToken ); - IReadOnlyList result = response.Value.Values.Select(t => new CallParticipant(t)).ToList(); + IReadOnlyList result = response.Value.Value.Select(t => new CallParticipant(t)).ToList(); return Response.FromValue(result, response.GetRawResponse()); } @@ -589,20 +565,14 @@ public virtual async Task> RemoveParticipantAs RemoveParticipantRequestInternal request = new(CommunicationIdentifierSerializer.Serialize(options.ParticipantToRemove)); var repeatabilityHeaders = new RepeatabilityHeaders(); - if (options.OperationContext != null && options.OperationContext.Length > CallAutomationConstants.InputValidation.StringMaxLength) - { - throw new ArgumentException(CallAutomationErrorMessages.OperationContextExceedsMaxLength); - } - else - { - request.OperationContext = options.OperationContext == default ? Guid.NewGuid().ToString() : options.OperationContext; - } + + request.OperationContext = options.OperationContext == default ? Guid.NewGuid().ToString() : options.OperationContext; var response = await RestClient.RemoveParticipantAsync( CallConnectionId, request, repeatabilityHeaders.RepeatabilityRequestId, - repeatabilityHeaders.GetRepeatabilityFirstSentString(), + repeatabilityHeaders.RepeatabilityFirstSent, cancellationToken).ConfigureAwait(false); var result = new RemoveParticipantResult(response); @@ -650,20 +620,13 @@ public virtual Response RemoveParticipant(RemovePartici RemoveParticipantRequestInternal request = new(CommunicationIdentifierSerializer.Serialize(options.ParticipantToRemove)); var repeatabilityHeaders = new RepeatabilityHeaders(); - if (options.OperationContext != null && options.OperationContext.Length > CallAutomationConstants.InputValidation.StringMaxLength) - { - throw new ArgumentException(CallAutomationErrorMessages.OperationContextExceedsMaxLength); - } - else - { - options.OperationContext = options.OperationContext == default ? Guid.NewGuid().ToString() : options.OperationContext; - } + options.OperationContext = options.OperationContext == default ? Guid.NewGuid().ToString() : options.OperationContext; var response = RestClient.RemoveParticipant( CallConnectionId, request, repeatabilityHeaders.RepeatabilityRequestId, - repeatabilityHeaders.GetRepeatabilityFirstSentString(), + repeatabilityHeaders.RepeatabilityFirstSent, cancellationToken); var result = new RemoveParticipantResult(response); @@ -693,256 +656,5 @@ public virtual CallMedia GetCallMedia() throw; } } - - /// - /// Mute participant from the call. - /// Only Acs Users are currently supported. - /// - /// Participant to mute. - /// The Operation Context. - /// The cancellation token. - /// The server returned an error. See for details returned from the server. - /// is null. - /// A Response containing MuteParticipantsResponse. - public virtual Response MuteParticipants(CommunicationIdentifier targetParticipant, string operationContext = default, CancellationToken cancellationToken = default) - { - var options = new MuteParticipantsOptions(new List { targetParticipant }) - { - OperationContext = operationContext - }; - - return MuteParticipants(options, cancellationToken); - } - - /// - /// Mute participants from the call. - /// Only Acs Users are currently supported. - /// - /// Options for the MuteParticipant operation. - /// The cancellation token. - /// The server returned an error. See for details returned from the server. - /// is null. - /// A Response containing MuteParticipantsResponse. - public virtual Response MuteParticipants(MuteParticipantsOptions options, CancellationToken cancellationToken = default) - { - using DiagnosticScope scope = _clientDiagnostics.CreateScope($"{nameof(CallConnection)}.{nameof(MuteParticipants)}"); - scope.Start(); - try - { - if (options == null) - throw new ArgumentNullException(nameof(options)); - - MuteParticipantsRequestInternal request = new MuteParticipantsRequestInternal( - options.TargetParticipants.Select(participant => CommunicationIdentifierSerializer.Serialize(participant))); - var repeatabilityHeaders = new RepeatabilityHeaders(); - - if (options.OperationContext != null && options.OperationContext.Length > CallAutomationConstants.InputValidation.StringMaxLength) - { - throw new ArgumentException(CallAutomationErrorMessages.OperationContextExceedsMaxLength); - } - else - { - request.OperationContext = options.OperationContext; - } - - return RestClient.Mute( - CallConnectionId, - request, - repeatabilityHeaders.RepeatabilityRequestId, - repeatabilityHeaders.GetRepeatabilityFirstSentString(), - cancellationToken); - } - catch (Exception ex) - { - scope.Failed(ex); - throw; - } - } - - /// - /// Unmute participant from the call. - /// Only Acs Users are currently supported. - /// - /// Participant to unmute. - /// The Operation Context. - /// The cancellation token. - /// is null. - /// The server returned an error. See for details returned from the server. - /// - public virtual Response UnmuteParticipants(CommunicationIdentifier targetParticipant, string operationContext = default, CancellationToken cancellationToken = default) - { - var options = new UnmuteParticipantsOptions(new List { targetParticipant }) - { - OperationContext = operationContext, - }; - return UnmuteParticipants(options, cancellationToken); - } - - /// - /// Unmute participants from the call. - /// Only Acs Users are currently supported. - /// - /// Options for the UnmuteParticipant operation. - /// The cancellation token. - /// is null. - /// OperationContext is too long. - /// The server returned an error. See for details returned from the server. - /// - public virtual Response UnmuteParticipants(UnmuteParticipantsOptions options, CancellationToken cancellationToken = default) - { - using DiagnosticScope scope = _clientDiagnostics.CreateScope($"{nameof(CallConnection)}.{nameof(UnmuteParticipants)}"); - scope.Start(); - try - { - UnmuteParticipantsRequestInternal request = new UnmuteParticipantsRequestInternal( - options.TargetParticipants.Select(participant => CommunicationIdentifierSerializer.Serialize(participant)).ToList()); - var repeatabilityHeaders = new RepeatabilityHeaders(); - if (options.OperationContext != null && options.OperationContext.Length > CallAutomationConstants.InputValidation.StringMaxLength) - { - throw new ArgumentException(CallAutomationErrorMessages.OperationContextExceedsMaxLength); - } - else - { - request.OperationContext = options.OperationContext; - } - - return RestClient.Unmute( - CallConnectionId, - request, - repeatabilityHeaders.RepeatabilityRequestId, - repeatabilityHeaders.GetRepeatabilityFirstSentString(), - cancellationToken); - } - catch (Exception ex) - { - scope.Failed(ex); - throw; - } - } - - /// - /// Mute participants on the call. - /// Only Acs Users are currently supported. - /// - /// Participants to mute. - /// The Operation Context. - /// The cancellation token. - /// is null. - /// The server returned an error. See for details returned from the server. - /// - public async virtual Task> MuteParticipantsAsync(CommunicationIdentifier targetParticipant, string operationContext = default, CancellationToken cancellationToken = default) - { - var options = new MuteParticipantsOptions(new List { targetParticipant }) - { - OperationContext = operationContext - }; - return await MuteParticipantsAsync(options, cancellationToken).ConfigureAwait(false); - } - - /// - /// Mute participants on the call. - /// - /// Options for the MuteParticipant operation. - /// The cancellation token. - /// is null. - /// OperationContext is too long. - /// The server returned an error. See for details returned from the server. - /// - public async virtual Task> MuteParticipantsAsync(MuteParticipantsOptions options, CancellationToken cancellationToken = default) - { - using DiagnosticScope scope = _clientDiagnostics.CreateScope($"{nameof(CallConnection)}.{nameof(MuteParticipants)}"); - scope.Start(); - try - { - if (options == null) - throw new ArgumentNullException(nameof(options)); - - MuteParticipantsRequestInternal request = new MuteParticipantsRequestInternal( - options.TargetParticipants.Select(participant => CommunicationIdentifierSerializer.Serialize(participant))); - var repeatabilityHeaders = new RepeatabilityHeaders(); - - if (options.OperationContext != null && options.OperationContext.Length > CallAutomationConstants.InputValidation.StringMaxLength) - { - throw new ArgumentException(CallAutomationErrorMessages.OperationContextExceedsMaxLength); - } - else - { - request.OperationContext = options.OperationContext; - } - - return await RestClient.MuteAsync( - CallConnectionId, - request, - repeatabilityHeaders.RepeatabilityRequestId, - repeatabilityHeaders.GetRepeatabilityFirstSentString(), - cancellationToken).ConfigureAwait(false); - } - catch (Exception ex) - { - scope.Failed(ex); - throw; - } - } - - /// - /// Unmute participants on the call. - /// Only Acs Users are currently supported. - /// - /// Participant to unmute. - /// The Operation Context. - /// The cancellation token. - /// The server returned an error. See for details returned from the server. - /// - public async virtual Task> UnmuteParticipantsAsync(CommunicationIdentifier targetParticipant, string operationContext = default, CancellationToken cancellationToken = default) - { - var options = new UnmuteParticipantsOptions(new List { targetParticipant }) - { - OperationContext = operationContext - }; - - return await UnmuteParticipantsAsync(options, cancellationToken).ConfigureAwait(false); - } - - /// - /// Unmute participants from the call. - /// Only Acs Users are currently supported. - /// - /// Options for the UnmuteParticipant operation. - /// The cancellation token. - /// is null. - /// OperationContext is too long. - /// The server returned an error. See for details returned from the server. - /// - public async virtual Task> UnmuteParticipantsAsync(UnmuteParticipantsOptions options, CancellationToken cancellationToken = default) - { - using DiagnosticScope scope = _clientDiagnostics.CreateScope($"{nameof(CallConnection)}.{nameof(UnmuteParticipants)}"); - scope.Start(); - try - { - UnmuteParticipantsRequestInternal request = new UnmuteParticipantsRequestInternal( - options.TargetParticipants.Select(participant => CommunicationIdentifierSerializer.Serialize(participant)).ToList()); - var repeatabilityHeaders = new RepeatabilityHeaders(); - if (options.OperationContext != null && options.OperationContext.Length > CallAutomationConstants.InputValidation.StringMaxLength) - { - throw new ArgumentException(CallAutomationErrorMessages.OperationContextExceedsMaxLength); - } - else - { - request.OperationContext = options.OperationContext; - } - - return await RestClient.UnmuteAsync( - CallConnectionId, - request, - repeatabilityHeaders.RepeatabilityRequestId, - repeatabilityHeaders.GetRepeatabilityFirstSentString(), - cancellationToken).ConfigureAwait(false); - } - catch (Exception ex) - { - scope.Failed(ex); - throw; - } - } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/CallMedia.cs b/sdk/communication/Azure.Communication.CallAutomation/src/CallMedia.cs index 950aca2bfbbc..51c6d8d4aba3 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/CallMedia.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/CallMedia.cs @@ -81,7 +81,7 @@ public virtual async Task> PlayAsync(PlaySource playSource, scope.Start(); try { - var playOptions = new PlayOptions(playSource, playTo) + var playOptions = new PlayOptions(new List { playSource }, playTo) { Loop = false, OperationContext = null @@ -144,7 +144,7 @@ public virtual Response Play(PlaySource playSource, IEnumerable { playSource }, playTo) { Loop = false, OperationContext = null @@ -168,28 +168,22 @@ public virtual Response Play(PlaySource playSource, IEnumerable TranslatePlaySourceToInternal(t)).ToList()); - if (sourceInternal != null) - { - PlayRequestInternal request = new PlayRequestInternal(sourceInternal); - request.PlayTo = options.PlayTo.Select(t => CommunicationIdentifierSerializer.Serialize(t)).ToList(); - - if (options != null) - { - request.PlayOptions = new PlayOptionsInternal(options.Loop); - request.OperationContext = options.OperationContext; - } + request.PlayTo = options.PlayTo.Select(t => CommunicationIdentifierSerializer.Serialize(t)).ToList(); - if (request.OperationContext == default) - { - request.OperationContext = Guid.NewGuid().ToString(); - } + if (options != null) + { + request.PlayOptions = new PlayOptionsInternal(options.Loop); + request.OperationContext = options.OperationContext; + } - return request; + if (request.OperationContext == default) + { + request.OperationContext = Guid.NewGuid().ToString(); } - throw new NotSupportedException(options.PlaySource.GetType().Name); + return request; } /// @@ -204,7 +198,7 @@ public virtual async Task> PlayToAllAsync(PlayToAllOptions scope.Start(); try { - PlayOptions playOptions = new PlayOptions(options.PlaySource, Enumerable.Empty()); + PlayOptions playOptions = new PlayOptions(options.PlaySources, Enumerable.Empty()); playOptions.OperationContext = options.OperationContext; playOptions.Loop = options.Loop; return await PlayAsync(playOptions, cancellationToken).ConfigureAwait(false); @@ -249,7 +243,7 @@ public virtual Response PlayToAll(PlayToAllOptions options, Cancella scope.Start(); try { - PlayOptions playOptions = new PlayOptions(options.PlaySource, Enumerable.Empty()); + PlayOptions playOptions = new PlayOptions(options.PlaySources, Enumerable.Empty()); playOptions.OperationContext = options.OperationContext; playOptions.Loop = options.Loop; return Play(playOptions, cancellationToken); @@ -267,7 +261,7 @@ public virtual Response PlayToAll(PlayToAllOptions options, Cancella /// /// /// Returns , which can be used to wait for Play's related events. - public virtual Response PlayToAll(PlaySource playSource, CancellationToken cancellationToken = default) + public virtual Response PlayToAll(PlaySource playSource, CancellationToken cancellationToken = default) { using DiagnosticScope scope = _clientDiagnostics.CreateScope($"{nameof(CallMedia)}.{nameof(PlayToAll)}"); scope.Start(); @@ -417,82 +411,6 @@ private static RecognizeRequestInternal CreateRecognizeRequest(CallMediaRecogniz return request; } - else if (recognizeOptions is CallMediaRecognizeChoiceOptions recognizeChoiceOptions) - { - RecognizeOptionsInternal recognizeConfigurationsInternal = new RecognizeOptionsInternal(CommunicationIdentifierSerializer.Serialize(recognizeChoiceOptions.TargetParticipant)) - { - InterruptPrompt = recognizeChoiceOptions.InterruptPrompt, - InitialSilenceTimeoutInSeconds = (int)recognizeChoiceOptions.InitialSilenceTimeout.TotalSeconds - }; - - recognizeChoiceOptions.RecognizeChoices - .ToList().ForEach(t => recognizeConfigurationsInternal.Choices.Add(t)); - - if (!String.IsNullOrEmpty(recognizeChoiceOptions.SpeechLanguage)) - { - recognizeConfigurationsInternal.SpeechLanguage = recognizeChoiceOptions.SpeechLanguage; - } - - RecognizeRequestInternal request = new RecognizeRequestInternal(recognizeChoiceOptions.InputType, recognizeConfigurationsInternal); - - request.PlayPrompt = TranslatePlaySourceToInternal(recognizeChoiceOptions.Prompt); - request.InterruptCallMediaOperation = recognizeOptions.InterruptCallMediaOperation; - request.OperationContext = recognizeOptions.OperationContext == default ? Guid.NewGuid().ToString() : recognizeOptions.OperationContext; - - return request; - } - else if (recognizeOptions is CallMediaRecognizeSpeechOptions recognizeSpeechOptions) - { - SpeechOptionsInternal speechConfigurations = new SpeechOptionsInternal() - { - EndSilenceTimeoutInMs = (long)recognizeSpeechOptions.EndSilenceTimeoutInMs.TotalMilliseconds - }; - - RecognizeOptionsInternal recognizeConfigurationsInternal = new RecognizeOptionsInternal(CommunicationIdentifierSerializer.Serialize(recognizeSpeechOptions.TargetParticipant)) - { - InterruptPrompt = recognizeSpeechOptions.InterruptPrompt, - InitialSilenceTimeoutInSeconds = (int)recognizeSpeechOptions.InitialSilenceTimeout.TotalSeconds, - SpeechOptions = speechConfigurations - }; - - RecognizeRequestInternal request = new RecognizeRequestInternal(recognizeSpeechOptions.InputType, recognizeConfigurationsInternal); - - request.PlayPrompt = TranslatePlaySourceToInternal(recognizeSpeechOptions.Prompt); - request.InterruptCallMediaOperation = recognizeOptions.InterruptCallMediaOperation; - request.OperationContext = recognizeOptions.OperationContext == default ? Guid.NewGuid().ToString() : recognizeOptions.OperationContext; - - return request; - } - else if (recognizeOptions is CallMediaRecognizeSpeechOrDtmfOptions recognizeSpeechOrDtmfOptions) - { - SpeechOptionsInternal speechConfigurations = new SpeechOptionsInternal() - { - EndSilenceTimeoutInMs = (long)recognizeSpeechOrDtmfOptions.EndSilenceTimeoutInMs.TotalMilliseconds - }; - - DtmfOptionsInternal dtmfConfigurations = new DtmfOptionsInternal() - { - InterToneTimeoutInSeconds = (int)recognizeSpeechOrDtmfOptions.InterToneTimeout.TotalSeconds, - MaxTonesToCollect = recognizeSpeechOrDtmfOptions.MaxTonesToCollect, - StopTones = recognizeSpeechOrDtmfOptions.StopTones - }; - - RecognizeOptionsInternal recognizeConfigurationsInternal = new RecognizeOptionsInternal(CommunicationIdentifierSerializer.Serialize(recognizeSpeechOrDtmfOptions.TargetParticipant)) - { - InterruptPrompt = recognizeSpeechOrDtmfOptions.InterruptPrompt, - InitialSilenceTimeoutInSeconds = (int)recognizeSpeechOrDtmfOptions.InitialSilenceTimeout.TotalSeconds, - SpeechOptions = speechConfigurations, - DtmfOptions = dtmfConfigurations, - }; - - RecognizeRequestInternal request = new RecognizeRequestInternal(recognizeSpeechOrDtmfOptions.InputType, recognizeConfigurationsInternal); - - request.PlayPrompt = TranslatePlaySourceToInternal(recognizeSpeechOrDtmfOptions.Prompt); - request.InterruptCallMediaOperation = recognizeOptions.InterruptCallMediaOperation; - request.OperationContext = recognizeOptions.OperationContext == default ? Guid.NewGuid().ToString() : recognizeOptions.OperationContext; - - return request; - } else { throw new NotSupportedException(recognizeOptions.GetType().Name); @@ -506,208 +424,12 @@ private static PlaySourceInternal TranslatePlaySourceToInternal(PlaySource playS if (playSource != null && playSource is FileSource fileSource) { sourceInternal = new PlaySourceInternal(PlaySourceTypeInternal.File); - sourceInternal.FileSource = new FileSourceInternal(fileSource.FileUri.AbsoluteUri); - sourceInternal.PlaySourceId = fileSource.PlaySourceId; - return sourceInternal; - } - else if (playSource != null && playSource is TextSource textSource) - { - sourceInternal = new PlaySourceInternal(PlaySourceTypeInternal.Text); - sourceInternal.TextSource = new TextSourceInternal(textSource.Text); - sourceInternal.TextSource.SourceLocale = textSource.SourceLocale ?? null; - sourceInternal.TextSource.VoiceGender = textSource.VoiceGender ?? GenderType.Male; - sourceInternal.TextSource.VoiceName = textSource.VoiceName ?? null; - sourceInternal.PlaySourceId = textSource.PlaySourceId; - return sourceInternal; - } - else if (playSource != null && playSource is SsmlSource ssmlSource) - { - sourceInternal = new PlaySourceInternal(PlaySourceTypeInternal.Ssml); - sourceInternal.SsmlSource = new SsmlSourceInternal(ssmlSource.SsmlText); - sourceInternal.PlaySourceId = ssmlSource.PlaySourceId; + sourceInternal.File = new FileSourceInternal(fileSource.FileUri.AbsoluteUri); + sourceInternal.PlaySourceCacheId = fileSource.PlaySourceCacheId; return sourceInternal; } else { return null; } } - - /// - /// Starts continuous Dtmf recognition. - /// - /// A target participant identifier for starting continuous Dtmf recognition. - /// An optional context object containing information about the operation, such as a unique identifier or custom metadata. - /// An optional CancellationToken to cancel the request. - /// Returns an HTTP response with a 200 status code for success, or an HTTP failure error code in case of an error. - public virtual Response StartContinuousDtmfRecognition(CommunicationIdentifier targetParticipant, string operationContext = default, - CancellationToken cancellationToken = default) - { - using DiagnosticScope scope = _clientDiagnostics.CreateScope($"{nameof(CallMedia)}.{nameof(StartContinuousDtmfRecognition)}"); - scope.Start(); - try - { - ContinuousDtmfRecognitionRequestInternal request = new(CommunicationIdentifierSerializer.Serialize(targetParticipant)) - { - OperationContext = operationContext - }; - - return CallMediaRestClient.StartContinuousDtmfRecognition(CallConnectionId, request, cancellationToken); - } - catch (Exception ex) - { - scope.Failed(ex); - throw; - } - } - - /// - /// Starts continuous Dtmf recognition in async mode. - /// - /// A target participant identifier for starting continuous Dtmf recognition. - /// An optional context object containing information about the operation, such as a unique identifier or custom metadata. - /// An optional CancellationToken to cancel the request. - /// Returns an HTTP response with a 200 status code for success, or an HTTP failure error code in case of an error. - public virtual async Task StartContinuousDtmfRecognitionAsync(CommunicationIdentifier targetParticipant, string operationContext = default, - CancellationToken cancellationToken = default) - { - using DiagnosticScope scope = _clientDiagnostics.CreateScope($"{nameof(CallMedia)}.{nameof(StartContinuousDtmfRecognition)}"); - scope.Start(); - try - { - ContinuousDtmfRecognitionRequestInternal request = new(CommunicationIdentifierSerializer.Serialize(targetParticipant)) - { - OperationContext = operationContext - }; - - return await CallMediaRestClient.StartContinuousDtmfRecognitionAsync(CallConnectionId, request, cancellationToken).ConfigureAwait(false); - ; - } - catch (Exception ex) - { - scope.Failed(ex); - throw; - } - } - - /// - /// Stops continuous Dtmf recognition. - /// - /// A target participant identifier for stopping continuous Dtmf recognition. - /// An optional context object containing information about the operation, such as a unique identifier or custom metadata. - /// An optional CancellationToken to cancel the request. - /// Returns an HTTP response with a 200 status code for success, or an HTTP failure error code in case of an error. - public virtual Response StopContinuousDtmfRecognition(CommunicationIdentifier targetParticipant, string operationContext = default, - CancellationToken cancellationToken = default) - { - using DiagnosticScope scope = _clientDiagnostics.CreateScope($"{nameof(CallMedia)}.{nameof(StopContinuousDtmfRecognition)}"); - scope.Start(); - try - { - ContinuousDtmfRecognitionRequestInternal request = new(CommunicationIdentifierSerializer.Serialize(targetParticipant)) - { - OperationContext = operationContext - }; - - return CallMediaRestClient.StopContinuousDtmfRecognition(CallConnectionId, request, cancellationToken); - } - catch (Exception ex) - { - scope.Failed(ex); - throw; - } - } - - /// - /// Stops continuous Dtmf recognition in async mode. - /// - /// A target participant identifier for stopping continuous Dtmf recognition. - /// An optional context object containing information about the operation, such as a unique identifier or custom metadata. - /// An optional CancellationToken to cancel the request. - /// Returns an HTTP response with a 200 status code for success, or an HTTP failure error code in case of an error. - public virtual async Task StopContinuousDtmfRecognitionAsync(CommunicationIdentifier targetParticipant, string operationContext = default, - CancellationToken cancellationToken = default) - { - using DiagnosticScope scope = _clientDiagnostics.CreateScope($"{nameof(CallMedia)}.{nameof(StopContinuousDtmfRecognition)}"); - scope.Start(); - try - { - ContinuousDtmfRecognitionRequestInternal request = new(CommunicationIdentifierSerializer.Serialize(targetParticipant)) - { - OperationContext = operationContext - }; - - return await CallMediaRestClient.StopContinuousDtmfRecognitionAsync(CallConnectionId, request, cancellationToken).ConfigureAwait(false); - } - catch (Exception ex) - { - scope.Failed(ex); - throw; - } - } - - /// - /// Send Dtmf tones in async mode. - /// - /// A list of Tones to be sent. - /// A target participant identifier for starting continuous Dtmf recognition. - /// An optional context object containing information about the operation, such as a unique identifier or custom metadata. - /// An optional CancellationToken to cancel the request. - /// Returns a Response containing a SendDtmfResult object indicating the result of the send operation. - public virtual async Task> SendDtmfAsync(IEnumerable tones, CommunicationIdentifier targetParticipant, - string operationContext = default, CancellationToken cancellationToken = default) - { - using DiagnosticScope scope = _clientDiagnostics.CreateScope($"{nameof(CallMedia)}.{nameof(SendDtmf)}"); - scope.Start(); - try - { - SendDtmfRequestInternal request = request = new(tones, CommunicationIdentifierSerializer.Serialize(targetParticipant)); - - request.OperationContext = operationContext; - - var response = await CallMediaRestClient.SendDtmfAsync(CallConnectionId, request, cancellationToken).ConfigureAwait(false); - - var result = new SendDtmfResult(); - result.SetEventProcessor(EventProcessor, CallConnectionId, request.OperationContext); - - return Response.FromValue(result, response); - } - catch (Exception ex) - { - scope.Failed(ex); - throw; - } - } - - /// - /// Send Dtmf tones. - /// - /// A list of Tones to be sent. - /// A target participant identifier for starting continuous Dtmf recognition. - /// An optional context object containing information about the operation, such as a unique identifier or custom metadata. - /// An optional CancellationToken to cancel the request. - /// Returns a Response containing a SendDtmfResult object indicating the result of the send operation. - public virtual Response SendDtmf(IEnumerable tones, CommunicationIdentifier targetParticipant, - string operationContext = default, CancellationToken cancellationToken = default) - { - using DiagnosticScope scope = _clientDiagnostics.CreateScope($"{nameof(CallMedia)}.{nameof(SendDtmf)}"); - scope.Start(); - try - { - SendDtmfRequestInternal request = new(tones, CommunicationIdentifierSerializer.Serialize(targetParticipant)); - - request.OperationContext = operationContext; - - var response = CallMediaRestClient.SendDtmf(CallConnectionId, request, cancellationToken); - - var result = new SendDtmfResult(); - result.SetEventProcessor(EventProcessor, CallConnectionId, request.OperationContext); - - return Response.FromValue(result, response); - } - catch (Exception ex) - { - scope.Failed(ex); - throw; - } - } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/CallRecording.cs b/sdk/communication/Azure.Communication.CallAutomation/src/CallRecording.cs index 7cda0db688b7..4287beba45b4 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/CallRecording.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/CallRecording.cs @@ -85,15 +85,10 @@ public virtual Response Start(StartRecordingOptions option } } - if (options.ExternalStorage is not null) - { - request.ExternalStorage = TranslateExternalStorageToInternal(options.ExternalStorage); - } - var repeatabilityHeaders = new RepeatabilityHeaders(); return _callRecordingRestClient.StartRecording(request, repeatabilityHeaders.RepeatabilityRequestId, - repeatabilityHeaders.GetRepeatabilityFirstSentString(), + repeatabilityHeaders.RepeatabilityFirstSent, cancellationToken: cancellationToken); } catch (Exception ex) @@ -146,15 +141,10 @@ public virtual async Task> StartAsync(StartRecord } } - if (options.ExternalStorage is not null) - { - request.ExternalStorage = TranslateExternalStorageToInternal(options.ExternalStorage); - } - var repeatabilityHeaders = new RepeatabilityHeaders(); return await _callRecordingRestClient.StartRecordingAsync(request, repeatabilityHeaders.RepeatabilityRequestId, - repeatabilityHeaders.GetRepeatabilityFirstSentString(), + repeatabilityHeaders.RepeatabilityFirstSent, cancellationToken: cancellationToken).ConfigureAwait(false); } catch (Exception ex) @@ -629,24 +619,5 @@ public virtual async Task DeleteAsync(Uri recordingLocation, Cancellat throw; } } - - #region private functions - - private static ExternalStorageInternal TranslateExternalStorageToInternal(ExternalStorage externalStorage) - { - ExternalStorageInternal result = null; - - if (externalStorage is BlobStorage blobStorage) - { - result = new ExternalStorageInternal(blobStorage.StorageType) - { - BlobStorage = new BlobStorageInternal(blobStorage.ContainerUri.AbsoluteUri), - }; - } - - return result; - } - - #endregion private functions } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/CustomBuildHttpPieline.cs b/sdk/communication/Azure.Communication.CallAutomation/src/CustomBuildHttpPieline.cs deleted file mode 100644 index 7accbc51d37b..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/CustomBuildHttpPieline.cs +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using System; -using Azure.Core; -using Azure.Core.Pipeline; - -namespace Azure.Communication.Pipeline -{ - internal static class CustomBuildHttpPieline - { - public static HttpPipeline CustomBuildHttpPipeline(this ClientOptions options, ConnectionString connectionString) - { - string stringSign = new Uri(connectionString.GetRequired("endpoint")).Host; - - var authPolicy = new CustomHMACAuthenticationPolicy(new AzureKeyCredential(connectionString.GetRequired("accesskey")), stringSign); - return HttpPipelineBuilder.Build(options, authPolicy); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/CustomHMACAuthenticationPolicy.cs b/sdk/communication/Azure.Communication.CallAutomation/src/CustomHMACAuthenticationPolicy.cs deleted file mode 100644 index 50cd937ad59d..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/CustomHMACAuthenticationPolicy.cs +++ /dev/null @@ -1,108 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using Azure.Core; -using Azure.Core.Pipeline; -using System; -using System.Globalization; -using System.IO; -using System.Security.Cryptography; -using System.Text; -using System.Threading.Tasks; - -namespace Azure.Communication.Pipeline -{ - internal class CustomHMACAuthenticationPolicy : HttpPipelinePolicy - { - private readonly string DATE_HEADER_NAME = "x-ms-date"; - private readonly AzureKeyCredential _keyCredential; - private readonly string _acsEndpoint; - - public CustomHMACAuthenticationPolicy(AzureKeyCredential keyCredential, string acsEndpoint) - { - _keyCredential = keyCredential; - _acsEndpoint = acsEndpoint; - } - - public override void Process(HttpMessage message, ReadOnlyMemory pipeline) - { - var contentHash = CreateContentHash(message); - AddHeaders(message, contentHash); - ProcessNext(message, pipeline); - } - - public override async ValueTask ProcessAsync(HttpMessage message, ReadOnlyMemory pipeline) - { - var contentHash = await CreateContentHashAsync(message).ConfigureAwait(false); - AddHeaders(message, contentHash); - await ProcessNextAsync(message, pipeline).ConfigureAwait(false); - } - - private static string CreateContentHash(HttpMessage message) - { - var alg = SHA256.Create(); - - using (var memoryStream = new MemoryStream()) - using (var contentHashStream = new CryptoStream(memoryStream, alg, CryptoStreamMode.Write)) - { - message.Request.Content?.WriteTo(contentHashStream, message.CancellationToken); - } - - return Convert.ToBase64String(alg.Hash!); - } - - private static async ValueTask CreateContentHashAsync(HttpMessage message) - { - var alg = SHA256.Create(); - - using (var memoryStream = new MemoryStream()) - using (var contentHashStream = new CryptoStream(memoryStream, alg, CryptoStreamMode.Write)) - { - if (message.Request.Content != null) - await message.Request.Content.WriteToAsync(contentHashStream, message.CancellationToken).ConfigureAwait(false); - } - - return Convert.ToBase64String(alg.Hash!); - } - - private void AddHeaders(HttpMessage message, string contentHash) - { - var utcNowString = DateTimeOffset.UtcNow.ToString("r", CultureInfo.InvariantCulture); - string authorization; - - message.TryGetProperty("uriToSignRequestWith", out var uriToSignWith); - if (uriToSignWith != null && uriToSignWith.GetType() == typeof(Uri)) - { - authorization = GetAuthorizationHeader(message.Request.Method, (Uri)uriToSignWith, contentHash, utcNowString); - } - else - { - authorization = GetAuthorizationHeader(message.Request.Method, message.Request.Uri.ToUri(), contentHash, utcNowString); - } - - message.Request.Headers.SetValue("X-FORWARDED-HOST", _acsEndpoint); - message.Request.Headers.SetValue("x-ms-content-sha256", contentHash); - message.Request.Headers.SetValue(DATE_HEADER_NAME, utcNowString); - message.Request.Headers.SetValue(HttpHeader.Names.Authorization, authorization); - } - - private string GetAuthorizationHeader(RequestMethod method, Uri uri, string contentHash, string date) - { - var host = uri.Authority; - var pathAndQuery = uri.PathAndQuery; - - var stringToSign = $"{method.Method}\n{pathAndQuery}\n{date};{_acsEndpoint};{contentHash}"; - var signature = ComputeHMAC(stringToSign); - - string signedHeaders = $"{DATE_HEADER_NAME};host;x-ms-content-sha256"; - return $"HMAC-SHA256 SignedHeaders={signedHeaders}&Signature={signature}"; - } - - private string ComputeHMAC(string value) - { - using var hmac = new HMACSHA256(Convert.FromBase64String(_keyCredential.Key)); - var hash = hmac.ComputeHash(Encoding.ASCII.GetBytes(value)); - return Convert.ToBase64String(hash); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/AzureCommunicationServicesRestClient.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/AzureCommunicationServicesRestClient.cs index e3633529cbbd..02e4a66c74f3 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/AzureCommunicationServicesRestClient.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/AzureCommunicationServicesRestClient.cs @@ -30,7 +30,7 @@ internal partial class AzureCommunicationServicesRestClient /// The endpoint of the Azure Communication resource. /// Api Version. /// , , or is null. - public AzureCommunicationServicesRestClient(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, Uri endpoint, string apiVersion = "2023-01-15-preview") + public AzureCommunicationServicesRestClient(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, Uri endpoint, string apiVersion = "2023-03-06") { ClientDiagnostics = clientDiagnostics ?? throw new ArgumentNullException(nameof(clientDiagnostics)); _pipeline = pipeline ?? throw new ArgumentNullException(nameof(pipeline)); @@ -38,7 +38,7 @@ public AzureCommunicationServicesRestClient(ClientDiagnostics clientDiagnostics, _apiVersion = apiVersion ?? throw new ArgumentNullException(nameof(apiVersion)); } - internal HttpMessage CreateCreateCallRequest(CreateCallRequestInternal createCallRequest, Guid? repeatabilityRequestID, string repeatabilityFirstSent) + internal HttpMessage CreateCreateCallRequest(CreateCallRequestInternal createCallRequest, Guid? repeatabilityRequestID, DateTimeOffset? repeatabilityFirstSent) { var message = _pipeline.CreateMessage(); var request = message.Request; @@ -54,7 +54,7 @@ internal HttpMessage CreateCreateCallRequest(CreateCallRequestInternal createCal } if (repeatabilityFirstSent != null) { - request.Headers.Add("Repeatability-First-Sent", repeatabilityFirstSent); + request.Headers.Add("Repeatability-First-Sent", repeatabilityFirstSent.Value, "R"); } request.Headers.Add("Accept", "application/json"); request.Headers.Add("Content-Type", "application/json"); @@ -70,7 +70,7 @@ internal HttpMessage CreateCreateCallRequest(CreateCallRequestInternal createCal /// If Repeatability-Request-ID header is specified, then Repeatability-First-Sent header must also be specified. The value should be the date and time at which the request was first created, expressed using the IMF-fixdate form of HTTP-date. Example: Sun, 06 Nov 1994 08:49:37 GMT. /// The cancellation token to use. /// is null. - public async Task> CreateCallAsync(CreateCallRequestInternal createCallRequest, Guid? repeatabilityRequestID = null, string repeatabilityFirstSent = null, CancellationToken cancellationToken = default) + public async Task> CreateCallAsync(CreateCallRequestInternal createCallRequest, Guid? repeatabilityRequestID = null, DateTimeOffset? repeatabilityFirstSent = null, CancellationToken cancellationToken = default) { if (createCallRequest == null) { @@ -99,7 +99,7 @@ public async Task> CreateCallAsync(Cr /// If Repeatability-Request-ID header is specified, then Repeatability-First-Sent header must also be specified. The value should be the date and time at which the request was first created, expressed using the IMF-fixdate form of HTTP-date. Example: Sun, 06 Nov 1994 08:49:37 GMT. /// The cancellation token to use. /// is null. - public Response CreateCall(CreateCallRequestInternal createCallRequest, Guid? repeatabilityRequestID = null, string repeatabilityFirstSent = null, CancellationToken cancellationToken = default) + public Response CreateCall(CreateCallRequestInternal createCallRequest, Guid? repeatabilityRequestID = null, DateTimeOffset? repeatabilityFirstSent = null, CancellationToken cancellationToken = default) { if (createCallRequest == null) { @@ -122,7 +122,7 @@ public Response CreateCall(CreateCallRequestIn } } - internal HttpMessage CreateAnswerCallRequest(AnswerCallRequestInternal answerCallRequest, Guid? repeatabilityRequestID, string repeatabilityFirstSent) + internal HttpMessage CreateAnswerCallRequest(AnswerCallRequestInternal answerCallRequest, Guid? repeatabilityRequestID, DateTimeOffset? repeatabilityFirstSent) { var message = _pipeline.CreateMessage(); var request = message.Request; @@ -138,7 +138,7 @@ internal HttpMessage CreateAnswerCallRequest(AnswerCallRequestInternal answerCal } if (repeatabilityFirstSent != null) { - request.Headers.Add("Repeatability-First-Sent", repeatabilityFirstSent); + request.Headers.Add("Repeatability-First-Sent", repeatabilityFirstSent.Value, "R"); } request.Headers.Add("Accept", "application/json"); request.Headers.Add("Content-Type", "application/json"); @@ -155,7 +155,7 @@ internal HttpMessage CreateAnswerCallRequest(AnswerCallRequestInternal answerCal /// The cancellation token to use. /// is null. /// Answer a call using the IncomingCallContext from Event Grid. - public async Task> AnswerCallAsync(AnswerCallRequestInternal answerCallRequest, Guid? repeatabilityRequestID = null, string repeatabilityFirstSent = null, CancellationToken cancellationToken = default) + public async Task> AnswerCallAsync(AnswerCallRequestInternal answerCallRequest, Guid? repeatabilityRequestID = null, DateTimeOffset? repeatabilityFirstSent = null, CancellationToken cancellationToken = default) { if (answerCallRequest == null) { @@ -185,7 +185,7 @@ public async Task> AnswerCallAsync(An /// The cancellation token to use. /// is null. /// Answer a call using the IncomingCallContext from Event Grid. - public Response AnswerCall(AnswerCallRequestInternal answerCallRequest, Guid? repeatabilityRequestID = null, string repeatabilityFirstSent = null, CancellationToken cancellationToken = default) + public Response AnswerCall(AnswerCallRequestInternal answerCallRequest, Guid? repeatabilityRequestID = null, DateTimeOffset? repeatabilityFirstSent = null, CancellationToken cancellationToken = default) { if (answerCallRequest == null) { @@ -208,7 +208,7 @@ public Response AnswerCall(AnswerCallRequestIn } } - internal HttpMessage CreateRedirectCallRequest(RedirectCallRequestInternal redirectCallRequest, Guid? repeatabilityRequestID, string repeatabilityFirstSent) + internal HttpMessage CreateRedirectCallRequest(RedirectCallRequestInternal redirectCallRequest, Guid? repeatabilityRequestID, DateTimeOffset? repeatabilityFirstSent) { var message = _pipeline.CreateMessage(); var request = message.Request; @@ -224,7 +224,7 @@ internal HttpMessage CreateRedirectCallRequest(RedirectCallRequestInternal redir } if (repeatabilityFirstSent != null) { - request.Headers.Add("Repeatability-First-Sent", repeatabilityFirstSent); + request.Headers.Add("Repeatability-First-Sent", repeatabilityFirstSent.Value, "R"); } request.Headers.Add("Accept", "application/json"); request.Headers.Add("Content-Type", "application/json"); @@ -240,7 +240,7 @@ internal HttpMessage CreateRedirectCallRequest(RedirectCallRequestInternal redir /// If Repeatability-Request-ID header is specified, then Repeatability-First-Sent header must also be specified. The value should be the date and time at which the request was first created, expressed using the IMF-fixdate form of HTTP-date. Example: Sun, 06 Nov 1994 08:49:37 GMT. /// The cancellation token to use. /// is null. - public async Task RedirectCallAsync(RedirectCallRequestInternal redirectCallRequest, Guid? repeatabilityRequestID = null, string repeatabilityFirstSent = null, CancellationToken cancellationToken = default) + public async Task RedirectCallAsync(RedirectCallRequestInternal redirectCallRequest, Guid? repeatabilityRequestID = null, DateTimeOffset? repeatabilityFirstSent = null, CancellationToken cancellationToken = default) { if (redirectCallRequest == null) { @@ -264,7 +264,7 @@ public async Task RedirectCallAsync(RedirectCallRequestInternal redire /// If Repeatability-Request-ID header is specified, then Repeatability-First-Sent header must also be specified. The value should be the date and time at which the request was first created, expressed using the IMF-fixdate form of HTTP-date. Example: Sun, 06 Nov 1994 08:49:37 GMT. /// The cancellation token to use. /// is null. - public Response RedirectCall(RedirectCallRequestInternal redirectCallRequest, Guid? repeatabilityRequestID = null, string repeatabilityFirstSent = null, CancellationToken cancellationToken = default) + public Response RedirectCall(RedirectCallRequestInternal redirectCallRequest, Guid? repeatabilityRequestID = null, DateTimeOffset? repeatabilityFirstSent = null, CancellationToken cancellationToken = default) { if (redirectCallRequest == null) { @@ -282,7 +282,7 @@ public Response RedirectCall(RedirectCallRequestInternal redirectCallRequest, Gu } } - internal HttpMessage CreateRejectCallRequest(RejectCallRequestInternal rejectCallRequest, Guid? repeatabilityRequestID, string repeatabilityFirstSent) + internal HttpMessage CreateRejectCallRequest(RejectCallRequestInternal rejectCallRequest, Guid? repeatabilityRequestID, DateTimeOffset? repeatabilityFirstSent) { var message = _pipeline.CreateMessage(); var request = message.Request; @@ -298,7 +298,7 @@ internal HttpMessage CreateRejectCallRequest(RejectCallRequestInternal rejectCal } if (repeatabilityFirstSent != null) { - request.Headers.Add("Repeatability-First-Sent", repeatabilityFirstSent); + request.Headers.Add("Repeatability-First-Sent", repeatabilityFirstSent.Value, "R"); } request.Headers.Add("Accept", "application/json"); request.Headers.Add("Content-Type", "application/json"); @@ -314,7 +314,7 @@ internal HttpMessage CreateRejectCallRequest(RejectCallRequestInternal rejectCal /// If Repeatability-Request-ID header is specified, then Repeatability-First-Sent header must also be specified. The value should be the date and time at which the request was first created, expressed using the IMF-fixdate form of HTTP-date. Example: Sun, 06 Nov 1994 08:49:37 GMT. /// The cancellation token to use. /// is null. - public async Task RejectCallAsync(RejectCallRequestInternal rejectCallRequest, Guid? repeatabilityRequestID = null, string repeatabilityFirstSent = null, CancellationToken cancellationToken = default) + public async Task RejectCallAsync(RejectCallRequestInternal rejectCallRequest, Guid? repeatabilityRequestID = null, DateTimeOffset? repeatabilityFirstSent = null, CancellationToken cancellationToken = default) { if (rejectCallRequest == null) { @@ -338,7 +338,7 @@ public async Task RejectCallAsync(RejectCallRequestInternal rejectCall /// If Repeatability-Request-ID header is specified, then Repeatability-First-Sent header must also be specified. The value should be the date and time at which the request was first created, expressed using the IMF-fixdate form of HTTP-date. Example: Sun, 06 Nov 1994 08:49:37 GMT. /// The cancellation token to use. /// is null. - public Response RejectCall(RejectCallRequestInternal rejectCallRequest, Guid? repeatabilityRequestID = null, string repeatabilityFirstSent = null, CancellationToken cancellationToken = default) + public Response RejectCall(RejectCallRequestInternal rejectCallRequest, Guid? repeatabilityRequestID = null, DateTimeOffset? repeatabilityFirstSent = null, CancellationToken cancellationToken = default) { if (rejectCallRequest == null) { diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/CallAutomationModelFactory.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/CallAutomationModelFactory.cs index 47bda00e4064..e3df3f824838 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/CallAutomationModelFactory.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/CallAutomationModelFactory.cs @@ -22,22 +22,6 @@ public static TransferCallToParticipantResult TransferCallToParticipantResult(st return new TransferCallToParticipantResult(operationContext); } - /// Initializes a new instance of MuteParticipantsResponse. - /// The operation context provided by client. - /// A new instance for mocking. - public static MuteParticipantsResponse MuteParticipantsResponse(string operationContext = null) - { - return new MuteParticipantsResponse(operationContext); - } - - /// Initializes a new instance of UnmuteParticipantsResponse. - /// The operation context provided by client. - /// A new instance for mocking. - public static UnmuteParticipantsResponse UnmuteParticipantsResponse(string operationContext = null) - { - return new UnmuteParticipantsResponse(operationContext); - } - /// Initializes a new instance of RecordingStateResult. /// /// @@ -48,9 +32,9 @@ public static RecordingStateResult RecordingStateResult(string recordingId = nul } /// Initializes a new instance of ResultInformation. - /// - /// - /// + /// Code of the current result. This can be helpful to Call Automation team to troubleshoot the issue if this result was unexpected. + /// Subcode of the current result. This can be helpful to Call Automation team to troubleshoot the issue if this result was unexpected. + /// Detail message that describes the current result. /// A new instance for mocking. public static ResultInformation ResultInformation(int? code = null, int? subCode = null, string message = null) { @@ -84,7 +68,7 @@ public static CallDisconnected CallDisconnected(string callConnectionId = null, /// Server call ID. /// Correlation ID for event to call correlation. Also called ChainId for skype chain ID. /// Used by customers when calling mid-call actions to correlate the request to the response event. - /// Contains the resulting SIP code/sub-code and message from NGC services. + /// Contains the resulting SIP code, sub-code and message. /// A new instance for mocking. public static CallTransferAccepted CallTransferAccepted(string callConnectionId = null, string serverCallId = null, string correlationId = null, string operationContext = null, ResultInformation resultInformation = null) { @@ -96,7 +80,7 @@ public static CallTransferAccepted CallTransferAccepted(string callConnectionId /// Server call ID. /// Correlation ID for event to call correlation. Also called ChainId for skype chain ID. /// Used by customers when calling mid-call actions to correlate the request to the response event. - /// Contains the resulting SIP code/sub-code and message from NGC services. + /// Contains the resulting SIP code, sub-code and message. /// A new instance for mocking. public static CallTransferFailed CallTransferFailed(string callConnectionId = null, string serverCallId = null, string correlationId = null, string operationContext = null, ResultInformation resultInformation = null) { @@ -106,7 +90,7 @@ public static CallTransferFailed CallTransferFailed(string callConnectionId = nu /// Initializes a new instance of RecordingStateChanged. /// Call connection ID. /// Server call ID. - /// Correlation ID for event to call correlation. Also called ChainId for skype chain ID. + /// Correlation ID for event to call correlation. /// The call recording id. /// /// The time of the recording started. @@ -119,9 +103,9 @@ public static RecordingStateChanged RecordingStateChanged(string callConnectionI /// Initializes a new instance of PlayCompleted. /// Call connection ID. /// Server call ID. - /// Correlation ID for event to call correlation. Also called ChainId for skype chain ID. + /// Correlation ID for event to call correlation. /// Used by customers when calling mid-call actions to correlate the request to the response event. - /// Contains the resulting SIP code/sub-code and message from NGC services. + /// Contains the resulting SIP code, sub-code and message. /// A new instance for mocking. public static PlayCompleted PlayCompleted(string callConnectionId = null, string serverCallId = null, string correlationId = null, string operationContext = null, ResultInformation resultInformation = null) { @@ -131,9 +115,9 @@ public static PlayCompleted PlayCompleted(string callConnectionId = null, string /// Initializes a new instance of PlayFailed. /// Call connection ID. /// Server call ID. - /// Correlation ID for event to call correlation. Also called ChainId for skype chain ID. + /// Correlation ID for event to call correlation. /// Used by customers when calling mid-call actions to correlate the request to the response event. - /// Contains the resulting SIP code/sub-code and message from NGC services. + /// Contains the resulting SIP code, sub-code and message. /// A new instance for mocking. public static PlayFailed PlayFailed(string callConnectionId = null, string serverCallId = null, string correlationId = null, string operationContext = null, ResultInformation resultInformation = null) { @@ -143,7 +127,7 @@ public static PlayFailed PlayFailed(string callConnectionId = null, string serve /// Initializes a new instance of PlayCanceled. /// Call connection ID. /// Server call ID. - /// Correlation ID for event to call correlation. Also called ChainId for skype chain ID. + /// Correlation ID for event to call correlation. /// Used by customers when calling mid-call actions to correlate the request to the response event. /// A new instance for mocking. public static PlayCanceled PlayCanceled(string callConnectionId = null, string serverCallId = null, string correlationId = null, string operationContext = null) @@ -151,16 +135,6 @@ public static PlayCanceled PlayCanceled(string callConnectionId = null, string s return new PlayCanceled(callConnectionId, serverCallId, correlationId, operationContext); } - /// Initializes a new instance of CollectTonesResult. - /// - /// A new instance for mocking. - public static CollectTonesResult CollectTonesResult(IEnumerable tones = null) - { - tones ??= new List(); - - return new CollectTonesResult(tones?.ToList()); - } - /// Initializes a new instance of DtmfResult. /// /// A new instance for mocking. @@ -171,32 +145,12 @@ public static DtmfResult DtmfResult(IEnumerable tones = null) return new DtmfResult(tones?.ToList()); } - /// Initializes a new instance of ChoiceResult. - /// Label is the primary identifier for the choice detected. - /// - /// Phrases are set to the value if choice is selected via phrase detection. - /// If Dtmf input is recognized, then Label will be the identifier for the choice detected and phrases will be set to null - /// - /// A new instance for mocking. - public static ChoiceResult ChoiceResult(string label = null, string recognizedPhrase = null) - { - return new ChoiceResult(label, recognizedPhrase); - } - - /// Initializes a new instance of SpeechResult. - /// The recognized speech in string. - /// A new instance for mocking. - public static SpeechResult SpeechResult(string speech = null) - { - return new SpeechResult(speech); - } - /// Initializes a new instance of RecognizeFailed. /// Call connection ID. /// Server call ID. - /// Correlation ID for event to call correlation. Also called ChainId for skype chain ID. + /// Correlation ID for event to call correlation. /// Used by customers when calling mid-call actions to correlate the request to the response event. - /// Contains the resulting SIP code/sub-code and message from NGC services. + /// Contains the resulting SIP code, sub-code and message. /// A new instance for mocking. public static RecognizeFailed RecognizeFailed(string callConnectionId = null, string serverCallId = null, string correlationId = null, string operationContext = null, ResultInformation resultInformation = null) { @@ -206,82 +160,12 @@ public static RecognizeFailed RecognizeFailed(string callConnectionId = null, st /// Initializes a new instance of RecognizeCanceled. /// Call connection ID. /// Server call ID. - /// Correlation ID for event to call correlation. Also called ChainId for skype chain ID. + /// Correlation ID for event to call correlation. /// Used by customers when calling mid-call actions to correlate the request to the response event. /// A new instance for mocking. public static RecognizeCanceled RecognizeCanceled(string callConnectionId = null, string serverCallId = null, string correlationId = null, string operationContext = null) { return new RecognizeCanceled(callConnectionId, serverCallId, correlationId, operationContext); } - - /// Initializes a new instance of ContinuousDtmfRecognitionToneFailed. - /// Call connection ID. - /// Server call ID. - /// Correlation ID for event to call correlation. Also called ChainId for skype chain ID. - /// Used by customers when calling mid-call actions to correlate the request to the response event. - /// Contains the resulting SIP code/sub-code and message from NGC services. - /// A new instance for mocking. - public static ContinuousDtmfRecognitionToneFailed ContinuousDtmfRecognitionToneFailed(string callConnectionId = null, string serverCallId = null, string correlationId = null, string operationContext = null, ResultInformation resultInformation = null) - { - return new ContinuousDtmfRecognitionToneFailed(callConnectionId, serverCallId, correlationId, operationContext, resultInformation); - } - - /// Initializes a new instance of ContinuousDtmfRecognitionToneReceived. - /// Information about Tone. - /// Call connection ID. - /// Server call ID. - /// Correlation ID for event to call correlation. Also called ChainId or skype chain ID. - /// Used by customers when calling mid-call actions to correlate the request to the response event. - /// Contains the resulting SIP code/sub-code and message from NGC services. - /// A new instance for mocking. - public static ContinuousDtmfRecognitionToneReceived ContinuousDtmfRecognitionToneReceived(ToneInfo toneInfo = null, string callConnectionId = null, string serverCallId = null, string correlationId = null, string operationContext = null, ResultInformation resultInformation = null) - { - return new ContinuousDtmfRecognitionToneReceived(toneInfo, callConnectionId, serverCallId, correlationId, operationContext, resultInformation); - } - - /// Initializes a new instance of ToneInfo. - /// The sequence id which can be used to determine if the same tone was played multiple times or if any tones were missed. - /// - /// A new instance for mocking. - public static ToneInfo ToneInfo(int sequenceId = default, DtmfTone tone = default) - { - return new ToneInfo(sequenceId, tone); - } - - /// Initializes a new instance of ContinuousDtmfRecognitionStopped. - /// Call connection ID. - /// Server call ID. - /// Correlation ID for event to call correlation. Also called ChainId for skype chain ID. - /// Used by customers when calling mid-call actions to correlate the request to the response event. - /// Contains the resulting SIP code/sub-code and message from NGC services. - /// A new instance for mocking. - public static ContinuousDtmfRecognitionStopped ContinuousDtmfRecognitionStopped(string callConnectionId = null, string serverCallId = null, string correlationId = null, string operationContext = null, ResultInformation resultInformation = null) - { - return new ContinuousDtmfRecognitionStopped(callConnectionId, serverCallId, correlationId, operationContext, resultInformation); - } - - /// Initializes a new instance of SendDtmfCompleted. - /// Call connection ID. - /// Server call ID. - /// Correlation ID for event to call correlation. Also called ChainId for skype chain ID. - /// Used by customers when calling mid-call actions to correlate the request to the response event. - /// Contains the resulting SIP code/sub-code and message from NGC services. - /// A new instance for mocking. - public static SendDtmfCompleted SendDtmfCompleted(string callConnectionId = null, string serverCallId = null, string correlationId = null, string operationContext = null, ResultInformation resultInformation = null) - { - return new SendDtmfCompleted(callConnectionId, serverCallId, correlationId, operationContext, resultInformation); - } - - /// Initializes a new instance of SendDtmfFailed. - /// Call connection ID. - /// Server call ID. - /// Correlation ID for event to call correlation. Also called ChainId for skype chain ID. - /// Used by customers when calling mid-call actions to correlate the request to the response event. - /// Contains the resulting SIP code/sub-code and message from NGC services. - /// A new instance for mocking. - public static SendDtmfFailed SendDtmfFailed(string callConnectionId = null, string serverCallId = null, string correlationId = null, string operationContext = null, ResultInformation resultInformation = null) - { - return new SendDtmfFailed(callConnectionId, serverCallId, correlationId, operationContext, resultInformation); - } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/CallConnectionRestClient.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/CallConnectionRestClient.cs index 1db795be953c..7d3a95b6db02 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/CallConnectionRestClient.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/CallConnectionRestClient.cs @@ -30,7 +30,7 @@ internal partial class CallConnectionRestClient /// The endpoint of the Azure Communication resource. /// Api Version. /// , , or is null. - public CallConnectionRestClient(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, Uri endpoint, string apiVersion = "2023-01-15-preview") + public CallConnectionRestClient(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, Uri endpoint, string apiVersion = "2023-03-06") { ClientDiagnostics = clientDiagnostics ?? throw new ArgumentNullException(nameof(clientDiagnostics)); _pipeline = pipeline ?? throw new ArgumentNullException(nameof(pipeline)); @@ -53,7 +53,7 @@ internal HttpMessage CreateGetCallRequest(string callConnectionId) return message; } - /// Get call connection. + /// Get the detail properties of an ongoing call. /// The call connection id. /// The cancellation token to use. /// is null. @@ -80,7 +80,7 @@ public async Task> GetCallAsync(strin } } - /// Get call connection. + /// Get the detail properties of an ongoing call. /// The call connection id. /// The cancellation token to use. /// is null. @@ -122,7 +122,7 @@ internal HttpMessage CreateHangupCallRequest(string callConnectionId) return message; } - /// Hangup the call. + /// Hang up call automation service from the call. This will make call automation service leave the call, but does not terminate if there are more than 1 caller in the call. /// The call connection id. /// The cancellation token to use. /// is null. @@ -144,7 +144,7 @@ public async Task HangupCallAsync(string callConnectionId, Cancellatio } } - /// Hangup the call. + /// Hang up call automation service from the call. This will make call automation service leave the call, but does not terminate if there are more than 1 caller in the call. /// The call connection id. /// The cancellation token to use. /// is null. @@ -166,7 +166,7 @@ public Response HangupCall(string callConnectionId, CancellationToken cancellati } } - internal HttpMessage CreateTerminateCallRequest(string callConnectionId, Guid? repeatabilityRequestID, string repeatabilityFirstSent) + internal HttpMessage CreateTerminateCallRequest(string callConnectionId, Guid? repeatabilityRequestID, DateTimeOffset? repeatabilityFirstSent) { var message = _pipeline.CreateMessage(); var request = message.Request; @@ -184,7 +184,7 @@ internal HttpMessage CreateTerminateCallRequest(string callConnectionId, Guid? r } if (repeatabilityFirstSent != null) { - request.Headers.Add("Repeatability-First-Sent", repeatabilityFirstSent); + request.Headers.Add("Repeatability-First-Sent", repeatabilityFirstSent.Value, "R"); } request.Headers.Add("Accept", "application/json"); return message; @@ -196,7 +196,7 @@ internal HttpMessage CreateTerminateCallRequest(string callConnectionId, Guid? r /// If Repeatability-Request-ID header is specified, then Repeatability-First-Sent header must also be specified. The value should be the date and time at which the request was first created, expressed using the IMF-fixdate form of HTTP-date. Example: Sun, 06 Nov 1994 08:49:37 GMT. /// The cancellation token to use. /// is null. - public async Task TerminateCallAsync(string callConnectionId, Guid? repeatabilityRequestID = null, string repeatabilityFirstSent = null, CancellationToken cancellationToken = default) + public async Task TerminateCallAsync(string callConnectionId, Guid? repeatabilityRequestID = null, DateTimeOffset? repeatabilityFirstSent = null, CancellationToken cancellationToken = default) { if (callConnectionId == null) { @@ -220,7 +220,7 @@ public async Task TerminateCallAsync(string callConnectionId, Guid? re /// If Repeatability-Request-ID header is specified, then Repeatability-First-Sent header must also be specified. The value should be the date and time at which the request was first created, expressed using the IMF-fixdate form of HTTP-date. Example: Sun, 06 Nov 1994 08:49:37 GMT. /// The cancellation token to use. /// is null. - public Response TerminateCall(string callConnectionId, Guid? repeatabilityRequestID = null, string repeatabilityFirstSent = null, CancellationToken cancellationToken = default) + public Response TerminateCall(string callConnectionId, Guid? repeatabilityRequestID = null, DateTimeOffset? repeatabilityFirstSent = null, CancellationToken cancellationToken = default) { if (callConnectionId == null) { @@ -238,7 +238,7 @@ public Response TerminateCall(string callConnectionId, Guid? repeatabilityReques } } - internal HttpMessage CreateTransferToParticipantRequest(string callConnectionId, TransferToParticipantRequestInternal transferToParticipantRequest, Guid? repeatabilityRequestID, string repeatabilityFirstSent) + internal HttpMessage CreateTransferToParticipantRequest(string callConnectionId, TransferToParticipantRequestInternal transferToParticipantRequest, Guid? repeatabilityRequestID, DateTimeOffset? repeatabilityFirstSent) { var message = _pipeline.CreateMessage(); var request = message.Request; @@ -256,7 +256,7 @@ internal HttpMessage CreateTransferToParticipantRequest(string callConnectionId, } if (repeatabilityFirstSent != null) { - request.Headers.Add("Repeatability-First-Sent", repeatabilityFirstSent); + request.Headers.Add("Repeatability-First-Sent", repeatabilityFirstSent.Value, "R"); } request.Headers.Add("Accept", "application/json"); request.Headers.Add("Content-Type", "application/json"); @@ -273,7 +273,7 @@ internal HttpMessage CreateTransferToParticipantRequest(string callConnectionId, /// If Repeatability-Request-ID header is specified, then Repeatability-First-Sent header must also be specified. The value should be the date and time at which the request was first created, expressed using the IMF-fixdate form of HTTP-date. Example: Sun, 06 Nov 1994 08:49:37 GMT. /// The cancellation token to use. /// or is null. - public async Task> TransferToParticipantAsync(string callConnectionId, TransferToParticipantRequestInternal transferToParticipantRequest, Guid? repeatabilityRequestID = null, string repeatabilityFirstSent = null, CancellationToken cancellationToken = default) + public async Task> TransferToParticipantAsync(string callConnectionId, TransferToParticipantRequestInternal transferToParticipantRequest, Guid? repeatabilityRequestID = null, DateTimeOffset? repeatabilityFirstSent = null, CancellationToken cancellationToken = default) { if (callConnectionId == null) { @@ -307,7 +307,7 @@ public async Task> TransferToParticipa /// If Repeatability-Request-ID header is specified, then Repeatability-First-Sent header must also be specified. The value should be the date and time at which the request was first created, expressed using the IMF-fixdate form of HTTP-date. Example: Sun, 06 Nov 1994 08:49:37 GMT. /// The cancellation token to use. /// or is null. - public Response TransferToParticipant(string callConnectionId, TransferToParticipantRequestInternal transferToParticipantRequest, Guid? repeatabilityRequestID = null, string repeatabilityFirstSent = null, CancellationToken cancellationToken = default) + public Response TransferToParticipant(string callConnectionId, TransferToParticipantRequestInternal transferToParticipantRequest, Guid? repeatabilityRequestID = null, DateTimeOffset? repeatabilityFirstSent = null, CancellationToken cancellationToken = default) { if (callConnectionId == null) { @@ -404,7 +404,7 @@ public Response GetParticipants(string callConn } } - internal HttpMessage CreateAddParticipantRequest(string callConnectionId, AddParticipantRequestInternal addParticipantRequest, Guid? repeatabilityRequestID, string repeatabilityFirstSent) + internal HttpMessage CreateAddParticipantRequest(string callConnectionId, AddParticipantRequestInternal addParticipantRequest, Guid? repeatabilityRequestID, DateTimeOffset? repeatabilityFirstSent) { var message = _pipeline.CreateMessage(); var request = message.Request; @@ -422,7 +422,7 @@ internal HttpMessage CreateAddParticipantRequest(string callConnectionId, AddPar } if (repeatabilityFirstSent != null) { - request.Headers.Add("Repeatability-First-Sent", repeatabilityFirstSent); + request.Headers.Add("Repeatability-First-Sent", repeatabilityFirstSent.Value, "R"); } request.Headers.Add("Accept", "application/json"); request.Headers.Add("Content-Type", "application/json"); @@ -432,14 +432,14 @@ internal HttpMessage CreateAddParticipantRequest(string callConnectionId, AddPar return message; } - /// Add participants to the call. + /// Add a participant to the call. /// The call connection Id. /// The AddParticipantRequest to use. /// If specified, the client directs that the request is repeatable; that is, that the client can make the request multiple times with the same Repeatability-Request-Id and get back an appropriate response without the server executing the request multiple times. The value of the Repeatability-Request-Id is an opaque string representing a client-generated unique identifier for the request. It is a version 4 (random) UUID. /// If Repeatability-Request-ID header is specified, then Repeatability-First-Sent header must also be specified. The value should be the date and time at which the request was first created, expressed using the IMF-fixdate form of HTTP-date. Example: Sun, 06 Nov 1994 08:49:37 GMT. /// The cancellation token to use. /// or is null. - public async Task> AddParticipantAsync(string callConnectionId, AddParticipantRequestInternal addParticipantRequest, Guid? repeatabilityRequestID = null, string repeatabilityFirstSent = null, CancellationToken cancellationToken = default) + public async Task> AddParticipantAsync(string callConnectionId, AddParticipantRequestInternal addParticipantRequest, Guid? repeatabilityRequestID = null, DateTimeOffset? repeatabilityFirstSent = null, CancellationToken cancellationToken = default) { if (callConnectionId == null) { @@ -466,14 +466,14 @@ public async Task> AddParticipantAsync( } } - /// Add participants to the call. + /// Add a participant to the call. /// The call connection Id. /// The AddParticipantRequest to use. /// If specified, the client directs that the request is repeatable; that is, that the client can make the request multiple times with the same Repeatability-Request-Id and get back an appropriate response without the server executing the request multiple times. The value of the Repeatability-Request-Id is an opaque string representing a client-generated unique identifier for the request. It is a version 4 (random) UUID. /// If Repeatability-Request-ID header is specified, then Repeatability-First-Sent header must also be specified. The value should be the date and time at which the request was first created, expressed using the IMF-fixdate form of HTTP-date. Example: Sun, 06 Nov 1994 08:49:37 GMT. /// The cancellation token to use. /// or is null. - public Response AddParticipant(string callConnectionId, AddParticipantRequestInternal addParticipantRequest, Guid? repeatabilityRequestID = null, string repeatabilityFirstSent = null, CancellationToken cancellationToken = default) + public Response AddParticipant(string callConnectionId, AddParticipantRequestInternal addParticipantRequest, Guid? repeatabilityRequestID = null, DateTimeOffset? repeatabilityFirstSent = null, CancellationToken cancellationToken = default) { if (callConnectionId == null) { @@ -500,7 +500,7 @@ public Response AddParticipant(string callConnec } } - internal HttpMessage CreateRemoveParticipantRequest(string callConnectionId, RemoveParticipantRequestInternal removeParticipantRequest, Guid? repeatabilityRequestID, string repeatabilityFirstSent) + internal HttpMessage CreateRemoveParticipantRequest(string callConnectionId, RemoveParticipantRequestInternal removeParticipantRequest, Guid? repeatabilityRequestID, DateTimeOffset? repeatabilityFirstSent) { var message = _pipeline.CreateMessage(); var request = message.Request; @@ -518,7 +518,7 @@ internal HttpMessage CreateRemoveParticipantRequest(string callConnectionId, Rem } if (repeatabilityFirstSent != null) { - request.Headers.Add("Repeatability-First-Sent", repeatabilityFirstSent); + request.Headers.Add("Repeatability-First-Sent", repeatabilityFirstSent.Value, "R"); } request.Headers.Add("Accept", "application/json"); request.Headers.Add("Content-Type", "application/json"); @@ -528,14 +528,14 @@ internal HttpMessage CreateRemoveParticipantRequest(string callConnectionId, Rem return message; } - /// Remove participant from the call using identifier. + /// Remove a participant from the call using identifier. /// The call connection id. /// The participant to be removed from the call. /// If specified, the client directs that the request is repeatable; that is, that the client can make the request multiple times with the same Repeatability-Request-Id and get back an appropriate response without the server executing the request multiple times. The value of the Repeatability-Request-Id is an opaque string representing a client-generated unique identifier for the request. It is a version 4 (random) UUID. /// If Repeatability-Request-ID header is specified, then Repeatability-First-Sent header must also be specified. The value should be the date and time at which the request was first created, expressed using the IMF-fixdate form of HTTP-date. Example: Sun, 06 Nov 1994 08:49:37 GMT. /// The cancellation token to use. /// or is null. - public async Task> RemoveParticipantAsync(string callConnectionId, RemoveParticipantRequestInternal removeParticipantRequest, Guid? repeatabilityRequestID = null, string repeatabilityFirstSent = null, CancellationToken cancellationToken = default) + public async Task> RemoveParticipantAsync(string callConnectionId, RemoveParticipantRequestInternal removeParticipantRequest, Guid? repeatabilityRequestID = null, DateTimeOffset? repeatabilityFirstSent = null, CancellationToken cancellationToken = default) { if (callConnectionId == null) { @@ -562,14 +562,14 @@ public async Task> RemoveParticipant } } - /// Remove participant from the call using identifier. + /// Remove a participant from the call using identifier. /// The call connection id. /// The participant to be removed from the call. /// If specified, the client directs that the request is repeatable; that is, that the client can make the request multiple times with the same Repeatability-Request-Id and get back an appropriate response without the server executing the request multiple times. The value of the Repeatability-Request-Id is an opaque string representing a client-generated unique identifier for the request. It is a version 4 (random) UUID. /// If Repeatability-Request-ID header is specified, then Repeatability-First-Sent header must also be specified. The value should be the date and time at which the request was first created, expressed using the IMF-fixdate form of HTTP-date. Example: Sun, 06 Nov 1994 08:49:37 GMT. /// The cancellation token to use. /// or is null. - public Response RemoveParticipant(string callConnectionId, RemoveParticipantRequestInternal removeParticipantRequest, Guid? repeatabilityRequestID = null, string repeatabilityFirstSent = null, CancellationToken cancellationToken = default) + public Response RemoveParticipant(string callConnectionId, RemoveParticipantRequestInternal removeParticipantRequest, Guid? repeatabilityRequestID = null, DateTimeOffset? repeatabilityFirstSent = null, CancellationToken cancellationToken = default) { if (callConnectionId == null) { @@ -596,157 +596,48 @@ public Response RemoveParticipant(string call } } - internal HttpMessage CreateMuteRequest(string callConnectionId, MuteParticipantsRequestInternal muteParticipantsRequest, Guid? repeatabilityRequestID, string repeatabilityFirstSent) + internal HttpMessage CreateGetParticipantRequest(string callConnectionId, string participantRawId) { var message = _pipeline.CreateMessage(); var request = message.Request; - request.Method = RequestMethod.Post; + request.Method = RequestMethod.Get; var uri = new RawRequestUriBuilder(); uri.Reset(_endpoint); uri.AppendPath("/calling/callConnections/", false); uri.AppendPath(callConnectionId, true); - uri.AppendPath("/participants:mute", false); + uri.AppendPath("/participants/", false); + uri.AppendPath(participantRawId, true); uri.AppendQuery("api-version", _apiVersion, true); request.Uri = uri; - if (repeatabilityRequestID != null) - { - request.Headers.Add("Repeatability-Request-ID", repeatabilityRequestID.Value); - } - if (repeatabilityFirstSent != null) - { - request.Headers.Add("Repeatability-First-Sent", repeatabilityFirstSent); - } request.Headers.Add("Accept", "application/json"); - request.Headers.Add("Content-Type", "application/json"); - var content = new Utf8JsonRequestContent(); - content.JsonWriter.WriteObjectValue(muteParticipantsRequest); - request.Content = content; return message; } - /// Mute participants from the call using identifier. - /// The call connection id. - /// The participants to be muted from the call. - /// If specified, the client directs that the request is repeatable; that is, that the client can make the request multiple times with the same Repeatability-Request-Id and get back an appropriate response without the server executing the request multiple times. The value of the Repeatability-Request-Id is an opaque string representing a client-generated unique identifier for the request. It is a version 4 (random) UUID. - /// If Repeatability-Request-ID header is specified, then Repeatability-First-Sent header must also be specified. The value should be the date and time at which the request was first created, expressed using the IMF-fixdate form of HTTP-date. Example: Sun, 06 Nov 1994 08:49:37 GMT. - /// The cancellation token to use. - /// or is null. - public async Task> MuteAsync(string callConnectionId, MuteParticipantsRequestInternal muteParticipantsRequest, Guid? repeatabilityRequestID = null, string repeatabilityFirstSent = null, CancellationToken cancellationToken = default) - { - if (callConnectionId == null) - { - throw new ArgumentNullException(nameof(callConnectionId)); - } - if (muteParticipantsRequest == null) - { - throw new ArgumentNullException(nameof(muteParticipantsRequest)); - } - - using var message = CreateMuteRequest(callConnectionId, muteParticipantsRequest, repeatabilityRequestID, repeatabilityFirstSent); - await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); - switch (message.Response.Status) - { - case 202: - { - MuteParticipantsResponse value = default; - using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, default, cancellationToken).ConfigureAwait(false); - value = MuteParticipantsResponse.DeserializeMuteParticipantsResponse(document.RootElement); - return Response.FromValue(value, message.Response); - } - default: - throw new RequestFailedException(message.Response); - } - } - - /// Mute participants from the call using identifier. - /// The call connection id. - /// The participants to be muted from the call. - /// If specified, the client directs that the request is repeatable; that is, that the client can make the request multiple times with the same Repeatability-Request-Id and get back an appropriate response without the server executing the request multiple times. The value of the Repeatability-Request-Id is an opaque string representing a client-generated unique identifier for the request. It is a version 4 (random) UUID. - /// If Repeatability-Request-ID header is specified, then Repeatability-First-Sent header must also be specified. The value should be the date and time at which the request was first created, expressed using the IMF-fixdate form of HTTP-date. Example: Sun, 06 Nov 1994 08:49:37 GMT. - /// The cancellation token to use. - /// or is null. - public Response Mute(string callConnectionId, MuteParticipantsRequestInternal muteParticipantsRequest, Guid? repeatabilityRequestID = null, string repeatabilityFirstSent = null, CancellationToken cancellationToken = default) - { - if (callConnectionId == null) - { - throw new ArgumentNullException(nameof(callConnectionId)); - } - if (muteParticipantsRequest == null) - { - throw new ArgumentNullException(nameof(muteParticipantsRequest)); - } - - using var message = CreateMuteRequest(callConnectionId, muteParticipantsRequest, repeatabilityRequestID, repeatabilityFirstSent); - _pipeline.Send(message, cancellationToken); - switch (message.Response.Status) - { - case 202: - { - MuteParticipantsResponse value = default; - using var document = JsonDocument.Parse(message.Response.ContentStream); - value = MuteParticipantsResponse.DeserializeMuteParticipantsResponse(document.RootElement); - return Response.FromValue(value, message.Response); - } - default: - throw new RequestFailedException(message.Response); - } - } - - internal HttpMessage CreateUnmuteRequest(string callConnectionId, UnmuteParticipantsRequestInternal unmuteParticipantsRequest, Guid? repeatabilityRequestID, string repeatabilityFirstSent) - { - var message = _pipeline.CreateMessage(); - var request = message.Request; - request.Method = RequestMethod.Post; - var uri = new RawRequestUriBuilder(); - uri.Reset(_endpoint); - uri.AppendPath("/calling/callConnections/", false); - uri.AppendPath(callConnectionId, true); - uri.AppendPath("/participants:unmute", false); - uri.AppendQuery("api-version", _apiVersion, true); - request.Uri = uri; - if (repeatabilityRequestID != null) - { - request.Headers.Add("Repeatability-Request-ID", repeatabilityRequestID.Value); - } - if (repeatabilityFirstSent != null) - { - request.Headers.Add("Repeatability-First-Sent", repeatabilityFirstSent); - } - request.Headers.Add("Accept", "application/json"); - request.Headers.Add("Content-Type", "application/json"); - var content = new Utf8JsonRequestContent(); - content.JsonWriter.WriteObjectValue(unmuteParticipantsRequest); - request.Content = content; - return message; - } - - /// Unmute participants from the call using identifier. - /// The call connection id. - /// The participants to be unmuted from the call. - /// If specified, the client directs that the request is repeatable; that is, that the client can make the request multiple times with the same Repeatability-Request-Id and get back an appropriate response without the server executing the request multiple times. The value of the Repeatability-Request-Id is an opaque string representing a client-generated unique identifier for the request. It is a version 4 (random) UUID. - /// If Repeatability-Request-ID header is specified, then Repeatability-First-Sent header must also be specified. The value should be the date and time at which the request was first created, expressed using the IMF-fixdate form of HTTP-date. Example: Sun, 06 Nov 1994 08:49:37 GMT. + /// Get participant from a call. + /// The call connection Id. + /// Raw id of the participant to retrieve. /// The cancellation token to use. - /// or is null. - public async Task> UnmuteAsync(string callConnectionId, UnmuteParticipantsRequestInternal unmuteParticipantsRequest, Guid? repeatabilityRequestID = null, string repeatabilityFirstSent = null, CancellationToken cancellationToken = default) + /// or is null. + public async Task> GetParticipantAsync(string callConnectionId, string participantRawId, CancellationToken cancellationToken = default) { if (callConnectionId == null) { throw new ArgumentNullException(nameof(callConnectionId)); } - if (unmuteParticipantsRequest == null) + if (participantRawId == null) { - throw new ArgumentNullException(nameof(unmuteParticipantsRequest)); + throw new ArgumentNullException(nameof(participantRawId)); } - using var message = CreateUnmuteRequest(callConnectionId, unmuteParticipantsRequest, repeatabilityRequestID, repeatabilityFirstSent); + using var message = CreateGetParticipantRequest(callConnectionId, participantRawId); await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); switch (message.Response.Status) { - case 202: + case 200: { - UnmuteParticipantsResponse value = default; + CallParticipantInternal value = default; using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, default, cancellationToken).ConfigureAwait(false); - value = UnmuteParticipantsResponse.DeserializeUnmuteParticipantsResponse(document.RootElement); + value = CallParticipantInternal.DeserializeCallParticipantInternal(document.RootElement); return Response.FromValue(value, message.Response); } default: @@ -754,33 +645,31 @@ public async Task> UnmuteAsync(string callC } } - /// Unmute participants from the call using identifier. - /// The call connection id. - /// The participants to be unmuted from the call. - /// If specified, the client directs that the request is repeatable; that is, that the client can make the request multiple times with the same Repeatability-Request-Id and get back an appropriate response without the server executing the request multiple times. The value of the Repeatability-Request-Id is an opaque string representing a client-generated unique identifier for the request. It is a version 4 (random) UUID. - /// If Repeatability-Request-ID header is specified, then Repeatability-First-Sent header must also be specified. The value should be the date and time at which the request was first created, expressed using the IMF-fixdate form of HTTP-date. Example: Sun, 06 Nov 1994 08:49:37 GMT. + /// Get participant from a call. + /// The call connection Id. + /// Raw id of the participant to retrieve. /// The cancellation token to use. - /// or is null. - public Response Unmute(string callConnectionId, UnmuteParticipantsRequestInternal unmuteParticipantsRequest, Guid? repeatabilityRequestID = null, string repeatabilityFirstSent = null, CancellationToken cancellationToken = default) + /// or is null. + public Response GetParticipant(string callConnectionId, string participantRawId, CancellationToken cancellationToken = default) { if (callConnectionId == null) { throw new ArgumentNullException(nameof(callConnectionId)); } - if (unmuteParticipantsRequest == null) + if (participantRawId == null) { - throw new ArgumentNullException(nameof(unmuteParticipantsRequest)); + throw new ArgumentNullException(nameof(participantRawId)); } - using var message = CreateUnmuteRequest(callConnectionId, unmuteParticipantsRequest, repeatabilityRequestID, repeatabilityFirstSent); + using var message = CreateGetParticipantRequest(callConnectionId, participantRawId); _pipeline.Send(message, cancellationToken); switch (message.Response.Status) { - case 202: + case 200: { - UnmuteParticipantsResponse value = default; + CallParticipantInternal value = default; using var document = JsonDocument.Parse(message.Response.ContentStream); - value = UnmuteParticipantsResponse.DeserializeUnmuteParticipantsResponse(document.RootElement); + value = CallParticipantInternal.DeserializeCallParticipantInternal(document.RootElement); return Response.FromValue(value, message.Response); } default: @@ -788,48 +677,44 @@ public Response Unmute(string callConnectionId, Unmu } } - internal HttpMessage CreateGetParticipantRequest(string callConnectionId, string participantRawId) + internal HttpMessage CreateGetParticipantsNextPageRequest(string nextLink, string callConnectionId) { var message = _pipeline.CreateMessage(); var request = message.Request; request.Method = RequestMethod.Get; var uri = new RawRequestUriBuilder(); uri.Reset(_endpoint); - uri.AppendPath("/calling/callConnections/", false); - uri.AppendPath(callConnectionId, true); - uri.AppendPath("/participants/", false); - uri.AppendPath(participantRawId, true); - uri.AppendQuery("api-version", _apiVersion, true); + uri.AppendRawNextLink(nextLink, false); request.Uri = uri; request.Headers.Add("Accept", "application/json"); return message; } - /// Get participant from a call. + /// Get participants from a call. + /// The URL to the next page of results. /// The call connection Id. - /// Raw id of the participant to retrieve. /// The cancellation token to use. - /// or is null. - public async Task> GetParticipantAsync(string callConnectionId, string participantRawId, CancellationToken cancellationToken = default) + /// or is null. + public async Task> GetParticipantsNextPageAsync(string nextLink, string callConnectionId, CancellationToken cancellationToken = default) { - if (callConnectionId == null) + if (nextLink == null) { - throw new ArgumentNullException(nameof(callConnectionId)); + throw new ArgumentNullException(nameof(nextLink)); } - if (participantRawId == null) + if (callConnectionId == null) { - throw new ArgumentNullException(nameof(participantRawId)); + throw new ArgumentNullException(nameof(callConnectionId)); } - using var message = CreateGetParticipantRequest(callConnectionId, participantRawId); + using var message = CreateGetParticipantsNextPageRequest(nextLink, callConnectionId); await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); switch (message.Response.Status) { case 200: { - CallParticipantInternal value = default; + GetParticipantsResponseInternal value = default; using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, default, cancellationToken).ConfigureAwait(false); - value = CallParticipantInternal.DeserializeCallParticipantInternal(document.RootElement); + value = GetParticipantsResponseInternal.DeserializeGetParticipantsResponseInternal(document.RootElement); return Response.FromValue(value, message.Response); } default: @@ -837,31 +722,31 @@ public async Task> GetParticipantAsync(string } } - /// Get participant from a call. + /// Get participants from a call. + /// The URL to the next page of results. /// The call connection Id. - /// Raw id of the participant to retrieve. /// The cancellation token to use. - /// or is null. - public Response GetParticipant(string callConnectionId, string participantRawId, CancellationToken cancellationToken = default) + /// or is null. + public Response GetParticipantsNextPage(string nextLink, string callConnectionId, CancellationToken cancellationToken = default) { - if (callConnectionId == null) + if (nextLink == null) { - throw new ArgumentNullException(nameof(callConnectionId)); + throw new ArgumentNullException(nameof(nextLink)); } - if (participantRawId == null) + if (callConnectionId == null) { - throw new ArgumentNullException(nameof(participantRawId)); + throw new ArgumentNullException(nameof(callConnectionId)); } - using var message = CreateGetParticipantRequest(callConnectionId, participantRawId); + using var message = CreateGetParticipantsNextPageRequest(nextLink, callConnectionId); _pipeline.Send(message, cancellationToken); switch (message.Response.Status) { case 200: { - CallParticipantInternal value = default; + GetParticipantsResponseInternal value = default; using var document = JsonDocument.Parse(message.Response.ContentStream); - value = CallParticipantInternal.DeserializeCallParticipantInternal(document.RootElement); + value = GetParticipantsResponseInternal.DeserializeGetParticipantsResponseInternal(document.RootElement); return Response.FromValue(value, message.Response); } default: diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/CallMediaRestClient.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/CallMediaRestClient.cs index c518ab9f4cf0..7f78968da351 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/CallMediaRestClient.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/CallMediaRestClient.cs @@ -29,7 +29,7 @@ internal partial class CallMediaRestClient /// The endpoint of the Azure Communication resource. /// Api Version. /// , , or is null. - public CallMediaRestClient(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, Uri endpoint, string apiVersion = "2023-01-15-preview") + public CallMediaRestClient(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, Uri endpoint, string apiVersion = "2023-03-06") { ClientDiagnostics = clientDiagnostics ?? throw new ArgumentNullException(nameof(clientDiagnostics)); _pipeline = pipeline ?? throw new ArgumentNullException(nameof(pipeline)); @@ -244,227 +244,5 @@ public Response Recognize(string callConnectionId, RecognizeRequestInternal reco throw new RequestFailedException(message.Response); } } - - internal HttpMessage CreateStartContinuousDtmfRecognitionRequest(string callConnectionId, ContinuousDtmfRecognitionRequestInternal continuousDtmfRecognitionRequest) - { - var message = _pipeline.CreateMessage(); - var request = message.Request; - request.Method = RequestMethod.Post; - var uri = new RawRequestUriBuilder(); - uri.Reset(_endpoint); - uri.AppendPath("/calling/callConnections/", false); - uri.AppendPath(callConnectionId, true); - uri.AppendPath(":startContinuousDtmfRecognition", false); - uri.AppendQuery("api-version", _apiVersion, true); - request.Uri = uri; - request.Headers.Add("Accept", "application/json"); - request.Headers.Add("Content-Type", "application/json"); - var content = new Utf8JsonRequestContent(); - content.JsonWriter.WriteObjectValue(continuousDtmfRecognitionRequest); - request.Content = content; - return message; - } - - /// Start continuous Dtmf recognition by subscribing to tones. - /// The call connection id. - /// The continuous recognize request. - /// The cancellation token to use. - /// or is null. - public async Task StartContinuousDtmfRecognitionAsync(string callConnectionId, ContinuousDtmfRecognitionRequestInternal continuousDtmfRecognitionRequest, CancellationToken cancellationToken = default) - { - if (callConnectionId == null) - { - throw new ArgumentNullException(nameof(callConnectionId)); - } - if (continuousDtmfRecognitionRequest == null) - { - throw new ArgumentNullException(nameof(continuousDtmfRecognitionRequest)); - } - - using var message = CreateStartContinuousDtmfRecognitionRequest(callConnectionId, continuousDtmfRecognitionRequest); - await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); - switch (message.Response.Status) - { - case 200: - return message.Response; - default: - throw new RequestFailedException(message.Response); - } - } - - /// Start continuous Dtmf recognition by subscribing to tones. - /// The call connection id. - /// The continuous recognize request. - /// The cancellation token to use. - /// or is null. - public Response StartContinuousDtmfRecognition(string callConnectionId, ContinuousDtmfRecognitionRequestInternal continuousDtmfRecognitionRequest, CancellationToken cancellationToken = default) - { - if (callConnectionId == null) - { - throw new ArgumentNullException(nameof(callConnectionId)); - } - if (continuousDtmfRecognitionRequest == null) - { - throw new ArgumentNullException(nameof(continuousDtmfRecognitionRequest)); - } - - using var message = CreateStartContinuousDtmfRecognitionRequest(callConnectionId, continuousDtmfRecognitionRequest); - _pipeline.Send(message, cancellationToken); - switch (message.Response.Status) - { - case 200: - return message.Response; - default: - throw new RequestFailedException(message.Response); - } - } - - internal HttpMessage CreateStopContinuousDtmfRecognitionRequest(string callConnectionId, ContinuousDtmfRecognitionRequestInternal continuousDtmfRecognitionRequest) - { - var message = _pipeline.CreateMessage(); - var request = message.Request; - request.Method = RequestMethod.Post; - var uri = new RawRequestUriBuilder(); - uri.Reset(_endpoint); - uri.AppendPath("/calling/callConnections/", false); - uri.AppendPath(callConnectionId, true); - uri.AppendPath(":stopContinuousDtmfRecognition", false); - uri.AppendQuery("api-version", _apiVersion, true); - request.Uri = uri; - request.Headers.Add("Accept", "application/json"); - request.Headers.Add("Content-Type", "application/json"); - var content = new Utf8JsonRequestContent(); - content.JsonWriter.WriteObjectValue(continuousDtmfRecognitionRequest); - request.Content = content; - return message; - } - - /// Stop continuous Dtmf recognition by unsubscribing to tones. - /// The call connection id. - /// The continuous recognize request. - /// The cancellation token to use. - /// or is null. - public async Task StopContinuousDtmfRecognitionAsync(string callConnectionId, ContinuousDtmfRecognitionRequestInternal continuousDtmfRecognitionRequest, CancellationToken cancellationToken = default) - { - if (callConnectionId == null) - { - throw new ArgumentNullException(nameof(callConnectionId)); - } - if (continuousDtmfRecognitionRequest == null) - { - throw new ArgumentNullException(nameof(continuousDtmfRecognitionRequest)); - } - - using var message = CreateStopContinuousDtmfRecognitionRequest(callConnectionId, continuousDtmfRecognitionRequest); - await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); - switch (message.Response.Status) - { - case 200: - return message.Response; - default: - throw new RequestFailedException(message.Response); - } - } - - /// Stop continuous Dtmf recognition by unsubscribing to tones. - /// The call connection id. - /// The continuous recognize request. - /// The cancellation token to use. - /// or is null. - public Response StopContinuousDtmfRecognition(string callConnectionId, ContinuousDtmfRecognitionRequestInternal continuousDtmfRecognitionRequest, CancellationToken cancellationToken = default) - { - if (callConnectionId == null) - { - throw new ArgumentNullException(nameof(callConnectionId)); - } - if (continuousDtmfRecognitionRequest == null) - { - throw new ArgumentNullException(nameof(continuousDtmfRecognitionRequest)); - } - - using var message = CreateStopContinuousDtmfRecognitionRequest(callConnectionId, continuousDtmfRecognitionRequest); - _pipeline.Send(message, cancellationToken); - switch (message.Response.Status) - { - case 200: - return message.Response; - default: - throw new RequestFailedException(message.Response); - } - } - - internal HttpMessage CreateSendDtmfRequest(string callConnectionId, SendDtmfRequestInternal sendDtmfRequest) - { - var message = _pipeline.CreateMessage(); - var request = message.Request; - request.Method = RequestMethod.Post; - var uri = new RawRequestUriBuilder(); - uri.Reset(_endpoint); - uri.AppendPath("/calling/callConnections/", false); - uri.AppendPath(callConnectionId, true); - uri.AppendPath(":sendDtmf", false); - uri.AppendQuery("api-version", _apiVersion, true); - request.Uri = uri; - request.Headers.Add("Accept", "application/json"); - request.Headers.Add("Content-Type", "application/json"); - var content = new Utf8JsonRequestContent(); - content.JsonWriter.WriteObjectValue(sendDtmfRequest); - request.Content = content; - return message; - } - - /// Send dtmf tones. - /// The call connection id. - /// The send dtmf request. - /// The cancellation token to use. - /// or is null. - public async Task SendDtmfAsync(string callConnectionId, SendDtmfRequestInternal sendDtmfRequest, CancellationToken cancellationToken = default) - { - if (callConnectionId == null) - { - throw new ArgumentNullException(nameof(callConnectionId)); - } - if (sendDtmfRequest == null) - { - throw new ArgumentNullException(nameof(sendDtmfRequest)); - } - - using var message = CreateSendDtmfRequest(callConnectionId, sendDtmfRequest); - await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); - switch (message.Response.Status) - { - case 202: - return message.Response; - default: - throw new RequestFailedException(message.Response); - } - } - - /// Send dtmf tones. - /// The call connection id. - /// The send dtmf request. - /// The cancellation token to use. - /// or is null. - public Response SendDtmf(string callConnectionId, SendDtmfRequestInternal sendDtmfRequest, CancellationToken cancellationToken = default) - { - if (callConnectionId == null) - { - throw new ArgumentNullException(nameof(callConnectionId)); - } - if (sendDtmfRequest == null) - { - throw new ArgumentNullException(nameof(sendDtmfRequest)); - } - - using var message = CreateSendDtmfRequest(callConnectionId, sendDtmfRequest); - _pipeline.Send(message, cancellationToken); - switch (message.Response.Status) - { - case 202: - return message.Response; - default: - throw new RequestFailedException(message.Response); - } - } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/CallRecordingRestClient.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/CallRecordingRestClient.cs index f00539ca242e..4ea436288ff2 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/CallRecordingRestClient.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/CallRecordingRestClient.cs @@ -30,7 +30,7 @@ internal partial class CallRecordingRestClient /// The endpoint of the Azure Communication resource. /// Api Version. /// , , or is null. - public CallRecordingRestClient(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, Uri endpoint, string apiVersion = "2023-01-15-preview") + public CallRecordingRestClient(ClientDiagnostics clientDiagnostics, HttpPipeline pipeline, Uri endpoint, string apiVersion = "2023-03-06") { ClientDiagnostics = clientDiagnostics ?? throw new ArgumentNullException(nameof(clientDiagnostics)); _pipeline = pipeline ?? throw new ArgumentNullException(nameof(pipeline)); @@ -38,7 +38,7 @@ public CallRecordingRestClient(ClientDiagnostics clientDiagnostics, HttpPipeline _apiVersion = apiVersion ?? throw new ArgumentNullException(nameof(apiVersion)); } - internal HttpMessage CreateStartRecordingRequest(StartCallRecordingRequestInternal startCallRecording, Guid? repeatabilityRequestID, string repeatabilityFirstSent) + internal HttpMessage CreateStartRecordingRequest(StartCallRecordingRequestInternal startCallRecording, Guid? repeatabilityRequestID, DateTimeOffset? repeatabilityFirstSent) { var message = _pipeline.CreateMessage(); var request = message.Request; @@ -54,7 +54,7 @@ internal HttpMessage CreateStartRecordingRequest(StartCallRecordingRequestIntern } if (repeatabilityFirstSent != null) { - request.Headers.Add("Repeatability-First-Sent", repeatabilityFirstSent); + request.Headers.Add("Repeatability-First-Sent", repeatabilityFirstSent.Value, "R"); } request.Headers.Add("Accept", "application/json"); request.Headers.Add("Content-Type", "application/json"); @@ -70,7 +70,7 @@ internal HttpMessage CreateStartRecordingRequest(StartCallRecordingRequestIntern /// If Repeatability-Request-ID header is specified, then Repeatability-First-Sent header must also be specified. The value should be the date and time at which the request was first created, expressed using the IMF-fixdate form of HTTP-date. Example: Sun, 06 Nov 1994 08:49:37 GMT. /// The cancellation token to use. /// is null. - public async Task> StartRecordingAsync(StartCallRecordingRequestInternal startCallRecording, Guid? repeatabilityRequestID = null, string repeatabilityFirstSent = null, CancellationToken cancellationToken = default) + public async Task> StartRecordingAsync(StartCallRecordingRequestInternal startCallRecording, Guid? repeatabilityRequestID = null, DateTimeOffset? repeatabilityFirstSent = null, CancellationToken cancellationToken = default) { if (startCallRecording == null) { @@ -99,7 +99,7 @@ public async Task> StartRecordingAsync(StartCallR /// If Repeatability-Request-ID header is specified, then Repeatability-First-Sent header must also be specified. The value should be the date and time at which the request was first created, expressed using the IMF-fixdate form of HTTP-date. Example: Sun, 06 Nov 1994 08:49:37 GMT. /// The cancellation token to use. /// is null. - public Response StartRecording(StartCallRecordingRequestInternal startCallRecording, Guid? repeatabilityRequestID = null, string repeatabilityFirstSent = null, CancellationToken cancellationToken = default) + public Response StartRecording(StartCallRecordingRequestInternal startCallRecording, Guid? repeatabilityRequestID = null, DateTimeOffset? repeatabilityFirstSent = null, CancellationToken cancellationToken = default) { if (startCallRecording == null) { diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/AddParticipantFailedInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/AddParticipantFailedInternal.cs index cb5f2081fc56..0b5dc694250f 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/AddParticipantFailedInternal.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/AddParticipantFailedInternal.cs @@ -9,7 +9,7 @@ namespace Azure.Communication.CallAutomation { - /// The failed to add participant event. + /// The failed to add participants event. internal partial class AddParticipantFailedInternal { /// Initializes a new instance of AddParticipantFailedInternal. @@ -22,7 +22,7 @@ internal AddParticipantFailedInternal() /// Server call ID. /// Correlation ID for event to call correlation. Also called ChainId for skype chain ID. /// Used by customers when calling mid-call actions to correlate the request to the response event. - /// Contains the resulting SIP code/sub-code and message from NGC services. + /// Contains the resulting SIP code, sub-code and message. /// Participant. internal AddParticipantFailedInternal(string callConnectionId, string serverCallId, string correlationId, string operationContext, ResultInformation resultInformation, CommunicationIdentifierModel participant) { @@ -42,7 +42,7 @@ internal AddParticipantFailedInternal(string callConnectionId, string serverCall public string CorrelationId { get; } /// Used by customers when calling mid-call actions to correlate the request to the response event. public string OperationContext { get; } - /// Contains the resulting SIP code/sub-code and message from NGC services. + /// Contains the resulting SIP code, sub-code and message. public ResultInformation ResultInformation { get; } /// Participant. public CommunicationIdentifierModel Participant { get; } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/AddParticipantRequestInternal.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/AddParticipantRequestInternal.Serialization.cs index ff69e3343153..ca430f38f04f 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/AddParticipantRequestInternal.Serialization.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/AddParticipantRequestInternal.Serialization.cs @@ -37,11 +37,6 @@ void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) writer.WritePropertyName("operationContext"u8); writer.WriteStringValue(OperationContext); } - if (Optional.IsDefined(CustomContext)) - { - writer.WritePropertyName("customContext"u8); - writer.WriteObjectValue(CustomContext); - } writer.WriteEndObject(); } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/AddParticipantRequestInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/AddParticipantRequestInternal.cs index 82fe3f19ef94..94dc36e214bc 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/AddParticipantRequestInternal.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/AddParticipantRequestInternal.cs @@ -43,7 +43,5 @@ public AddParticipantRequestInternal(CommunicationIdentifierModel participantToA public int? InvitationTimeoutInSeconds { get; set; } /// Used by customers when calling mid-call actions to correlate the request to the response event. public string OperationContext { get; set; } - /// Used by customer to send custom context to targets. - public CustomContextInternal CustomContext { get; set; } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/AddParticipantSucceededInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/AddParticipantSucceededInternal.cs index 16ced7486b88..803ac1cc91f8 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/AddParticipantSucceededInternal.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/AddParticipantSucceededInternal.cs @@ -9,7 +9,7 @@ namespace Azure.Communication.CallAutomation { - /// The participant successfully added event. + /// The participants successfully added event. internal partial class AddParticipantSucceededInternal { /// Initializes a new instance of AddParticipantSucceededInternal. @@ -22,7 +22,7 @@ internal AddParticipantSucceededInternal() /// Server call ID. /// Correlation ID for event to call correlation. Also called ChainId for skype chain ID. /// Used by customers when calling mid-call actions to correlate the request to the response event. - /// Contains the resulting SIP code/sub-code and message from NGC services. + /// Contains the resulting SIP code, sub-code and message. /// Participant. internal AddParticipantSucceededInternal(string callConnectionId, string serverCallId, string correlationId, string operationContext, ResultInformation resultInformation, CommunicationIdentifierModel participant) { @@ -42,7 +42,7 @@ internal AddParticipantSucceededInternal(string callConnectionId, string serverC public string CorrelationId { get; } /// Used by customers when calling mid-call actions to correlate the request to the response event. public string OperationContext { get; } - /// Contains the resulting SIP code/sub-code and message from NGC services. + /// Contains the resulting SIP code, sub-code and message. public ResultInformation ResultInformation { get; } /// Participant. public CommunicationIdentifierModel Participant { get; } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/AnswerCallRequestInternal.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/AnswerCallRequestInternal.Serialization.cs index 2687ff70177a..aadc7fffc495 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/AnswerCallRequestInternal.Serialization.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/AnswerCallRequestInternal.Serialization.cs @@ -24,20 +24,10 @@ void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) writer.WritePropertyName("operationContext"u8); writer.WriteStringValue(OperationContext); } - if (Optional.IsDefined(MediaStreamingConfiguration)) + if (Optional.IsDefined(AnsweredBy)) { - writer.WritePropertyName("mediaStreamingConfiguration"u8); - writer.WriteObjectValue(MediaStreamingConfiguration); - } - if (Optional.IsDefined(AzureCognitiveServicesEndpointUrl)) - { - writer.WritePropertyName("azureCognitiveServicesEndpointUrl"u8); - writer.WriteStringValue(AzureCognitiveServicesEndpointUrl); - } - if (Optional.IsDefined(AnsweredByIdentifier)) - { - writer.WritePropertyName("answeredByIdentifier"u8); - writer.WriteObjectValue(AnsweredByIdentifier); + writer.WritePropertyName("answeredBy"u8); + writer.WriteObjectValue(AnsweredBy); } writer.WriteEndObject(); } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/AnswerCallRequestInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/AnswerCallRequestInternal.cs index 52a98a9d01f2..577617747912 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/AnswerCallRequestInternal.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/AnswerCallRequestInternal.cs @@ -33,11 +33,7 @@ public AnswerCallRequestInternal(string incomingCallContext, string callbackUri) public string CallbackUri { get; } /// A customer set value used to track the answering of a call. public string OperationContext { get; set; } - /// Media Streaming Configuration. - public MediaStreamingOptionsInternal MediaStreamingConfiguration { get; set; } - /// The endpoint URL of the Azure Cognitive Services resource attached. - public string AzureCognitiveServicesEndpointUrl { get; set; } /// The identifier of the call automation entity which answers the call. - public CommunicationUserIdentifierModel AnsweredByIdentifier { get; set; } + public CommunicationUserIdentifierModel AnsweredBy { get; set; } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/BlobStorageInternal.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/BlobStorageInternal.Serialization.cs deleted file mode 100644 index ebe44d96f602..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/BlobStorageInternal.Serialization.cs +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System.Text.Json; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - internal partial class BlobStorageInternal : IUtf8JsonSerializable - { - void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) - { - writer.WriteStartObject(); - writer.WritePropertyName("containerUri"u8); - writer.WriteStringValue(ContainerUri); - writer.WriteEndObject(); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/BlobStorageInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/BlobStorageInternal.cs deleted file mode 100644 index bc445e794727..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/BlobStorageInternal.cs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - /// Used to specify Blob container url to recording storage. - internal partial class BlobStorageInternal - { - /// Initializes a new instance of BlobStorageInternal. - /// Url of a container or a location within a container. - /// is null. - public BlobStorageInternal(string containerUri) - { - Argument.AssertNotNull(containerUri, nameof(containerUri)); - - ContainerUri = containerUri; - } - - /// Url of a container or a location within a container. - public string ContainerUri { get; } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CallConnectionPropertiesInternal.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CallConnectionPropertiesInternal.Serialization.cs index c423598401c6..662448b4a3da 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CallConnectionPropertiesInternal.Serialization.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CallConnectionPropertiesInternal.Serialization.cs @@ -25,12 +25,11 @@ internal static CallConnectionPropertiesInternal DeserializeCallConnectionProper Optional> targets = default; Optional callConnectionState = default; Optional callbackUri = default; - Optional mediaSubscriptionId = default; Optional sourceCallerIdNumber = default; Optional sourceDisplayName = default; - Optional sourceIdentity = default; + Optional source = default; Optional correlationId = default; - Optional answeredByIdentifier = default; + Optional answeredBy = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("callConnectionId"u8)) @@ -71,11 +70,6 @@ internal static CallConnectionPropertiesInternal DeserializeCallConnectionProper callbackUri = property.Value.GetString(); continue; } - if (property.NameEquals("mediaSubscriptionId"u8)) - { - mediaSubscriptionId = property.Value.GetString(); - continue; - } if (property.NameEquals("sourceCallerIdNumber"u8)) { if (property.Value.ValueKind == JsonValueKind.Null) @@ -90,13 +84,13 @@ internal static CallConnectionPropertiesInternal DeserializeCallConnectionProper sourceDisplayName = property.Value.GetString(); continue; } - if (property.NameEquals("sourceIdentity"u8)) + if (property.NameEquals("source"u8)) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } - sourceIdentity = CommunicationIdentifierModel.DeserializeCommunicationIdentifierModel(property.Value); + source = CommunicationIdentifierModel.DeserializeCommunicationIdentifierModel(property.Value); continue; } if (property.NameEquals("correlationId"u8)) @@ -104,17 +98,17 @@ internal static CallConnectionPropertiesInternal DeserializeCallConnectionProper correlationId = property.Value.GetString(); continue; } - if (property.NameEquals("answeredByIdentifier"u8)) + if (property.NameEquals("answeredBy"u8)) { if (property.Value.ValueKind == JsonValueKind.Null) { continue; } - answeredByIdentifier = CommunicationUserIdentifierModel.DeserializeCommunicationUserIdentifierModel(property.Value); + answeredBy = CommunicationUserIdentifierModel.DeserializeCommunicationUserIdentifierModel(property.Value); continue; } } - return new CallConnectionPropertiesInternal(callConnectionId.Value, serverCallId.Value, Optional.ToList(targets), Optional.ToNullable(callConnectionState), callbackUri.Value, mediaSubscriptionId.Value, sourceCallerIdNumber.Value, sourceDisplayName.Value, sourceIdentity.Value, correlationId.Value, answeredByIdentifier.Value); + return new CallConnectionPropertiesInternal(callConnectionId.Value, serverCallId.Value, Optional.ToList(targets), Optional.ToNullable(callConnectionState), callbackUri.Value, sourceCallerIdNumber.Value, sourceDisplayName.Value, source.Value, correlationId.Value, answeredBy.Value); } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CallConnectionPropertiesInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CallConnectionPropertiesInternal.cs index e8565c85d7c6..1008d2a0b0fe 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CallConnectionPropertiesInternal.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CallConnectionPropertiesInternal.cs @@ -26,28 +26,26 @@ internal CallConnectionPropertiesInternal() /// The targets of the call. /// The state of the call connection. /// The callback URI. - /// SubscriptionId for media streaming. /// /// The source caller Id, a phone number, that's shown to the PSTN participant being invited. /// Required only when calling a PSTN callee. /// /// Display name of the call if dialing out to a pstn number. - /// Source identity. + /// Source identity. /// The correlation ID. - /// Identity of the answering entity. Only populated when identity is provided in the request. - internal CallConnectionPropertiesInternal(string callConnectionId, string serverCallId, IReadOnlyList targets, CallConnectionState? callConnectionState, string callbackUri, string mediaSubscriptionId, PhoneNumberIdentifierModel sourceCallerIdNumber, string sourceDisplayName, CommunicationIdentifierModel sourceIdentity, string correlationId, CommunicationUserIdentifierModel answeredByIdentifier) + /// Identity of the answering entity. Only populated when identity is provided in the request. + internal CallConnectionPropertiesInternal(string callConnectionId, string serverCallId, IReadOnlyList targets, CallConnectionState? callConnectionState, string callbackUri, PhoneNumberIdentifierModel sourceCallerIdNumber, string sourceDisplayName, CommunicationIdentifierModel source, string correlationId, CommunicationUserIdentifierModel answeredBy) { CallConnectionId = callConnectionId; ServerCallId = serverCallId; Targets = targets; CallConnectionState = callConnectionState; CallbackUri = callbackUri; - MediaSubscriptionId = mediaSubscriptionId; SourceCallerIdNumber = sourceCallerIdNumber; SourceDisplayName = sourceDisplayName; - SourceIdentity = sourceIdentity; + Source = source; CorrelationId = correlationId; - AnsweredByIdentifier = answeredByIdentifier; + AnsweredBy = answeredBy; } /// The call connection id. @@ -60,8 +58,6 @@ internal CallConnectionPropertiesInternal(string callConnectionId, string server public CallConnectionState? CallConnectionState { get; } /// The callback URI. public string CallbackUri { get; } - /// SubscriptionId for media streaming. - public string MediaSubscriptionId { get; } /// /// The source caller Id, a phone number, that's shown to the PSTN participant being invited. /// Required only when calling a PSTN callee. @@ -70,10 +66,10 @@ internal CallConnectionPropertiesInternal(string callConnectionId, string server /// Display name of the call if dialing out to a pstn number. public string SourceDisplayName { get; } /// Source identity. - public CommunicationIdentifierModel SourceIdentity { get; } + public CommunicationIdentifierModel Source { get; } /// The correlation ID. public string CorrelationId { get; } /// Identity of the answering entity. Only populated when identity is provided in the request. - public CommunicationUserIdentifierModel AnsweredByIdentifier { get; } + public CommunicationUserIdentifierModel AnsweredBy { get; } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CallMediaRecognitionType.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CallMediaRecognitionType.cs index f3057da2a955..81ec9e2a3e0a 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CallMediaRecognitionType.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CallMediaRecognitionType.cs @@ -26,18 +26,9 @@ public CallMediaRecognitionType(string value) } private const string DtmfValue = "dtmf"; - private const string SpeechValue = "speech"; - private const string SpeechOrDtmfValue = "speechOrDtmf"; - private const string ChoicesValue = "choices"; /// dtmf. public static CallMediaRecognitionType Dtmf { get; } = new CallMediaRecognitionType(DtmfValue); - /// speech. - public static CallMediaRecognitionType Speech { get; } = new CallMediaRecognitionType(SpeechValue); - /// speechOrDtmf. - public static CallMediaRecognitionType SpeechOrDtmf { get; } = new CallMediaRecognitionType(SpeechOrDtmfValue); - /// choices. - public static CallMediaRecognitionType Choices { get; } = new CallMediaRecognitionType(ChoicesValue); /// Determines if two values are the same. public static bool operator ==(CallMediaRecognitionType left, CallMediaRecognitionType right) => left.Equals(right); /// Determines if two values are not the same. diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CallParticipantInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CallParticipantInternal.cs index 2aeed4397302..51dfd7db26a6 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CallParticipantInternal.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CallParticipantInternal.cs @@ -9,7 +9,7 @@ namespace Azure.Communication.CallAutomation { - /// Contract model of an ACS call participant. + /// A call participant. internal partial class CallParticipantInternal { /// Initializes a new instance of CallParticipantInternal. diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CallTransferAccepted.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CallTransferAccepted.cs index 83b935164f5a..2d557eb9daca 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CallTransferAccepted.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CallTransferAccepted.cs @@ -20,7 +20,7 @@ internal CallTransferAccepted() /// Server call ID. /// Correlation ID for event to call correlation. Also called ChainId for skype chain ID. /// Used by customers when calling mid-call actions to correlate the request to the response event. - /// Contains the resulting SIP code/sub-code and message from NGC services. + /// Contains the resulting SIP code, sub-code and message. internal CallTransferAccepted(string callConnectionId, string serverCallId, string correlationId, string operationContext, ResultInformation resultInformation) { CallConnectionId = callConnectionId; diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CallTransferFailed.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CallTransferFailed.cs index 73c3d3f9a70f..c2e4e3d17bf8 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CallTransferFailed.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CallTransferFailed.cs @@ -20,7 +20,7 @@ internal CallTransferFailed() /// Server call ID. /// Correlation ID for event to call correlation. Also called ChainId for skype chain ID. /// Used by customers when calling mid-call actions to correlate the request to the response event. - /// Contains the resulting SIP code/sub-code and message from NGC services. + /// Contains the resulting SIP code, sub-code and message. internal CallTransferFailed(string callConnectionId, string serverCallId, string correlationId, string operationContext, ResultInformation resultInformation) { CallConnectionId = callConnectionId; diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ChoiceResult.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ChoiceResult.Serialization.cs deleted file mode 100644 index 50f18be24e91..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ChoiceResult.Serialization.cs +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System.Text.Json; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - public partial class ChoiceResult - { - internal static ChoiceResult DeserializeChoiceResult(JsonElement element) - { - if (element.ValueKind == JsonValueKind.Null) - { - return null; - } - Optional label = default; - Optional recognizedPhrase = default; - foreach (var property in element.EnumerateObject()) - { - if (property.NameEquals("label"u8)) - { - label = property.Value.GetString(); - continue; - } - if (property.NameEquals("recognizedPhrase"u8)) - { - recognizedPhrase = property.Value.GetString(); - continue; - } - } - return new ChoiceResult(label.Value, recognizedPhrase.Value); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ChoiceResult.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ChoiceResult.cs deleted file mode 100644 index 1eb8655ae0b4..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ChoiceResult.cs +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -namespace Azure.Communication.CallAutomation -{ - /// The ChoiceResult. - public partial class ChoiceResult - { - /// Initializes a new instance of ChoiceResult. - internal ChoiceResult() - { - } - - /// Initializes a new instance of ChoiceResult. - /// Label is the primary identifier for the choice detected. - /// - /// Phrases are set to the value if choice is selected via phrase detection. - /// If Dtmf input is recognized, then Label will be the identifier for the choice detected and phrases will be set to null - /// - internal ChoiceResult(string label, string recognizedPhrase) - { - Label = label; - RecognizedPhrase = recognizedPhrase; - } - - /// Label is the primary identifier for the choice detected. - public string Label { get; } - /// - /// Phrases are set to the value if choice is selected via phrase detection. - /// If Dtmf input is recognized, then Label will be the identifier for the choice detected and phrases will be set to null - /// - public string RecognizedPhrase { get; } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CollectTonesResult.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CollectTonesResult.Serialization.cs deleted file mode 100644 index 1b0a553c6fac..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CollectTonesResult.Serialization.cs +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System.Collections.Generic; -using System.Text.Json; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - public partial class CollectTonesResult - { - internal static CollectTonesResult DeserializeCollectTonesResult(JsonElement element) - { - if (element.ValueKind == JsonValueKind.Null) - { - return null; - } - Optional> tones = default; - foreach (var property in element.EnumerateObject()) - { - if (property.NameEquals("tones"u8)) - { - if (property.Value.ValueKind == JsonValueKind.Null) - { - continue; - } - List array = new List(); - foreach (var item in property.Value.EnumerateArray()) - { - array.Add(new DtmfTone(item.GetString())); - } - tones = array; - continue; - } - } - return new CollectTonesResult(Optional.ToList(tones)); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CollectTonesResult.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CollectTonesResult.cs deleted file mode 100644 index 0bd35b05d5a9..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CollectTonesResult.cs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System.Collections.Generic; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - /// The CollectTonesResult. - public partial class CollectTonesResult - { - /// Initializes a new instance of CollectTonesResult. - internal CollectTonesResult() - { - Tones = new ChangeTrackingList(); - } - - /// Initializes a new instance of CollectTonesResult. - /// - internal CollectTonesResult(IReadOnlyList tones) - { - Tones = tones; - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationCloudEnvironmentModel.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationCloudEnvironmentModel.cs index 55f95172b944..c6b71f5ccb49 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationCloudEnvironmentModel.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationCloudEnvironmentModel.cs @@ -10,7 +10,7 @@ namespace Azure.Communication { - /// The CommunicationCloudEnvironmentModel. + /// The cloud that the identifier belongs to. internal readonly partial struct CommunicationCloudEnvironmentModel : IEquatable { private readonly string _value; diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationError.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationError.Serialization.cs index 5f02e653f2ec..ce8def8c4104 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationError.Serialization.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationError.Serialization.cs @@ -19,8 +19,8 @@ internal static CommunicationError DeserializeCommunicationError(JsonElement ele { return null; } - Optional code = default; - Optional message = default; + string code = default; + string message = default; Optional target = default; Optional> details = default; Optional innererror = default; @@ -65,7 +65,7 @@ internal static CommunicationError DeserializeCommunicationError(JsonElement ele continue; } } - return new CommunicationError(code.Value, message.Value, target.Value, Optional.ToList(details), innererror.Value); + return new CommunicationError(code, message, target.Value, Optional.ToList(details), innererror.Value); } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationError.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationError.cs index 3c92eb78ecf1..c21f3e0e1ed4 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationError.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationError.cs @@ -5,44 +5,53 @@ #nullable disable +using System; using System.Collections.Generic; using Azure.Core; namespace Azure.Communication.CallAutomation { - /// The CommunicationError. + /// The Communication Services error. internal partial class CommunicationError { /// Initializes a new instance of CommunicationError. - internal CommunicationError() + /// The error code. + /// The error message. + /// or is null. + internal CommunicationError(string code, string message) { + Argument.AssertNotNull(code, nameof(code)); + Argument.AssertNotNull(message, nameof(message)); + + Code = code; + Message = message; Details = new ChangeTrackingList(); } /// Initializes a new instance of CommunicationError. - /// - /// - /// - /// - /// - internal CommunicationError(string code, string message, string target, IReadOnlyList details, CommunicationError innererror) + /// The error code. + /// The error message. + /// The error target. + /// Further details about specific errors that led to this error. + /// The inner error if any. + internal CommunicationError(string code, string message, string target, IReadOnlyList details, CommunicationError innerError) { Code = code; Message = message; Target = target; Details = details; - Innererror = innererror; + InnerError = innerError; } - /// Gets the code. + /// The error code. public string Code { get; } - /// Gets the message. + /// The error message. public string Message { get; } - /// Gets the target. + /// The error target. public string Target { get; } - /// Gets the details. + /// Further details about specific errors that led to this error. public IReadOnlyList Details { get; } - /// Gets the innererror. - public CommunicationError Innererror { get; } + /// The inner error if any. + public CommunicationError InnerError { get; } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationErrorResponse.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationErrorResponse.cs index e5542fc3e0ec..94ae151ef327 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationErrorResponse.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationErrorResponse.cs @@ -10,11 +10,11 @@ namespace Azure.Communication.CallAutomation { - /// The Communication Services error response. + /// The Communication Services error. internal partial class CommunicationErrorResponse { /// Initializes a new instance of CommunicationErrorResponse. - /// + /// The Communication Services error. /// is null. internal CommunicationErrorResponse(CommunicationError error) { @@ -23,7 +23,7 @@ internal CommunicationErrorResponse(CommunicationError error) Error = error; } - /// Gets the error. + /// The Communication Services error. public CommunicationError Error { get; } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationIdentifierModel.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationIdentifierModel.Serialization.cs index 0dbc80a5b1b2..b7fa28126211 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationIdentifierModel.Serialization.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationIdentifierModel.Serialization.cs @@ -15,16 +15,16 @@ internal partial class CommunicationIdentifierModel : IUtf8JsonSerializable void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) { writer.WriteStartObject(); - if (Optional.IsDefined(RawId)) - { - writer.WritePropertyName("rawId"u8); - writer.WriteStringValue(RawId); - } if (Optional.IsDefined(Kind)) { writer.WritePropertyName("kind"u8); writer.WriteStringValue(Kind.Value.ToString()); } + if (Optional.IsDefined(RawId)) + { + writer.WritePropertyName("rawId"u8); + writer.WriteStringValue(RawId); + } if (Optional.IsDefined(CommunicationUser)) { writer.WritePropertyName("communicationUser"u8); @@ -49,18 +49,13 @@ internal static CommunicationIdentifierModel DeserializeCommunicationIdentifierM { return null; } - Optional rawId = default; Optional kind = default; + Optional rawId = default; Optional communicationUser = default; Optional phoneNumber = default; Optional microsoftTeamsUser = default; foreach (var property in element.EnumerateObject()) { - if (property.NameEquals("rawId"u8)) - { - rawId = property.Value.GetString(); - continue; - } if (property.NameEquals("kind"u8)) { if (property.Value.ValueKind == JsonValueKind.Null) @@ -70,6 +65,11 @@ internal static CommunicationIdentifierModel DeserializeCommunicationIdentifierM kind = new CommunicationIdentifierModelKind(property.Value.GetString()); continue; } + if (property.NameEquals("rawId"u8)) + { + rawId = property.Value.GetString(); + continue; + } if (property.NameEquals("communicationUser"u8)) { if (property.Value.ValueKind == JsonValueKind.Null) @@ -98,7 +98,7 @@ internal static CommunicationIdentifierModel DeserializeCommunicationIdentifierM continue; } } - return new CommunicationIdentifierModel(rawId.Value, Optional.ToNullable(kind), communicationUser.Value, phoneNumber.Value, microsoftTeamsUser.Value); + return new CommunicationIdentifierModel(Optional.ToNullable(kind), rawId.Value, communicationUser.Value, phoneNumber.Value, microsoftTeamsUser.Value); } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationIdentifierModel.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationIdentifierModel.cs index 8c3afafad7af..906d45583658 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationIdentifierModel.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationIdentifierModel.cs @@ -7,7 +7,7 @@ namespace Azure.Communication { - /// The CommunicationIdentifierModel. + /// Identifies a participant in Azure Communication services. A participant is, for example, a phone number or an Azure communication user. This model is polymorphic: Apart from kind and rawId, at most one further property may be set which must match the kind enum value. internal partial class CommunicationIdentifierModel { /// Initializes a new instance of CommunicationIdentifierModel. @@ -16,24 +16,24 @@ public CommunicationIdentifierModel() } /// Initializes a new instance of CommunicationIdentifierModel. - /// Full ID of the identifier. - /// Type of CommunicationIdentifierModel. + /// The identifier kind. Only required in responses. + /// Raw Id of the identifier. Optional in requests, required in responses. /// The communication user. /// The phone number. /// The Microsoft Teams user. - internal CommunicationIdentifierModel(string rawId, CommunicationIdentifierModelKind? kind, CommunicationUserIdentifierModel communicationUser, PhoneNumberIdentifierModel phoneNumber, MicrosoftTeamsUserIdentifierModel microsoftTeamsUser) + internal CommunicationIdentifierModel(CommunicationIdentifierModelKind? kind, string rawId, CommunicationUserIdentifierModel communicationUser, PhoneNumberIdentifierModel phoneNumber, MicrosoftTeamsUserIdentifierModel microsoftTeamsUser) { - RawId = rawId; Kind = kind; + RawId = rawId; CommunicationUser = communicationUser; PhoneNumber = phoneNumber; MicrosoftTeamsUser = microsoftTeamsUser; } - /// Full ID of the identifier. - public string RawId { get; set; } - /// Type of CommunicationIdentifierModel. + /// The identifier kind. Only required in responses. public CommunicationIdentifierModelKind? Kind { get; set; } + /// Raw Id of the identifier. Optional in requests, required in responses. + public string RawId { get; set; } /// The communication user. public CommunicationUserIdentifierModel CommunicationUser { get; set; } /// The phone number. diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationIdentifierModelKind.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationIdentifierModelKind.cs index f3af3c150f41..8a02aca1cd03 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationIdentifierModelKind.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationIdentifierModelKind.cs @@ -10,7 +10,7 @@ namespace Azure.Communication { - /// Type of CommunicationIdentifierModel. + /// The identifier kind, for example 'communicationUser' or 'phoneNumber'. internal readonly partial struct CommunicationIdentifierModelKind : IEquatable { private readonly string _value; diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationUserIdentifierModel.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationUserIdentifierModel.cs index 2fb542163bf1..1f90746ab01e 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationUserIdentifierModel.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CommunicationUserIdentifierModel.cs @@ -10,11 +10,11 @@ namespace Azure.Communication { - /// The CommunicationUserIdentifierModel. + /// A user that got created with an Azure Communication Services resource. internal partial class CommunicationUserIdentifierModel { /// Initializes a new instance of CommunicationUserIdentifierModel. - /// + /// The Id of the communication user. /// is null. public CommunicationUserIdentifierModel(string id) { @@ -23,7 +23,7 @@ public CommunicationUserIdentifierModel(string id) Id = id; } - /// Gets or sets the id. + /// The Id of the communication user. public string Id { get; set; } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ContinuousDtmfRecognitionRequestInternal.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ContinuousDtmfRecognitionRequestInternal.Serialization.cs deleted file mode 100644 index ac39c2235b7a..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ContinuousDtmfRecognitionRequestInternal.Serialization.cs +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System.Text.Json; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - internal partial class ContinuousDtmfRecognitionRequestInternal : IUtf8JsonSerializable - { - void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) - { - writer.WriteStartObject(); - writer.WritePropertyName("targetParticipant"u8); - writer.WriteObjectValue(TargetParticipant); - if (Optional.IsDefined(OperationContext)) - { - writer.WritePropertyName("operationContext"u8); - writer.WriteStringValue(OperationContext); - } - writer.WriteEndObject(); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ContinuousDtmfRecognitionRequestInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ContinuousDtmfRecognitionRequestInternal.cs deleted file mode 100644 index 19ae1c327cf6..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ContinuousDtmfRecognitionRequestInternal.cs +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System; -using Azure.Communication; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - /// The ContinuousDtmfRecognitionRequest. - internal partial class ContinuousDtmfRecognitionRequestInternal - { - /// Initializes a new instance of ContinuousDtmfRecognitionRequestInternal. - /// Defines options for recognition. - /// is null. - public ContinuousDtmfRecognitionRequestInternal(CommunicationIdentifierModel targetParticipant) - { - Argument.AssertNotNull(targetParticipant, nameof(targetParticipant)); - - TargetParticipant = targetParticipant; - } - - /// Defines options for recognition. - public CommunicationIdentifierModel TargetParticipant { get; } - /// The value to identify context of the operation. - public string OperationContext { get; set; } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ContinuousDtmfRecognitionStopped.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ContinuousDtmfRecognitionStopped.Serialization.cs deleted file mode 100644 index ea7fae65cdf3..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ContinuousDtmfRecognitionStopped.Serialization.cs +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System.Text.Json; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - public partial class ContinuousDtmfRecognitionStopped - { - internal static ContinuousDtmfRecognitionStopped DeserializeContinuousDtmfRecognitionStopped(JsonElement element) - { - if (element.ValueKind == JsonValueKind.Null) - { - return null; - } - Optional callConnectionId = default; - Optional serverCallId = default; - Optional correlationId = default; - Optional operationContext = default; - Optional resultInformation = default; - foreach (var property in element.EnumerateObject()) - { - if (property.NameEquals("callConnectionId"u8)) - { - callConnectionId = property.Value.GetString(); - continue; - } - if (property.NameEquals("serverCallId"u8)) - { - serverCallId = property.Value.GetString(); - continue; - } - if (property.NameEquals("correlationId"u8)) - { - correlationId = property.Value.GetString(); - continue; - } - if (property.NameEquals("operationContext"u8)) - { - operationContext = property.Value.GetString(); - continue; - } - if (property.NameEquals("resultInformation"u8)) - { - if (property.Value.ValueKind == JsonValueKind.Null) - { - continue; - } - resultInformation = ResultInformation.DeserializeResultInformation(property.Value); - continue; - } - } - return new ContinuousDtmfRecognitionStopped(callConnectionId.Value, serverCallId.Value, correlationId.Value, operationContext.Value, resultInformation.Value); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ContinuousDtmfRecognitionStopped.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ContinuousDtmfRecognitionStopped.cs deleted file mode 100644 index e79e7a6900e5..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ContinuousDtmfRecognitionStopped.cs +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -namespace Azure.Communication.CallAutomation -{ - /// The ContinuousDtmfRecognitionStopped. - public partial class ContinuousDtmfRecognitionStopped - { - /// Initializes a new instance of ContinuousDtmfRecognitionStopped. - internal ContinuousDtmfRecognitionStopped() - { - } - - /// Initializes a new instance of ContinuousDtmfRecognitionStopped. - /// Call connection ID. - /// Server call ID. - /// Correlation ID for event to call correlation. Also called ChainId for skype chain ID. - /// Used by customers when calling mid-call actions to correlate the request to the response event. - /// Contains the resulting SIP code/sub-code and message from NGC services. - internal ContinuousDtmfRecognitionStopped(string callConnectionId, string serverCallId, string correlationId, string operationContext, ResultInformation resultInformation) - { - CallConnectionId = callConnectionId; - ServerCallId = serverCallId; - CorrelationId = correlationId; - OperationContext = operationContext; - ResultInformation = resultInformation; - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ContinuousDtmfRecognitionToneFailed.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ContinuousDtmfRecognitionToneFailed.Serialization.cs deleted file mode 100644 index f30173f360d0..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ContinuousDtmfRecognitionToneFailed.Serialization.cs +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System.Text.Json; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - public partial class ContinuousDtmfRecognitionToneFailed - { - internal static ContinuousDtmfRecognitionToneFailed DeserializeContinuousDtmfRecognitionToneFailed(JsonElement element) - { - if (element.ValueKind == JsonValueKind.Null) - { - return null; - } - Optional callConnectionId = default; - Optional serverCallId = default; - Optional correlationId = default; - Optional operationContext = default; - Optional resultInformation = default; - foreach (var property in element.EnumerateObject()) - { - if (property.NameEquals("callConnectionId"u8)) - { - callConnectionId = property.Value.GetString(); - continue; - } - if (property.NameEquals("serverCallId"u8)) - { - serverCallId = property.Value.GetString(); - continue; - } - if (property.NameEquals("correlationId"u8)) - { - correlationId = property.Value.GetString(); - continue; - } - if (property.NameEquals("operationContext"u8)) - { - operationContext = property.Value.GetString(); - continue; - } - if (property.NameEquals("resultInformation"u8)) - { - if (property.Value.ValueKind == JsonValueKind.Null) - { - continue; - } - resultInformation = ResultInformation.DeserializeResultInformation(property.Value); - continue; - } - } - return new ContinuousDtmfRecognitionToneFailed(callConnectionId.Value, serverCallId.Value, correlationId.Value, operationContext.Value, resultInformation.Value); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ContinuousDtmfRecognitionToneFailed.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ContinuousDtmfRecognitionToneFailed.cs deleted file mode 100644 index f78aded8f94b..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ContinuousDtmfRecognitionToneFailed.cs +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -namespace Azure.Communication.CallAutomation -{ - /// The ContinuousDtmfRecognitionToneFailed. - public partial class ContinuousDtmfRecognitionToneFailed - { - /// Initializes a new instance of ContinuousDtmfRecognitionToneFailed. - internal ContinuousDtmfRecognitionToneFailed() - { - } - - /// Initializes a new instance of ContinuousDtmfRecognitionToneFailed. - /// Call connection ID. - /// Server call ID. - /// Correlation ID for event to call correlation. Also called ChainId for skype chain ID. - /// Used by customers when calling mid-call actions to correlate the request to the response event. - /// Contains the resulting SIP code/sub-code and message from NGC services. - internal ContinuousDtmfRecognitionToneFailed(string callConnectionId, string serverCallId, string correlationId, string operationContext, ResultInformation resultInformation) - { - CallConnectionId = callConnectionId; - ServerCallId = serverCallId; - CorrelationId = correlationId; - OperationContext = operationContext; - ResultInformation = resultInformation; - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ContinuousDtmfRecognitionToneReceived.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ContinuousDtmfRecognitionToneReceived.Serialization.cs deleted file mode 100644 index 015eb460878e..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ContinuousDtmfRecognitionToneReceived.Serialization.cs +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System.Text.Json; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - public partial class ContinuousDtmfRecognitionToneReceived - { - internal static ContinuousDtmfRecognitionToneReceived DeserializeContinuousDtmfRecognitionToneReceived(JsonElement element) - { - if (element.ValueKind == JsonValueKind.Null) - { - return null; - } - Optional toneInfo = default; - Optional callConnectionId = default; - Optional serverCallId = default; - Optional correlationId = default; - Optional operationContext = default; - Optional resultInformation = default; - foreach (var property in element.EnumerateObject()) - { - if (property.NameEquals("toneInfo"u8)) - { - if (property.Value.ValueKind == JsonValueKind.Null) - { - continue; - } - toneInfo = ToneInfo.DeserializeToneInfo(property.Value); - continue; - } - if (property.NameEquals("callConnectionId"u8)) - { - callConnectionId = property.Value.GetString(); - continue; - } - if (property.NameEquals("serverCallId"u8)) - { - serverCallId = property.Value.GetString(); - continue; - } - if (property.NameEquals("correlationId"u8)) - { - correlationId = property.Value.GetString(); - continue; - } - if (property.NameEquals("operationContext"u8)) - { - operationContext = property.Value.GetString(); - continue; - } - if (property.NameEquals("resultInformation"u8)) - { - if (property.Value.ValueKind == JsonValueKind.Null) - { - continue; - } - resultInformation = ResultInformation.DeserializeResultInformation(property.Value); - continue; - } - } - return new ContinuousDtmfRecognitionToneReceived(toneInfo.Value, callConnectionId.Value, serverCallId.Value, correlationId.Value, operationContext.Value, resultInformation.Value); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ContinuousDtmfRecognitionToneReceived.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ContinuousDtmfRecognitionToneReceived.cs deleted file mode 100644 index 3f69c541c3ab..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ContinuousDtmfRecognitionToneReceived.cs +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -namespace Azure.Communication.CallAutomation -{ - /// The ContinuousDtmfRecognitionToneReceived. - public partial class ContinuousDtmfRecognitionToneReceived - { - /// Initializes a new instance of ContinuousDtmfRecognitionToneReceived. - internal ContinuousDtmfRecognitionToneReceived() - { - } - - /// Initializes a new instance of ContinuousDtmfRecognitionToneReceived. - /// Information about Tone. - /// Call connection ID. - /// Server call ID. - /// Correlation ID for event to call correlation. Also called ChainId or skype chain ID. - /// Used by customers when calling mid-call actions to correlate the request to the response event. - /// Contains the resulting SIP code/sub-code and message from NGC services. - internal ContinuousDtmfRecognitionToneReceived(ToneInfo toneInfo, string callConnectionId, string serverCallId, string correlationId, string operationContext, ResultInformation resultInformation) - { - ToneInfo = toneInfo; - CallConnectionId = callConnectionId; - ServerCallId = serverCallId; - CorrelationId = correlationId; - OperationContext = operationContext; - ResultInformation = resultInformation; - } - - /// Information about Tone. - public ToneInfo ToneInfo { get; } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CreateCallRequestInternal.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CreateCallRequestInternal.Serialization.cs index 81b288e5932f..e54c86fdfade 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CreateCallRequestInternal.Serialization.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CreateCallRequestInternal.Serialization.cs @@ -32,10 +32,10 @@ void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) writer.WritePropertyName("sourceDisplayName"u8); writer.WriteStringValue(SourceDisplayName); } - if (Optional.IsDefined(SourceIdentity)) + if (Optional.IsDefined(Source)) { - writer.WritePropertyName("sourceIdentity"u8); - writer.WriteObjectValue(SourceIdentity); + writer.WritePropertyName("source"u8); + writer.WriteObjectValue(Source); } if (Optional.IsDefined(OperationContext)) { @@ -44,21 +44,6 @@ void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) } writer.WritePropertyName("callbackUri"u8); writer.WriteStringValue(CallbackUri); - if (Optional.IsDefined(MediaStreamingConfiguration)) - { - writer.WritePropertyName("mediaStreamingConfiguration"u8); - writer.WriteObjectValue(MediaStreamingConfiguration); - } - if (Optional.IsDefined(AzureCognitiveServicesEndpointUrl)) - { - writer.WritePropertyName("azureCognitiveServicesEndpointUrl"u8); - writer.WriteStringValue(AzureCognitiveServicesEndpointUrl); - } - if (Optional.IsDefined(CustomContext)) - { - writer.WritePropertyName("customContext"u8); - writer.WriteObjectValue(CustomContext); - } writer.WriteEndObject(); } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CreateCallRequestInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CreateCallRequestInternal.cs index 8713facaa6e9..66d93cc70811 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CreateCallRequestInternal.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CreateCallRequestInternal.cs @@ -39,16 +39,10 @@ public CreateCallRequestInternal(IEnumerable targe /// Display name of the call if dialing out to a pstn number. public string SourceDisplayName { get; set; } /// The identifier of the source of the call. - public CommunicationUserIdentifierModel SourceIdentity { get; set; } + public CommunicationUserIdentifierModel Source { get; set; } /// A customer set value used to track the answering of a call. public string OperationContext { get; set; } /// The callback URI. public string CallbackUri { get; } - /// Media Streaming Configuration. - public MediaStreamingOptionsInternal MediaStreamingConfiguration { get; set; } - /// The identifier of the Cognitive Service resource assigned to this call. - public string AzureCognitiveServicesEndpointUrl { get; set; } - /// Used by customer to send custom context to targets. - public CustomContextInternal CustomContext { get; set; } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CustomContextInternal.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CustomContextInternal.Serialization.cs deleted file mode 100644 index 27f2b7bdc749..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CustomContextInternal.Serialization.cs +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System.Text.Json; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - internal partial class CustomContextInternal : IUtf8JsonSerializable - { - void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) - { - writer.WriteStartObject(); - if (Optional.IsCollectionDefined(VoipHeaders)) - { - writer.WritePropertyName("voipHeaders"u8); - writer.WriteStartObject(); - foreach (var item in VoipHeaders) - { - writer.WritePropertyName(item.Key); - writer.WriteStringValue(item.Value); - } - writer.WriteEndObject(); - } - if (Optional.IsCollectionDefined(SipHeaders)) - { - writer.WritePropertyName("sipHeaders"u8); - writer.WriteStartObject(); - foreach (var item in SipHeaders) - { - writer.WritePropertyName(item.Key); - writer.WriteStringValue(item.Value); - } - writer.WriteEndObject(); - } - writer.WriteEndObject(); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CustomContextInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CustomContextInternal.cs deleted file mode 100644 index dd327b4ae9e5..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/CustomContextInternal.cs +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System.Collections.Generic; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - /// The CustomContext. - internal partial class CustomContextInternal - { - /// Initializes a new instance of CustomContextInternal. - public CustomContextInternal() - { - VoipHeaders = new ChangeTrackingDictionary(); - SipHeaders = new ChangeTrackingDictionary(); - } - - /// Dictionary of <string>. - public IDictionary VoipHeaders { get; } - /// Dictionary of <string>. - public IDictionary SipHeaders { get; } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ExternalStorageInternal.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ExternalStorageInternal.Serialization.cs deleted file mode 100644 index d3b19f82ccfa..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ExternalStorageInternal.Serialization.cs +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System.Text.Json; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - internal partial class ExternalStorageInternal : IUtf8JsonSerializable - { - void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) - { - writer.WriteStartObject(); - writer.WritePropertyName("storageType"u8); - writer.WriteStringValue(StorageType.ToString()); - if (Optional.IsDefined(BlobStorage)) - { - writer.WritePropertyName("blobStorage"u8); - writer.WriteObjectValue(BlobStorage); - } - writer.WriteEndObject(); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ExternalStorageInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ExternalStorageInternal.cs deleted file mode 100644 index dc5ad1971596..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ExternalStorageInternal.cs +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -namespace Azure.Communication.CallAutomation -{ - /// The ExternalStorage. - internal partial class ExternalStorageInternal - { - /// Initializes a new instance of ExternalStorageInternal. - /// Defines the type of external storage. - public ExternalStorageInternal(RecordingStorageType storageType) - { - StorageType = storageType; - } - - /// Defines the type of external storage. - public RecordingStorageType StorageType { get; } - /// Defines the blob storage location where the recording will be stored. - public BlobStorageInternal BlobStorage { get; set; } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/GenderType.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/GenderType.cs deleted file mode 100644 index 4af066513fd1..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/GenderType.cs +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System; -using System.ComponentModel; - -namespace Azure.Communication.CallAutomation -{ - /// Voice gender type. - public readonly partial struct GenderType : IEquatable - { - private readonly string _value; - - /// Initializes a new instance of . - /// is null. - public GenderType(string value) - { - _value = value ?? throw new ArgumentNullException(nameof(value)); - } - - private const string MaleValue = "male"; - private const string FemaleValue = "female"; - - /// male. - public static GenderType Male { get; } = new GenderType(MaleValue); - /// female. - public static GenderType Female { get; } = new GenderType(FemaleValue); - /// Determines if two values are the same. - public static bool operator ==(GenderType left, GenderType right) => left.Equals(right); - /// Determines if two values are not the same. - public static bool operator !=(GenderType left, GenderType right) => !left.Equals(right); - /// Converts a string to a . - public static implicit operator GenderType(string value) => new GenderType(value); - - /// - [EditorBrowsable(EditorBrowsableState.Never)] - public override bool Equals(object obj) => obj is GenderType other && Equals(other); - /// - public bool Equals(GenderType other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); - - /// - [EditorBrowsable(EditorBrowsableState.Never)] - public override int GetHashCode() => _value?.GetHashCode() ?? 0; - /// - public override string ToString() => _value; - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/GetParticipantsResponseInternal.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/GetParticipantsResponseInternal.Serialization.cs index be99cbf7e5dc..7545da1ae51f 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/GetParticipantsResponseInternal.Serialization.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/GetParticipantsResponseInternal.Serialization.cs @@ -19,22 +19,18 @@ internal static GetParticipantsResponseInternal DeserializeGetParticipantsRespon { return null; } - Optional> values = default; + IReadOnlyList value = default; Optional nextLink = default; foreach (var property in element.EnumerateObject()) { - if (property.NameEquals("values"u8)) + if (property.NameEquals("value"u8)) { - if (property.Value.ValueKind == JsonValueKind.Null) - { - continue; - } List array = new List(); foreach (var item in property.Value.EnumerateArray()) { array.Add(CallParticipantInternal.DeserializeCallParticipantInternal(item)); } - values = array; + value = array; continue; } if (property.NameEquals("nextLink"u8)) @@ -43,7 +39,7 @@ internal static GetParticipantsResponseInternal DeserializeGetParticipantsRespon continue; } } - return new GetParticipantsResponseInternal(Optional.ToList(values), nextLink.Value); + return new GetParticipantsResponseInternal(value, nextLink.Value); } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/GetParticipantsResponseInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/GetParticipantsResponseInternal.cs index 9890fd592b64..6c09cc741219 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/GetParticipantsResponseInternal.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/GetParticipantsResponseInternal.cs @@ -5,7 +5,9 @@ #nullable disable +using System; using System.Collections.Generic; +using System.Linq; using Azure.Core; namespace Azure.Communication.CallAutomation @@ -14,22 +16,26 @@ namespace Azure.Communication.CallAutomation internal partial class GetParticipantsResponseInternal { /// Initializes a new instance of GetParticipantsResponseInternal. - internal GetParticipantsResponseInternal() + /// List of the current participants in the call. + /// is null. + internal GetParticipantsResponseInternal(IEnumerable value) { - Values = new ChangeTrackingList(); + Argument.AssertNotNull(value, nameof(value)); + + Value = value.ToList(); } /// Initializes a new instance of GetParticipantsResponseInternal. - /// List of the current participants in the call. + /// List of the current participants in the call. /// Continue of the list of participants. - internal GetParticipantsResponseInternal(IReadOnlyList values, string nextLink) + internal GetParticipantsResponseInternal(IReadOnlyList value, string nextLink) { - Values = values; + Value = value; NextLink = nextLink; } /// List of the current participants in the call. - public IReadOnlyList Values { get; } + public IReadOnlyList Value { get; } /// Continue of the list of participants. public string NextLink { get; } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MediaStreamingAudioChannel.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MediaStreamingAudioChannel.cs deleted file mode 100644 index 30756acd736f..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MediaStreamingAudioChannel.cs +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System; -using System.ComponentModel; - -namespace Azure.Communication.CallAutomation -{ - /// Audio channel type to stream, eg. unmixed audio, mixed audio. - public readonly partial struct MediaStreamingAudioChannel : IEquatable - { - private readonly string _value; - - /// Initializes a new instance of . - /// is null. - public MediaStreamingAudioChannel(string value) - { - _value = value ?? throw new ArgumentNullException(nameof(value)); - } - - private const string MixedValue = "mixed"; - private const string UnmixedValue = "unmixed"; - - /// mixed. - public static MediaStreamingAudioChannel Mixed { get; } = new MediaStreamingAudioChannel(MixedValue); - /// unmixed. - public static MediaStreamingAudioChannel Unmixed { get; } = new MediaStreamingAudioChannel(UnmixedValue); - /// Determines if two values are the same. - public static bool operator ==(MediaStreamingAudioChannel left, MediaStreamingAudioChannel right) => left.Equals(right); - /// Determines if two values are not the same. - public static bool operator !=(MediaStreamingAudioChannel left, MediaStreamingAudioChannel right) => !left.Equals(right); - /// Converts a string to a . - public static implicit operator MediaStreamingAudioChannel(string value) => new MediaStreamingAudioChannel(value); - - /// - [EditorBrowsable(EditorBrowsableState.Never)] - public override bool Equals(object obj) => obj is MediaStreamingAudioChannel other && Equals(other); - /// - public bool Equals(MediaStreamingAudioChannel other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); - - /// - [EditorBrowsable(EditorBrowsableState.Never)] - public override int GetHashCode() => _value?.GetHashCode() ?? 0; - /// - public override string ToString() => _value; - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MediaStreamingContent.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MediaStreamingContent.cs deleted file mode 100644 index 20aa52094e66..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MediaStreamingContent.cs +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System; -using System.ComponentModel; - -namespace Azure.Communication.CallAutomation -{ - /// Content type to stream, eg. audio, audio/video. - public readonly partial struct MediaStreamingContent : IEquatable - { - private readonly string _value; - - /// Initializes a new instance of . - /// is null. - public MediaStreamingContent(string value) - { - _value = value ?? throw new ArgumentNullException(nameof(value)); - } - - private const string AudioValue = "audio"; - - /// audio. - public static MediaStreamingContent Audio { get; } = new MediaStreamingContent(AudioValue); - /// Determines if two values are the same. - public static bool operator ==(MediaStreamingContent left, MediaStreamingContent right) => left.Equals(right); - /// Determines if two values are not the same. - public static bool operator !=(MediaStreamingContent left, MediaStreamingContent right) => !left.Equals(right); - /// Converts a string to a . - public static implicit operator MediaStreamingContent(string value) => new MediaStreamingContent(value); - - /// - [EditorBrowsable(EditorBrowsableState.Never)] - public override bool Equals(object obj) => obj is MediaStreamingContent other && Equals(other); - /// - public bool Equals(MediaStreamingContent other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); - - /// - [EditorBrowsable(EditorBrowsableState.Never)] - public override int GetHashCode() => _value?.GetHashCode() ?? 0; - /// - public override string ToString() => _value; - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MediaStreamingOptionsInternal.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MediaStreamingOptionsInternal.Serialization.cs deleted file mode 100644 index 424812f03b4c..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MediaStreamingOptionsInternal.Serialization.cs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System.Text.Json; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - internal partial class MediaStreamingOptionsInternal : IUtf8JsonSerializable - { - void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) - { - writer.WriteStartObject(); - writer.WritePropertyName("transportUrl"u8); - writer.WriteStringValue(TransportUrl); - writer.WritePropertyName("transportType"u8); - writer.WriteStringValue(TransportType.ToString()); - writer.WritePropertyName("contentType"u8); - writer.WriteStringValue(ContentType.ToString()); - writer.WritePropertyName("audioChannelType"u8); - writer.WriteStringValue(AudioChannelType.ToString()); - writer.WriteEndObject(); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MediaStreamingOptionsInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MediaStreamingOptionsInternal.cs deleted file mode 100644 index 5d1de2685201..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MediaStreamingOptionsInternal.cs +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - /// Configuration of Media streaming. - internal partial class MediaStreamingOptionsInternal - { - /// Initializes a new instance of MediaStreamingOptionsInternal. - /// Transport URL for media streaming. - /// The type of transport to be used for media streaming, eg. Websocket. - /// Content type to stream, eg. audio, audio/video. - /// Audio channel type to stream, eg. unmixed audio, mixed audio. - /// is null. - public MediaStreamingOptionsInternal(string transportUrl, MediaStreamingTransport transportType, MediaStreamingContent contentType, MediaStreamingAudioChannel audioChannelType) - { - Argument.AssertNotNull(transportUrl, nameof(transportUrl)); - - TransportUrl = transportUrl; - TransportType = transportType; - ContentType = contentType; - AudioChannelType = audioChannelType; - } - - /// Transport URL for media streaming. - public string TransportUrl { get; } - /// The type of transport to be used for media streaming, eg. Websocket. - public MediaStreamingTransport TransportType { get; } - /// Content type to stream, eg. audio, audio/video. - public MediaStreamingContent ContentType { get; } - /// Audio channel type to stream, eg. unmixed audio, mixed audio. - public MediaStreamingAudioChannel AudioChannelType { get; } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MediaStreamingTransport.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MediaStreamingTransport.cs deleted file mode 100644 index 5f32ea2d2564..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MediaStreamingTransport.cs +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System; -using System.ComponentModel; - -namespace Azure.Communication.CallAutomation -{ - /// The type of transport to be used for media streaming, eg. Websocket. - public readonly partial struct MediaStreamingTransport : IEquatable - { - private readonly string _value; - - /// Initializes a new instance of . - /// is null. - public MediaStreamingTransport(string value) - { - _value = value ?? throw new ArgumentNullException(nameof(value)); - } - - private const string WebsocketValue = "websocket"; - - /// websocket. - public static MediaStreamingTransport Websocket { get; } = new MediaStreamingTransport(WebsocketValue); - /// Determines if two values are the same. - public static bool operator ==(MediaStreamingTransport left, MediaStreamingTransport right) => left.Equals(right); - /// Determines if two values are not the same. - public static bool operator !=(MediaStreamingTransport left, MediaStreamingTransport right) => !left.Equals(right); - /// Converts a string to a . - public static implicit operator MediaStreamingTransport(string value) => new MediaStreamingTransport(value); - - /// - [EditorBrowsable(EditorBrowsableState.Never)] - public override bool Equals(object obj) => obj is MediaStreamingTransport other && Equals(other); - /// - public bool Equals(MediaStreamingTransport other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); - - /// - [EditorBrowsable(EditorBrowsableState.Never)] - public override int GetHashCode() => _value?.GetHashCode() ?? 0; - /// - public override string ToString() => _value; - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MicrosoftTeamsUserIdentifierModel.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MicrosoftTeamsUserIdentifierModel.cs index 99e6ca4150fc..70d6f6e84a41 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MicrosoftTeamsUserIdentifierModel.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MicrosoftTeamsUserIdentifierModel.cs @@ -10,11 +10,11 @@ namespace Azure.Communication { - /// The MicrosoftTeamsUserIdentifierModel. + /// A Microsoft Teams user. internal partial class MicrosoftTeamsUserIdentifierModel { /// Initializes a new instance of MicrosoftTeamsUserIdentifierModel. - /// + /// The Id of the Microsoft Teams user. If not anonymous, this is the AAD object Id of the user. /// is null. public MicrosoftTeamsUserIdentifierModel(string userId) { @@ -24,9 +24,9 @@ public MicrosoftTeamsUserIdentifierModel(string userId) } /// Initializes a new instance of MicrosoftTeamsUserIdentifierModel. - /// - /// - /// + /// The Id of the Microsoft Teams user. If not anonymous, this is the AAD object Id of the user. + /// True if the Microsoft Teams user is anonymous. By default false if missing. + /// The cloud that the Microsoft Teams user belongs to. By default 'public' if missing. internal MicrosoftTeamsUserIdentifierModel(string userId, bool? isAnonymous, CommunicationCloudEnvironmentModel? cloud) { UserId = userId; @@ -34,11 +34,11 @@ internal MicrosoftTeamsUserIdentifierModel(string userId, bool? isAnonymous, Com Cloud = cloud; } - /// Gets or sets the user id. + /// The Id of the Microsoft Teams user. If not anonymous, this is the AAD object Id of the user. public string UserId { get; set; } - /// Gets or sets the is anonymous. + /// True if the Microsoft Teams user is anonymous. By default false if missing. public bool? IsAnonymous { get; set; } - /// Gets or sets the cloud. + /// The cloud that the Microsoft Teams user belongs to. By default 'public' if missing. public CommunicationCloudEnvironmentModel? Cloud { get; set; } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MuteParticipantsRequestInternal.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MuteParticipantsRequestInternal.Serialization.cs deleted file mode 100644 index a522f12aa8f5..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MuteParticipantsRequestInternal.Serialization.cs +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System.Text.Json; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - internal partial class MuteParticipantsRequestInternal : IUtf8JsonSerializable - { - void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) - { - writer.WriteStartObject(); - writer.WritePropertyName("targetParticipants"u8); - writer.WriteStartArray(); - foreach (var item in TargetParticipants) - { - writer.WriteObjectValue(item); - } - writer.WriteEndArray(); - if (Optional.IsDefined(OperationContext)) - { - writer.WritePropertyName("operationContext"u8); - writer.WriteStringValue(OperationContext); - } - writer.WriteEndObject(); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MuteParticipantsRequestInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MuteParticipantsRequestInternal.cs deleted file mode 100644 index 99191de0fe37..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MuteParticipantsRequestInternal.cs +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System; -using System.Collections.Generic; -using System.Linq; -using Azure.Communication; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - /// The request payload for muting participants from the call. - internal partial class MuteParticipantsRequestInternal - { - /// Initializes a new instance of MuteParticipantsRequestInternal. - /// - /// Participants to be muted from the call. - /// Only ACS Users are supported. - /// - /// is null. - public MuteParticipantsRequestInternal(IEnumerable targetParticipants) - { - Argument.AssertNotNull(targetParticipants, nameof(targetParticipants)); - - TargetParticipants = targetParticipants.ToList(); - } - - /// - /// Participants to be muted from the call. - /// Only ACS Users are supported. - /// - public IList TargetParticipants { get; } - /// Used by customers when calling mid-call actions to correlate the request to the response event. - public string OperationContext { get; set; } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MuteParticipantsResponse.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MuteParticipantsResponse.Serialization.cs deleted file mode 100644 index b53fd6feac1e..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MuteParticipantsResponse.Serialization.cs +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System.Text.Json; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - public partial class MuteParticipantsResponse - { - internal static MuteParticipantsResponse DeserializeMuteParticipantsResponse(JsonElement element) - { - if (element.ValueKind == JsonValueKind.Null) - { - return null; - } - Optional operationContext = default; - foreach (var property in element.EnumerateObject()) - { - if (property.NameEquals("operationContext"u8)) - { - operationContext = property.Value.GetString(); - continue; - } - } - return new MuteParticipantsResponse(operationContext.Value); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MuteParticipantsResponse.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MuteParticipantsResponse.cs deleted file mode 100644 index 95cc4442be96..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/MuteParticipantsResponse.cs +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -namespace Azure.Communication.CallAutomation -{ - /// The response payload for muting participants from the call. - public partial class MuteParticipantsResponse - { - /// Initializes a new instance of MuteParticipantsResponse. - internal MuteParticipantsResponse() - { - } - - /// Initializes a new instance of MuteParticipantsResponse. - /// The operation context provided by client. - internal MuteParticipantsResponse(string operationContext) - { - OperationContext = operationContext; - } - - /// The operation context provided by client. - public string OperationContext { get; } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/PhoneNumberIdentifierModel.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/PhoneNumberIdentifierModel.cs index 724646b50190..d9416ecf4e45 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/PhoneNumberIdentifierModel.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/PhoneNumberIdentifierModel.cs @@ -10,11 +10,11 @@ namespace Azure.Communication { - /// The PhoneNumberIdentifierModel. + /// A phone number. internal partial class PhoneNumberIdentifierModel { /// Initializes a new instance of PhoneNumberIdentifierModel. - /// + /// The phone number in E.164 format. /// is null. public PhoneNumberIdentifierModel(string value) { @@ -23,7 +23,7 @@ public PhoneNumberIdentifierModel(string value) Value = value; } - /// Gets or sets the value. + /// The phone number in E.164 format. public string Value { get; set; } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/PlayCanceled.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/PlayCanceled.cs index 8aaf4029f82c..7cec639fdd6a 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/PlayCanceled.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/PlayCanceled.cs @@ -18,7 +18,7 @@ internal PlayCanceled() /// Initializes a new instance of PlayCanceled. /// Call connection ID. /// Server call ID. - /// Correlation ID for event to call correlation. Also called ChainId for skype chain ID. + /// Correlation ID for event to call correlation. /// Used by customers when calling mid-call actions to correlate the request to the response event. internal PlayCanceled(string callConnectionId, string serverCallId, string correlationId, string operationContext) { diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/PlayRequestInternal.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/PlayRequestInternal.Serialization.cs index 54566a5d8cf4..ac98bdee7b70 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/PlayRequestInternal.Serialization.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/PlayRequestInternal.Serialization.cs @@ -15,8 +15,13 @@ internal partial class PlayRequestInternal : IUtf8JsonSerializable void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) { writer.WriteStartObject(); - writer.WritePropertyName("playSourceInfo"u8); - writer.WriteObjectValue(PlaySourceInfo); + writer.WritePropertyName("playSources"u8); + writer.WriteStartArray(); + foreach (var item in PlaySources) + { + writer.WriteObjectValue(item); + } + writer.WriteEndArray(); if (Optional.IsCollectionDefined(PlayTo)) { writer.WritePropertyName("playTo"u8); diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/PlayRequestInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/PlayRequestInternal.cs index 2bd55cbfe78f..da295abf20b1 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/PlayRequestInternal.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/PlayRequestInternal.cs @@ -7,6 +7,7 @@ using System; using System.Collections.Generic; +using System.Linq; using Azure.Communication; using Azure.Core; @@ -16,18 +17,18 @@ namespace Azure.Communication.CallAutomation internal partial class PlayRequestInternal { /// Initializes a new instance of PlayRequestInternal. - /// The source of the audio to be played. - /// is null. - public PlayRequestInternal(PlaySourceInternal playSourceInfo) + /// The source of the audio to be played. + /// is null. + public PlayRequestInternal(IEnumerable playSources) { - Argument.AssertNotNull(playSourceInfo, nameof(playSourceInfo)); + Argument.AssertNotNull(playSources, nameof(playSources)); - PlaySourceInfo = playSourceInfo; + PlaySources = playSources.ToList(); PlayTo = new ChangeTrackingList(); } /// The source of the audio to be played. - public PlaySourceInternal PlaySourceInfo { get; } + public IList PlaySources { get; } /// Defines options for playing the audio. public PlayOptionsInternal PlayOptions { get; set; } /// The value to identify context of the operation. diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/PlaySourceInternal.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/PlaySourceInternal.Serialization.cs index eca5ba2cf7f7..f6ae51776edf 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/PlaySourceInternal.Serialization.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/PlaySourceInternal.Serialization.cs @@ -15,27 +15,17 @@ internal partial class PlaySourceInternal : IUtf8JsonSerializable void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) { writer.WriteStartObject(); - writer.WritePropertyName("sourceType"u8); - writer.WriteStringValue(SourceType.ToString()); - if (Optional.IsDefined(PlaySourceId)) + writer.WritePropertyName("kind"u8); + writer.WriteStringValue(Kind.ToString()); + if (Optional.IsDefined(PlaySourceCacheId)) { - writer.WritePropertyName("playSourceId"u8); - writer.WriteStringValue(PlaySourceId); + writer.WritePropertyName("playSourceCacheId"u8); + writer.WriteStringValue(PlaySourceCacheId); } - if (Optional.IsDefined(FileSource)) + if (Optional.IsDefined(File)) { - writer.WritePropertyName("fileSource"u8); - writer.WriteObjectValue(FileSource); - } - if (Optional.IsDefined(TextSource)) - { - writer.WritePropertyName("textSource"u8); - writer.WriteObjectValue(TextSource); - } - if (Optional.IsDefined(SsmlSource)) - { - writer.WritePropertyName("ssmlSource"u8); - writer.WriteObjectValue(SsmlSource); + writer.WritePropertyName("file"u8); + writer.WriteObjectValue(File); } writer.WriteEndObject(); } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/PlaySourceInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/PlaySourceInternal.cs index c6b69e0b497e..003ff6fe52a9 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/PlaySourceInternal.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/PlaySourceInternal.cs @@ -11,21 +11,17 @@ namespace Azure.Communication.CallAutomation internal partial class PlaySourceInternal { /// Initializes a new instance of PlaySourceInternal. - /// Defines the type of the play source. - public PlaySourceInternal(PlaySourceTypeInternal sourceType) + /// Defines the type of the play source. + public PlaySourceInternal(PlaySourceTypeInternal kind) { - SourceType = sourceType; + Kind = kind; } /// Defines the type of the play source. - public PlaySourceTypeInternal SourceType { get; } + public PlaySourceTypeInternal Kind { get; } /// Defines the identifier to be used for caching related media. - public string PlaySourceId { get; set; } + public string PlaySourceCacheId { get; set; } /// Defines the file source info to be used for play. - public FileSourceInternal FileSource { get; set; } - /// Defines the text source info to be used for play. - public TextSourceInternal TextSource { get; set; } - /// Defines the ssml(Speech Synthesis Markup Language) source info to be used for play. - public SsmlSourceInternal SsmlSource { get; set; } + public FileSourceInternal File { get; set; } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/PlaySourceTypeInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/PlaySourceTypeInternal.cs index 19ed421d235d..2d41ac4bb40a 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/PlaySourceTypeInternal.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/PlaySourceTypeInternal.cs @@ -23,15 +23,9 @@ public PlaySourceTypeInternal(string value) } private const string FileValue = "file"; - private const string TextValue = "text"; - private const string SsmlValue = "ssml"; /// file. public static PlaySourceTypeInternal File { get; } = new PlaySourceTypeInternal(FileValue); - /// text. - public static PlaySourceTypeInternal Text { get; } = new PlaySourceTypeInternal(TextValue); - /// ssml. - public static PlaySourceTypeInternal Ssml { get; } = new PlaySourceTypeInternal(SsmlValue); /// Determines if two values are the same. public static bool operator ==(PlaySourceTypeInternal left, PlaySourceTypeInternal right) => left.Equals(right); /// Determines if two values are not the same. diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecognizeCanceled.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecognizeCanceled.cs index 41af21f6045c..e3b3124293f5 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecognizeCanceled.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecognizeCanceled.cs @@ -18,7 +18,7 @@ internal RecognizeCanceled() /// Initializes a new instance of RecognizeCanceled. /// Call connection ID. /// Server call ID. - /// Correlation ID for event to call correlation. Also called ChainId for skype chain ID. + /// Correlation ID for event to call correlation. /// Used by customers when calling mid-call actions to correlate the request to the response event. internal RecognizeCanceled(string callConnectionId, string serverCallId, string correlationId, string operationContext) { diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecognizeChoice.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecognizeChoice.Serialization.cs deleted file mode 100644 index a3aee2b3360f..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecognizeChoice.Serialization.cs +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System.Collections.Generic; -using System.Text.Json; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - public partial class RecognizeChoice : IUtf8JsonSerializable - { - void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) - { - writer.WriteStartObject(); - writer.WritePropertyName("label"u8); - writer.WriteStringValue(Label); - writer.WritePropertyName("phrases"u8); - writer.WriteStartArray(); - foreach (var item in Phrases) - { - writer.WriteStringValue(item); - } - writer.WriteEndArray(); - if (Optional.IsDefined(Tone)) - { - writer.WritePropertyName("tone"u8); - writer.WriteStringValue(Tone.Value.ToString()); - } - writer.WriteEndObject(); - } - - internal static RecognizeChoice DeserializeRecognizeChoice(JsonElement element) - { - if (element.ValueKind == JsonValueKind.Null) - { - return null; - } - string label = default; - IList phrases = default; - Optional tone = default; - foreach (var property in element.EnumerateObject()) - { - if (property.NameEquals("label"u8)) - { - label = property.Value.GetString(); - continue; - } - if (property.NameEquals("phrases"u8)) - { - List array = new List(); - foreach (var item in property.Value.EnumerateArray()) - { - array.Add(item.GetString()); - } - phrases = array; - continue; - } - if (property.NameEquals("tone"u8)) - { - if (property.Value.ValueKind == JsonValueKind.Null) - { - continue; - } - tone = new DtmfTone(property.Value.GetString()); - continue; - } - } - return new RecognizeChoice(label, phrases, Optional.ToNullable(tone)); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecognizeChoice.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecognizeChoice.cs deleted file mode 100644 index cd2a29ac9f46..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecognizeChoice.cs +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System; -using System.Collections.Generic; -using System.Linq; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - /// The Choice. - public partial class RecognizeChoice - { - /// Initializes a new instance of RecognizeChoice. - /// Identifier for a given choice. - /// List of phrases to recognize. - /// or is null. - public RecognizeChoice(string label, IEnumerable phrases) - { - Argument.AssertNotNull(label, nameof(label)); - Argument.AssertNotNull(phrases, nameof(phrases)); - - Label = label; - Phrases = phrases.ToList(); - } - - /// Initializes a new instance of RecognizeChoice. - /// Identifier for a given choice. - /// List of phrases to recognize. - /// - internal RecognizeChoice(string label, IList phrases, DtmfTone? tone) - { - Label = label; - Phrases = phrases; - Tone = tone; - } - - /// Identifier for a given choice. - public string Label { get; set; } - /// List of phrases to recognize. - public IList Phrases { get; } - /// Gets or sets the tone. - public DtmfTone? Tone { get; set; } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecognizeCompletedInternal.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecognizeCompletedInternal.Serialization.cs index 5dac41a9dfb6..1f9cf9d90f72 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecognizeCompletedInternal.Serialization.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecognizeCompletedInternal.Serialization.cs @@ -24,10 +24,7 @@ internal static RecognizeCompletedInternal DeserializeRecognizeCompletedInternal Optional operationContext = default; Optional resultInformation = default; Optional recognitionType = default; - Optional collectTonesResult = default; Optional dtmfResult = default; - Optional choiceResult = default; - Optional speechResult = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("callConnectionId"u8)) @@ -68,15 +65,6 @@ internal static RecognizeCompletedInternal DeserializeRecognizeCompletedInternal recognitionType = new CallMediaRecognitionType(property.Value.GetString()); continue; } - if (property.NameEquals("collectTonesResult"u8)) - { - if (property.Value.ValueKind == JsonValueKind.Null) - { - continue; - } - collectTonesResult = CollectTonesResult.DeserializeCollectTonesResult(property.Value); - continue; - } if (property.NameEquals("dtmfResult"u8)) { if (property.Value.ValueKind == JsonValueKind.Null) @@ -86,26 +74,8 @@ internal static RecognizeCompletedInternal DeserializeRecognizeCompletedInternal dtmfResult = DtmfResult.DeserializeDtmfResult(property.Value); continue; } - if (property.NameEquals("choiceResult"u8)) - { - if (property.Value.ValueKind == JsonValueKind.Null) - { - continue; - } - choiceResult = ChoiceResult.DeserializeChoiceResult(property.Value); - continue; - } - if (property.NameEquals("speechResult"u8)) - { - if (property.Value.ValueKind == JsonValueKind.Null) - { - continue; - } - speechResult = SpeechResult.DeserializeSpeechResult(property.Value); - continue; - } } - return new RecognizeCompletedInternal(callConnectionId.Value, serverCallId.Value, correlationId.Value, operationContext.Value, resultInformation.Value, recognitionType, collectTonesResult.Value, dtmfResult.Value, choiceResult.Value, speechResult.Value); + return new RecognizeCompletedInternal(callConnectionId.Value, serverCallId.Value, correlationId.Value, operationContext.Value, resultInformation.Value, recognitionType, dtmfResult.Value); } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecognizeCompletedInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecognizeCompletedInternal.cs index 3e430f726bca..0299325ce185 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecognizeCompletedInternal.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecognizeCompletedInternal.cs @@ -18,21 +18,15 @@ internal RecognizeCompletedInternal() /// Initializes a new instance of RecognizeCompletedInternal. /// Call connection ID. /// Server call ID. - /// Correlation ID for event to call correlation. Also called ChainId for skype chain ID. + /// Correlation ID for event to call correlation. /// Used by customers when calling mid-call actions to correlate the request to the response event. - /// Contains the resulting SIP code/sub-code and message from NGC services. + /// Contains the resulting SIP code, sub-code and message. /// /// Determines the sub-type of the recognize operation. /// In case of cancel operation the this field is not set and is returned empty /// - /// - /// Defines the result for RecognitionType = Dtmf - /// Would be replaced by DtmfResult after server sdk renewed - /// /// Defines the result for RecognitionType = Dtmf. - /// Defines the result for RecognitionType = Choices. - /// Defines the result for RecognitionType = Speech and SpeechOrDtmf. - internal RecognizeCompletedInternal(string callConnectionId, string serverCallId, string correlationId, string operationContext, ResultInformation resultInformation, CallMediaRecognitionType recognitionType, CollectTonesResult collectTonesResult, DtmfResult dtmfResult, ChoiceResult choiceResult, SpeechResult speechResult) + internal RecognizeCompletedInternal(string callConnectionId, string serverCallId, string correlationId, string operationContext, ResultInformation resultInformation, CallMediaRecognitionType recognitionType, DtmfResult dtmfResult) { CallConnectionId = callConnectionId; ServerCallId = serverCallId; @@ -40,21 +34,9 @@ internal RecognizeCompletedInternal(string callConnectionId, string serverCallId OperationContext = operationContext; ResultInformation = resultInformation; RecognitionType = recognitionType; - CollectTonesResult = collectTonesResult; DtmfResult = dtmfResult; - ChoiceResult = choiceResult; - SpeechResult = speechResult; } - /// - /// Defines the result for RecognitionType = Dtmf - /// Would be replaced by DtmfResult after server sdk renewed - /// - public CollectTonesResult CollectTonesResult { get; } /// Defines the result for RecognitionType = Dtmf. public DtmfResult DtmfResult { get; } - /// Defines the result for RecognitionType = Choices. - public ChoiceResult ChoiceResult { get; } - /// Defines the result for RecognitionType = Speech and SpeechOrDtmf. - public SpeechResult SpeechResult { get; } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecognizeInputType.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecognizeInputType.cs index d88a45fdda37..bf8f57d152c7 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecognizeInputType.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecognizeInputType.cs @@ -23,18 +23,9 @@ public RecognizeInputType(string value) } private const string DtmfValue = "dtmf"; - private const string SpeechValue = "speech"; - private const string SpeechOrDtmfValue = "speechOrDtmf"; - private const string ChoicesValue = "choices"; /// dtmf. public static RecognizeInputType Dtmf { get; } = new RecognizeInputType(DtmfValue); - /// speech. - public static RecognizeInputType Speech { get; } = new RecognizeInputType(SpeechValue); - /// speechOrDtmf. - public static RecognizeInputType SpeechOrDtmf { get; } = new RecognizeInputType(SpeechOrDtmfValue); - /// choices. - public static RecognizeInputType Choices { get; } = new RecognizeInputType(ChoicesValue); /// Determines if two values are the same. public static bool operator ==(RecognizeInputType left, RecognizeInputType right) => left.Equals(right); /// Determines if two values are not the same. diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecognizeOptionsInternal.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecognizeOptionsInternal.Serialization.cs index 796d8ea8e36c..c30a995f668f 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecognizeOptionsInternal.Serialization.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecognizeOptionsInternal.Serialization.cs @@ -27,31 +27,11 @@ void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) } writer.WritePropertyName("targetParticipant"u8); writer.WriteObjectValue(TargetParticipant); - if (Optional.IsDefined(SpeechLanguage)) - { - writer.WritePropertyName("speechLanguage"u8); - writer.WriteStringValue(SpeechLanguage); - } if (Optional.IsDefined(DtmfOptions)) { writer.WritePropertyName("dtmfOptions"u8); writer.WriteObjectValue(DtmfOptions); } - if (Optional.IsCollectionDefined(Choices)) - { - writer.WritePropertyName("choices"u8); - writer.WriteStartArray(); - foreach (var item in Choices) - { - writer.WriteObjectValue(item); - } - writer.WriteEndArray(); - } - if (Optional.IsDefined(SpeechOptions)) - { - writer.WritePropertyName("speechOptions"u8); - writer.WriteObjectValue(SpeechOptions); - } writer.WriteEndObject(); } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecognizeOptionsInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecognizeOptionsInternal.cs index 180e1320a0d0..f86b94378fb7 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecognizeOptionsInternal.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecognizeOptionsInternal.cs @@ -6,7 +6,6 @@ #nullable disable using System; -using System.Collections.Generic; using Azure.Communication; using Azure.Core; @@ -23,7 +22,6 @@ public RecognizeOptionsInternal(CommunicationIdentifierModel targetParticipant) Argument.AssertNotNull(targetParticipant, nameof(targetParticipant)); TargetParticipant = targetParticipant; - Choices = new ChangeTrackingList(); } /// Determines if we interrupt the prompt and start recognizing. @@ -32,13 +30,7 @@ public RecognizeOptionsInternal(CommunicationIdentifierModel targetParticipant) public int? InitialSilenceTimeoutInSeconds { get; set; } /// Target participant of DTMF tone recognition. public CommunicationIdentifierModel TargetParticipant { get; } - /// Speech language to be recognized, If not set default is en-US. - public string SpeechLanguage { get; set; } /// Defines configurations for DTMF. public DtmfOptionsInternal DtmfOptions { get; set; } - /// Defines Ivr choices for recognize. - public IList Choices { get; } - /// Defines continuous speech recognition option. - public SpeechOptionsInternal SpeechOptions { get; set; } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecordingStateChanged.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecordingStateChanged.cs index aa92654d9ef1..788dd25c2f9f 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecordingStateChanged.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecordingStateChanged.cs @@ -20,7 +20,7 @@ internal RecordingStateChanged() /// Initializes a new instance of RecordingStateChanged. /// Call connection ID. /// Server call ID. - /// Correlation ID for event to call correlation. Also called ChainId for skype chain ID. + /// Correlation ID for event to call correlation. /// The call recording id. /// /// The time of the recording started. diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecordingStorageType.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecordingStorageType.cs deleted file mode 100644 index 92c9c1dabb00..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RecordingStorageType.cs +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System; -using System.ComponentModel; - -namespace Azure.Communication.CallAutomation -{ - /// Defines the type of external storage. - public readonly partial struct RecordingStorageType : IEquatable - { - private readonly string _value; - - /// Initializes a new instance of . - /// is null. - public RecordingStorageType(string value) - { - _value = value ?? throw new ArgumentNullException(nameof(value)); - } - - private const string AcsValue = "acs"; - private const string BlobStorageValue = "blobStorage"; - - /// acs. - public static RecordingStorageType Acs { get; } = new RecordingStorageType(AcsValue); - /// blobStorage. - public static RecordingStorageType BlobStorage { get; } = new RecordingStorageType(BlobStorageValue); - /// Determines if two values are the same. - public static bool operator ==(RecordingStorageType left, RecordingStorageType right) => left.Equals(right); - /// Determines if two values are not the same. - public static bool operator !=(RecordingStorageType left, RecordingStorageType right) => !left.Equals(right); - /// Converts a string to a . - public static implicit operator RecordingStorageType(string value) => new RecordingStorageType(value); - - /// - [EditorBrowsable(EditorBrowsableState.Never)] - public override bool Equals(object obj) => obj is RecordingStorageType other && Equals(other); - /// - public bool Equals(RecordingStorageType other) => string.Equals(_value, other._value, StringComparison.InvariantCultureIgnoreCase); - - /// - [EditorBrowsable(EditorBrowsableState.Never)] - public override int GetHashCode() => _value?.GetHashCode() ?? 0; - /// - public override string ToString() => _value; - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RedirectCallRequestInternal.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RedirectCallRequestInternal.Serialization.cs index c4d7608f7978..fce4f5e9a9ee 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RedirectCallRequestInternal.Serialization.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RedirectCallRequestInternal.Serialization.cs @@ -19,11 +19,6 @@ void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) writer.WriteStringValue(IncomingCallContext); writer.WritePropertyName("target"u8); writer.WriteObjectValue(Target); - if (Optional.IsDefined(CustomContext)) - { - writer.WritePropertyName("customContext"u8); - writer.WriteObjectValue(CustomContext); - } writer.WriteEndObject(); } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RedirectCallRequestInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RedirectCallRequestInternal.cs index 6f96b735c5e2..68d04df6f691 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RedirectCallRequestInternal.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RedirectCallRequestInternal.cs @@ -31,7 +31,5 @@ public RedirectCallRequestInternal(string incomingCallContext, CommunicationIden public string IncomingCallContext { get; } /// The target identity to redirect the call to. public CommunicationIdentifierModel Target { get; } - /// Used by customer to send custom context to targets. - public CustomContextInternal CustomContext { get; set; } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RemoveParticipantFailedInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RemoveParticipantFailedInternal.cs index 50e3b793ab41..fbcbb469adaa 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RemoveParticipantFailedInternal.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RemoveParticipantFailedInternal.cs @@ -22,7 +22,7 @@ internal RemoveParticipantFailedInternal() /// Server call ID. /// Correlation ID for event to call correlation. Also called ChainId for skype chain ID. /// Used by customers when calling mid-call actions to correlate the request to the response event. - /// Contains the resulting SIP code/sub-code and message from NGC services. + /// Contains the resulting SIP code, sub-code and message. /// Participant. internal RemoveParticipantFailedInternal(string callConnectionId, string serverCallId, string correlationId, string operationContext, ResultInformation resultInformation, CommunicationIdentifierModel participant) { @@ -42,7 +42,7 @@ internal RemoveParticipantFailedInternal(string callConnectionId, string serverC public string CorrelationId { get; } /// Used by customers when calling mid-call actions to correlate the request to the response event. public string OperationContext { get; } - /// Contains the resulting SIP code/sub-code and message from NGC services. + /// Contains the resulting SIP code, sub-code and message. public ResultInformation ResultInformation { get; } /// Participant. public CommunicationIdentifierModel Participant { get; } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RemoveParticipantSucceededInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RemoveParticipantSucceededInternal.cs index c159aac3febf..3a0e7193c4b9 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RemoveParticipantSucceededInternal.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/RemoveParticipantSucceededInternal.cs @@ -22,7 +22,7 @@ internal RemoveParticipantSucceededInternal() /// Server call ID. /// Correlation ID for event to call correlation. Also called ChainId for skype chain ID. /// Used by customers when calling mid-call actions to correlate the request to the response event. - /// Contains the resulting SIP code/sub-code and message from NGC services. + /// Contains the resulting SIP code, sub-code and message. /// Participant. internal RemoveParticipantSucceededInternal(string callConnectionId, string serverCallId, string correlationId, string operationContext, ResultInformation resultInformation, CommunicationIdentifierModel participant) { @@ -42,7 +42,7 @@ internal RemoveParticipantSucceededInternal(string callConnectionId, string serv public string CorrelationId { get; } /// Used by customers when calling mid-call actions to correlate the request to the response event. public string OperationContext { get; } - /// Contains the resulting SIP code/sub-code and message from NGC services. + /// Contains the resulting SIP code, sub-code and message. public ResultInformation ResultInformation { get; } /// Participant. public CommunicationIdentifierModel Participant { get; } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ResultInformation.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ResultInformation.cs index 17cf6a9e0773..b32642c9e453 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ResultInformation.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ResultInformation.cs @@ -16,9 +16,9 @@ internal ResultInformation() } /// Initializes a new instance of ResultInformation. - /// - /// - /// + /// Code of the current result. This can be helpful to Call Automation team to troubleshoot the issue if this result was unexpected. + /// Subcode of the current result. This can be helpful to Call Automation team to troubleshoot the issue if this result was unexpected. + /// Detail message that describes the current result. internal ResultInformation(int? code, int? subCode, string message) { Code = code; @@ -26,11 +26,11 @@ internal ResultInformation(int? code, int? subCode, string message) Message = message; } - /// Gets the code. + /// Code of the current result. This can be helpful to Call Automation team to troubleshoot the issue if this result was unexpected. public int? Code { get; } - /// Gets the sub code. + /// Subcode of the current result. This can be helpful to Call Automation team to troubleshoot the issue if this result was unexpected. public int? SubCode { get; } - /// Gets the message. + /// Detail message that describes the current result. public string Message { get; } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SendDtmfCompleted.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SendDtmfCompleted.Serialization.cs deleted file mode 100644 index b7eaaf96bc45..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SendDtmfCompleted.Serialization.cs +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System.Text.Json; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - public partial class SendDtmfCompleted - { - internal static SendDtmfCompleted DeserializeSendDtmfCompleted(JsonElement element) - { - if (element.ValueKind == JsonValueKind.Null) - { - return null; - } - Optional callConnectionId = default; - Optional serverCallId = default; - Optional correlationId = default; - Optional operationContext = default; - Optional resultInformation = default; - foreach (var property in element.EnumerateObject()) - { - if (property.NameEquals("callConnectionId"u8)) - { - callConnectionId = property.Value.GetString(); - continue; - } - if (property.NameEquals("serverCallId"u8)) - { - serverCallId = property.Value.GetString(); - continue; - } - if (property.NameEquals("correlationId"u8)) - { - correlationId = property.Value.GetString(); - continue; - } - if (property.NameEquals("operationContext"u8)) - { - operationContext = property.Value.GetString(); - continue; - } - if (property.NameEquals("resultInformation"u8)) - { - if (property.Value.ValueKind == JsonValueKind.Null) - { - continue; - } - resultInformation = ResultInformation.DeserializeResultInformation(property.Value); - continue; - } - } - return new SendDtmfCompleted(callConnectionId.Value, serverCallId.Value, correlationId.Value, operationContext.Value, resultInformation.Value); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SendDtmfCompleted.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SendDtmfCompleted.cs deleted file mode 100644 index 280eaec6332f..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SendDtmfCompleted.cs +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -namespace Azure.Communication.CallAutomation -{ - /// The SendDtmfCompleted. - public partial class SendDtmfCompleted - { - /// Initializes a new instance of SendDtmfCompleted. - internal SendDtmfCompleted() - { - } - - /// Initializes a new instance of SendDtmfCompleted. - /// Call connection ID. - /// Server call ID. - /// Correlation ID for event to call correlation. Also called ChainId for skype chain ID. - /// Used by customers when calling mid-call actions to correlate the request to the response event. - /// Contains the resulting SIP code/sub-code and message from NGC services. - internal SendDtmfCompleted(string callConnectionId, string serverCallId, string correlationId, string operationContext, ResultInformation resultInformation) - { - CallConnectionId = callConnectionId; - ServerCallId = serverCallId; - CorrelationId = correlationId; - OperationContext = operationContext; - ResultInformation = resultInformation; - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SendDtmfFailed.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SendDtmfFailed.Serialization.cs deleted file mode 100644 index 4bf095ef3260..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SendDtmfFailed.Serialization.cs +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System.Text.Json; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - public partial class SendDtmfFailed - { - internal static SendDtmfFailed DeserializeSendDtmfFailed(JsonElement element) - { - if (element.ValueKind == JsonValueKind.Null) - { - return null; - } - Optional callConnectionId = default; - Optional serverCallId = default; - Optional correlationId = default; - Optional operationContext = default; - Optional resultInformation = default; - foreach (var property in element.EnumerateObject()) - { - if (property.NameEquals("callConnectionId"u8)) - { - callConnectionId = property.Value.GetString(); - continue; - } - if (property.NameEquals("serverCallId"u8)) - { - serverCallId = property.Value.GetString(); - continue; - } - if (property.NameEquals("correlationId"u8)) - { - correlationId = property.Value.GetString(); - continue; - } - if (property.NameEquals("operationContext"u8)) - { - operationContext = property.Value.GetString(); - continue; - } - if (property.NameEquals("resultInformation"u8)) - { - if (property.Value.ValueKind == JsonValueKind.Null) - { - continue; - } - resultInformation = ResultInformation.DeserializeResultInformation(property.Value); - continue; - } - } - return new SendDtmfFailed(callConnectionId.Value, serverCallId.Value, correlationId.Value, operationContext.Value, resultInformation.Value); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SendDtmfFailed.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SendDtmfFailed.cs deleted file mode 100644 index d58b6753404d..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SendDtmfFailed.cs +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -namespace Azure.Communication.CallAutomation -{ - /// The SendDtmfFailed. - public partial class SendDtmfFailed - { - /// Initializes a new instance of SendDtmfFailed. - internal SendDtmfFailed() - { - } - - /// Initializes a new instance of SendDtmfFailed. - /// Call connection ID. - /// Server call ID. - /// Correlation ID for event to call correlation. Also called ChainId for skype chain ID. - /// Used by customers when calling mid-call actions to correlate the request to the response event. - /// Contains the resulting SIP code/sub-code and message from NGC services. - internal SendDtmfFailed(string callConnectionId, string serverCallId, string correlationId, string operationContext, ResultInformation resultInformation) - { - CallConnectionId = callConnectionId; - ServerCallId = serverCallId; - CorrelationId = correlationId; - OperationContext = operationContext; - ResultInformation = resultInformation; - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SendDtmfRequestInternal.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SendDtmfRequestInternal.Serialization.cs deleted file mode 100644 index da3ee3a717ca..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SendDtmfRequestInternal.Serialization.cs +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System.Text.Json; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - internal partial class SendDtmfRequestInternal : IUtf8JsonSerializable - { - void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) - { - writer.WriteStartObject(); - writer.WritePropertyName("tones"u8); - writer.WriteStartArray(); - foreach (var item in Tones) - { - writer.WriteStringValue(item.ToString()); - } - writer.WriteEndArray(); - writer.WritePropertyName("targetParticipant"u8); - writer.WriteObjectValue(TargetParticipant); - if (Optional.IsDefined(OperationContext)) - { - writer.WritePropertyName("operationContext"u8); - writer.WriteStringValue(OperationContext); - } - writer.WriteEndObject(); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SendDtmfRequestInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SendDtmfRequestInternal.cs deleted file mode 100644 index 9aa6f1bd22d4..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SendDtmfRequestInternal.cs +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System; -using System.Collections.Generic; -using System.Linq; -using Azure.Communication; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - /// The SendDtmfRequest. - internal partial class SendDtmfRequestInternal - { - /// Initializes a new instance of SendDtmfRequestInternal. - /// List of tones to be sent to target participant. - /// Target participant of send DTMF. - /// or is null. - public SendDtmfRequestInternal(IEnumerable tones, CommunicationIdentifierModel targetParticipant) - { - Argument.AssertNotNull(tones, nameof(tones)); - Argument.AssertNotNull(targetParticipant, nameof(targetParticipant)); - - Tones = tones.ToList(); - TargetParticipant = targetParticipant; - } - - /// List of tones to be sent to target participant. - public IList Tones { get; } - /// Target participant of send DTMF. - public CommunicationIdentifierModel TargetParticipant { get; } - /// The value to identify context of the operation. - public string OperationContext { get; set; } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SpeechOptionsInternal.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SpeechOptionsInternal.Serialization.cs deleted file mode 100644 index d13218841d36..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SpeechOptionsInternal.Serialization.cs +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System.Text.Json; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - internal partial class SpeechOptionsInternal : IUtf8JsonSerializable - { - void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) - { - writer.WriteStartObject(); - if (Optional.IsDefined(EndSilenceTimeoutInMs)) - { - writer.WritePropertyName("endSilenceTimeoutInMs"u8); - writer.WriteNumberValue(EndSilenceTimeoutInMs.Value); - } - writer.WriteEndObject(); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SpeechOptionsInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SpeechOptionsInternal.cs deleted file mode 100644 index 46988d0eff6a..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SpeechOptionsInternal.cs +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -namespace Azure.Communication.CallAutomation -{ - /// Options for continuous speech recognition. - internal partial class SpeechOptionsInternal - { - /// Initializes a new instance of SpeechOptionsInternal. - public SpeechOptionsInternal() - { - } - - /// The length of end silence when user stops speaking and cogservice send response. - public long? EndSilenceTimeoutInMs { get; set; } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SpeechResult.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SpeechResult.Serialization.cs deleted file mode 100644 index 4a2cb4857623..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SpeechResult.Serialization.cs +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System.Text.Json; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - public partial class SpeechResult - { - internal static SpeechResult DeserializeSpeechResult(JsonElement element) - { - if (element.ValueKind == JsonValueKind.Null) - { - return null; - } - Optional speech = default; - foreach (var property in element.EnumerateObject()) - { - if (property.NameEquals("speech"u8)) - { - speech = property.Value.GetString(); - continue; - } - } - return new SpeechResult(speech.Value); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SpeechResult.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SpeechResult.cs deleted file mode 100644 index 627320d3b285..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SpeechResult.cs +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -namespace Azure.Communication.CallAutomation -{ - /// The speech status as a result. - public partial class SpeechResult - { - /// Initializes a new instance of SpeechResult. - internal SpeechResult() - { - } - - /// Initializes a new instance of SpeechResult. - /// The recognized speech in string. - internal SpeechResult(string speech) - { - Speech = speech; - } - - /// The recognized speech in string. - public string Speech { get; } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SsmlSourceInternal.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SsmlSourceInternal.Serialization.cs deleted file mode 100644 index ecb5f43b9479..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SsmlSourceInternal.Serialization.cs +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System.Text.Json; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - internal partial class SsmlSourceInternal : IUtf8JsonSerializable - { - void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) - { - writer.WriteStartObject(); - writer.WritePropertyName("ssmlText"u8); - writer.WriteStringValue(SsmlText); - writer.WriteEndObject(); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SsmlSourceInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SsmlSourceInternal.cs deleted file mode 100644 index 315acecb3af5..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/SsmlSourceInternal.cs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - /// The SsmlSource. - internal partial class SsmlSourceInternal - { - /// Initializes a new instance of SsmlSourceInternal. - /// Ssml string for the cognitive service to be played. - /// is null. - public SsmlSourceInternal(string ssmlText) - { - Argument.AssertNotNull(ssmlText, nameof(ssmlText)); - - SsmlText = ssmlText; - } - - /// Ssml string for the cognitive service to be played. - public string SsmlText { get; } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/StartCallRecordingRequestInternal.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/StartCallRecordingRequestInternal.Serialization.cs index 233a426655f4..6cf9b160497d 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/StartCallRecordingRequestInternal.Serialization.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/StartCallRecordingRequestInternal.Serialization.cs @@ -57,11 +57,6 @@ void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) } writer.WriteEndArray(); } - if (Optional.IsDefined(ExternalStorage)) - { - writer.WritePropertyName("externalStorage"u8); - writer.WriteObjectValue(ExternalStorage); - } writer.WriteEndObject(); } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/StartCallRecordingRequestInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/StartCallRecordingRequestInternal.cs index 3cc28477dc3d..644c46f280a4 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/StartCallRecordingRequestInternal.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/StartCallRecordingRequestInternal.cs @@ -51,7 +51,5 @@ public StartCallRecordingRequestInternal(CallLocatorInternal callLocator) /// /// /// public IList ChannelAffinity { get; } - /// Optional property to specify location where recording will be stored. - public ExternalStorageInternal ExternalStorage { get; set; } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/TextSourceInternal.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/TextSourceInternal.Serialization.cs deleted file mode 100644 index a9184868a365..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/TextSourceInternal.Serialization.cs +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System.Text.Json; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - internal partial class TextSourceInternal : IUtf8JsonSerializable - { - void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) - { - writer.WriteStartObject(); - writer.WritePropertyName("text"u8); - writer.WriteStringValue(Text); - if (Optional.IsDefined(SourceLocale)) - { - writer.WritePropertyName("sourceLocale"u8); - writer.WriteStringValue(SourceLocale); - } - if (Optional.IsDefined(VoiceGender)) - { - writer.WritePropertyName("voiceGender"u8); - writer.WriteStringValue(VoiceGender.Value.ToString()); - } - if (Optional.IsDefined(VoiceName)) - { - writer.WritePropertyName("voiceName"u8); - writer.WriteStringValue(VoiceName); - } - writer.WriteEndObject(); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/TextSourceInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/TextSourceInternal.cs deleted file mode 100644 index c1f1c6e267c6..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/TextSourceInternal.cs +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - /// The TextSource. - internal partial class TextSourceInternal - { - /// Initializes a new instance of TextSourceInternal. - /// Text for the cognitive service to be played. - /// is null. - public TextSourceInternal(string text) - { - Argument.AssertNotNull(text, nameof(text)); - - Text = text; - } - - /// Text for the cognitive service to be played. - public string Text { get; } - /// - /// Source language locale to be played - /// Refer to available locales here: <seealso href="https://learn.microsoft.com/en-us/azure/cognitive-services/speech-service/language-support?tabs=stt-tts" /> - /// - public string SourceLocale { get; set; } - /// Voice gender type. - public GenderType? VoiceGender { get; set; } - /// - /// Voice name to be played - /// Refer to available Text-to-speech voices here: <seealso href="https://learn.microsoft.com/en-us/azure/cognitive-services/speech-service/language-support?tabs=stt-tts" /> - /// - public string VoiceName { get; set; } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ToneInfo.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ToneInfo.Serialization.cs deleted file mode 100644 index 1f8bbf9bfeb6..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ToneInfo.Serialization.cs +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System.Text.Json; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - public partial class ToneInfo - { - internal static ToneInfo DeserializeToneInfo(JsonElement element) - { - if (element.ValueKind == JsonValueKind.Null) - { - return null; - } - int sequenceId = default; - DtmfTone tone = default; - foreach (var property in element.EnumerateObject()) - { - if (property.NameEquals("sequenceId"u8)) - { - sequenceId = property.Value.GetInt32(); - continue; - } - if (property.NameEquals("tone"u8)) - { - tone = new DtmfTone(property.Value.GetString()); - continue; - } - } - return new ToneInfo(sequenceId, tone); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ToneInfo.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ToneInfo.cs deleted file mode 100644 index 9d8bec0d8013..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/ToneInfo.cs +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -namespace Azure.Communication.CallAutomation -{ - /// The information about the tone. - public partial class ToneInfo - { - /// Initializes a new instance of ToneInfo. - /// The sequence id which can be used to determine if the same tone was played multiple times or if any tones were missed. - /// - internal ToneInfo(int sequenceId, DtmfTone tone) - { - SequenceId = sequenceId; - Tone = tone; - } - - /// The sequence id which can be used to determine if the same tone was played multiple times or if any tones were missed. - public int SequenceId { get; } - /// Gets the tone. - public DtmfTone Tone { get; } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/TransferToParticipantRequestInternal.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/TransferToParticipantRequestInternal.Serialization.cs index fba8d206e681..51bb485a8619 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/TransferToParticipantRequestInternal.Serialization.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/TransferToParticipantRequestInternal.Serialization.cs @@ -17,11 +17,6 @@ void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) writer.WriteStartObject(); writer.WritePropertyName("targetParticipant"u8); writer.WriteObjectValue(TargetParticipant); - if (Optional.IsDefined(CustomContext)) - { - writer.WritePropertyName("customContext"u8); - writer.WriteObjectValue(CustomContext); - } if (Optional.IsDefined(OperationContext)) { writer.WritePropertyName("operationContext"u8); diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/TransferToParticipantRequestInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/TransferToParticipantRequestInternal.cs index baa6300ed5c7..9215c13149b4 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/TransferToParticipantRequestInternal.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/TransferToParticipantRequestInternal.cs @@ -26,8 +26,6 @@ public TransferToParticipantRequestInternal(CommunicationIdentifierModel targetP /// The identity of the target where call should be transferred to. public CommunicationIdentifierModel TargetParticipant { get; } - /// Used by customer to send custom context to targets. - public CustomContextInternal CustomContext { get; set; } /// Used by customers when calling mid-call actions to correlate the request to the response event. public string OperationContext { get; set; } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/UnmuteParticipantsRequestInternal.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/UnmuteParticipantsRequestInternal.Serialization.cs deleted file mode 100644 index 059a7742b555..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/UnmuteParticipantsRequestInternal.Serialization.cs +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System.Text.Json; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - internal partial class UnmuteParticipantsRequestInternal : IUtf8JsonSerializable - { - void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) - { - writer.WriteStartObject(); - writer.WritePropertyName("targetParticipants"u8); - writer.WriteStartArray(); - foreach (var item in TargetParticipants) - { - writer.WriteObjectValue(item); - } - writer.WriteEndArray(); - if (Optional.IsDefined(OperationContext)) - { - writer.WritePropertyName("operationContext"u8); - writer.WriteStringValue(OperationContext); - } - writer.WriteEndObject(); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/UnmuteParticipantsRequestInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/UnmuteParticipantsRequestInternal.cs deleted file mode 100644 index 5f8a73cd3f74..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/UnmuteParticipantsRequestInternal.cs +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System; -using System.Collections.Generic; -using System.Linq; -using Azure.Communication; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - /// The request payload for unmuting participant from the call. - internal partial class UnmuteParticipantsRequestInternal - { - /// Initializes a new instance of UnmuteParticipantsRequestInternal. - /// - /// Participants to be unmuted from the call. - /// Only ACS Users are supported. - /// - /// is null. - public UnmuteParticipantsRequestInternal(IEnumerable targetParticipants) - { - Argument.AssertNotNull(targetParticipants, nameof(targetParticipants)); - - TargetParticipants = targetParticipants.ToList(); - } - - /// - /// Participants to be unmuted from the call. - /// Only ACS Users are supported. - /// - public IList TargetParticipants { get; } - /// Used by customers when calling mid-call actions to correlate the request to the response event. - public string OperationContext { get; set; } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/UnmuteParticipantsResponse.Serialization.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/UnmuteParticipantsResponse.Serialization.cs deleted file mode 100644 index 7bea3b7ea9a3..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/UnmuteParticipantsResponse.Serialization.cs +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -using System.Text.Json; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - public partial class UnmuteParticipantsResponse - { - internal static UnmuteParticipantsResponse DeserializeUnmuteParticipantsResponse(JsonElement element) - { - if (element.ValueKind == JsonValueKind.Null) - { - return null; - } - Optional operationContext = default; - foreach (var property in element.EnumerateObject()) - { - if (property.NameEquals("operationContext"u8)) - { - operationContext = property.Value.GetString(); - continue; - } - } - return new UnmuteParticipantsResponse(operationContext.Value); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/UnmuteParticipantsResponse.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/UnmuteParticipantsResponse.cs deleted file mode 100644 index eabe487866e4..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Generated/Models/UnmuteParticipantsResponse.cs +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -// - -#nullable disable - -namespace Azure.Communication.CallAutomation -{ - /// The response payload for unmuting participants from the call. - public partial class UnmuteParticipantsResponse - { - /// Initializes a new instance of UnmuteParticipantsResponse. - internal UnmuteParticipantsResponse() - { - } - - /// Initializes a new instance of UnmuteParticipantsResponse. - /// The operation context provided by client. - internal UnmuteParticipantsResponse(string operationContext) - { - OperationContext = operationContext; - } - - /// The operation context provided by client. - public string OperationContext { get; } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/AnswerCallOptions.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/AnswerCallOptions.cs index 22c18737a799..1166b957272d 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/AnswerCallOptions.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Models/AnswerCallOptions.cs @@ -31,21 +31,6 @@ public AnswerCallOptions(string incomingCallContext, Uri callbackUri) /// public Uri CallbackUri { get; } - /// - /// Media Streaming Configuration. - /// - public MediaStreamingOptions MediaStreamingOptions { get; set; } - - /// - /// The endpoint URL of the Azure Cognitive Services resource attached - /// - public Uri AzureCognitiveServicesEndpointUrl { get; set; } - - /// - /// The identifier of the call automation entity which answers the call. - /// - public CommunicationUserIdentifier AnsweredByIdentifier { get; set; } - /// /// The operation context. /// diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/BlobStorage.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/BlobStorage.cs deleted file mode 100644 index adb0a435cd63..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/BlobStorage.cs +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using System; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - /// - /// Used to specify Blob container url for storing recordings. - /// - public class BlobStorage : ExternalStorage - { - /// - /// Url of a container or a location within a container. - /// - public Uri ContainerUri { get; } - - /// - /// Initializes a new instance of BlobStorage. - /// - /// Url of a container or a location within a container. - public BlobStorage(Uri containerUri) - { - Argument.AssertNotNull(containerUri, nameof(containerUri)); - ContainerUri = containerUri; - StorageType = RecordingStorageType.BlobStorage; - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/BlobStorageInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/BlobStorageInternal.cs deleted file mode 100644 index 80ddf8188d83..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/BlobStorageInternal.cs +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - [CodeGenModel("BlobStorage")] - internal partial class BlobStorageInternal - { - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/CallAutomationModelFactory.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/CallAutomationModelFactory.cs index 74eb9266fb6f..0f6438608b87 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/CallAutomationModelFactory.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Models/CallAutomationModelFactory.cs @@ -40,7 +40,7 @@ public static AnswerCallResult AnswerCallResult(CallConnection callConnection = /// Source identity. /// Caller ID phone number to appear on the invitee. /// Display name to appear on the invitee. - /// The subscriptionId for Media Streaming. + /// AnsweredBy identity. /// A new instance for mocking. public static CallConnectionProperties CallConnectionProperties( string callConnectionId = default, @@ -51,9 +51,9 @@ public static CallConnectionProperties CallConnectionProperties( CommunicationIdentifier sourceIdentity = default, PhoneNumberIdentifier sourceCallerIdNumber = default, string sourceDisplayName = default, - string mediaSubscriptionId = default) + CommunicationIdentifier answeredBy = default) { - return new CallConnectionProperties(callConnectionId, serverCallId, targets, callConnectionState, callbackUri, sourceIdentity, sourceCallerIdNumber, sourceDisplayName, mediaSubscriptionId); + return new CallConnectionProperties(callConnectionId, serverCallId, targets, callConnectionState, callbackUri, sourceIdentity, sourceCallerIdNumber, sourceDisplayName, answeredBy); } /// Initializes a new instance of CallParticipant. @@ -194,7 +194,7 @@ public static RemoveParticipantSucceeded RemoveParticipantSucceeded(string callC /// Determines the sub-type of the recognize operation. /// In case of cancel operation the this field is not set and is returned empty /// - /// Defines the result for RecognitionType = Dtmf,Choice,Speech. + /// Defines the result for RecognitionType = Dtmf. /// A new instance for mocking. public static RecognizeCompleted RecognizeCompleted(string callConnectionId = null, string serverCallId = null, string correlationId = null, string operationContext = null, ResultInformation resultInformation = null, CallMediaRecognitionType recognitionType = default, RecognizeResult recognizeResult = null) { diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/CallConnectionProperties.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/CallConnectionProperties.cs index 547b29952c51..c838c6816af0 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/CallConnectionProperties.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Models/CallConnectionProperties.cs @@ -19,18 +19,17 @@ internal CallConnectionProperties( CommunicationIdentifier sourceIdentity, PhoneNumberIdentifier sourceCallerIdNumber, string sourceDisplayName, - string mediaSubscriptionId - ) + CommunicationIdentifier answeredBy) { CallConnectionId = callConnectionId; ServerCallId = serverCallId; Targets = targets == null ? new List() : targets.ToList(); CallConnectionState = callConnectionState == default ? CallConnectionState.Unknown : callConnectionState; CallbackUri = callbackUri; - SourceIdentity = sourceIdentity; + Source = sourceIdentity; SourceCallerIdNumber = sourceCallerIdNumber; SourceDisplayName = sourceDisplayName; - MediaSubscriptionId = mediaSubscriptionId; + AnsweredBy = new CommunicationUserIdentifier(answeredBy.RawId); } internal CallConnectionProperties(CallConnectionPropertiesInternal callConnectionPropertiesDtoInternal) @@ -49,11 +48,10 @@ internal CallConnectionProperties(CallConnectionPropertiesInternal callConnectio } CallbackUri = new Uri(callConnectionPropertiesDtoInternal.CallbackUri); - MediaSubscriptionId = callConnectionPropertiesDtoInternal.MediaSubscriptionId; - SourceIdentity = callConnectionPropertiesDtoInternal.SourceIdentity == null? null : CommunicationIdentifierSerializer.Deserialize(callConnectionPropertiesDtoInternal.SourceIdentity); + Source = callConnectionPropertiesDtoInternal.Source == null? null : CommunicationIdentifierSerializer.Deserialize(callConnectionPropertiesDtoInternal.Source); SourceDisplayName = callConnectionPropertiesDtoInternal.SourceDisplayName; CorrelationId = callConnectionPropertiesDtoInternal.CorrelationId; - AnsweredByIdentifier = callConnectionPropertiesDtoInternal.AnsweredByIdentifier == null? null : new CommunicationUserIdentifier(callConnectionPropertiesDtoInternal.AnsweredByIdentifier.Id); + AnsweredBy = callConnectionPropertiesDtoInternal.AnsweredBy == null? null : new CommunicationUserIdentifier(callConnectionPropertiesDtoInternal.AnsweredBy.Id); if (callConnectionPropertiesDtoInternal.SourceCallerIdNumber != null) { @@ -71,8 +69,6 @@ internal CallConnectionProperties(CallConnectionPropertiesInternal callConnectio public CallConnectionState CallConnectionState { get; } /// The callback URI. public Uri CallbackUri { get; } - /// SubscriptionId for media streaming. - public string MediaSubscriptionId { get; } /// /// Caller ID phone number to appear on the invitee. /// @@ -84,16 +80,15 @@ internal CallConnectionProperties(CallConnectionPropertiesInternal callConnectio /// /// Source identity. /// - public CommunicationIdentifier SourceIdentity { get; } + public CommunicationIdentifier Source { get; } /// /// The correlation ID. /// public string CorrelationId { get; } - /// /// Identity of the answering entity. Only populated when identity is provided in the request. /// - public CommunicationUserIdentifier AnsweredByIdentifier { get; } + public CommunicationUserIdentifier AnsweredBy { get; } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/CallInvite.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/CallInvite.cs index 995d3c8adedc..17a42057a44d 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/CallInvite.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Models/CallInvite.cs @@ -15,34 +15,28 @@ public class CallInvite /// /// /// - /// /// - public CallInvite(PhoneNumberIdentifier targetPhoneNumberIdentity, PhoneNumberIdentifier callerIdNumber, IDictionary sipHeaders = null) + public CallInvite(PhoneNumberIdentifier targetPhoneNumberIdentity, PhoneNumberIdentifier callerIdNumber) { Target = targetPhoneNumberIdentity; SourceCallerIdNumber = callerIdNumber; - SipHeaders= sipHeaders == null ? new Dictionary() : sipHeaders; } /// /// Creates a new CallInvite object. /// /// - /// - public CallInvite(CommunicationUserIdentifier targetIdentity, IDictionary voipHeaders = null) + public CallInvite(CommunicationUserIdentifier targetIdentity) { Target = targetIdentity; - VoipHeaders= voipHeaders == null ? new Dictionary() : voipHeaders; } /// /// Creates a new CallInvite object. /// /// - /// - public CallInvite(MicrosoftTeamsUserIdentifier targetIdentity, IDictionary voipHeaders = null) + public CallInvite(MicrosoftTeamsUserIdentifier targetIdentity) { Target = targetIdentity; - VoipHeaders = voipHeaders == null ? new Dictionary() : voipHeaders; } /// @@ -57,12 +51,6 @@ public CallInvite(MicrosoftTeamsUserIdentifier targetIdentity, IDictionary public PhoneNumberIdentifier SourceCallerIdNumber { get; } - /// Dictionary of VOIP headers. - public IDictionary VoipHeaders { get; } - - /// Dictionary of SIP headers. - public IDictionary SipHeaders { get; } - /// /// The display name to appear on target callee. /// diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/CallMediaRecognizeChoiceOptions.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/CallMediaRecognizeChoiceOptions.cs deleted file mode 100644 index 6334facc2014..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/CallMediaRecognizeChoiceOptions.cs +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; - -namespace Azure.Communication.CallAutomation -{ - /// - /// The Recognize configurations specific for IVR Choices. - /// - public class CallMediaRecognizeChoiceOptions : CallMediaRecognizeOptions - { - /// Initializes a new instance of CallMediaRecognizeChoiceOptions. - public CallMediaRecognizeChoiceOptions(CommunicationIdentifier targetParticipant, List recognizeChoices) : base(RecognizeInputType.Choices, targetParticipant) - { - RecognizeChoices = recognizeChoices; - } - - /// - /// The IvR choices for recognize - /// - public IList RecognizeChoices { get; } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/CallMediaRecognizeOptions.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/CallMediaRecognizeOptions.cs index c71f5e1b4461..d20506f7d792 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/CallMediaRecognizeOptions.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Models/CallMediaRecognizeOptions.cs @@ -58,8 +58,5 @@ protected CallMediaRecognizeOptions(RecognizeInputType inputType, CommunicationI /// Target participant of DTFM tone recognition. /// public CommunicationIdentifier TargetParticipant { get; } - - /// Speech language to be recognized, If not set default is en-US. - public string SpeechLanguage { get; set; } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/CallMediaRecognizeSpeechOptions.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/CallMediaRecognizeSpeechOptions.cs deleted file mode 100644 index f2d9909bb1be..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/CallMediaRecognizeSpeechOptions.cs +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; - -namespace Azure.Communication.CallAutomation -{ - /// - /// The Recognize configurations specific for IVR Continuouse Speech Recognition. - /// - public class CallMediaRecognizeSpeechOptions : CallMediaRecognizeOptions - { - private static readonly TimeSpan _defaultEndSilenceTimeoutInMs = TimeSpan.FromMilliseconds(500); - - /// Initializes a new instance of CallMediaRecognizeSpeechOptions. - public CallMediaRecognizeSpeechOptions(CommunicationIdentifier targetParticipant) : base(RecognizeInputType.Speech, targetParticipant) - { - EndSilenceTimeoutInMs = _defaultEndSilenceTimeoutInMs; - } - - /// The length of end silence when user stops speaking and cogservice send response. - public TimeSpan EndSilenceTimeoutInMs { get; set; } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/CallMediaRecognizeSpeechOrDtmfOptions.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/CallMediaRecognizeSpeechOrDtmfOptions.cs deleted file mode 100644 index a2eeffd4b4d5..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/CallMediaRecognizeSpeechOrDtmfOptions.cs +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; - -namespace Azure.Communication.CallAutomation -{ - /// - /// The Recognize configurations specific for IVR Continuouse Speech Recognition. - /// - public class CallMediaRecognizeSpeechOrDtmfOptions : CallMediaRecognizeOptions - { - private static readonly TimeSpan _defaultInterToneTimeout = TimeSpan.FromSeconds(2); - private static readonly TimeSpan _defaultEndSilenceTimeoutInMs = TimeSpan.FromMilliseconds(500); - - /// Initializes a new instance of CallMediaRecognizeSpeechOrDtmfOptions. - public CallMediaRecognizeSpeechOrDtmfOptions(CommunicationIdentifier targetParticipant, int maxTonesToCollect) : base(RecognizeInputType.SpeechOrDtmf, targetParticipant) - { - EndSilenceTimeoutInMs = _defaultInterToneTimeout; - MaxTonesToCollect = maxTonesToCollect; - StopTones = Array.Empty(); - } - - /// The length of end silence when user stops speaking and cogservice send response. - public TimeSpan EndSilenceTimeoutInMs { get; set; } - - /// - /// Time to wait between DTMF inputs to stop recognizing. - /// If not provided, a default of 2 seconds is set. - /// - public TimeSpan InterToneTimeout { get; set; } = _defaultInterToneTimeout; - - /// - /// Maximum number of DTMF tones to be collected. - /// - public int MaxTonesToCollect { get; } - - /// - /// List of tones that will stop recognizing. - /// - public IReadOnlyList StopTones { get; set; } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/ChannelAffinity.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/ChannelAffinity.cs index 83812c757d6e..1fc0c7e8950b 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/ChannelAffinity.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Models/ChannelAffinity.cs @@ -26,7 +26,7 @@ public ChannelAffinity(CommunicationIdentifier participant) /// The identifier for the participant whose bitstream will be written to the channel. /// represented by the channel number. /// - public CommunicationIdentifier Participant { get; set; } + public CommunicationIdentifier Participant { get; } /// Channel number to which bitstream from a particular participant will be written. public int? Channel { get; set; } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/ContinuousDtmfRecognitionRequestInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/ContinuousDtmfRecognitionRequestInternal.cs deleted file mode 100644 index ff04d533b00f..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/ContinuousDtmfRecognitionRequestInternal.cs +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - [CodeGenModel("ContinuousDtmfRecognitionRequest")] - internal partial class ContinuousDtmfRecognitionRequestInternal - { - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/CreateCallOptions.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/CreateCallOptions.cs index 1903b7fa737a..966235956b37 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/CreateCallOptions.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Models/CreateCallOptions.cs @@ -34,15 +34,5 @@ public CreateCallOptions(CallInvite callInvite, Uri callbackUri) /// The Operation context. /// public string OperationContext { get; set; } - - /// - /// Media Streaming Configuration. - /// - public MediaStreamingOptions MediaStreamingOptions { get; set; } - - /// - /// The endpoint URL of the Azure Cognitive Services resource attached - /// - public Uri AzureCognitiveServicesEndpointUrl { get; set; } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/CreateGroupCallOptions.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/CreateGroupCallOptions.cs index 038f3449aa65..ca64ec4b2dd9 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/CreateGroupCallOptions.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Models/CreateGroupCallOptions.cs @@ -45,25 +45,5 @@ public CreateGroupCallOptions(IEnumerable targets, Uri /// The Operation context. /// public string OperationContext { get; set; } - - /// - /// Media Streaming Configuration. - /// - public MediaStreamingOptions MediaStreamingOptions { get; set; } - - /// - /// The endpoint URL of the Azure Cognitive Services resource attached - /// - public Uri AzureCognitiveServicesEndpointUrl { get; set; } - - /// - /// Custom Context for PSTN targets. - /// - public IDictionary SipHeaders { get; set; } - - /// - /// Custom Context for Voip targets. - /// - public IDictionary VoipHeaders { get; set; } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/CustomContextInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/CustomContextInternal.cs deleted file mode 100644 index 14141d2f55b6..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/CustomContextInternal.cs +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using System.Collections; -using System.Collections.Generic; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - [CodeGenModel("CustomContext")] - internal partial class CustomContextInternal - { - public CustomContextInternal(IDictionary sipHeaders, IDictionary voipHeaders) - { - this.SipHeaders = sipHeaders; - this.VoipHeaders = voipHeaders; - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/CallAutomationEventParser.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/CallAutomationEventParser.cs index 8001502e0ffc..2b7d332cd58f 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/CallAutomationEventParser.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/CallAutomationEventParser.cs @@ -124,16 +124,6 @@ private static CallAutomationEventBase Deserialize(string eventData, string type return RemoveParticipantSucceeded.Deserialize(eventData); case nameof(RemoveParticipantFailed): return RemoveParticipantFailed.Deserialize(eventData); - case nameof(ContinuousDtmfRecognitionToneReceived): - return ContinuousDtmfRecognitionToneReceived.Deserialize(eventData); - case nameof(ContinuousDtmfRecognitionToneFailed): - return ContinuousDtmfRecognitionToneFailed.Deserialize(eventData); - case nameof(ContinuousDtmfRecognitionStopped): - return ContinuousDtmfRecognitionStopped.Deserialize(eventData); - case nameof(SendDtmfCompleted): - return SendDtmfCompleted.Deserialize(eventData); - case nameof(SendDtmfFailed): - return SendDtmfFailed.Deserialize(eventData); default: return null; } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/ChoiceResult.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/ChoiceResult.cs deleted file mode 100644 index d558897b1660..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/ChoiceResult.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - [CodeGenModel("ChoiceResult", Usage = new string[] { "output" }, Formats = new string[] { "json" })] - public partial class ChoiceResult : RecognizeResult - { - /// - /// The RecognizeResultType of this RecognizeResult. - /// - public override RecognizeResultType ResultType => RecognizeResultType.ChoiceResult; - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/CollectTonesResult.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/CollectTonesResult.cs deleted file mode 100644 index 5037871e2d4d..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/CollectTonesResult.cs +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; -using System.Linq; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - [CodeGenModel("CollectTonesResult", Usage = new string[] { "output" }, Formats = new string[] { "json" })] - public partial class CollectTonesResult : RecognizeResult - { - /// - /// The Tones colelcted. - /// - [CodeGenMember("Tones")] - public IReadOnlyList Tones { get; } - - /// - /// The RecognizeResultType of this RecognizeResult. - /// - public override RecognizeResultType ResultType => RecognizeResultType.CollectTonesResult; - - /// - /// Convert the collection of tones to a string like "12345#". - /// - public string ConvertToString() - { - return string.Join("", Tones.Select(x => x.ToChar())); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/ContinuousDtmfRecognitionStopped.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/ContinuousDtmfRecognitionStopped.cs deleted file mode 100644 index db77588bebcd..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/ContinuousDtmfRecognitionStopped.cs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using System.Text.Json; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - /// - /// The ContinuousDtmfRecognitionStopped event. - /// - - [CodeGenModel("ContinuousDtmfRecognitionStopped", Usage = new string[] { "output" }, Formats = new string[] { "json" })] - public partial class ContinuousDtmfRecognitionStopped : CallAutomationEventBase - { - /// - /// Deserialize event. - /// - /// The json content. - /// The new object. - public static ContinuousDtmfRecognitionStopped Deserialize(string content) - { - using var document = JsonDocument.Parse(content); - JsonElement element = document.RootElement; - - return DeserializeContinuousDtmfRecognitionStopped(element); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/ContinuousDtmfRecognitionToneFailed.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/ContinuousDtmfRecognitionToneFailed.cs deleted file mode 100644 index 3c557859dd54..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/ContinuousDtmfRecognitionToneFailed.cs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using System.Text.Json; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - /// - /// The ContinuousDtmfRecognitionToneFailed event. - /// - - [CodeGenModel("ContinuousDtmfRecognitionToneFailed", Usage = new string[] { "output" }, Formats = new string[] { "json" })] - public partial class ContinuousDtmfRecognitionToneFailed : CallAutomationEventBase - { - /// - /// Deserialize event. - /// - /// The json content. - /// The new object. - public static ContinuousDtmfRecognitionToneFailed Deserialize(string content) - { - using var document = JsonDocument.Parse(content); - JsonElement element = document.RootElement; - - return DeserializeContinuousDtmfRecognitionToneFailed(element); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/ContinuousDtmfRecognitionToneReceived.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/ContinuousDtmfRecognitionToneReceived.cs deleted file mode 100644 index 1b90dd3082d9..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/ContinuousDtmfRecognitionToneReceived.cs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using System.Text.Json; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - /// - /// The ContinuousDtmfRecognitionToneReceived event. - /// - - [CodeGenModel("ContinuousDtmfRecognitionToneReceived", Usage = new string[] { "output" }, Formats = new string[] { "json" })] - public partial class ContinuousDtmfRecognitionToneReceived : CallAutomationEventBase - { - /// - /// Deserialize event. - /// - /// The json content. - /// The new object. - public static ContinuousDtmfRecognitionToneReceived Deserialize(string content) - { - using var document = JsonDocument.Parse(content); - JsonElement element = document.RootElement; - - return DeserializeContinuousDtmfRecognitionToneReceived(element); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/DtmfResult.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/DtmfResult.cs index 24361212690b..85b25ff5bee7 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/DtmfResult.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/DtmfResult.cs @@ -20,7 +20,7 @@ public partial class DtmfResult : RecognizeResult /// /// The RecognizeResultType of this RecognizeResult. /// - public override RecognizeResultType ResultType => RecognizeResultType.CollectTonesResult; + public override RecognizeResultType ResultType => RecognizeResultType.DtmfResult; /// /// Convert the collection of tones to a string like "12345#". @@ -30,4 +30,4 @@ public string ConvertToString() return string.Join("", Tones.Select(x => x.ToChar())); } } -} \ No newline at end of file +} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/MediaEventReasonCode.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/MediaEventReasonCode.cs index 686b054272e2..e13808d9cec4 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/MediaEventReasonCode.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/MediaEventReasonCode.cs @@ -24,18 +24,11 @@ public MediaEventReasonCode(string value) private const string RecognizeInterDigitTimedOutValue = "8532"; private const string RecognizeDtmfOptionMatchedValue = "8533"; private const string RecognizePlayPromptFailedValue = "8511"; - private const string RecognizeMaxDigitsReceivedValue = "8531"; private const string RecognizeIncorrectToneDetectedValue = "8534"; private const string RecognizeStopToneDetectedValue = "8514"; - private const string RecognizeSpeechOptionMatchedValue = "8545"; - private const string RecognizeSpeechOptionNotMatchedValue = "8547"; - private const string RecognizeSpeechNotRecognizedValue = "8563"; - private const string RecognizeSpeechServiceConnectionErrorValue = "8564"; - private const string PlayDownloadFailedValue = "8536"; private const string PlayInvalidFileFormatValue = "8535"; - private const string PlayCognitiveServicesPlayErrorValue = "8565"; private const string CompletedSuccessfullyValue = "0"; private const string UnspecifiedErrorValue = "9999"; @@ -54,24 +47,14 @@ public MediaEventReasonCode(string value) /// Action failed, play source not working. public static MediaEventReasonCode RecognizeDtmfOptionMatched { get; } = new MediaEventReasonCode(RecognizeDtmfOptionMatchedValue); - /// Speech option matched. - public static MediaEventReasonCode RecognizeSpeechOptionMatched { get; } = new MediaEventReasonCode(RecognizeSpeechOptionMatchedValue); - /// Speech option not matched. - public static MediaEventReasonCode RecognizeSpeechOptionNotMatched { get; } = new MediaEventReasonCode(RecognizeSpeechOptionNotMatchedValue); - /// Recognize with Choice that incorrect tone detected. - public static MediaEventReasonCode RecognizeIncorrectToneDetected { get; } = new MediaEventReasonCode(RecognizeIncorrectToneDetectedValue); - /// Speech not recognized. - public static MediaEventReasonCode RecognizeSpeechNotRecognized { get; } = new MediaEventReasonCode(RecognizeSpeechNotRecognizedValue); - /// Speech service connection error. - public static MediaEventReasonCode RecognizeSpeechServiceConnectionError { get; } = new MediaEventReasonCode(RecognizeSpeechServiceConnectionErrorValue); + /// Recognize with DTMF that incorrect tone detected. + public static MediaEventReasonCode RecognizeIncorrectToneDetected { get; } = new MediaEventReasonCode(RecognizeIncorrectToneDetectedValue); /// Action failed, file could not be downloaded. public static MediaEventReasonCode PlayDownloadFailed { get; } = new MediaEventReasonCode(PlayDownloadFailedValue); /// Action failed, file could not be downloaded. public static MediaEventReasonCode PlayInvalidFileFormat { get; } = new MediaEventReasonCode(PlayInvalidFileFormatValue); - /// Action failed, cognitive service error. - public static MediaEventReasonCode PlayCognitiveServicesPlayError { get; } = new MediaEventReasonCode(PlayCognitiveServicesPlayErrorValue); /// Action completed successfully. public static MediaEventReasonCode CompletedSuccessfully { get; } = new MediaEventReasonCode (CompletedSuccessfullyValue); diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/RecognizeCompleted.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/RecognizeCompleted.cs index 6e46f6c447de..ef88216771b4 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/RecognizeCompleted.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/RecognizeCompleted.cs @@ -19,8 +19,6 @@ public partial class RecognizeCompleted : CallAutomationEventBase /// The abstract recognize result. public RecognizeResult RecognizeResult { get; } - private static string SPEECH_DTMF_ERROR = "Speech or Dtmf Recognition return two results!"; - /// /// The recognition type. /// @@ -68,29 +66,6 @@ internal RecognizeCompleted(RecognizeCompletedInternal internalEvent) { RecognizeResult = internalEvent.DtmfResult; } - else if (internalEvent.RecognitionType == CallMediaRecognitionType.Choices) - { - RecognizeResult = internalEvent.ChoiceResult; - } - else if (internalEvent.RecognitionType == CallMediaRecognitionType.Speech) - { - RecognizeResult = internalEvent.SpeechResult; - } - else if (internalEvent.RecognitionType == CallMediaRecognitionType.SpeechOrDtmf) - { - if (internalEvent.SpeechResult != null) - { - RecognizeResult = internalEvent.SpeechResult; - } - else if (internalEvent.DtmfResult != null) - { - RecognizeResult = internalEvent.DtmfResult; - } - else - { - throw new Exception(SPEECH_DTMF_ERROR); - } - } } /// @@ -151,18 +126,6 @@ public string Serialize() writer.WritePropertyName("dtmfResult"); JsonSerializer.Serialize(writer, dtmfResult, jsonSeializerOptionForObject); } - else if (RecognitionType == CallMediaRecognitionType.Choices) - { - ChoiceResult choiceResult = (ChoiceResult)RecognizeResult; - writer.WritePropertyName("choiceResult"); - JsonSerializer.Serialize(writer, choiceResult, jsonSeializerOptionForObject); - } - else if (RecognitionType == CallMediaRecognitionType.Speech) - { - SpeechResult speechResult = (SpeechResult)RecognizeResult; - writer.WritePropertyName("speechResult"); - JsonSerializer.Serialize(writer, speechResult, jsonSeializerOptionForObject); - } writer.WriteEndObject(); writer.Flush(); diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/RecognizeCompletedInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/RecognizeCompletedInternal.cs index 54734a93c91e..3c57b9364434 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/RecognizeCompletedInternal.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/RecognizeCompletedInternal.cs @@ -28,9 +28,7 @@ internal partial class RecognizeCompletedInternal : CallAutomationEventBase /// Determines the sub-type of the recognize operation. /// In case of cancel operation the this field is not set and is returned empty /// - /// Defines the result for RecognitionType = Dtmf. - /// Defines the result for RecognitionType = Choices. - internal RecognizeCompletedInternal(string callConnectionId, string serverCallId, string correlationId, string operationContext, ResultInformation resultInformation, CallMediaRecognitionType recognitionType, CollectTonesResult collectTonesResult, ChoiceResult choiceResult) + internal RecognizeCompletedInternal(string callConnectionId, string serverCallId, string correlationId, string operationContext, ResultInformation resultInformation, CallMediaRecognitionType recognitionType) { CallConnectionId = callConnectionId; ServerCallId = serverCallId; @@ -38,8 +36,6 @@ internal RecognizeCompletedInternal(string callConnectionId, string serverCallId OperationContext = operationContext; ResultInformation = resultInformation; RecognitionType = recognitionType; - CollectTonesResult = collectTonesResult; - ChoiceResult = choiceResult; } /// diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/RecognizeResult.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/RecognizeResult.cs index d08529e91078..aa2103e942ab 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/RecognizeResult.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/RecognizeResult.cs @@ -6,7 +6,7 @@ namespace Azure.Communication.CallAutomation { /// - /// The Recognize result which could be tone or choice result. + /// The Recognize result which could be tone result. /// public abstract class RecognizeResult { diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/SendDtmfCompleted.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/SendDtmfCompleted.cs deleted file mode 100644 index 323390ccfbe5..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/SendDtmfCompleted.cs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using System.Text.Json; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - /// - /// The SendDtmfCompleted event. - /// - - [CodeGenModel("SendDtmfCompleted", Usage = new string[] { "output" }, Formats = new string[] { "json" })] - public partial class SendDtmfCompleted : CallAutomationEventBase - { - /// - /// Deserialize event. - /// - /// The json content. - /// The new object. - public static SendDtmfCompleted Deserialize(string content) - { - using var document = JsonDocument.Parse(content); - JsonElement element = document.RootElement; - - return DeserializeSendDtmfCompleted(element); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/SendDtmfFailed.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/SendDtmfFailed.cs deleted file mode 100644 index f957c2b3a6e8..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/SendDtmfFailed.cs +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using System.Text.Json; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - /// - /// The SendDtmfFailed event. - /// - - [CodeGenModel("SendDtmfFailed", Usage = new string[] { "output" }, Formats = new string[] { "json" })] - public partial class SendDtmfFailed : CallAutomationEventBase - { - /// - /// Deserialize event. - /// - /// The json content. - /// The new object. - public static SendDtmfFailed Deserialize(string content) - { - using var document = JsonDocument.Parse(content); - JsonElement element = document.RootElement; - - return DeserializeSendDtmfFailed(element); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/SpeechResult.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/SpeechResult.cs deleted file mode 100644 index cb3890826d75..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/SpeechResult.cs +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using Azure.Communication.CallAutomation; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - [CodeGenModel("SpeechResult", Usage = new string[] { "output" }, Formats = new string[] { "json" })] - public partial class SpeechResult : RecognizeResult - { - /// - /// The RecognizeResultType of this RecognizeResult. - /// - public override RecognizeResultType ResultType => RecognizeResultType.SpeechResult; - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/ToneInfo.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/ToneInfo.cs deleted file mode 100644 index cba371d155e3..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Events/ToneInfo.cs +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - [CodeGenModel("ToneInfo", Usage = new string[] { "output" }, Formats = new string[] { "json" })] - public partial class ToneInfo - { - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/ExternalStorage.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/ExternalStorage.cs deleted file mode 100644 index f6f7a70a48e4..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/ExternalStorage.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -namespace Azure.Communication.CallAutomation -{ - /// - /// Abstract base class used for different storage options used for storing call recording. - /// - public abstract class ExternalStorage - { - /// - /// Identifier of storage type. - /// - public RecordingStorageType StorageType { get; protected set; } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/ExternalStorageInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/ExternalStorageInternal.cs deleted file mode 100644 index c6fe165fdd9a..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/ExternalStorageInternal.cs +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - [CodeGenModel("ExternalStorage")] - internal partial class ExternalStorageInternal - { - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/GenderType.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/GenderType.cs deleted file mode 100644 index 89274e4e5a23..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/GenderType.cs +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using Azure.Core; -using System.Text.Json.Serialization; - -namespace Azure.Communication.CallAutomation -{ - /// - /// The possible Dtmf Tones. - /// - [CodeGenModel("Gender", Usage = new string[] { "output" }, Formats = new string[] { "json" })] - [JsonConverter(typeof(EquatableEnumJsonConverter))] - public readonly partial struct GenderType - { - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreaming/MediaStreamingAudioData.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreaming/MediaStreamingAudioData.cs deleted file mode 100644 index 4a47ab5fb064..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreaming/MediaStreamingAudioData.cs +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using System; - -namespace Azure.Communication.CallAutomation -{ - /// - /// Streaming audio. - /// - public class MediaStreamingAudioData : MediaStreamingPackageBase - { - internal MediaStreamingAudioData(string data, DateTime timestamp, string participantId, bool silent) - { - Data = data; - Timestamp = timestamp; - if (participantId != null) - { - Participant = new CommunicationUserIdentifier(participantId); - } - IsSilent = silent; - } - - /// - /// The audio data in base64 string. - /// - public string Data { get; } - - /// - /// The timestamp of thwn the media was sourced. - /// - public DateTime Timestamp { get; } - /// - /// Participant ID - /// - public CommunicationIdentifier Participant { get; } - - /// - /// Indicates if the received audio buffer contains only silence. - /// - public bool IsSilent { get; } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreaming/MediaStreamingAudioDataInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreaming/MediaStreamingAudioDataInternal.cs deleted file mode 100644 index 1559575a6a51..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreaming/MediaStreamingAudioDataInternal.cs +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using System; -using System.Text.Json.Serialization; - -namespace Azure.Communication.CallAutomation -{ - /// - /// Streaming audio. - /// - internal class MediaStreamingAudioDataInternal - { - /// - /// The audio data in base64 string. - /// - [JsonPropertyName("data")] - public string Data { get; set; } - - /// - /// The timestamp of thwn the media was sourced. - /// - [JsonPropertyName("timestamp")] - public DateTime Timestamp { get; set; } - - /// - /// Participant ID. - /// - [JsonPropertyName("participantRawID")] - public string ParticipantRawId { get; set; } - /// - /// Indicates if the received audio buffer contains only silence. - /// - [JsonPropertyName("silent")] - public bool Silent { get; set; } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreaming/MediaStreamingMetadata.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreaming/MediaStreamingMetadata.cs deleted file mode 100644 index 1c9ac71d9bbd..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreaming/MediaStreamingMetadata.cs +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using System.Text.Json.Serialization; - -namespace Azure.Communication.CallAutomation -{ - /// - /// Metadata package for Media Streaming. - /// - public class MediaStreamingMetadata : MediaStreamingPackageBase - { - /// - /// Subscription Id. - /// - [JsonPropertyName("subscriptionId")] - public string MediaSubscriptionId { get; set; } - - /// - /// The Encoding. - /// - [JsonPropertyName("encoding")] - public string Encoding { get; set; } - /// - /// Sample Rate. - /// - [JsonPropertyName("sampleRate")] - public int SampleRate { get; set; } - /// - /// Channels. - /// - [JsonPropertyName("channels")] - public int Channels { get; set; } - /// - /// Length. - /// - [JsonPropertyName("length")] - public int Length { get; set; } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreaming/MediaStreamingPackageBase.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreaming/MediaStreamingPackageBase.cs deleted file mode 100644 index f2bd0163b37a..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreaming/MediaStreamingPackageBase.cs +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -namespace Azure.Communication.CallAutomation -{ - /// - /// Media Streaming Package. - /// - public abstract class MediaStreamingPackageBase - { - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreaming/MediaStreamingPackageParser.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreaming/MediaStreamingPackageParser.cs deleted file mode 100644 index 86446536215b..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreaming/MediaStreamingPackageParser.cs +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using System; -using System.Text; -using System.Text.Json; - -namespace Azure.Communication.CallAutomation -{ - /// - /// Parser of the different packages received as part of - /// Media streaming. - /// - public static class MediaStreamingPackageParser - { - /// - /// Parsing a MediaStreaming package from BinaryData. - /// - /// - /// - public static MediaStreamingPackageBase Parse(BinaryData json) - { - return Parse(json.ToString()); - } - - /// - /// Parsing a MediaStreaming package from a byte array. - /// - /// a UTF8 byte array. - /// - public static MediaStreamingPackageBase Parse(byte[] receivedBytes) - { - return Parse(Encoding.UTF8.GetString(receivedBytes)); - } - - /// - /// Parse the incoming package. - /// - /// - /// - /// - public static MediaStreamingPackageBase Parse(string stringJson) - { - JsonElement package = JsonDocument.Parse(stringJson).RootElement; - if (package.GetProperty("kind").ToString() == "AudioMetadata") - { - return JsonSerializer.Deserialize(package.GetProperty("audioMetadata").ToString()); - } - else if (package.GetProperty("kind").ToString() == "AudioData") - { - MediaStreamingAudioDataInternal audioInternal = JsonSerializer.Deserialize(package.GetProperty("audioData").ToString()); - return new MediaStreamingAudioData( - audioInternal.Data, audioInternal.Timestamp, audioInternal.ParticipantRawId, audioInternal.Silent); - } - else - throw new NotSupportedException(stringJson); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreamingAudioChannel.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreamingAudioChannel.cs deleted file mode 100644 index 88e4d3a5faf9..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreamingAudioChannel.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - /// - /// The states of a call. - /// - [CodeGenModel("MediaStreamingAudioChannelType", Usage = new string[] { "input" }, Formats = new string[] { "json" })] - public readonly partial struct MediaStreamingAudioChannel - { - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreamingConfiguration.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreamingConfiguration.cs deleted file mode 100644 index 5a6fb4056a93..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreamingConfiguration.cs +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using System; - -namespace Azure.Communication.CallAutomation -{ - /// The MediaStreamingConfiguration. - public class MediaStreamingConfiguration - { - /// Initializes a new instance of MediaStreamingConfiguration. - public MediaStreamingConfiguration(Uri transportUrl, MediaStreamingTransport transportType, - MediaStreamingContent contentType, MediaStreamingAudioChannel audioChannelType) - { - TransportUrl = transportUrl; - TransportType = transportType; - ContentType = contentType; - AudioChannelType = audioChannelType; - } - - /// Transport URL for media streaming. - public Uri TransportUrl { get; } - /// The type of tranport to be used for media streaming, eg. Websocket. - public MediaStreamingTransport TransportType { get; } - /// Content type to stream, eg. audio, audio/video. - public MediaStreamingContent ContentType { get; } - /// Audio channel type to stream, eg. unmixed audio, mixed audio. - public MediaStreamingAudioChannel AudioChannelType { get; } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreamingContent.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreamingContent.cs deleted file mode 100644 index 89234cc8b867..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreamingContent.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - /// - /// The states of a call. - /// - [CodeGenModel("MediaStreamingContentType", Usage = new string[] { "input" }, Formats = new string[] { "json" })] - public readonly partial struct MediaStreamingContent - { - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreamingOptions.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreamingOptions.cs deleted file mode 100644 index a6725f3cbcf5..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreamingOptions.cs +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using System; - -namespace Azure.Communication.CallAutomation -{ - /// The MediaStreamingOptions. - public class MediaStreamingOptions - { - /// Initializes a new instance of MediaStreamingOptions. - public MediaStreamingOptions(Uri transportUri, MediaStreamingTransport transportType, - MediaStreamingContent contentType, MediaStreamingAudioChannel audioChannelType) - { - TransportUri = transportUri; - MediaStreamingTransport = transportType; - MediaStreamingContent = contentType; - MediaStreamingAudioChannel = audioChannelType; - } - - /// Transport URL for media streaming. - public Uri TransportUri { get; } - /// The type of tranport to be used for media streaming, eg. Websocket. - public MediaStreamingTransport MediaStreamingTransport { get; } - /// Content type to stream, eg. audio, audio/video. - public MediaStreamingContent MediaStreamingContent { get; } - /// Audio channel type to stream, eg. unmixed audio, mixed audio. - public MediaStreamingAudioChannel MediaStreamingAudioChannel { get; } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreamingOptionsInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreamingOptionsInternal.cs deleted file mode 100644 index a316fd34c49c..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreamingOptionsInternal.cs +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - [CodeGenModel("MediaStreamingConfiguration")] - internal partial class MediaStreamingOptionsInternal - { - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreamingTransport.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreamingTransport.cs deleted file mode 100644 index 5b6336fa34a8..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/MediaStreamingTransport.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - /// - /// The states of a call. - /// - [CodeGenModel("MediaStreamingTransportType", Usage = new string[] { "input" }, Formats = new string[] { "json" })] - public readonly partial struct MediaStreamingTransport - { - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Misc/CallAutomationConstants.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/Misc/CallAutomationConstants.cs deleted file mode 100644 index 45c85f90b329..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Misc/CallAutomationConstants.cs +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -namespace Azure.Communication.CallAutomation -{ - internal class CallAutomationConstants - { - public struct InputValidation - { - public const int StringMaxLength = 5000; - public const int MaxInvitationTimeoutInSeconds = 180; - public const int MinInvitationTimeoutInSeconds = 1; - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Misc/CallAutomationErrorMessages.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/Misc/CallAutomationErrorMessages.cs deleted file mode 100644 index 600fdd6c1b15..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/Misc/CallAutomationErrorMessages.cs +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -namespace Azure.Communication.CallAutomation -{ - /// - /// Error messages for Call Automation. - /// - public static class CallAutomationErrorMessages - { - /// - /// Invalid RepeatabilityHeaders message. - /// - public const string InvalidRepeatabilityHeadersMessage = "Invalid RepeatabilityHeaders. RepeatabilityHeaders is only valid when RepeatabilityRequestId and RepeatabilityFirstSent are set to non-default value."; - - /// - /// Invalid Callback Https Uri message. - /// - public const string InvalidHttpsUriMessage = "Callback Uri has to be in well-formed, valid https format."; - - /// - /// Invalid Custom Cognitive service Https Uri message. - /// - public const string InvalidCognitiveServiceHttpsUriMessage = "Cognitive Service Uri has to be in well-formed, valid https format."; - - /// - /// Invalid InvitationTimeoutInSeconds message. - /// - public const string InvalidInvitationTimeoutInSeconds = "InvitationTimeoutInSeconds has to be between 1 and 180 seconds."; - - /// - /// UserToUserInformation exceeds max length message. - /// - public const string UserToUserInformationExceedsMaxLength = "UserToUserInformation exceeds maximum string length of 5000."; - - /// - /// OperationContext exceeds max length message. - /// - public const string OperationContextExceedsMaxLength = "OperationContext exceeds maximum string length of 5000."; - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/MuteParticipantsOptions.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/MuteParticipantsOptions.cs deleted file mode 100644 index 422913bd9665..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/MuteParticipantsOptions.cs +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using System.Collections.Generic; -using System.Linq; - -namespace Azure.Communication.CallAutomation -{ - /// - /// Options for the Mute Participant Request. - /// - public class MuteParticipantsOptions - { - /// - /// Creates a new MuteParticipantOptions object. - /// - public MuteParticipantsOptions(IEnumerable targetParticipants) - { - TargetParticipants = targetParticipants.ToList(); - } - - /// - /// The identity of participants to be muted from the call. - /// Only one participant is currently supported. - /// Only ACS Users are currently supported. - /// - public IReadOnlyList TargetParticipants { get; } - - /// - /// The operation context. - /// - public string OperationContext { get; set; } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/MuteParticipantsRequestInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/MuteParticipantsRequestInternal.cs deleted file mode 100644 index e94b986f72df..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/MuteParticipantsRequestInternal.cs +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - [CodeGenModel("MuteParticipantsRequest")] - internal partial class MuteParticipantsRequestInternal - { - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/PlayOptions.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/PlayOptions.cs index 5a83a0dfe47e..dacf8c5d0883 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/PlayOptions.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Models/PlayOptions.cs @@ -12,9 +12,9 @@ namespace Azure.Communication.CallAutomation public class PlayOptions { /// - /// A PlaySource object representing the source to play. + /// PlaySource objecs representing the sources to play. /// - public PlaySource PlaySource { get; } + public IReadOnlyList PlaySources { get; } /// /// A list of target identifiers to play the file to. @@ -34,9 +34,9 @@ public class PlayOptions /// /// Creates a new PlayOptions object. /// - public PlayOptions(PlaySource playSource, IEnumerable playTo) + public PlayOptions(IEnumerable playSources, IEnumerable playTo) { - PlaySource = playSource; + PlaySources = playSources.ToList(); PlayTo = playTo.ToList(); } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/PlaySource.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/PlaySource.cs index 7f5674c8b7c3..347561cff3fe 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/PlaySource.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Models/PlaySource.cs @@ -11,6 +11,6 @@ namespace Azure.Communication.CallAutomation public abstract class PlaySource { /// Defines the identifier to be used for caching related media. - public string PlaySourceId { get; set; } + public string PlaySourceCacheId { get; set; } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/PlayToAllOptions.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/PlayToAllOptions.cs index 35d6e44b218b..a7af51849e3b 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/PlayToAllOptions.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Models/PlayToAllOptions.cs @@ -2,6 +2,7 @@ // Licensed under the MIT License. using System.Collections.Generic; +using System.Linq; namespace Azure.Communication.CallAutomation { @@ -11,9 +12,9 @@ namespace Azure.Communication.CallAutomation public class PlayToAllOptions { /// - /// A PlaySource object representing the source to play. + /// PlaySource objecs representing the sources to play. /// - public PlaySource PlaySource { get; } + public IReadOnlyList PlaySources { get; } /// /// The option to play the provided audio source in loop when set to true. @@ -28,9 +29,9 @@ public class PlayToAllOptions /// /// Creates a new PlayToAllOptions object. /// - public PlayToAllOptions(PlaySource playSource) + public PlayToAllOptions(IEnumerable playSources) { - PlaySource = playSource; + PlaySources = playSources.ToList(); } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/RecognizeChoice.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/RecognizeChoice.cs deleted file mode 100644 index 2eb566e9632d..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/RecognizeChoice.cs +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using System.Text.Json.Serialization; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - /// - /// The possible Dtmf Tones. - /// - [CodeGenModel("Choice", Usage = new string[] { "output" }, Formats = new string[] { "json" })] - public partial class RecognizeChoice - { - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/RecognizeResultType.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/RecognizeResultType.cs index 2c83deec7e1b..aab817f834ae 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/RecognizeResultType.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Models/RecognizeResultType.cs @@ -21,15 +21,9 @@ public RecognizeResultType(string value) } private const string DtmfResultValue = "DtmfResultValue"; - private const string ChoiceResultValue = "ChoiceResultValue"; - private const string SpeechResultValue = "SpeechResultValue"; - /// CollectTonesResult. - public static RecognizeResultType CollectTonesResult { get; } = new RecognizeResultType(DtmfResultValue); - /// ChoiceResult. - public static RecognizeResultType ChoiceResult { get; } = new RecognizeResultType(ChoiceResultValue); - /// SpeechResult. - public static RecognizeResultType SpeechResult { get; } = new RecognizeResultType(SpeechResultValue); + /// DtmfResult. + public static RecognizeResultType DtmfResult { get; } = new RecognizeResultType(DtmfResultValue); /// Determines if two values are the same. public static bool operator ==(RecognizeResultType left, RecognizeResultType right) => left.Equals(right); /// Determines if two values are not the same. diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/SendDtmfRequestInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/SendDtmfRequestInternal.cs deleted file mode 100644 index 74b7537f275c..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/SendDtmfRequestInternal.cs +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - [CodeGenModel("SendDtmfRequest")] - internal partial class SendDtmfRequestInternal - { - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/SendDtmfResult.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/SendDtmfResult.cs deleted file mode 100644 index 568156e7193c..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/SendDtmfResult.cs +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using System.Threading.Tasks; -using System; -using System.Threading; - -namespace Azure.Communication.CallAutomation -{ - /// The result from send dtmf request. - public class SendDtmfResult - { - private CallAutomationEventProcessor _evHandler; - private string _callConnectionId; - private string _operationContext; - - internal SendDtmfResult() - { - } - - internal void SetEventProcessor(CallAutomationEventProcessor evHandler, string callConnectionId, string operationContext) - { - _evHandler = evHandler; - _callConnectionId = callConnectionId; - _operationContext = operationContext; - } - - /// - /// This is blocking call. Wait for using . - /// - /// Cancellation Token can be used to set timeout or cancel this WaitForEventProcessor. - /// Returns which contains either event or event. - public SendDtmfEventResult WaitForEventProcessor(CancellationToken cancellationToken = default) - { - if (_evHandler is null) - { - throw new NullReferenceException(nameof(_evHandler)); - } - - var returnedEvent = _evHandler.WaitForEventProcessor(filter - => filter.CallConnectionId == _callConnectionId - && (filter.OperationContext == _operationContext || _operationContext is null) - && (filter.GetType() == typeof(SendDtmfCompleted) - || filter.GetType() == typeof(SendDtmfFailed)), - cancellationToken); - - return SetReturnedEvent(returnedEvent); - } - - /// - /// Wait for using . - /// - /// Cancellation Token can be used to set timeout or cancel this WaitForEventProcessor. - /// Returns which contains either event or event. - public async Task WaitForEventProcessorAsync(CancellationToken cancellationToken = default) - { - if (_evHandler is null) - { - throw new NullReferenceException(nameof(_evHandler)); - } - - var returnedEvent = await _evHandler.WaitForEventProcessorAsync(filter - => filter.CallConnectionId == _callConnectionId - && (filter.OperationContext == _operationContext || _operationContext is null) - && (filter.GetType() == typeof(SendDtmfCompleted) - || filter.GetType() == typeof(SendDtmfFailed)), - cancellationToken).ConfigureAwait(false); - - return SetReturnedEvent(returnedEvent); - } - - private static SendDtmfEventResult SetReturnedEvent(CallAutomationEventBase returnedEvent) - { - SendDtmfEventResult result = default; - switch (returnedEvent) - { - case SendDtmfCompleted: - result = new SendDtmfEventResult(true, (SendDtmfCompleted)returnedEvent, null); - break; - case SendDtmfFailed: - result = new SendDtmfEventResult(false, null, (SendDtmfFailed)returnedEvent); - break; - default: - throw new NotSupportedException(returnedEvent.GetType().Name); - } - - return result; - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/SpeechOptionsInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/SpeechOptionsInternal.cs deleted file mode 100644 index 3c1bdf643f2e..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/SpeechOptionsInternal.cs +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - [CodeGenModel("SpeechOptions")] - internal partial class SpeechOptionsInternal - { - } -} \ No newline at end of file diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/SsmlSource.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/SsmlSource.cs deleted file mode 100644 index 12ded2c3011b..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/SsmlSource.cs +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using System; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - /// The SsmlSource. - public class SsmlSource : PlaySource - { - /// Initializes a new instance of SsmlSourceInternal. - /// Ssml string for the cognitive service to be played. - /// is null. - public SsmlSource(string ssmlText) - { - Argument.AssertNotNull(ssmlText, nameof(ssmlText)); - SsmlText = ssmlText; - } - - /// Ssml string for the cognitive service to be played. - public string SsmlText { get; } - } -} \ No newline at end of file diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/SsmlSourceInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/SsmlSourceInternal.cs deleted file mode 100644 index 0b91f0a9c939..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/SsmlSourceInternal.cs +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - [CodeGenModel("SsmlSource")] - internal partial class SsmlSourceInternal - { - } -} \ No newline at end of file diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/StartRecordingOptions.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/StartRecordingOptions.cs index a2b92901a385..d68c96feabe2 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/StartRecordingOptions.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Models/StartRecordingOptions.cs @@ -14,34 +14,34 @@ public class StartRecordingOptions /// /// Parameters for the Start Recording operation. /// - /// . + /// Call locator to locate ongoing call. public StartRecordingOptions(CallLocator callLocator) { CallLocator = callLocator ?? throw new ArgumentNullException(nameof(callLocator)); } /// - /// The callLocator. + /// The callLocator to locate ongoing call. Use either GroupCallLocator or ServerCallLocator to locate ongoing call. /// internal CallLocator CallLocator { get; } /// - /// The callLocator. + /// Callback uri to recieve callback events of this call recording request. /// public Uri RecordingStateCallbackUri { get; set; } /// - /// The recording channel. + /// The recording channel of this call recording request. /// public RecordingChannel RecordingChannel { get; set; } /// - /// The recording content. + /// The recording content of this call recording request. /// public RecordingContent RecordingContent { get; set; } /// - /// The recording format. + /// The recording format of this call recording request. /// public RecordingFormat RecordingFormat { get; set; } @@ -58,11 +58,7 @@ public StartRecordingOptions(CallLocator callLocator) /// The channel affinity of call recording /// When 'recordingChannelType' is set to 'unmixed', if channelAffinity is not specified, 'channel' will be automatically assigned. /// Channel-Participant mapping details can be found in the metadata of the recording. - /// /// /// public IList ChannelAffinity { get; set; } - - /// (Optional) Used to specify external storage for call recording. - public ExternalStorage ExternalStorage { get; set; } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/TextSource.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/TextSource.cs deleted file mode 100644 index 07caadd1e1d9..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/TextSource.cs +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using System; -using System.Globalization; -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - /// The TextSource. - public class TextSource : PlaySource - { - /// Initializes a new instance of TextSource. - /// Text for the cognitive service to be played. - /// is null. - public TextSource(string text) - { - Argument.AssertNotNull(text, nameof(text)); - - Text = text; - } - - /// Initializes a new instance of TextSource. - /// Text for the cognitive service to be played. - /// The voiceName of the audio. - /// is null. - public TextSource(string text, string voiceName) - { - Argument.AssertNotNull(text, nameof(text)); - - Text = text; - VoiceName = voiceName; - } - - /// Initializes a new instance of TextSource. - /// Text for the cognitive service to be played. - /// The culture info string of the voice. - /// The gender of the voice. - /// is null. - public TextSource(string text, string sourceLocale, GenderType gender) - { - Argument.AssertNotNull(text, nameof(text)); - - Text = text; - SourceLocale = sourceLocale; - VoiceGender = gender; - } - - /// Text for the cognitive service to be played. - public string Text { get; } - /// Source language locale to be played. - public string SourceLocale { get; set; } - /// Voice gender type. - public GenderType? VoiceGender { get; set; } - /// Voice name to be played. - public string VoiceName { get; set; } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/TextSourceInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/TextSourceInternal.cs deleted file mode 100644 index becd928cf710..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/TextSourceInternal.cs +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - [CodeGenModel("TextSource")] - internal partial class TextSourceInternal - { - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/TransferToParticipantOptions.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/TransferToParticipantOptions.cs index 35e758681276..e54497d70f98 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/TransferToParticipantOptions.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/src/Models/TransferToParticipantOptions.cs @@ -15,33 +15,27 @@ public class TransferToParticipantOptions /// Creates a new TransferToParticipantOptions object. /// /// The target to transfer the call to. - /// Custom Context Sip headers. - public TransferToParticipantOptions(PhoneNumberIdentifier targetPhoneNumberIdentity, IDictionary sipHeaders = null) + public TransferToParticipantOptions(PhoneNumberIdentifier targetPhoneNumberIdentity) { Target = targetPhoneNumberIdentity; - SipHeaders = sipHeaders == null ? new Dictionary() : sipHeaders; } /// /// Creates a new TransferToParticipantOptions object. /// /// The target to transfer the call to. - /// Custom Context Voip headers. - public TransferToParticipantOptions(CommunicationUserIdentifier targetIdentity, IDictionary voipHeaders = null) + public TransferToParticipantOptions(CommunicationUserIdentifier targetIdentity) { Target = targetIdentity; - VoipHeaders = voipHeaders == null ? new Dictionary() : voipHeaders; } /// /// Creates a new TransferToParticipantOptions object. /// /// The target to transfer the call to. - /// Custom Context Voip headers. - public TransferToParticipantOptions(MicrosoftTeamsUserIdentifier targetIdentity, IDictionary voipHeaders = null) + public TransferToParticipantOptions(MicrosoftTeamsUserIdentifier targetIdentity) { Target = targetIdentity; - VoipHeaders = voipHeaders == null ? new Dictionary() : voipHeaders; } /// @@ -50,12 +44,6 @@ public TransferToParticipantOptions(MicrosoftTeamsUserIdentifier targetIdentity, /// public CommunicationIdentifier Target { get; } - /// Dictionary of VOIP headers. - public IDictionary VoipHeaders { get; } - - /// Dictionary of SIP headers. - public IDictionary SipHeaders { get; } - /// /// The operationContext for this transfer call. /// diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/UnmuteParticipantsOptions.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/UnmuteParticipantsOptions.cs deleted file mode 100644 index b343ebcc925d..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/UnmuteParticipantsOptions.cs +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using System.Collections.Generic; -using System.Linq; - -namespace Azure.Communication.CallAutomation -{ - /// - /// Options for the Unmute Participant Request. - /// - public class UnmuteParticipantsOptions - { - /// - /// Creates a new UnmuteParticipantOptions object. - /// - public UnmuteParticipantsOptions(IEnumerable targetParticipant) - { - TargetParticipants = targetParticipant.ToList(); - } - - /// - /// The identity of participants to be unmuted from the call. - /// Only one participant is currently supported. - /// Only ACS Users are currently supported. - /// - public IReadOnlyList TargetParticipants { get; } - - /// - /// The operation context. - /// - public string OperationContext { get; set; } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/Models/UnmuteParticipantsRequestInternal.cs b/sdk/communication/Azure.Communication.CallAutomation/src/Models/UnmuteParticipantsRequestInternal.cs deleted file mode 100644 index bb10b324f057..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/src/Models/UnmuteParticipantsRequestInternal.cs +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using Azure.Core; - -namespace Azure.Communication.CallAutomation -{ - [CodeGenModel("UnmuteParticipantsRequest")] - internal partial class UnmuteParticipantsRequestInternal - { - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/src/autorest.md b/sdk/communication/Azure.Communication.CallAutomation/src/autorest.md index ec5a50362505..133d5d8a2e49 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/src/autorest.md +++ b/sdk/communication/Azure.Communication.CallAutomation/src/autorest.md @@ -6,11 +6,11 @@ From Folder that contains autorest.md, Run `dotnet msbuild /t:GenerateCode` to g > see https://aka.ms/autorest ```yaml -tag: package-2023-01-15-preview +tag: package-2023-03-06 model-namespace: false require: - - https://github.com/williamzhao87/azure-rest-api-specs/blob/3e5d55eb8a13ce316e4b5e478fa3f75f2d2650fa/specification/communication/data-plane/CallAutomation/readme.md + - https://github.com/Azure/azure-rest-api-specs/blob/7f115517cc6d5c57ee8a89b9ba4187f937bfe6dc/specification/communication/data-plane/CallAutomation/readme.md title: Azure Communication Services diff --git a/sdk/communication/Azure.Communication.CallAutomation/tests/CallAutomationClients/CallAutomationClientTests.cs b/sdk/communication/Azure.Communication.CallAutomation/tests/CallAutomationClients/CallAutomationClientTests.cs index c31cfb446380..aa119e5d5199 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/tests/CallAutomationClients/CallAutomationClientTests.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/tests/CallAutomationClients/CallAutomationClientTests.cs @@ -12,12 +12,6 @@ namespace Azure.Communication.CallAutomation.Tests.CallAutomationClients { public class CallAutomationClientTests : CallAutomationTestBase { - private readonly MediaStreamingOptions _mediaStreamingConfiguration = new MediaStreamingOptions( - new Uri("https://websocket"), - MediaStreamingTransport.Websocket, - MediaStreamingContent.Audio, - MediaStreamingAudioChannel.Mixed); - [TestCaseSource(nameof(TestData_AnswerCall))] public async Task AnswerCallAsync_200OK(string incomingCallContext, Uri callbackUri) { @@ -27,7 +21,6 @@ public async Task AnswerCallAsync_200OK(string incomingCallContext, Uri callback Assert.NotNull(response); Assert.AreEqual((int)HttpStatusCode.OK, response.GetRawResponse().Status); verifyCallConnectionProperties(response.Value.CallConnectionProperties); - Assert.Null(response.Value.CallConnectionProperties.MediaSubscriptionId); Assert.AreEqual(CallConnectionId, response.Value.CallConnection.CallConnectionId); } @@ -40,7 +33,6 @@ public void AnswerCall_200OK(string incomingCallContext, Uri callbackUri) Assert.NotNull(response); Assert.AreEqual((int)HttpStatusCode.OK, response.GetRawResponse().Status); verifyCallConnectionProperties(response.Value.CallConnectionProperties); - Assert.Null(response.Value.CallConnectionProperties.MediaSubscriptionId); Assert.AreEqual(CallConnectionId, response.Value.CallConnection.CallConnectionId); } @@ -50,7 +42,6 @@ public async Task AnswerCallWithOptionsAsync_200OK(string incomingCallContext, U CallAutomationClient callAutomationClient = CreateMockCallAutomationClient(200, CreateOrAnswerCallOrGetCallConnectionWithMediaSubscriptionPayload); AnswerCallOptions options = new AnswerCallOptions(incomingCallContext: incomingCallContext, callbackUri: callbackUri) { - MediaStreamingOptions = _mediaStreamingConfiguration, OperationContext = "operation_context" }; @@ -59,7 +50,6 @@ public async Task AnswerCallWithOptionsAsync_200OK(string incomingCallContext, U Assert.AreEqual((int)HttpStatusCode.OK, response.GetRawResponse().Status); verifyCallConnectionProperties(response.Value.CallConnectionProperties); Assert.AreEqual(CallConnectionId, response.Value.CallConnection.CallConnectionId); - Assert.AreEqual("mediaSubscriptionId", response.Value.CallConnectionProperties.MediaSubscriptionId); } [TestCaseSource(nameof(TestData_AnswerCall))] @@ -68,7 +58,6 @@ public void AnswerCallWithOptions_200OK(string incomingCallContext, Uri callback CallAutomationClient callAutomationClient = CreateMockCallAutomationClient(200, CreateOrAnswerCallOrGetCallConnectionWithMediaSubscriptionPayload); AnswerCallOptions options = new AnswerCallOptions(incomingCallContext: incomingCallContext, callbackUri: callbackUri) { - MediaStreamingOptions = _mediaStreamingConfiguration }; var response = callAutomationClient.AnswerCall(options); @@ -76,35 +65,6 @@ public void AnswerCallWithOptions_200OK(string incomingCallContext, Uri callback Assert.AreEqual((int)HttpStatusCode.OK, response.GetRawResponse().Status); verifyCallConnectionProperties(response.Value.CallConnectionProperties); Assert.AreEqual(CallConnectionId, response.Value.CallConnection.CallConnectionId); - Assert.AreEqual("mediaSubscriptionId", response.Value.CallConnectionProperties.MediaSubscriptionId); - } - - [TestCaseSource(nameof(TestData_AnswerCall_NoCallbackUri))] - public void AnswerCallWithOptions_NullCallbackUri(string incomingCallContext) - { - CallAutomationClient callAutomationClient = CreateMockCallAutomationClient(200, CreateOrAnswerCallOrGetCallConnectionWithMediaSubscriptionPayload); - AnswerCallOptions options = new AnswerCallOptions(incomingCallContext: incomingCallContext, callbackUri: null) - { - MediaStreamingOptions = _mediaStreamingConfiguration - }; - - ArgumentException? ex = Assert.ThrowsAsync(async () => await callAutomationClient.AnswerCallAsync(options).ConfigureAwait(false)); - Assert.NotNull(ex); - Assert.True(ex?.Message.Contains(CallAutomationErrorMessages.InvalidHttpsUriMessage)); - } - - [TestCaseSource(nameof(TestData_AnswerCall_NoCallbackUri))] - public void AnswerCallWithOptions_HttpCallbackUri(string incomingCallContext) - { - CallAutomationClient callAutomationClient = CreateMockCallAutomationClient(200, CreateOrAnswerCallOrGetCallConnectionWithMediaSubscriptionPayload); - AnswerCallOptions options = new AnswerCallOptions(incomingCallContext: incomingCallContext, callbackUri: new Uri("http://example.com")) - { - MediaStreamingOptions = _mediaStreamingConfiguration - }; - - ArgumentException? ex = Assert.ThrowsAsync(async () => await callAutomationClient.AnswerCallAsync(options).ConfigureAwait(false)); - Assert.NotNull(ex); - Assert.True(ex?.Message.Contains(CallAutomationErrorMessages.InvalidHttpsUriMessage)); } [TestCaseSource(nameof(TestData_AnswerCall))] @@ -230,7 +190,6 @@ public async Task CreateCallAsync_201Created(CallInvite target, Uri callbackUri) Assert.NotNull(result); Assert.AreEqual((int)HttpStatusCode.Created, response.GetRawResponse().Status); verifyCallConnectionProperties(result.CallConnectionProperties); - Assert.Null(result.CallConnectionProperties.MediaSubscriptionId); Assert.AreEqual(CallConnectionId, result.CallConnection.CallConnectionId); } @@ -245,7 +204,6 @@ public void CreateCall_201Created(CallInvite target, Uri callbackUri) Assert.NotNull(result); Assert.AreEqual((int)HttpStatusCode.Created, response.GetRawResponse().Status); verifyCallConnectionProperties(result.CallConnectionProperties); - Assert.Null(result.CallConnectionProperties.MediaSubscriptionId); Assert.AreEqual(CallConnectionId, result.CallConnection.CallConnectionId); } @@ -257,7 +215,6 @@ public async Task CreateCallWithOptionsAsync_201Created(CallInvite target, Uri c callInvite: target, callbackUri: callbackUri) { - MediaStreamingOptions = _mediaStreamingConfiguration }; var response = await callAutomationClient.CreateCallAsync(options).ConfigureAwait(false); @@ -266,7 +223,6 @@ public async Task CreateCallWithOptionsAsync_201Created(CallInvite target, Uri c Assert.AreEqual((int)HttpStatusCode.Created, response.GetRawResponse().Status); verifyCallConnectionProperties(result.CallConnectionProperties); Assert.AreEqual(CallConnectionId, result.CallConnection.CallConnectionId); - Assert.AreEqual("mediaSubscriptionId", result.CallConnectionProperties.MediaSubscriptionId); } [TestCaseSource(nameof(TestData_CreateCall))] @@ -277,7 +233,6 @@ public void CreateCallWithOptions_201Created(CallInvite target, Uri callbackUri) callInvite: target, callbackUri: callbackUri) { - MediaStreamingOptions = _mediaStreamingConfiguration }; var response = callAutomationClient.CreateCall(options); @@ -286,7 +241,6 @@ public void CreateCallWithOptions_201Created(CallInvite target, Uri callbackUri) Assert.AreEqual((int)HttpStatusCode.Created, response.GetRawResponse().Status); verifyCallConnectionProperties(result.CallConnectionProperties); Assert.AreEqual(CallConnectionId, result.CallConnection.CallConnectionId); - Assert.AreEqual("mediaSubscriptionId", result.CallConnectionProperties.MediaSubscriptionId); } [TestCaseSource(nameof(TestData_CreateCall))] @@ -333,7 +287,6 @@ public async Task CreateGroupCallAsync_201Created(IEnumerable(callConnectionId, TimeSpan.FromSeconds(20)); - Assert.IsNotNull(disconnectedEvent); - Assert.IsTrue(disconnectedEvent is CallDisconnected); - Assert.AreEqual(callConnectionId, ((CallDisconnected)disconnectedEvent!).CallConnectionId); + try + { + // test get properties + _ = await response.CallConnection.GetCallConnectionPropertiesAsync().ConfigureAwait(false); + } + catch (RequestFailedException ex) + { + if (ex.Status == 404) + { + callConnectionId = null; + return; + } + } + callConnectionId = null; } catch (Exception) diff --git a/sdk/communication/Azure.Communication.CallAutomation/tests/CallConnections/CallConnectionTests.cs b/sdk/communication/Azure.Communication.CallAutomation/tests/CallConnections/CallConnectionTests.cs index 1a32c2216f02..67ba86e7502b 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/tests/CallConnections/CallConnectionTests.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/tests/CallConnections/CallConnectionTests.cs @@ -26,7 +26,7 @@ public class CallConnectionTests : CallAutomationTestBase "}"; private const string GetParticipantsPayload = "{" + - "\"values\":[" + + "\"value\":[" + "{\"identifier\":{\"rawId\":\"participantId1\",\"kind\":\"communicationUser\",\"communicationUser\":{\"id\":\"participantId1\"}},\"isMuted\":false}," + "{\"identifier\":{\"rawId\":\"participantId2\",\"kind\":\"phoneNumber\",\"phoneNumber\":{\"value\":\"+11234567\"}},\"isMuted\":true}" + "]" + @@ -177,19 +177,6 @@ public void TransferCallToParticipant_404NotFound(CallInvite callInvite) Assert.AreEqual(ex?.Status, 404); } - [TestCaseSource(nameof(TestData_TransferCallToParticipant))] - public void TransferCallToParticipant_ExceedsMaxOperationContextLength(CallInvite callInvite) - { - var callConnection = CreateMockCallConnection(202); - - var options = new TransferToParticipantOptions(callInvite.Target as CommunicationUserIdentifier) { - OperationContext = new string('a', 1 + CallAutomationConstants.InputValidation.StringMaxLength) - }; - ArgumentException? ex = Assert.Throws(() => callConnection.TransferCallToParticipant(options)); - Assert.NotNull(ex); - Assert.True(ex?.Message.Contains(CallAutomationErrorMessages.OperationContextExceedsMaxLength)); - } - [TestCaseSource(nameof(TestData_AddOrRemoveParticipant))] public async Task AddParticipantsAsync_202Accepted(CommunicationIdentifier participantToAdd) { @@ -222,35 +209,6 @@ public void AddParticipantsAsync_NullParticipantToAdd() Assert.True(ex?.Message.Contains("Value cannot be null.")); } - [TestCaseSource(nameof(TestData_AddOrRemoveParticipant))] - public void AddParticipantsAsync_ExceedsInvitationTimeOut(CommunicationIdentifier participantToAdd) - { - var callConnection = CreateMockCallConnection(202, AddParticipantPayload); - var callInvite = new CallInvite((CommunicationUserIdentifier)participantToAdd); - - var options = new AddParticipantOptions(callInvite) { - InvitationTimeoutInSeconds = CallAutomationConstants.InputValidation.MaxInvitationTimeoutInSeconds + 1 - }; - ArgumentException? ex = Assert.ThrowsAsync(async () => await callConnection.AddParticipantAsync(options).ConfigureAwait(false)); - Assert.NotNull(ex); - Assert.True(ex?.Message.Contains(CallAutomationErrorMessages.InvalidInvitationTimeoutInSeconds)); - } - - [TestCaseSource(nameof(TestData_AddOrRemoveParticipant))] - public void AddParticipantsAsync_NegativeInvitationTimeOut(CommunicationIdentifier participantToAdd) - { - var callConnection = CreateMockCallConnection(202, AddParticipantPayload); - var callInvite = new CallInvite((CommunicationUserIdentifier)participantToAdd); - - var options = new AddParticipantOptions(callInvite) - { - InvitationTimeoutInSeconds = 0 - }; - ArgumentException? ex = Assert.ThrowsAsync(async () => await callConnection.AddParticipantAsync(options).ConfigureAwait(false)); - Assert.NotNull(ex); - Assert.True(ex?.Message.Contains(CallAutomationErrorMessages.InvalidInvitationTimeoutInSeconds)); - } - [TestCaseSource(nameof(TestData_AddOrRemoveParticipant))] public void AddParticipantsAsync_404NotFound(CommunicationIdentifier participantToAdd) { @@ -377,17 +335,6 @@ public void RemoveParticipants_202Accepted(CommunicationIdentifier participantTo Assert.AreEqual(OperationContext, response.Value.OperationContext); } - [TestCaseSource(nameof(TestData_AddOrRemoveParticipant))] - public void RemoveParticipants_ExceedsMaxOperationContextLength(CommunicationIdentifier participantToRemove) - { - var callConnection = CreateMockCallConnection(202, OperationContextPayload); - - var operationContext = new string('a', 1 + CallAutomationConstants.InputValidation.StringMaxLength); - ArgumentException? ex = Assert.ThrowsAsync(async () => await callConnection.RemoveParticipantAsync(participantToRemove, operationContext).ConfigureAwait(false)); - Assert.NotNull(ex); - Assert.True(ex?.Message.Contains(CallAutomationErrorMessages.OperationContextExceedsMaxLength)); - } - [TestCaseSource(nameof(TestData_AddOrRemoveParticipant))] public void RemoveParticipantsAsync_404NotFound(CommunicationIdentifier participantToRemove) { @@ -419,141 +366,6 @@ public void GetCallMediaTest() Assert.AreEqual(connectionId, response.CallConnectionId); } - [TestCaseSource(nameof(TestData_MuteParticipant))] - public void MuteParticipant_202Accepted(CommunicationIdentifier participant) - { - var callConnection = CreateMockCallConnection(202, OperationContextPayload); - - var response = callConnection.MuteParticipants(participant, OperationContext); - Assert.AreEqual((int)HttpStatusCode.Accepted, response.GetRawResponse().Status); - Assert.AreEqual(OperationContext, response.Value.OperationContext); - } - - [TestCaseSource(nameof(TestData_MuteParticipant))] - public void UnmuteParticipant_202Accepted(CommunicationIdentifier participant) - { - var callConnection = CreateMockCallConnection(202, OperationContextPayload); - - var response = callConnection.UnmuteParticipants(participant, OperationContext); - Assert.AreEqual((int)HttpStatusCode.Accepted, response.GetRawResponse().Status); - Assert.AreEqual(OperationContext, response.Value.OperationContext); - } - - [TestCaseSource(nameof(TestData_MuteParticipant))] - public void MuteParticipant_WithOptions_202Accepted(CommunicationIdentifier participant) - { - var callConnection = CreateMockCallConnection(202, OperationContextPayload); - var options = new MuteParticipantsOptions(new List { participant }) - { - OperationContext = OperationContext - }; - var response = callConnection.MuteParticipants(options); - Assert.AreEqual((int)HttpStatusCode.Accepted, response.GetRawResponse().Status); - Assert.AreEqual(OperationContext, response.Value.OperationContext); - } - - [TestCaseSource(nameof(TestData_MuteParticipant))] - public void UnmuteParticipant_WithOptions_202Accepted(CommunicationIdentifier participant) - { - var callConnection = CreateMockCallConnection(202, OperationContextPayload); - var options = new UnmuteParticipantsOptions(new List { participant }) - { - OperationContext = OperationContext - }; - - var response = callConnection.UnmuteParticipants(options); - Assert.AreEqual((int)HttpStatusCode.Accepted, response.GetRawResponse().Status); - Assert.AreEqual(OperationContext, response.Value.OperationContext); - } - - [TestCaseSource(nameof(TestData_MuteParticipant))] - public async Task MuteParticipantAsync_202Accepted(CommunicationIdentifier participant) - { - var callConnection = CreateMockCallConnection(202, OperationContextPayload); - - var response = await callConnection.MuteParticipantsAsync(participant, OperationContext); - Assert.AreEqual((int)HttpStatusCode.Accepted, response.GetRawResponse().Status); - Assert.AreEqual(OperationContext, response.Value.OperationContext); - } - - [Test] - public void MuteParticipantAsync_NotAcsUser_400BadRequest() - { - var callConnection = CreateMockCallConnection(400); - var participant = new PhoneNumberIdentifier("+15559501234"); - Assert.ThrowsAsync(typeof(RequestFailedException), async () => await callConnection.MuteParticipantsAsync(participant, OperationContext)); - } - - [TestCaseSource(nameof(TestData_MuteParticipant))] - public async Task UnmuteParticipantAsync_202Accepted(CommunicationIdentifier participant) - { - var callConnection = CreateMockCallConnection(202, OperationContextPayload); - - var response = await callConnection.UnmuteParticipantsAsync(participant, OperationContext); - Assert.AreEqual((int)HttpStatusCode.Accepted, response.GetRawResponse().Status); - Assert.AreEqual(OperationContext, response.Value.OperationContext); - } - - [Test] - public void UnmuteParticipantAsync_NotAcsUser_400BadRequest() - { - var callConnection = CreateMockCallConnection(400); - var participant = new PhoneNumberIdentifier("+15559501234"); - Assert.ThrowsAsync(typeof(RequestFailedException), async () => await callConnection.UnmuteParticipantsAsync(participant, OperationContext)); - } - - [TestCaseSource(nameof(TestData_MuteParticipant))] - public async Task MuteParticipantAsync_WithOptions_202Accepted(CommunicationIdentifier participant) - { - var callConnection = CreateMockCallConnection(202, OperationContextPayload); - var options = new MuteParticipantsOptions(new List { participant }) - { - OperationContext = OperationContext, - }; - - var response = await callConnection.MuteParticipantsAsync(options); - Assert.AreEqual((int)HttpStatusCode.Accepted, response.GetRawResponse().Status); - Assert.AreEqual(OperationContext, response.Value.OperationContext); - } - - [TestCaseSource(nameof(TestData_MuteParticipant))] - public void MuteParticipantAsync_WithOptions_MoreThanOneParticipant_400BadRequest(CommunicationIdentifier participant) - { - var callConnection = CreateMockCallConnection(400); - var options = new MuteParticipantsOptions(new List { participant, participant }) - { - OperationContext = OperationContext, - }; - - Assert.ThrowsAsync(typeof(RequestFailedException), async () => await callConnection.MuteParticipantsAsync(options)); - } - - [TestCaseSource(nameof(TestData_MuteParticipant))] - public async Task UnmuteParticipantAsync_WithOptions_202Accepted(CommunicationIdentifier participant) - { - var callConnection = CreateMockCallConnection(202, OperationContextPayload); - var options = new UnmuteParticipantsOptions(new List { participant }) - { - OperationContext = OperationContext, - }; - - var response = await callConnection.UnmuteParticipantsAsync(options); - Assert.AreEqual((int)HttpStatusCode.Accepted, response.GetRawResponse().Status); - Assert.AreEqual(OperationContext, response.Value.OperationContext); - } - - [TestCaseSource(nameof(TestData_MuteParticipant))] - public void UnmuteParticipantAsync_WithOptions_MoreThanOneParticipant_400BadRequest(CommunicationIdentifier participant) - { - var callConnection = CreateMockCallConnection(400); - var options = new UnmuteParticipantsOptions(new List { participant, participant }) - { - OperationContext = OperationContext, - }; - - Assert.ThrowsAsync(typeof(RequestFailedException), async () => await callConnection.UnmuteParticipantsAsync(options)); - } - private CallConnection CreateMockCallConnection(int responseCode, string? responseContent = null, string callConnectionId = "9ec7da16-30be-4e74-a941-285cfc4bffc5") { return CreateMockCallAutomationClient(responseCode, responseContent).GetCallConnection(callConnectionId); @@ -565,8 +377,7 @@ private CallConnection CreateMockCallConnection(int responseCode, string? respon { new object?[] { - new CallInvite(new CommunicationUserIdentifier("userId")){ - VoipHeaders = {{ "key1", "value1" }}} + new CallInvite(new CommunicationUserIdentifier("userId")) }, }; } diff --git a/sdk/communication/Azure.Communication.CallAutomation/tests/CallMedias/CallMediaTests.cs b/sdk/communication/Azure.Communication.CallAutomation/tests/CallMedias/CallMediaTests.cs index 169ae559cb27..6a126d8e34c1 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/tests/CallMedias/CallMediaTests.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/tests/CallMedias/CallMediaTests.cs @@ -17,40 +17,14 @@ public class CallMediaTests : CallAutomationTestBase new CommunicationUserIdentifier("id") }; private static readonly FileSource _fileSource = new FileSource(new System.Uri("file://path/to/file")); - private static readonly TextSource _textSource = new TextSource("PlayTTS test text.", "en-US-ElizabethNeural"); - private static readonly SsmlSource _ssmlSource = new SsmlSource("Recognize Choice Completed, played through SSML source."); - private static readonly PlayOptions _fileOptions = new PlayOptions(_fileSource, _target) + private static readonly PlayOptions _fileOptions = new PlayOptions(new List { _fileSource }, _target) { Loop = false, OperationContext = "context" }; - private static readonly PlayOptions _textOptions = new PlayOptions(_textSource, _target) - { - Loop = false, - OperationContext = "context" - }; - - private static readonly PlayOptions _ssmlOptions = new PlayOptions(_ssmlSource, _target) - { - Loop = false, - OperationContext = "context" - }; - - private static readonly PlayToAllOptions _filePlayToAllOptions = new PlayToAllOptions(_fileSource) - { - Loop = false, - OperationContext = "context" - }; - - private static readonly PlayToAllOptions _textPlayToAllOptions = new PlayToAllOptions(_textSource) - { - Loop = false, - OperationContext = "context" - }; - - private static readonly PlayToAllOptions _ssmlPlayToAllOptions = new PlayToAllOptions(_ssmlSource) + private static readonly PlayToAllOptions _filePlayToAllOptions = new PlayToAllOptions(new List { _fileSource }) { Loop = false, OperationContext = "context" @@ -63,15 +37,6 @@ public class CallMediaTests : CallAutomationTestBase "The third test string to be recognized by cognition service" }; - private static RecognizeChoice _recognizeChoice1 = new RecognizeChoice("testLabel1", s_strings); - private static RecognizeChoice _recognizeChoice2 = new RecognizeChoice("testLabel2", s_strings); - - private static readonly List s_recognizeChoices = new List() - { - _recognizeChoice1, - _recognizeChoice2 - }; - private static readonly CallMediaRecognizeOptions _dmtfRecognizeOptions = new CallMediaRecognizeDtmfOptions(new CommunicationUserIdentifier("targetUserId"), maxTonesToCollect: 5) { InterruptCallMediaOperation = true, @@ -83,53 +48,6 @@ public class CallMediaTests : CallAutomationTestBase Prompt = new FileSource(new Uri("https://localhost")) }; - private static CallMediaRecognizeOptions _choiceRecognizeOptions = new CallMediaRecognizeChoiceOptions(new CommunicationUserIdentifier("targetUserId"), s_recognizeChoices) - { - InterruptCallMediaOperation = true, - InitialSilenceTimeout = TimeSpan.FromSeconds(5), - InterruptPrompt = true, - OperationContext = "operationContext", - Prompt = new TextSource("PlayTTS test text.") - { - SourceLocale = "en-US", - VoiceGender = GenderType.Female, - VoiceName = "LULU" - }, - SpeechLanguage = "en-US", - }; - - private static CallMediaRecognizeSpeechOptions _speechRecognizeOptions = new CallMediaRecognizeSpeechOptions(new CommunicationUserIdentifier("targetUserId")) - { - InterruptCallMediaOperation = true, - InitialSilenceTimeout = TimeSpan.FromSeconds(5), - EndSilenceTimeoutInMs = TimeSpan.FromMilliseconds(500), - InterruptPrompt = true, - OperationContext = "operationContext", - Prompt = new TextSource("PlayTTS test text.") - { - SourceLocale = "en-US", - VoiceGender = GenderType.Female, - VoiceName = "LULU" - }, - SpeechLanguage = "en-US", - }; - - private static CallMediaRecognizeSpeechOrDtmfOptions _speechOrDtmfRecognizeOptions = new CallMediaRecognizeSpeechOrDtmfOptions(new CommunicationUserIdentifier("targetUserId"), 10) - { - InterruptCallMediaOperation = true, - InitialSilenceTimeout = TimeSpan.FromSeconds(5), - EndSilenceTimeoutInMs = TimeSpan.FromMilliseconds(500), - InterruptPrompt = true, - OperationContext = "operationContext", - Prompt = new TextSource("PlayTTS test text.") - { - SourceLocale = "en-US", - VoiceGender = GenderType.Female, - VoiceName = "LULU" - }, - SpeechLanguage= "en-US", - }; - private static readonly CallMediaRecognizeOptions _emptyRecognizeOptions = new CallMediaRecognizeDtmfOptions(new CommunicationUserIdentifier("targetUserId"), maxTonesToCollect: 1); private static CallMedia? _callMedia; @@ -137,7 +55,7 @@ public class CallMediaTests : CallAutomationTestBase [SetUp] public void Setup() { - _fileSource.PlaySourceId = "playSourceId"; + _fileSource.PlaySourceCacheId = "PlaySourceCacheId"; } private CallMedia GetCallMedia(int responseCode) @@ -173,33 +91,6 @@ public async Task RecognizeOperationsAsync_Return202Accepted(Func>> operation) - { - _callMedia = GetCallMedia(202); - var result = await operation(_callMedia); - Assert.IsNotNull(result); - Assert.AreEqual((int)HttpStatusCode.Accepted, result.GetRawResponse().Status); - } - - [TestCaseSource(nameof(TestData_StartContinuousRecognitionOperationsAsync))] - public async Task StartContinuousRecognitionOperationssAsync_Return200Accepted(Func> operation) - { - _callMedia = GetCallMedia(200); - var result = await operation(_callMedia); - Assert.IsNotNull(result); - Assert.AreEqual((int)HttpStatusCode.OK, result.Status); - } - - [TestCaseSource(nameof(TestData_StopContinuousRecognitionOperationsAsync))] - public async Task StopContinuousRecognitionOperationssAsync_Return200Accepted(Func> operation) - { - _callMedia = GetCallMedia(200); - var result = await operation(_callMedia); - Assert.IsNotNull(result); - Assert.AreEqual((int)HttpStatusCode.OK, result.Status); - } - [TestCaseSource(nameof(TestData_PlayOperations))] public void MediaOperations_Return202Accepted(Func> operation) { @@ -227,33 +118,6 @@ public void RecognizeOperations_Return202Accepted(Func> operation) - { - _callMedia = GetCallMedia(202); - var result = operation(_callMedia); - Assert.IsNotNull(result); - Assert.AreEqual((int)HttpStatusCode.Accepted, result.GetRawResponse().Status); - } - - [TestCaseSource(nameof(TestData_StartContinuousRecognitionOperations))] - public void StartContinuousRecognitionOperations_Return200OK(Func operation) - { - _callMedia = GetCallMedia(200); - var result = operation(_callMedia); - Assert.IsNotNull(result); - Assert.AreEqual((int)HttpStatusCode.OK, result.Status); - } - - [TestCaseSource(nameof(TestData_StopContinuousRecognitionOperations))] - public void StopContinuousRecognizeOperations_Return200OK(Func operation) - { - _callMedia = GetCallMedia(200); - var result = operation(_callMedia); - Assert.IsNotNull(result); - Assert.AreEqual((int)HttpStatusCode.OK, result.Status); - } - [TestCaseSource(nameof(TestData_PlayOperationsAsync))] public void PlayOperationsAsync_Return404NotFound(Func>> operation) { @@ -284,37 +148,6 @@ public void RecognizeOperationsAsync_Return404NotFound(Func>> operation) - { - _callMedia = GetCallMedia(404); - RequestFailedException? ex = Assert.ThrowsAsync( - async () => await operation(_callMedia)); - Assert.NotNull(ex); - Assert.AreEqual(ex?.Status, 404); - } - - [TestCaseSource(nameof(TestData_StartContinuousRecognitionOperationsAsync))] - public void StartContinuousRecognitionOperationsAsync_Return404NotFound(Func> operation) - { - _callMedia = GetCallMedia(404); - RequestFailedException? ex = Assert.ThrowsAsync( - async () => await operation(_callMedia)); - Assert.NotNull(ex); - Assert.AreEqual(ex?.Status, 404); - } - - [TestCaseSource(nameof(TestData_StopContinuousRecognitionOperationsAsync))] - - public void StopContinuousRecognitionOperationsAsync_Return404NotFound(Func> operation) - { - _callMedia = GetCallMedia(404); - RequestFailedException? ex = Assert.ThrowsAsync( - async () => await operation(_callMedia)); - Assert.NotNull(ex); - Assert.AreEqual(ex?.Status, 404); - } - [TestCaseSource(nameof(TestData_PlayOperations))] public void PlayOperations_Return404NotFound(Func> operation) { @@ -335,16 +168,6 @@ public void RecognizeOperations_Return404NotFound(Func> operation) - { - _callMedia = GetCallMedia(404); - RequestFailedException? ex = Assert.Throws( - () => operation(_callMedia)); - Assert.NotNull(ex); - Assert.AreEqual(ex?.Status, 404); - } - [TestCaseSource(nameof(TestData_CancelOperations))] public void CancelOperations_Return404NotFound(Func> operation) { @@ -365,27 +188,6 @@ public void MediaOperations_Return404NotFound(Func operation) - { - _callMedia = GetCallMedia(404); - RequestFailedException? ex = Assert.Throws( - () => operation(_callMedia)); - Assert.NotNull(ex); - Assert.AreEqual(ex?.Status, 404); - } - - [TestCaseSource(nameof(TestData_StopContinuousRecognitionOperations))] - - public void StopContinuousRecognizeOperations_Return404NotFound(Func operation) - { - _callMedia = GetCallMedia(404); - RequestFailedException? ex = Assert.Throws( - () => operation(_callMedia)); - Assert.NotNull(ex); - Assert.AreEqual(ex?.Status, 404); - } - private static IEnumerable TestData_PlayOperationsAsync() { return new[] @@ -397,23 +199,7 @@ public void StopContinuousRecognizeOperations_Return404NotFound(Func>>?[] { callMedia => callMedia.PlayToAllAsync(_filePlayToAllOptions) - }, - new Func>>?[] - { - callMedia => callMedia.PlayAsync(_textOptions) - }, - new Func>>?[] - { - callMedia => callMedia.PlayToAllAsync(_textPlayToAllOptions) - }, - new Func>>?[] - { - callMedia => callMedia.PlayAsync(_ssmlOptions) - }, - new Func>>?[] - { - callMedia => callMedia.PlayToAllAsync(_ssmlPlayToAllOptions) - }, + } }; } @@ -437,18 +223,6 @@ public void StopContinuousRecognizeOperations_Return404NotFound(Func callMedia.StartRecognizingAsync(_dmtfRecognizeOptions) }, new Func>>?[] - { - callMedia => callMedia.StartRecognizingAsync(_choiceRecognizeOptions) - }, - new Func>>?[] - { - callMedia => callMedia.StartRecognizingAsync(_speechRecognizeOptions) - }, - new Func>>?[] - { - callMedia => callMedia.StartRecognizingAsync(_speechOrDtmfRecognizeOptions) - }, - new Func>>?[] { callMedia => callMedia.StartRecognizingAsync(_emptyRecognizeOptions) } @@ -467,22 +241,6 @@ public void StopContinuousRecognizeOperations_Return404NotFound(Func callMedia.PlayToAll(_filePlayToAllOptions) }, - new Func>?[] - { - callMedia => callMedia.Play(_textOptions) - }, - new Func>?[] - { - callMedia => callMedia.PlayToAll(_textPlayToAllOptions) - }, - new Func>?[] - { - callMedia => callMedia.Play(_ssmlOptions) - }, - new Func>?[] - { - callMedia => callMedia.PlayToAll(_ssmlPlayToAllOptions) - }, }; } @@ -506,95 +264,10 @@ public void StopContinuousRecognizeOperations_Return404NotFound(Func callMedia.StartRecognizing(_dmtfRecognizeOptions) }, new Func>?[] - { - callMedia => callMedia.StartRecognizing(_choiceRecognizeOptions) - }, - new Func>?[] - { - callMedia => callMedia.StartRecognizing(_speechRecognizeOptions) - }, - new Func>?[] - { - callMedia => callMedia.StartRecognizing(_speechOrDtmfRecognizeOptions) - }, - new Func>?[] { callMedia => callMedia.StartRecognizing(_emptyRecognizeOptions) } }; } - - private static IEnumerable TestData_SendDtmfOperations() - { - return new[] - { - new Func>?[] - { - callMedia => callMedia.SendDtmf( - new DtmfTone[] { DtmfTone.One, DtmfTone.Two, DtmfTone.Three, DtmfTone.Pound }, - new CommunicationUserIdentifier("targetUserId"), - "context" - ) - } - }; - } - - private static IEnumerable TestData_SendDtmfOperationsAsync() - { - return new[] - { - new Func>>?[] - { - callMedia => callMedia.SendDtmfAsync( - new DtmfTone[] { DtmfTone.One, DtmfTone.Two, DtmfTone.Three, DtmfTone.Pound }, - new CommunicationUserIdentifier("targetUserId") - ) - } - }; - } - - private static IEnumerable TestData_StartContinuousRecognitionOperations() - { - return new[] - { - new Func?[] - { - callMedia => callMedia.StartContinuousDtmfRecognition(new CommunicationUserIdentifier("targetUserId")) - } - }; - } - - private static IEnumerable TestData_StartContinuousRecognitionOperationsAsync() - { - return new[] - { - new Func>?[] - { - callMedia => callMedia.StartContinuousDtmfRecognitionAsync(new CommunicationUserIdentifier("targetUserId")) - } - }; - } - - private static IEnumerable TestData_StopContinuousRecognitionOperations() - { - return new[] - { - new Func?[] - { - callMedia => callMedia.StopContinuousDtmfRecognition(new CommunicationUserIdentifier("targetUserId")) - } - }; - } - - private static IEnumerable TestData_StopContinuousRecognitionOperationsAsync() - { - return new[] - { - new Func>?[] - { - callMedia => callMedia.StopContinuousDtmfRecognitionAsync(new CommunicationUserIdentifier("targetUserId")) - } - }; - } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/tests/EventProcessors/ResultWithEventProcessorAsyncTests.cs b/sdk/communication/Azure.Communication.CallAutomation/tests/EventProcessors/ResultWithEventProcessorAsyncTests.cs index 73d384ee66f6..5812d272ac26 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/tests/EventProcessors/ResultWithEventProcessorAsyncTests.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/tests/EventProcessors/ResultWithEventProcessorAsyncTests.cs @@ -248,7 +248,7 @@ public async Task PlayEventResultSuccessTest() var callConnection = CreateMockCallConnection(successCode, AddParticipantsPayload); CallAutomationEventProcessor handler = callConnection.EventProcessor; - var response = callConnection.GetCallMedia().PlayToAll(new PlayToAllOptions(new FileSource(new Uri(CallBackUri))) { OperationContext = OperationContext }); + var response = callConnection.GetCallMedia().PlayToAll(new PlayToAllOptions(new List { new FileSource(new Uri(CallBackUri)) }) { OperationContext = OperationContext }); Assert.AreEqual(successCode, response.GetRawResponse().Status); // Create and send event to event processor @@ -274,7 +274,7 @@ public async Task PlayEventResultFailedTest() var callConnection = CreateMockCallConnection(successCode, AddParticipantsPayload); CallAutomationEventProcessor handler = callConnection.EventProcessor; - var response = callConnection.GetCallMedia().PlayToAll(new PlayToAllOptions(new FileSource(new Uri(CallBackUri))) { OperationContext = OperationContext }); + var response = callConnection.GetCallMedia().PlayToAll(new PlayToAllOptions(new List { new FileSource(new Uri(CallBackUri))}) { OperationContext = OperationContext }); Assert.AreEqual(successCode, response.GetRawResponse().Status); // Create and send event to event processor @@ -447,65 +447,5 @@ public async Task RemoveParticipantsEventResultFailedTest() Assert.AreEqual(CallConnectionId, returnedResult.FailureResult.CallConnectionId); Assert.AreEqual(response.Value.OperationContext, returnedResult.FailureResult.OperationContext); } - - [Test] - public async Task SendDtmfEventResultSuccessTest() - { - int successCode = (int)HttpStatusCode.Accepted; - - var callConnection = CreateMockCallConnection(successCode, AddParticipantsPayload); - CallAutomationEventProcessor handler = callConnection.EventProcessor; - - var response = callConnection.GetCallMedia().SendDtmf( - new DtmfTone[] { DtmfTone.One, DtmfTone.Two, DtmfTone.Three, DtmfTone.Pound }, - new CommunicationUserIdentifier("targetUserId"), - OperationContext - ); - Assert.AreEqual(successCode, response.GetRawResponse().Status); - - // Create and send event to event processor - SendAndProcessEvent(handler, new SendDtmfCompleted(CallConnectionId, ServerCallId, CorelationId, OperationContext, new ResultInformation())); - - SendDtmfEventResult returnedResult = await response.Value.WaitForEventProcessorAsync(); - - // Assert - Assert.NotNull(returnedResult); - Assert.AreEqual(true, returnedResult.IsSuccess); - Assert.NotNull(returnedResult.SuccessResult); - Assert.IsNull(returnedResult.FailureResult); - Assert.AreEqual(typeof(SendDtmfCompleted), returnedResult.SuccessResult.GetType()); - Assert.AreEqual(CallConnectionId, returnedResult.SuccessResult.CallConnectionId); - Assert.AreEqual(OperationContext, returnedResult.SuccessResult.OperationContext); - } - - [Test] - public async Task SendDtmfEventResultFailedTest() - { - int successCode = (int)HttpStatusCode.Accepted; - - var callConnection = CreateMockCallConnection(successCode, AddParticipantsPayload); - CallAutomationEventProcessor handler = callConnection.EventProcessor; - - var response = callConnection.GetCallMedia().SendDtmf( - new DtmfTone[] { DtmfTone.One, DtmfTone.Two, DtmfTone.Three, DtmfTone.Pound }, - new CommunicationUserIdentifier("targetUserId"), - OperationContext - ); - Assert.AreEqual(successCode, response.GetRawResponse().Status); - - // Create and send event to event processor - SendAndProcessEvent(handler, new SendDtmfFailed(CallConnectionId, ServerCallId, CorelationId, OperationContext, new ResultInformation())); - - SendDtmfEventResult returnedResult = await response.Value.WaitForEventProcessorAsync(); - - // Assert - Assert.NotNull(returnedResult); - Assert.AreEqual(false, returnedResult.IsSuccess); - Assert.NotNull(returnedResult.FailureResult); - Assert.IsNull(returnedResult.SuccessResult); - Assert.AreEqual(typeof(SendDtmfFailed), returnedResult.FailureResult.GetType()); - Assert.AreEqual(CallConnectionId, returnedResult.FailureResult.CallConnectionId); - Assert.AreEqual(OperationContext, returnedResult.FailureResult.OperationContext); - } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/tests/Events/CallAutomationEventParserTests.cs b/sdk/communication/Azure.Communication.CallAutomation/tests/Events/CallAutomationEventParserTests.cs index f4b4614d8646..9e48e7a98c3a 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/tests/Events/CallAutomationEventParserTests.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/tests/Events/CallAutomationEventParserTests.cs @@ -13,8 +13,6 @@ namespace Azure.Communication.CallAutomation.Tests.Events { public class CallAutomationEventParserTests { - //private static string DTMF_RESULT_JSON = "{\"recognizeResult\":{},\"collectTonesResult\":{\"tones\":[\"five\", \"six\", \"pound\"]},\"choiceResult\":{\"label\":null,\"recognizedPhrase\":null},\"recognitionType\":\"dtmf\",\"callConnectionId\":\"callConnectionId\",\"serverCallId\":\"serverCallId\",\"correlationId\":\"correlationId\",\"operationContext\":\"operationContext\",\"resultInformation\":{\"code\":200,\"subCode\":8531,\"message\":\"Action completed, max digits received\"}}"; - //private static string CHIOCE_RESULT_JSON = "{\"recognizeResult\":{},\"collectTonesResult\":{\"tones\":[]},\"choiceResult\":{\"label\":\"testLabel\",\"recognizedPhrase\":\"testRecognizePhrase\"},\"recognitionType\":\"choices\",\"callConnectionId\":\"callConnectionId\",\"serverCallId\":\"serverCallId\",\"correlationId\":\"correlationId\",\"operationContext\":\"operationContext\",\"resultInformation\":{\"code\":200,\"subCode\":8531,\"message\":\"Action completed, max digits received\"}}"; [Test] public void EventParserShouldParseEventWithEventDataAndType() { @@ -533,44 +531,6 @@ public void RecognizeCompletedWithDtmfEventParsed_Test() } } - [Test] - public void RecognizeCompletedWithChoiceEventParsed_Test() - { - ChoiceResult choiceResult = new ChoiceResult("testLabel", "testRecognizePhrase"); - RecognizeCompleted @event = CallAutomationModelFactory.RecognizeCompleted( - callConnectionId: "callConnectionId", - serverCallId: "serverCallId", - correlationId: "correlationId", - operationContext: "operationContext", - recognitionType: CallMediaRecognitionType.Choices, - recognizeResult: choiceResult, - resultInformation: new ResultInformation( - code: 200, - subCode: 8531, - message: "Action completed, max digits received")); - JsonSerializerOptions jsonOptions = new() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }; - string jsonEvent = @event.Serialize(); - - var parsedEvent = CallAutomationEventParser.Parse(jsonEvent, "Microsoft.Communication.RecognizeCompleted"); - if (parsedEvent is RecognizeCompleted recognizeCompleted) - { - var recognizeResult = recognizeCompleted.RecognizeResult; - Assert.AreEqual(recognizeResult is ChoiceResult, true); - Assert.AreEqual("correlationId", recognizeCompleted.CorrelationId); - Assert.AreEqual("serverCallId", recognizeCompleted.ServerCallId); - Assert.AreEqual(200, recognizeCompleted.ResultInformation?.Code); - if (recognizeResult is ChoiceResult choiceRecongizedResult) - { - Assert.AreEqual("testLabel", choiceRecongizedResult.Label); - Assert.AreEqual("testRecognizePhrase", choiceRecongizedResult.RecognizedPhrase); - } - } - else - { - Assert.Fail("Event parsed wrongfully"); - } - } - [Test] public void GetRecognizeResultFromRecognizeCompletedWithDtmf_Test() { @@ -608,46 +568,6 @@ public void GetRecognizeResultFromRecognizeCompletedWithDtmf_Test() } } - [Test] - public void GetRecognizeResultFromRecognizeCompletedWithChoice_Test() - { - ChoiceResult choiceResult = new ChoiceResult("testLabel", "testRecognizePhrase"); - RecognizeCompleted @event = CallAutomationModelFactory.RecognizeCompleted( - callConnectionId: "callConnectionId", - serverCallId: "serverCallId", - correlationId: "correlationId", - operationContext: "operationContext", - recognitionType: CallMediaRecognitionType.Choices, - recognizeResult: choiceResult, - resultInformation: new ResultInformation( - code: 200, - subCode: 8531, - message: "Action completed, max digits received")); - string jsonEvent = @event.Serialize(); - - var parsedEvent = CallAutomationEventParser.Parse(jsonEvent, "Microsoft.Communication.RecognizeCompleted"); - if (parsedEvent is RecognizeCompleted recognizeCompleted) - { - var recognizeResult = recognizeCompleted.RecognizeResult; - - //RecognizeResult recognizeResult = recognizeCompleted.RecognizeResult; - Assert.AreEqual(recognizeResult is ChoiceResult, true); - Assert.AreEqual("correlationId", recognizeCompleted.CorrelationId); - Assert.AreEqual("correlationId", recognizeCompleted.CorrelationId); - Assert.AreEqual("serverCallId", recognizeCompleted.ServerCallId); - // Assert.AreEqual(200, recognizeCompleted.ResultInformation?.Code); - if (recognizeResult is ChoiceResult choiceRecongizedResult) - { - Assert.AreEqual("testLabel", choiceRecongizedResult.Label); - Assert.AreEqual("testRecognizePhrase", choiceRecongizedResult.RecognizedPhrase); - } - } - else - { - Assert.Fail("Event parsed wrongfully"); - } - } - [Test] public void RecognizeFailedEventParsed_Test() { @@ -752,138 +672,5 @@ public void RemoveParticipantsFailedEventParsed_Test() Assert.Fail("Event parsed wrongfully"); } } - - [Test] - public void ContinuousDtmfRecognitionToneReceivedEventParsed_Test() - { - ContinuousDtmfRecognitionToneReceived @event = CallAutomationModelFactory.ContinuousDtmfRecognitionToneReceived( - toneInfo: new ToneInfo(sequenceId: 1, DtmfTone.A), - callConnectionId: "callConnectionId", - serverCallId: "serverCallId", - correlationId: "correlationId", - operationContext: "operationContext", - resultInformation: new ResultInformation(code: 200, subCode: 0, message: "Action completed successfully")); - JsonSerializerOptions jsonOptions = new() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }; - string jsonEvent = JsonSerializer.Serialize(@event, jsonOptions); - var parsedEvent = CallAutomationEventParser.Parse(jsonEvent, "Microsoft.Communication.ContinuousDtmfRecognitionToneReceived"); - if (parsedEvent is ContinuousDtmfRecognitionToneReceived continuousDtmfRecognitionToneReceived) - { - Assert.AreEqual(DtmfTone.A, continuousDtmfRecognitionToneReceived.ToneInfo.Tone); - Assert.AreEqual(1, continuousDtmfRecognitionToneReceived.ToneInfo.SequenceId); - Assert.AreEqual("callConnectionId", continuousDtmfRecognitionToneReceived.CallConnectionId); - Assert.AreEqual("correlationId", continuousDtmfRecognitionToneReceived.CorrelationId); - Assert.AreEqual("serverCallId", continuousDtmfRecognitionToneReceived.ServerCallId); - Assert.AreEqual("operationContext", continuousDtmfRecognitionToneReceived.OperationContext); - Assert.AreEqual(200, continuousDtmfRecognitionToneReceived.ResultInformation?.Code); - } - else - { - Assert.Fail("Event parsed wrongfully"); - } - } - - [Test] - public void ContinuousDtmfRecognitionToneFailedEventParsed_Test() - { - ContinuousDtmfRecognitionToneFailed @event = CallAutomationModelFactory.ContinuousDtmfRecognitionToneFailed( - callConnectionId: "callConnectionId", - serverCallId: "serverCallId", - correlationId: "correlationId", - operationContext: "operationContext", - resultInformation: new ResultInformation(code: 400, subCode: 8510, message: "Action failed, some error.")); - JsonSerializerOptions jsonOptions = new() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }; - string jsonEvent = JsonSerializer.Serialize(@event, jsonOptions); - var parsedEvent = CallAutomationEventParser.Parse(jsonEvent, "Microsoft.Communication.ContinuousDtmfRecognitionToneFailed"); - if (parsedEvent is ContinuousDtmfRecognitionToneFailed continuousDtmfRecognitionToneFailed) - { - Assert.AreEqual("callConnectionId", continuousDtmfRecognitionToneFailed.CallConnectionId); - Assert.AreEqual("correlationId", continuousDtmfRecognitionToneFailed.CorrelationId); - Assert.AreEqual("serverCallId", continuousDtmfRecognitionToneFailed.ServerCallId); - Assert.AreEqual("operationContext", continuousDtmfRecognitionToneFailed.OperationContext); - Assert.AreEqual(400, continuousDtmfRecognitionToneFailed.ResultInformation?.Code); - } - else - { - Assert.Fail("Event parsed wrongfully"); - } - } - - [Test] - public void ContinuousDtmfRecognitionStoppedEventParsed_Test() - { - ContinuousDtmfRecognitionStopped @event = CallAutomationModelFactory.ContinuousDtmfRecognitionStopped( - callConnectionId: "callConnectionId", - serverCallId: "serverCallId", - correlationId: "correlationId", - operationContext: "operationContext", - resultInformation: new ResultInformation(code: 200, subCode: 0, message: "Action completed successfully")); - JsonSerializerOptions jsonOptions = new() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }; - string jsonEvent = JsonSerializer.Serialize(@event, jsonOptions); - var parsedEvent = CallAutomationEventParser.Parse(jsonEvent, "Microsoft.Communication.ContinuousDtmfRecognitionStopped"); - if (parsedEvent is ContinuousDtmfRecognitionStopped continuousDtmfRecognitionStopped) - { - Assert.AreEqual("callConnectionId", continuousDtmfRecognitionStopped.CallConnectionId); - Assert.AreEqual("correlationId", continuousDtmfRecognitionStopped.CorrelationId); - Assert.AreEqual("serverCallId", continuousDtmfRecognitionStopped.ServerCallId); - Assert.AreEqual("operationContext", continuousDtmfRecognitionStopped.OperationContext); - Assert.AreEqual(200, continuousDtmfRecognitionStopped.ResultInformation?.Code); - } - else - { - Assert.Fail("Event parsed wrongfully"); - } - } - - [Test] - public void SendDtmfCompletedEventParsed_Test() - { - SendDtmfCompleted @event = CallAutomationModelFactory.SendDtmfCompleted( - callConnectionId: "callConnectionId", - serverCallId: "serverCallId", - correlationId: "correlationId", - operationContext: "operationContext", - resultInformation: new ResultInformation(code: 200, subCode: 0, message: "Action completed successfully")); - JsonSerializerOptions jsonOptions = new() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }; - string jsonEvent = JsonSerializer.Serialize(@event, jsonOptions); - var parsedEvent = CallAutomationEventParser.Parse(jsonEvent, "Microsoft.Communication.SendDtmfCompleted"); - if (parsedEvent is SendDtmfCompleted SendDtmfCompleted) - { - Assert.AreEqual("callConnectionId", SendDtmfCompleted.CallConnectionId); - Assert.AreEqual("operationContext", SendDtmfCompleted.OperationContext); - Assert.AreEqual("correlationId", SendDtmfCompleted.CorrelationId); - Assert.AreEqual("serverCallId", SendDtmfCompleted.ServerCallId); - Assert.AreEqual(200, SendDtmfCompleted.ResultInformation?.Code); - } - else - { - Assert.Fail("Event parsed wrongfully"); - } - } - - [Test] - public void SendDtmfFailedEventParsed_Test() - { - SendDtmfFailed @event = CallAutomationModelFactory.SendDtmfFailed( - callConnectionId: "callConnectionId", - serverCallId: "serverCallId", - correlationId: "correlationId", - operationContext: "operationContext", - resultInformation: new ResultInformation(code: 400, subCode: 8510, message: "Action failed, some error.")); - JsonSerializerOptions jsonOptions = new() { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }; - string jsonEvent = JsonSerializer.Serialize(@event, jsonOptions); - var parsedEvent = CallAutomationEventParser.Parse(jsonEvent, "Microsoft.Communication.SendDtmfFailed"); - if (parsedEvent is SendDtmfFailed sendDtmfFailed) - { - Assert.AreEqual("operationContext", sendDtmfFailed.OperationContext); - Assert.AreEqual("callConnectionId", sendDtmfFailed.CallConnectionId); - Assert.AreEqual("correlationId", sendDtmfFailed.CorrelationId); - Assert.AreEqual("serverCallId", sendDtmfFailed.ServerCallId); - Assert.AreEqual(400, sendDtmfFailed.ResultInformation?.Code); - } - else - { - Assert.Fail("Event parsed wrongfully"); - } - } } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/tests/Infrastructure/CallAutomationClientAutomatedLiveTestsBase.cs b/sdk/communication/Azure.Communication.CallAutomation/tests/Infrastructure/CallAutomationClientAutomatedLiveTestsBase.cs index 061873740b47..415c68ed761e 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/tests/Infrastructure/CallAutomationClientAutomatedLiveTestsBase.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/tests/Infrastructure/CallAutomationClientAutomatedLiveTestsBase.cs @@ -98,15 +98,7 @@ protected CallAutomationClient CreateInstrumentedCallAutomationClientWithConnect { var connectionString = TestEnvironment.LiveTestStaticConnectionString; - CallAutomationClient callAutomationClient; - if (TestEnvironment.PMAEndpoint == null || TestEnvironment.PMAEndpoint.Length == 0) - { - callAutomationClient = new CallAutomationClient(connectionString, CreateServerCallingClientOptionsWithCorrelationVectorLogs(source)); - } - else - { - callAutomationClient = new CallAutomationClient(new Uri(TestEnvironment.PMAEndpoint), connectionString, CreateServerCallingClientOptionsWithCorrelationVectorLogs(source)); - } + CallAutomationClient callAutomationClient = new CallAutomationClient(connectionString, CreateServerCallingClientOptionsWithCorrelationVectorLogs(source)); return InstrumentClient(callAutomationClient); } @@ -296,7 +288,7 @@ private static string RemoveAllNonChar(string inputId) private HttpPipeline BuildHttpPipeline() { var clientOptions = CreateServerCallingClientOptionsWithCorrelationVectorLogs(); - return clientOptions.CustomBuildHttpPipeline( + return clientOptions.BuildHttpPipeline( ConnectionString.Parse(TestEnvironment.LiveTestStaticConnectionString)); } diff --git a/sdk/communication/Azure.Communication.CallAutomation/tests/Infrastructure/CallAutomationClientLiveTestsBase.cs b/sdk/communication/Azure.Communication.CallAutomation/tests/Infrastructure/CallAutomationClientLiveTestsBase.cs index ed135ba91795..36dd13cd7677 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/tests/Infrastructure/CallAutomationClientLiveTestsBase.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/tests/Infrastructure/CallAutomationClientLiveTestsBase.cs @@ -37,14 +37,8 @@ protected CallAutomationClient CreateInstrumentedCallAutomationClientWithConnect var connectionString = TestEnvironment.LiveTestStaticConnectionString; CallAutomationClient callAutomationClient; - if (TestEnvironment.PMAEndpoint == null || TestEnvironment.PMAEndpoint.Length == 0) - { - callAutomationClient = new CallAutomationClient(connectionString, CreateServerCallingClientOptionsWithCorrelationVectorLogs()); - } - else - { - callAutomationClient = new CallAutomationClient(new Uri(TestEnvironment.PMAEndpoint), connectionString, CreateServerCallingClientOptionsWithCorrelationVectorLogs()); - } + + callAutomationClient = new CallAutomationClient(connectionString, CreateServerCallingClientOptionsWithCorrelationVectorLogs()); return InstrumentClient(callAutomationClient); } diff --git a/sdk/communication/Azure.Communication.CallAutomation/tests/Infrastructure/CallAutomationClientTestEnvironment.cs b/sdk/communication/Azure.Communication.CallAutomation/tests/Infrastructure/CallAutomationClientTestEnvironment.cs index 89216310aa49..395583a61b06 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/tests/Infrastructure/CallAutomationClientTestEnvironment.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/tests/Infrastructure/CallAutomationClientTestEnvironment.cs @@ -17,8 +17,6 @@ internal class CallAutomationClientTestEnvironment : CommunicationTestEnvironmen public const string TargetNumber = "TARGET_PHONE_NUMBER"; - public const string Endpoint = "PMA_Endpoint"; - private const string randomResourceIdentifier = "82e890fc-188a-4b67-bb7d-deff073d7d1e"; private string randomAcsUser = $"8:acs:{randomResourceIdentifier}_0000000e-abbe-44ad-9f37-b0a72a616d0b"; @@ -53,11 +51,6 @@ internal class CallAutomationClientTestEnvironment : CommunicationTestEnvironmen /// public string TargetPhoneNumber => GetRecordedVariable(TargetNumber, options => options.IsSecret("+16041234567")); - /// - /// Endpoint for the targetted PMA in string. If not set, default endpoint is used. - /// - public string PMAEndpoint => GetRecordedOptionalVariable(Endpoint, options => options.IsSecret("https://sanitized.com")); - /// /// Dispatcher endpoint for automated testing /// diff --git a/sdk/communication/Azure.Communication.CallAutomation/tests/Infrastructure/CallAutomationTestBase.cs b/sdk/communication/Azure.Communication.CallAutomation/tests/Infrastructure/CallAutomationTestBase.cs index 16f9fe3c0fb5..bb0e69bda72d 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/tests/Infrastructure/CallAutomationTestBase.cs +++ b/sdk/communication/Azure.Communication.CallAutomation/tests/Infrastructure/CallAutomationTestBase.cs @@ -23,7 +23,7 @@ public class CallAutomationTestBase "}}" + "]," + "\"sourceDisplayName\": \"displayName\"," + - "\"sourceIdentity\":{{" + + "\"source\":{{" + "\"rawId\":\"sourceId\"," + "\"kind\":\"communicationUser\"," + "\"communicationUser\":{{\"id\":\"sourceId\"}}" + @@ -93,7 +93,7 @@ protected void verifyCallConnectionProperties(CallConnectionProperties callConne { Assert.AreEqual(CallConnectionId, callConnectionProperties.CallConnectionId); Assert.AreEqual(ServerCallId, callConnectionProperties.ServerCallId); - var sourceUser = (CommunicationUserIdentifier)callConnectionProperties.SourceIdentity; + var sourceUser = (CommunicationUserIdentifier)callConnectionProperties.Source; Assert.AreEqual(SourceId, sourceUser.Id); Assert.AreEqual(callConnectionProperties.Targets.Count, 1); var targetUser = (CommunicationUserIdentifier)callConnectionProperties.Targets[0]; diff --git a/sdk/communication/Azure.Communication.CallAutomation/tests/MediaStreaming/CallAutomationStreamingParserTests.cs b/sdk/communication/Azure.Communication.CallAutomation/tests/MediaStreaming/CallAutomationStreamingParserTests.cs deleted file mode 100644 index 48d79f5519af..000000000000 --- a/sdk/communication/Azure.Communication.CallAutomation/tests/MediaStreaming/CallAutomationStreamingParserTests.cs +++ /dev/null @@ -1,126 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using System; -using System.Text.Json; -using Newtonsoft.Json.Linq; -using NUnit.Framework; - -namespace Azure.Communication.CallAutomation.Tests.MediaStreaming -{ - internal class CallAutomationStreamingParserTests - { - [Test] - public void ParseMetadata_Test() - { - string metadataJson = "{" - + "\"kind\": \"AudioMetadata\"," - + "\"audioMetadata\": {" - + "\"subscriptionId\": \"subscriptionId\"," - + "\"encoding\": \"encodingType\"," - + "\"sampleRate\": 8," - + "\"channels\": 2," - + "\"length\": 640" - + "}" - + "}"; - - MediaStreamingMetadata streamingMetadata = (MediaStreamingMetadata)MediaStreamingPackageParser.Parse(metadataJson); - ValidateMetadata(streamingMetadata); - } - - [Test] - public void ParseAudio_Test() - { - string audioJson = "{" - + "\"kind\": \"AudioData\"," - + "\"audioData\": {" - + "\"data\": \"AQIDBAU=\"," // [1, 2, 3, 4, 5] - + "\"timestamp\": \"2022-08-23T11:48:05Z\"," - + "\"participantRawID\": \"participantId\"," - + "\"silent\": false" - + "}" - + "}"; - - MediaStreamingAudioData streamingAudio = (MediaStreamingAudioData) MediaStreamingPackageParser.Parse(audioJson); - ValidateAudioData(streamingAudio); - } - - [Test] - public void ParseAudio_NoParticipantIdSilent_Test() - { - string audioJson = "{" - + "\"kind\": \"AudioData\"," - + "\"audioData\": {" - + "\"data\": \"AQIDBAU=\"," // [1, 2, 3, 4, 5] - + "\"timestamp\": \"2022-08-23T11:48:05Z\"" - + "}" - + "}"; - - MediaStreamingAudioData streamingAudio = (MediaStreamingAudioData)MediaStreamingPackageParser.Parse(audioJson); - ValidateAudioDataNoParticipant(streamingAudio); - } - - [Test] - public void ParseBinaryData() - { - JObject jsonData = new JObject(); - jsonData["kind"] = "AudioData"; - jsonData["audioData"] = new JObject(); - jsonData["audioData"]["data"] = "AQIDBAU="; - jsonData["audioData"]["timestamp"] = "2022-08-23T11:48:05Z"; - jsonData["audioData"]["participantRawID"] = "participantId"; - jsonData["audioData"]["silent"] = false; - - var binaryData = BinaryData.FromString(jsonData.ToString()); - - MediaStreamingAudioData streamingAudio = (MediaStreamingAudioData)MediaStreamingPackageParser.Parse(binaryData); - ValidateAudioData(streamingAudio); - } - - [Test] - public void ParseAudioEventsWithBynaryArray() - { - JObject jsonData = new JObject(); - jsonData["kind"] = "AudioData"; - jsonData["audioData"] = new JObject(); - jsonData["audioData"]["data"] = "AQIDBAU="; - jsonData["audioData"]["timestamp"] = "2022-08-23T11:48:05Z"; - jsonData["audioData"]["participantRawID"] = "participantId"; - jsonData["audioData"]["silent"] = false; - - byte[] receivedBytes = System.Text.Encoding.UTF8.GetBytes(jsonData.ToString()); - MediaStreamingAudioData parsedPackage = (MediaStreamingAudioData) MediaStreamingPackageParser.Parse(receivedBytes); - - Assert.NotNull(parsedPackage); - ValidateAudioData(parsedPackage); - } - - private static void ValidateMetadata(MediaStreamingMetadata streamingMetadata) - { - Assert.IsNotNull(streamingMetadata); - Assert.AreEqual("subscriptionId", streamingMetadata.MediaSubscriptionId); - Assert.AreEqual("encodingType", streamingMetadata.Encoding); - Assert.AreEqual(8, streamingMetadata.SampleRate); - Assert.AreEqual(2, streamingMetadata.Channels); - Assert.AreEqual(640, streamingMetadata.Length); - } - - private static void ValidateAudioData(MediaStreamingAudioData streamingAudio) - { - Assert.IsNotNull(streamingAudio); - Assert.AreEqual("AQIDBAU=", streamingAudio.Data); - Assert.AreEqual(2022, streamingAudio.Timestamp.Year); - Assert.IsTrue(streamingAudio.Participant is CommunicationIdentifier); - Assert.AreEqual("participantId", streamingAudio.Participant.RawId); - Assert.IsFalse(streamingAudio.IsSilent); - } - private static void ValidateAudioDataNoParticipant(MediaStreamingAudioData streamingAudio) - { - Assert.IsNotNull(streamingAudio); - Assert.AreEqual("AQIDBAU=", streamingAudio.Data); - Assert.AreEqual(2022, streamingAudio.Timestamp.Year); - Assert.IsNull(streamingAudio.Participant); - Assert.IsFalse(streamingAudio.IsSilent); - } - } -} diff --git a/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecordedEvents/CallAutomationClientAutomatedLiveTests/CreateCallAndReject.json b/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecordedEvents/CallAutomationClientAutomatedLiveTests/CreateCallAndReject.json index e71a2084ce05..485323e8c4fb 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecordedEvents/CallAutomationClientAutomatedLiveTests/CreateCallAndReject.json +++ b/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecordedEvents/CallAutomationClientAutomatedLiveTests/CreateCallAndReject.json @@ -1,8 +1,8 @@ { "entries": [ { - "body": "{\u0022to\u0022:{\u0022kind\u0022:\u0022communicationUser\u0022,\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022from\u0022:{\u0022kind\u0022:\u0022communicationUser\u0022,\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzd2UtMDIuY29udi5za3lwZS5jb20vY29udi92Q2hzNFdqZVdrNnloRUx0OTQybTlBP2k9MTQmZT02MzgxOTI3NDY1OTU4NzQ3OTM=\u0022,\u0022callerDisplayName\u0022:\u0022\u0022,\u0022incomingCallContext\u0022:\u0022eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJjYyI6Ikg0c0lBQUFBQUFBQUNzMVliVy9iT0JMK0s0SVB1QStIMGlZcFNxSUlHQXZYZHR1a1NacEw4OUpkQkJkUUpHVXJrU1dWa3QvUzdYL2ZvZXdrVHR6cjl1NTJEK3NBc2trT24rZmhpRVBPNUV0SHlUdy9LWnNzelpSc3NyTG9pQytkMUpZejk1M3BqdWh3SVZVdFNLS2xwRW1NNGdCSGlBV01vaVFKR1pKUlFxbkNXSExOYm5EN0lSekpVQ21VcEQ1SHZ2Wmp4STB2c2NaWWt6RHR2T3Jvcks1eXVUNlJNd1A0MEdFS1haVlowUnc0UGo5Vk9xSlJpTkxZVHhFTHFVR3hIeXJFTkZZa3dxa0tFeC9tNUxLWXpPWEV1RG5GUE05ZmRTcHBtMHhsbGR3Q3hRbnp1WThwU29PQUk1YVNDTWs0RFpDU1NxZWFNa1VTQ1VEVFRHc0R5MDVsWHBzbkxlZnJ5cW1yalYwWU82Z3FzS3hzV1JuYnJGL0x5WWJ6NjZ0T1UvNFJqa3FpbDQ2SzhPODZhZ09DTWZyRzQrSHpRNDdDbk5NMDFUN0NqRWp3T0pkSTRpUkZPbUtSb2FrMmtVcjJIV1ZOWGM2dGFuRTdQN0xxZitQQlBDdnVhdWRFMlRSU1RRRnMyalJWTFhvOVdXWGROTThtMHdibXJkYmQrZzdlU1ZlVk16ZlNXOUNlcW5yZ3ZubHRKRVdZZHBYYU1WR3F0eUM5dExSM1J2ZDBCRUo0ckZIQ1FCbmpxVUVjTTNoRVdtTkthWmdrcEVlalhrWjZQb3Q3R3lVL1pYMENtbWRHWjNKUTFFdGpRWnRTSUd6bTlnMW9tb0FQNnIrQzRBY3RXOG5XM0JyVi9CV0ViWlJzWmMxMWRXNWxVVmVsZGVLZ0NkSUMyaVdFZFFtRDc1Z0luMFc4MS9tNmRmdXdMQnBUZ1BHWGp0cjgzSWFscktwOGUyRDFhdTJDTThuTEJBWVdmWHh0cjR1eWp6eENHV09oaDcyREUrL2dsRUU3Nm1MNEk4Nmc3dGZnTDVqdUdxcS9OV0c0Ry9FdXdYNlhSTnlOSlAzaHVTRGJZSElkVFI5NzdZOVpYODUxVm5vQnhqNzJ6czVQZTRQTFU0OWc1c1h3OUQxQ2lFYzRzSE12anFBSFdxNlRnd3o4ZlU3WnQ0MnFrSzJ6ZTdQVFRoUHhEMitGWmlBYm90a0REM2cxbkFkQzExUFBHclZ3UHpibUsxUm5rMEpDWUUyK04rc0pXN2hGdEc2Ui9Vd1pORSt0bkFoMUt1MVRYN1hVWXZUdVlsWVdBWjRNNGtNMkdoenArOCtYNjlIdGFFZmxiTDdhdEpRc2RLWmxZd1NzM0xzWW5YcVUrRGpDSWZQSjh6VnZYZGlzUVpwTjg1Vm5wZFlXWE5hbGhMdjN4VHpydHN6R2JoK2Q3cUFITVhoNEg1MzhJRHA1aVU1QnUxdVdWQTB3VU5nSklZNWVNckNZQlBRSEdGcTdmUWI2SnpQQXRtczlSR2pBYVl4SkZIZ1BRY2RiQ2crQ0xtN1JyWUhyWm92K1hNSE9HL0NPenkvT1RnNUdIZ2w5bUVrWmljT1FFWUlEL2kxeStrVE93WkQrVCtUa2tUeUVkZURJWnl5SWZNcjl5TWY4SlRlRWZPdmFTdGExT3cyNEU0ckQ1d0tnQ1RjeC9rRUZNV2I3TFBUL3dCTHNiRVJIRXZEWUI3dy9tb1QrV1NTNVRFd3VaaklyVUh0dWJucG5tUmJibUZ1aFpHbGtQaWx0MWt4bklsa3FyNUxxempTVnpLeTNOQWtjTDF1OWRsMDFKUVQrWVB6eFpuaDhReWkvZVhjOEdONThmRGNnTnh4N1dRRkhueEdYMmNHSHQrbXlLZU82eUVhdnI5Ni9XUTFaTUs1dWt5TDZwNHJmdjdIbDJzNUdSNy9TZi9ua1YvSWdaQXRQZncvKy9TZk8wc04zeS9sRTg4UHErUFNYOGR2NzQ2dHBjVkhkWjdkblIreXUvank1UE1GVkMvOXdRbFl6V2NGOXdyeVBCMGZ2ZXlUYzNpcVBRN0gzTnFLMHgxLzJ1MEJwcCt5UHdEM3o4ZUJzZkxLTGxzNmF6VWlTTlJiZWJIK2ZDYzVKb0lwM0FEZVR1Q2VMd3F5U2ZsRStzOGZlNmZENFlwK2Z1LzdCZmo5Y2VtZmowYmRXQWh2WjVLYWFsb1ZCWmdGMytwNEdNTUdJaE0vbitkN3c1RnZMNTY3L0crdWoyQTJ3cHhsVms4M2d2SDFnZ3R2UjJNcENOaTNxcVVRMENMMTRMTWF4aUdQQlg0dGhMRVpjREFaaU9CWjBKQVpNdkg0amdxRVlNUkg3clUwb1dDaDhHS1ZpSElvSWVrYmlEUmR2WU5SM1UwSW04Rmd3eUdrQXh4ZUQ0WWJZckpwV24rZVNNM0VObitWeTJkMXM4RzVwSjlmWFpnVkpNbWd0bXZyNkdwYURwdHJDck90cm1kVEkzZDdJcmVRWm12K0U5cGk0ZlFjb2xYVnprMERjTHpQZFRHOVNZM1FDd2ZZM0tIVmNUblRqUHlZU3RWVUljcllKWExTdXRuQVBOL2FRRngrWlNadi9KeUhSUVNvNUNsVWNJSlpBTVNGWklCSHhJeDJFakFZK2M1V2ZxYUhjYkxPMkQwck5MVGgvOGxoUEZHYjVJVTFka3QxMlFBb0lDZUo3czNiSjN6WlhhMXNkOW9FZVhPYW40ZUk0cmFyNVlYUjJtQjNjVC9wOXdJZXlCazRNc0luT1l2YnpiWDcxK2RPSHhidnlsN2R2ODAvcm41ZGdBN0FXaEVQQzVGU2NidXFSekxRRlNGYWZiWWNHZVY0dURTeXNzWFB6RmVaQTl1bDgwMG8vS0JaWjgxZ3I3NDY0ZE5XV2VkNVdDdjlSN2cwZ2tIMHZUWnQ4UTJNMy9ZWm1iekdjMXV6cTFsemRoZXZwK0tpSkdaM0ZBNWRYczcrYmZ1akRwVU1qRmdaeHdLRm9pMTJCbk5YSDg3ekpJSWxyd0d0YkoyZjFhMXRLcmVEOVAvbFptMlErMlUyMTRWOEM3VnVsUktZU3h4VEZ4b2NDUEtVRXlZQ0dpSVk0OFZNb1cybGJpdjlYOVNUd1RtdzVyMXJlRmZDMjVlQnZjSVBIOFpBUUFBQT0iLCJzaHJUb2tlbiI6ImV5SmhiR2NpT2lKU1V6STFOaUlzSW5SNWNDSTZJbkJ2Y0NKOS5leUpoZENJNkltVjVTakJsV0VGcFQybEtTMVl4VVdsTVEwcG9Za2RqYVU5cFNsTlZla2t4VG1sSmMwbHVaekZrUTBrMlNXa3hURk5VVGxKUFZ6VlBWV3BrYVZWdE9XMWxSekZzVjIwNVdXTlhTa2xYYTJSc1pIbEpjMGx0ZEhCYVEwazJTV2t4VEZOVVRsSlBWelZQVldwa2FWVnRPVzFsUnpGc1YyMDVXV05YU2tsWGEyUnNaSGxLT1M1bGVVcG9aRmRSYVU5cFNtbE9SRlpzVFVScmQxbFRNV3RaVjBwdFRGUlJlRTVFVlhSWlZFRXlUME13ZDA5SFJUUk5hbXhwVFhwQ2JFOUhVV2xNUTBwd1l6Tk5hVTlwU205a1NGSjNZM3B2ZGt3elRqQmplVFV6WVZjMWEySXpaSHBNYlRWc1pFTTVhbHBIVFRGWlYxWnNXVk13ZUU1WFRURk1WRkpyV1dwWmRGbHFRVE5QVXpGdFdUSkdhMXBFU1RGTlJGWnJXWHBKZGtscGQybGhWMFl3U1dwdmVFNXFaM3BPZWtGNlQxUkZNa3hEU25WWmJWbHBUMnBGTWs5RVRUTk5SRTAxVFZSWmMwbHRWalJqUTBrMlRWUlpORTE2WXpWTlJGbDRUbWwzYVZsWGJIWkphbTlwVWxSS1lWb3hiRTloYlRGclVqSkplazF1VW5OVVdIQllUVVUxZEU1NlZuTmpiWFJ3WTBWS00xRlVNR2xNUTBwb1kwaENjRnBEU1RaSmJVVjZXVlJOZWxsNlNtaE1WRWsxVDBkVmRFNUVSbXROVXpBMVRWUk5NMHhYUlRGT1JGbDVUVzFWTWs5RVJtcFplVWx6U1cxR2QyTkhiR3RaVjA1NVNXcHZhVTFwU1hOSmJVNTFXbWxKTm1WNVNuRmtNbk5wVDI1emFXRXpValZKYW05cFZXeE9Ra2xwZDJsaWFVazJTV3BDTldOdFJtWmhNbEpPVVZkb2QxRlhUa3BrVm1nMFRGWk9NRk5IZEU1T2JGazBVVzVzTVZKNlFtcFBSWFJDVGxWa05VNHpiSFpVUmxreVVUQXhTazU2YUhSVFNFNVdWVVJLZWxWSFZreGtiVkl4VlVaV2VHSkdTalZpU0VaUFVqQm9ZVmx1Vm1GbFJXeDRWMFZTY0ZZeVpFOU1WRlUwVkROQ1RtSnNjREZNVlVwSVlteHdTMk5GYTNkUk1VNXhXbFZhZUdSWWFGUmxibWd4VkVoS1NHTllXa3BhVjJOM1VWUm9TR05XVm1aTldFcHpXVmhhUkUxWFdUQmFNRGxTVFRCMFMyTlhVWGRQVkd3MVYwWnNiMDFxWkdwUlZGWklXSHBDZGxOR1FtcFdTRkpSVkdwQ2JFOUZaM2RpYkhCMVpWZDBkMDV1V1hoT1Z6RmFUMGQ0VWxOcVZuUlhWRUpaVld0R1EySkdUazVQU0VFMVlsaE5lbFJXYkRSYU1GcHVZVWhPVFZwRVdrSlhXRko0VFZkMFRtSXpiREZhUlZwVFRXdFNORTB3YkhsV1ZURlBWRlpHVVU5VVpGbGxWWFJQWkRCak1XVnNPVEpsUlRWUVkwVk9VbUpUTVU1alIyOTRWbGRrVG1ScmREQldNRFF5VFVoT2IxcHJiM2RXVmpreVZGUmpkR1JZYUZKVmJFSXpWRzVvY2s1dGRFbE5WRnAwVmpKdmVsTkViSE5aVlhNMFpFWmFNRkZZWkZsa1JGWnpWbGR3UlZFeFVrdFRhbVJ0WkZoQk5FMUlZM2hqVld4M1ZWTkpjMGx0VldsUGFVcENWVlZHUTBscGQybFpWM2h1U1dwdmFWVnNUWGxPVkZscFRFTktjbUZYVVdsUGFVcHdVMGhXVTFkWVVsUmFiSEJzWlZoQ2RsVnJjRlpTTURsSlZsZG5lR1ZHUW5OWGJFSkZVbXQ0TW1KNlduZFBWVW8xWWxWb1VVOUZiR3BKYmpFNVRFTktjRnBJUVdsUGFVcHZaRWhTZDJONmIzWk1NMDR3WTNrMU0yRlhOV3RpTTJSNlRHMDFiR1JET1dwYVIwMHhXVmRXYkZsVE1IaE9WMDB4VEZSU2ExbHFXWFJaYWtFelQxTXhiVmt5Um10YVJFa3hUVVJXYTFsNlNYWkphWGRwWWpKc2EwbHFiMmxOYlUwelQxZE9hVTU2WjNSTk1rNXFXVk13TUUweVZtbE1WMHBzV1dwSmRGbHFRVFZPYlZacFQxUkpNRTV0UlRSSmFYZHBZMjFuYVU5cFNYZE1hMFpUVTFWRk1tTlVaRWRsYlU1V1ZtNVNjazF1Wkd4YWJtd3dUVWQ0UTFwSVpHNWlNSEJaWTJ4T1prMXRkRmRSYlRsSVdqQnNlRkV5TVRaU1J6aDNWVEJHUWxGVE5HbE1RMHA2WkZkSmFVOXBTWGxaZW1NMVdUSkpNMDlETUhwWk1rNW9URlJSZWxwWFNYUlpiVlpwVFdreGFVMUVhekphVjBrMVRXcFJNbGxVWjJsTVEwb3dZVmRSYVU5cFNtcGFSMDB4V1ZkV2JGbFRNSGhPVjAweFRGUlNhMWxxV1hSWmFrRXpUMU14YlZreVJtdGFSRWt4VFVSV2ExbDZTV2xNUTBveFpFZHJhVTlwU21sVGJEbG9XVmRXZW1GV2NGWk5hM1JZVkRGc2VVMUZhRzFXUlVaQ1NXbDNhV1J0Vm5sSmFtOXBUVk0wZDBsdU1DNXdjRjlNZEhOVVgzQTRVMGx6UTJsSFgxaEdUWFJSTTNwZmNEUkRXRXR0WW1WNGNIQk5OelpTY1RFMk5XTk9hVEpLY0U1SlZFeElNV0ZFTlZsNFExTk1aMGgyYjNrMGJUZFBURUp4U0VGMVdYcERkM0JpWlVWVlIyWlZaMWd0ZGtKRWFUZHVVVkZqZEdkdGNWbEhNRE00TFV4VWR6TkdPVTB6V25oSlZYQnZiMmhRVkdaa1kydE5aMHB1T0hGWk0zTm5VbmQzYjJZeVRYUkJSVUp4VGxCcGFsOHlWMGN0T1VVeUxUZ3dlbU5hTm5ZdFlUY3lUbVZDVmtGWFh6VXRYM1I1TFZsdWNrTlFMVUZXUm1JMFJXTjRibGd4ZFRWTFJWUnNVVmd3Y1RKSE1IUm5TVXR2ZWxwM1MzZFVVRlpuVVZkaFZqVTFZVmN5VnpKRlZIbGZOREF3VVc1ak0yaG9SalkzYVdNeU9WOVVMVlJyTW1kVWFVeFdjR1pqTkhBdFJsQnFaemRqV1Vsa01YbGFRVUl6YlVOdFVGbGFTMHBxV1d4UVkwdE5Na1ZaTTFCVmEwVjZkM1ZHTkRkR2FHNUNZbU5CYzJGVlpuY2lMQ0owY3lJNk1UWTRNemMwTXpJMU5Dd2lZaUk2SWtkQmEzUktjMnhrV1hKS01tMHliVmwzY0dWbU1VNVNRMnAzV25SemJrMUhaR2QwVTFaNGExUXlha2tpTENKdWIyNWpaU0k2SW1GaE1UQXhZamswTW1abVlUUTVZbUppTVdVM09UZzNZbVUwWmpWaE5tRm1JaXdpWTI1bUlqcDdJbXAzYXlJNmV5SnJhV1FpT2lJME1IWk1YemxHUTFoVGIyWlZiMFJ3V0U5MmN6WmhVbXAzVlc1bldVUjNkRlJNTURoWFdsTkRhVWRySWl3aVpTSTZJa0ZSUVVJaUxDSnJkSGtpT2lKU1UwRWlMQ0p1SWpvaU1IbHlZVjlyWkUxQmFIQkJZMGwxV0hndFUzUklhMDAyVmpoQ2VYVkhNR000UzBFMVIzazNlVzlNVmpaRFRVazNPRzFJYzFWUU1uTlFaVXQyWkhWUVZYRnNVbmxzY1U1SFNGcGlkVnA0U1hGWVJHbFhaMDR0TlRoUGNFMXVXblV0UWtkdVdrcHdTVEJEVTJwbFJuRjFlRk42ZUhWTWNrZHhka2xsWnpCQk9FZHhWVjh4Y214aGRrTXhaalJuVDFFelMwcHhaREE1T1hsWVdXZ3lOMk5CTlVkZk1HOUlVR05VZEZCT01HVTRTREJ1V201NWEzQTJkakUxYlZrNGJGRktOVzFaTUZoU1FVSnNVMDA0Y0RsdGN6Tk5XWGhuUm1kb2MweGtOa0ZaZEhFeGEwMXZlWFZrUmxJeVJIZ3pTWEpWVFU1TlVWQTVOMWg1UzA1M1J6VjZYM1o0VGs5d1ExRnRMVTF3YWpGVlowMTJTM1JYVGpZd2MyaG1TakJWWDNaTk55MTFlRkZTVUhkT2VHczJhMGd4Tm0xWGFqTklPV3hoU3poMFZuUkJkMWgwTld4VmFrUkRWRXBLTjJaMWNEZ3dkekZ4U1hCUkluMTlmUS5aYW42UGRxZmxocHBKNFlneE8xZWZOTjNrRDZDa25oT0JDaklqOWNEMVFuU2ZvR01nLWVPUkUxUGh2NFdWbVYtUXNxMTVsam9mSVQzMUZXUEdCNHZnVURHNERHYjFPMXhuV2tMYzUyM2M3TXh6Vkx3dk9YNWcxNWNaQmhCaklkenZ6LTVtdjh5Yk1GQmI0OEhwV0ZfcnljRDZUbnVuVUE3akliYnd5VHV5Q2xSZk1jMHREX3RqWnVBbk1LWHc1dlhDRVJMbWlISm11SXVxUmUtVWZOcHFjQl9tRHNoS2pJTkV6UFYtT0w0RW1oZTF0d1czSXJXUGZrUnJfdW9CTXZEWTVKNGl2WUR3eTJQLWFUMmVnQTQ1TEtudXZIRXh3cnpxRGI2MXlUeHM4MDIzZWRINDF3T0tKTTNPMDd1X1A1aDBhZkVOUkdDM3NYVU9rYzdyUU5XVHcifQ.\u0022,\u0022correlationId\u0022:\u002221afa092-9e3c-4f21-a526-260b3fbfb2b3\u0022}", - "messageId": "760f3d97bdc142bd816cd7f39e4a73a3", + "body": "{\u0022to\u0022:{\u0022kind\u0022:\u0022communicationUser\u0022,\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022from\u0022:{\u0022kind\u0022:\u0022communicationUser\u0022,\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC94LWNvbnYtZXVuby0wMS5jb252LnNreXBlLmNvbS9jb252L3FtcURjYWxlV1UyeTY2TWtNVHhwNUE/aT0xJmU9NjM4MjA2NTUyNjc1OTIxMDI3\u0022,\u0022callerDisplayName\u0022:\u0022\u0022,\u0022incomingCallContext\u0022:\u0022eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJjYyI6Ikg0c0lBQUFBQUFBQUNzMVliVy9qdUJIK0s0SUw5RU83dEVsS2xFZ0NSdUhZU1RhM3NaUE5PdzVCQTRxaWJDV3lwS1hrMkxtOS9lOGR5azdpamJlMzIvYXVPQWV3eGJmbmVXWkVjbWJ5dWFOVm5rL0tKa3N6clpxc0xEcnljeWUxNWR6OVprbEhkcmhVdXBZa1RwU2lzVUNDNFFnRkxLQW9qc01BcVNpbVZHT3NlQkxjNGZaRE9FcEZLRkNjQmlFeXZvNFFFNzdDQ2NaYXhMVHpycE5rZFpXcnA0bWFHOENIRGxNa1Zaa1Z6VkhMRjRlVWN4MGo1aXNmQlRyZ0tNYVlJcDJtTFBKVHFvSll3SnBjRmRPRm1ocTNwbGprK2J0T3BXeVQ2YXhTR3lCdGxDQXNqcENLalVJQmppbW9OZEFrUEFBd0xiQnlRTE1zU1F5WW5hcThOcTlhTHA0cXA2NDI5dEhZUVZYQnpNcVdsYkhOMDU2YXJqbS92T3MwNWUvaEtLVjJIT1YvMTFGckVJelJONzZlUHova0tCcWtCQ2VLSVVOeENCNDNJZUlwVGhERlJ2Z3Npa09jaEx1T3NxWXVGMWEzdUowZnNmcmZlRERQaW9mYU9WRTFqZEl6QUpzMVRWWExYazlWV1RmTnMrbXNnWFdycDI3OUFPK2txOHU1RytrOTBwNnVlaXVrTlRLTG9rU1lkTFhlbXFOMTc1SDAwdEkrbUtSSGNCU0wyQkNrU1p5aUlFNG9LRFUrSXI3aUlpUXFwamp0MGFpWGtaNGZpTjVheWoreVBnSFJjNU5rYWxEVVMyUGRydEtnYks3V3hrekJDZldmUXZHem1JMW1hKzZOYnY0VXl0WlNOcm9XU1hWaFZWRlhwWFhxb0FuYWlOK05naTRKL1M3RnZ2U0RpUGM2WHpaK0g1WkZZd3FZKzdtajE0K2JnNm1xS3Q5Y1diMDZjY2N6enNzWUJoNzcrTmJlRm1VZmVaVFJ5TVBlMGNRN09nMDhRcU11aGovaWh1dCtEZDZDeGE2aCs4OVRRdDROYVpjUzBpWENkME54ZjNnaHllWTB1WTZtajczMllkNVhpeVFyUFViREtQRE9MazU3ZzZ0VGorREFFL0R0ZTRRUWozQ2c1NTZJb0FkYXJwT0REdndkVXRXM2phNlFyYk5mekZZN2plWGZ2QldhZzNBNHp4NTR3S3ZoUnBCSlBmT3MwWS91WVQxOWhlcHNXaWc0V3RQZld2V0tMWjBWYk4zT3RFR0wxS3FwVEs2dkgxNzdxbVVpZjdsaTRvUStQSDQ4cWFyOTBmbjRtRC9kVCs2UHl5MlY4OFZxM2RLcVNMSkVOVWFDNmQ3bDZOU2p4TWNSRGdPZnZERjY0OFRtQ2JUWk5GOTVWaVdKQmFmQkJBNnZqSG5XN1pqMXRGMTB1b1hPaEhQeExqcjdNWFQyRnAyQ2RtZVcwZzB3VU5nS0lZNTJHQUtJTlBUN0RPMjBYUWI2QnpQQXZtczlSQ2pqVkdBQ3ptQzBTd2djT3M2N0l2VGd6SWtXMnhxSU44L1lYd3ZZZWdQZStPTHliSEkwOGdqek1RMERETGdSNXZCZXNSL3VrdE5YY3JnZ1F2by9rYk1YY2hGUndSZ0pNVXlpalBpY3Y2V0dzOVY2dGxKMURmd0JKMENQd3pmOExQUUQrbU1DQXVINy9pNEwvVCt3c0sxOTZFZ1lGK0R1MzUyRS9sRWtPV1JodVp5cnJFRHR2Ym51bldlSkpNOTNWcncwS3ArV05tdG1jeGt2dFZjcC9XQ2FTbVhXVzVvWWJwZU5YdnRVTlNXYys4SCsrZDF3ZkVjb3Yzcy9IZ3p2enQ4UHlCM0hYbGJBelFjNzc2WTRzSWNEc1R3NnZpUlg0OE5pOEtGTVJveDkrUHRGZkxEWW4zMjgvbWw1U0ZqK0svMm5UMzRsejBJMjhQUjc4UGMzOTNoUDNIUHVEN0lnM1hzL09ZR28rRGc4WGx4OTVQczNsMlU4dWE2UEgyYVhMZnp6QlZuTlZRWHhKUERPajQ0LzlHRHpycVBLeTVEd0RpTktlL3h0djRzbzdaTGRFWWd6NTBkbis1TnR0SFRlckVmaXJMSHdadnU3VEhCTkFwWFlBbHd2NHA0cUNyT0srMFg1MVh6c25RN0hsN3Y4M1BVUGR2c2g2SjN0ajc1bENXeGtrNXRxVmhZR21VY0k2VHNhWUFwR0pQeDZuZThOSjk4eW43ditiOWhIc1JzSVhsZFVUVGFINi9hWkNZS2pzWldGZEZyV000VW9DNzBna0NTU2JDVDNCcElQNVpES1lTZ1BJamtLcFdCU3dMT1FReUVwbC9zajl6REFNaHhLc2llSEI1THRTWDhvaFM4aktnZEVCcjQ4T0pCaUtQZUpwQU5KUmhKdk5vRlpOYTAreitWbThoWSt5K1d5dTk3ZzNkSk9iMi9OQ3JKazBGbzA5ZTB0bUlObWlZVlZ0N2NxcnBFTDNzaFo4aFdhLzRyMmtyYjlCbENxNnVZdWhuTy96SkptZHBjYWs4UncyUDRDdFk1TGl1NzhsenlpdGhwQnhqYUZPT3VLQy9mbHhwN3o0bU16WFJkYm9hRkNxd0NSS0tJbzhJMUJJcVFFbVlCR1VVeUlyMm5rQ3BnYTZzMDJhVHZSZW1IQitkT1hncUl3eTVNMGRVbDIyd0VaSUtTSEg4eVR5LzAyeVZyYjZsU2YyTS8yT2p6YXU3bGl4emVENjZ5c0J1Y2YrMzNBaDdvR2JneFgwL0NmRDZ0SmRaZ2RYbzczczlXSmYvaitWTGs1QUd0Qk9PUkxUc1hwdWlESlRGdUJaUFhaWm1pUTUrWFNnR0dOWFpndnNBYVNUK2ViVnZwUjhaZzFMOFh5OW9qTFZtMlo1MjJsOEIrbTNnRHptbnhEWXp2OWhtYnYwL3pUQ0p4bnJpL3BVeGlPSDhZWHE0b05YRjc5VjlNUGZRNjFHMnNEcElBVW9uVjJWbzhYZVpPZFFya0hidHQ0T2F2M2JLa1NEUnZnMWRHSmlSZlQ3VlFiL2luUXZ0WVVDdWhRbXdCS2NLZ05nc0M0YXBWQmxZQlRFM0dSY3FvZDAzOVZVUUx2MUphTHF1VmRBVzliRVA0TEdVSU0yWklRQUFBPSIsInNoclRva2VuIjoiZXlKaGJHY2lPaUpTVXpJMU5pSXNJblI1Y0NJNkluQnZjQ0o5LmV5SmhkQ0k2SW1WNVNqQmxXRUZwVDJsS1MxWXhVV2xNUTBwb1lrZGphVTlwU2xOVmVra3hUbWxKYzBsdVp6RmtRMGsyU1dreFRGTlVUbEpQVnpWUFZXcGthVlZ0T1cxbFJ6RnNWMjA1V1dOWFNrbFhhMlJzWkhsSmMwbHRkSEJhUTBrMlNXa3hURk5VVGxKUFZ6VlBWV3BrYVZWdE9XMWxSekZzVjIwNVdXTlhTa2xYYTJSc1pIbEtPUzVsZVVwb1pGZFJhVTlwU21sT1JGWnNUVVJyZDFsVE1XdFpWMHB0VEZSUmVFNUVWWFJaVkVFeVQwTXdkMDlIUlRSTmFteHBUWHBDYkU5SFVXbE1RMHB3WXpOTmFVOXBTbTlrU0ZKM1kzcHZka3d6VGpCamVUVXpZVmMxYTJJelpIcE1iVFZzWkVNNWFscEhUVEZaVjFac1dWTXdlRTVYVFRGTVZGSnJXV3BaZEZscVFUTlBVekZ0V1RKR2ExcEVTVEZOUkZacldYcEpka2xwZDJsaFYwWXdTV3B2ZUU1cVp6Rk5WRWw0VGtSak5FeERTblZaYlZscFQycEZNazlFVlhoTmFrVXdUbnBuYzBsdFZqUmpRMGsyVFZSWk5FNVVTWGRQUkVVelQwTjNhVmxYYkhaSmFtOXBVbFJLWVZveGJGRmFNMlIwVmxSQ2MwOUhTbEZVYlZwNVdtNWtlVkl3T1ZoT00yTnlUMVZLTTFGVU1HbE1RMHBvWTBoQ2NGcERTVFpKYlVWNldWUk5lbGw2U21oTVZFazFUMGRWZEU1RVJtdE5VekExVFZSTk0weFhSVEZPUkZsNVRXMVZNazlFUm1wWmVVbHpTVzFHZDJOSGJHdFpWMDU1U1dwdmFVMXBTWE5KYlU1MVdtbEpObVY1U25Ga01uTnBUMjV6YVdFelVqVkphbTlwVld4T1FrbHBkMmxpYVVrMlNXNWFZVlpxUmtKYVJsa3dXSHBDUzJKWVJYaE5NRFI2V2tWYVYxVklhRzFhVlhSd1pWZHNOV1ZZVm5sUFdHaElWak5TUlZJelZrOVpibWhyVTFaR1RXRnFTblpSYkhCdFRsZEtWMk5XV1hSU1Z6UTFaREJPZVdGRk9ESmhiVGxyVDBkcmVVMXViSGhsYmxwdlpXcG9hVlpxVVRGV1Iyc3hVVmhaTWxRd2MzUmxSR1J1V0RKMFVXRnRXa0pYUmtKR1ZEQTVZVTlFYUhKT2JXaHVVakZrY0ZGWWFGZE5WVXBVWldwWmVGZHNSa1ZTVnpGSFpGZG9jMlZ1UmtkVmVscEZVMGhLYjFnemNFOU9XR3hLVW0xNFNGRXhTa2hpYXpreVdrVnpkMDFWT0hkVmJYZDVWMGR3Y0dGdE1VOWxSRVpJVTFWMFIxTnNWbXhNVlVwV1dteENNVTVJVmtoVldHZzBWRVpXYkZrelpGaFNNRnBJV1cxRk5FNVdVazVrZWtwWFkydHdNRXhYWkd4V1V6RlpVVE5PUzFsc1FtOVpNVll4WTBaQ1RtUnJPVFZaYmxwMlRYcGpOVnB0Um05VFdGcG1UVlphVFZaVVZtMWpSMXBLVG10YWRsZElaRzFqVXpGVFdXdHNWVlJJUmxCUFdFMDBZbGM0TW1NelNsbFRWWFJ4VkVSVk1HTnVaSGhaV0VaeFRURndUbGRzU2pKVFNFcE9VbFJPVW1KdGFFUldSRlpMVWxjNVFtVkZkelZVTVVsNFpESmFRMUY2WkdwT00yeHBaREphVWxReVRubFdXRUpXVlZOSmMwbHRWV2xQYVVwQ1ZWVkdRMGxwZDJsWlYzaHVTV3B2YVZWc1RYbE9WRmxwVEVOS2NtRlhVV2xQYVVreldXdHNTV05ZYkhKWFIwVjRVMVZXVGxKclRtbE1WbEpQWVZSb1RsbHFhRXhYYlhSNVlYcEdXRTFVWXpCUk1VcHZZVEZTUWxGNlRUUkpiakU1VEVOS2NGcElRV2xQYVVwdlpFaFNkMk42YjNaTU0wNHdZM2sxTTJGWE5XdGlNMlI2VEcwMWJHUkRPV3BhUjAweFdWZFdiRmxUTUhoT1YwMHhURlJTYTFscVdYUlpha0V6VDFNeGJWa3lSbXRhUkVreFRVUldhMWw2U1haSmFYZHBZakpzYTBscWIybE5iVTB6VDFkT2FVNTZaM1JOTWs1cVdWTXdNRTB5Vm1sTVYwcHNXV3BKZEZscVFUVk9iVlpwVDFSSk1FNXRSVFJKYVhkcFkyMW5hVTlwU1hkTWEwWlRVMVZGTW1OVVpFZGxiVTVXVm01U2NrMXVaR3hhYm13d1RVZDRRMXBJWkc1aU1IQlpZMnhPWmsxdGRGZFJiVGxJV2pCc2VGRXlNVFpTUnpoM1ZUQkdRbEZUTkdsTVEwcDZaRmRKYVU5cFNYbFplbU0xV1RKSk0wOURNSHBaTWs1b1RGUlJlbHBYU1hSWmJWWnBUV2t4YVUxRWF6SmFWMGsxVFdwUk1sbFVaMmxNUTBvd1lWZFJhVTlwU21wYVIwMHhXVmRXYkZsVE1IaE9WMDB4VEZSU2ExbHFXWFJaYWtFelQxTXhiVmt5Um10YVJFa3hUVVJXYTFsNlNXbE1RMG94WkVkcmFVOXBTVFJOYlRCNlpWUlpNRnBVVFhkUk1sSjZaR3hvU1dJeVVqWlJhMFpDU1dsM2FXUnRWbmxKYW05cFRWTTBkMGx1TUM1clNIRjVlbnBvVFhsUVYweGtiREptY25kWGQyczNhVXcyVVZScGNtZEhjalp3TVZOSFdURTBTM2hwYlZkeVREQnNORGQ2VFd4MlMxcHJaVEZXUTJKcFZFZG9kakp3VWxsTFptUnhVVE5TYmxGSE1YcFZWamRKUVhwaVYyUkNjRTQxY0RKUGRUaDZUWHBOUkhkNUxYUTVaMmRRVWpkZlZqTkJWREEyUVVGdVJHZFBla1ppU0hKM1JIaGhibGRFUmpSemRETkhaVmRpWTJwcU56WnlTMHRUUzBnMGVrSnVZMHRXUVROM1NFazRlRlZTVWpaSlNXdGxVRFJ2ZWxSc1FtdE1SVVl5VFRkMFdDMUtYMHBDYmxKd1NYaHJSelptWms1MmVITXdUVUZQV1RsdFpWQXRhWFJxV2pCNVEzTTNNVTloY1hOaU1VZFpabVZ5YkRoNFQwSTFkRVpoU1dwaVRtRlVUR0pJU2w5M1gyaFdSbTVmZWxOaU9HcHBka2xYVWpWSGJGVkNNRTV1Wlc5UVpVRmxPSGN5U21wR1NqbEVaVEpvYldGNFVsTlRMVTFQWHkwd01GcFFNa1pHVW14elMwMHpYMkptV25jaUxDSjBjeUk2TVRZNE5URXlPVEkzT0N3aVlpSTZJbmt3WVZobVJHVlFSRnBqVVMxT2VITjZaRGw1YlhwRlJVdExYMWhsVFV0WU1uUXpYemhQTlZWWGRsRWlMQ0p1YjI1alpTSTZJbU5qWlRKaE5HUXhZVFkzT1RReU5URTVaRE0zT0RGbU16SXdaRFkwTlRRNElpd2lZMjVtSWpwN0ltcDNheUk2ZXlKcmFXUWlPaUpFWjA1NVZ6WklhMVJDTUhWck5tNU1VRUZ5VTE5MVVsOTVibVY2YW1oTlJWRXdlWGR0TFRGdFIwbzBJaXdpWlNJNklrRlJRVUlpTENKcmRIa2lPaUpTVTBFaUxDSnVJam9pZGxwV01VRmtWalJmTUVwdGNURXpUak5rUmxaUWVHWmxTMmw1YVhsNWRYSTVlRWRYZEVSSGRVNWllR1JKVVV4cU1tOUNXbVkxWWxaeFZpMUZiamwzUTNKb1R6WnFiMlE0YVRJeWVYRjZkbWg2T0dKV05EVlVhVFZCZGpaUFN5MTROMmRmYTFCcVprRllVRVZQVDFvNE9HczJhR2RIVjJsQmVGWXhRbE42TmpGYVVVUkZiVVoxYUd4NmNVWlROa1JJY21oZmVrNDFlVWxHYkVkRFVrZHVUM1prU3pBeFR6QlNiREpZYW1scWJVNTRNVWRKUzBaS1ZXVXRRbFZtVUhVMGRVZFJlSGhNVldWamQxZEhSa2RpWVRnMVZFMTNNbFp5U25RdFoyVlZMVmhEYzBwaVVHaGpWWFZ3VUUxMlQzbGlkbTh6TnpsbVlXaEpkbDh4Vmt4Vk5XWndaa2syUm05WWQyWnhMVkppU1ZSTWNVODVjemh0YnpaemNsaEpTMnBNTlRSeWQzRmhjV296V2sxYVVuWkljazFGTTFGdWFFTlVOVXBGYjBGNFREbFBVakYzWmtKRE4yTTNlV0ozWmxGUFkzSlZjRlZSSW4xOWZRLlA3OHphbF9CaWV2T2JxdWp4WFZVQXQxZjVwMUtJV1d6XzFYbkdodHpwWlZlUUw4c09rZVIyRDBwYldhUFRWR3JFN2lQZHlmc1VhcUNzUnZORmVoU0VfTEQwZUhidHJqNDBwSklhVU9mWGc3Y2tfQ0FhbGFnOGJDb1NseXdtc0FfWE1QX040MnFrTFBlSTdlWXN4TVhTOGl3cHBQOFQxT2RtSTVUTmxXaHlINDJ0ZVFWOUhOOGNiMTNzdndYei13X2hKUmZlUjJTeU5wYWJ5TXczTWJ3WlFKTlU2YzEtRWc2ZGdTeWZfeWlhU1JzV0FZS0NUS0FUTU9CU3pkUnpzLWxJdjFISVdjbUk5REV2Nm5JZEFIY01hdWZoYjRRYi15S0xMbEZCRWNiaDFUX0JEbENvamEwU2UwODJLblcwNVJmT29EclFBbkNHaWtYZFFFYnBPWVROdyJ9.\u0022,\u0022correlationId\u0022:\u0022f15b6ce4-b0cc-44e9-bf5c-e0fe789f82c7\u0022}", + "messageId": "dff02ef289484cc19a852a493fb81a51", "partitionKey": null, "sessionId": null, "replyToSessionId": null, @@ -11,7 +11,22 @@ "contentType": null, "replyTo": null, "applicationProperties": { - "Diagnostic-Id": "00-dc8d811704453d82fc63a3cee5416b61-bfd1bad631a591d7-00" + "Diagnostic-Id": "00-711ca188744421c4d0ba3550b48b5e16-d3510d08b8d1a415-00" + }, + "enqueuedTime": "0001-01-01T00:00:00+00:00" + }, + { + "body": "{\u0022to\u0022:{\u0022kind\u0022:\u0022communicationUser\u0022,\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022from\u0022:{\u0022kind\u0022:\u0022communicationUser\u0022,\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC94LWNvbnYtZXVuby0wMS5jb252LnNreXBlLmNvbS9jb252L3FtcURjYWxlV1UyeTY2TWtNVHhwNUE/aT0xJmU9NjM4MjA2NTUyNjc1OTIxMDI3\u0022,\u0022callerDisplayName\u0022:\u0022\u0022,\u0022incomingCallContext\u0022:\u0022eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJjYyI6Ikg0c0lBQUFBQUFBQUNzMVliVy9qdUJIK0s0SUw5RU83dEVsS2xFZ0NSdUhZU1RhM3NaUE5PdzVCQTRxaWJDV3lwS1hrMkxtOS9lOGR5azdpamJlMzIvYXVPQWV3eGJmbmVXWkVjbWJ5dWFOVm5rL0tKa3N6clpxc0xEcnljeWUxNWR6OVprbEhkcmhVdXBZa1RwU2lzVUNDNFFnRkxLQW9qc01BcVNpbVZHT3NlQkxjNGZaRE9FcEZLRkNjQmlFeXZvNFFFNzdDQ2NaYXhMVHpycE5rZFpXcnA0bWFHOENIRGxNa1Zaa1Z6VkhMRjRlVWN4MGo1aXNmQlRyZ0tNYVlJcDJtTFBKVHFvSll3SnBjRmRPRm1ocTNwbGprK2J0T3BXeVQ2YXhTR3lCdGxDQXNqcENLalVJQmppbW9OZEFrUEFBd0xiQnlRTE1zU1F5WW5hcThOcTlhTHA0cXA2NDI5dEhZUVZYQnpNcVdsYkhOMDU2YXJqbS92T3MwNWUvaEtLVjJIT1YvMTFGckVJelJONzZlUHova0tCcWtCQ2VLSVVOeENCNDNJZUlwVGhERlJ2Z3Npa09jaEx1T3NxWXVGMWEzdUowZnNmcmZlRERQaW9mYU9WRTFqZEl6QUpzMVRWWExYazlWV1RmTnMrbXNnWFdycDI3OUFPK2txOHU1RytrOTBwNnVlaXVrTlRLTG9rU1lkTFhlbXFOMTc1SDAwdEkrbUtSSGNCU0wyQkNrU1p5aUlFNG9LRFUrSXI3aUlpUXFwamp0MGFpWGtaNGZpTjVheWoreVBnSFJjNU5rYWxEVVMyUGRydEtnYks3V3hrekJDZldmUXZHem1JMW1hKzZOYnY0VXl0WlNOcm9XU1hWaFZWRlhwWFhxb0FuYWlOK05naTRKL1M3RnZ2U0RpUGM2WHpaK0g1WkZZd3FZKzdtajE0K2JnNm1xS3Q5Y1diMDZjY2N6enNzWUJoNzcrTmJlRm1VZmVaVFJ5TVBlMGNRN09nMDhRcU11aGovaWh1dCtEZDZDeGE2aCs4OVRRdDROYVpjUzBpWENkME54ZjNnaHllWTB1WTZtajczMllkNVhpeVFyUFViREtQRE9MazU3ZzZ0VGorREFFL0R0ZTRRUWozQ2c1NTZJb0FkYXJwT0REdndkVXRXM2phNlFyYk5mekZZN2plWGZ2QldhZzNBNHp4NTR3S3ZoUnBCSlBmT3MwWS91WVQxOWhlcHNXaWc0V3RQZld2V0tMWjBWYk4zT3RFR0wxS3FwVEs2dkgxNzdxbVVpZjdsaTRvUStQSDQ4cWFyOTBmbjRtRC9kVCs2UHl5MlY4OFZxM2RLcVNMSkVOVWFDNmQ3bDZOU2p4TWNSRGdPZnZERjY0OFRtQ2JUWk5GOTVWaVdKQmFmQkJBNnZqSG5XN1pqMXRGMTB1b1hPaEhQeExqcjdNWFQyRnAyQ2RtZVcwZzB3VU5nS0lZNTJHQUtJTlBUN0RPMjBYUWI2QnpQQXZtczlSQ2pqVkdBQ3ptQzBTd2djT3M2N0l2VGd6SWtXMnhxSU44L1lYd3ZZZWdQZStPTHliSEkwOGdqek1RMERETGdSNXZCZXNSL3VrdE5YY3JnZ1F2by9rYk1YY2hGUndSZ0pNVXlpalBpY3Y2V0dzOVY2dGxKMURmd0JKMENQd3pmOExQUUQrbU1DQXVINy9pNEwvVCt3c0sxOTZFZ1lGK0R1MzUyRS9sRWtPV1JodVp5cnJFRHR2Ym51bldlSkpNOTNWcncwS3ArV05tdG1jeGt2dFZjcC9XQ2FTbVhXVzVvWWJwZU5YdnRVTlNXYys4SCsrZDF3ZkVjb3Yzcy9IZ3p2enQ4UHlCM0hYbGJBelFjNzc2WTRzSWNEc1R3NnZpUlg0OE5pOEtGTVJveDkrUHRGZkxEWW4zMjgvbWw1U0ZqK0svMm5UMzRsejBJMjhQUjc4UGMzOTNoUDNIUHVEN0lnM1hzL09ZR28rRGc4WGx4OTVQczNsMlU4dWE2UEgyYVhMZnp6QlZuTlZRWHhKUERPajQ0LzlHRHpycVBLeTVEd0RpTktlL3h0djRzbzdaTGRFWWd6NTBkbis1TnR0SFRlckVmaXJMSHdadnU3VEhCTkFwWFlBbHd2NHA0cUNyT0srMFg1MVh6c25RN0hsN3Y4M1BVUGR2c2g2SjN0ajc1bENXeGtrNXRxVmhZR21VY0k2VHNhWUFwR0pQeDZuZThOSjk4eW43ditiOWhIc1JzSVhsZFVUVGFINi9hWkNZS2pzWldGZEZyV000VW9DNzBna0NTU2JDVDNCcElQNVpES1lTZ1BJamtLcFdCU3dMT1FReUVwbC9zajl6REFNaHhLc2llSEI1THRTWDhvaFM4aktnZEVCcjQ4T0pCaUtQZUpwQU5KUmhKdk5vRlpOYTAreitWbThoWSt5K1d5dTk3ZzNkSk9iMi9OQ3JKazBGbzA5ZTB0bUlObWlZVlZ0N2NxcnBFTDNzaFo4aFdhLzRyMmtyYjlCbENxNnVZdWhuTy96SkptZHBjYWs4UncyUDRDdFk1TGl1NzhsenlpdGhwQnhqYUZPT3VLQy9mbHhwN3o0bU16WFJkYm9hRkNxd0NSS0tJbzhJMUJJcVFFbVlCR1VVeUlyMm5rQ3BnYTZzMDJhVHZSZW1IQitkT1hncUl3eTVNMGRVbDIyd0VaSUtTSEg4eVR5LzAyeVZyYjZsU2YyTS8yT2p6YXU3bGl4emVENjZ5c0J1Y2YrMzNBaDdvR2JneFgwL0NmRDZ0SmRaZ2RYbzczczlXSmYvaitWTGs1QUd0Qk9PUkxUc1hwdWlESlRGdUJaUFhaWm1pUTUrWFNnR0dOWFpndnNBYVNUK2ViVnZwUjhaZzFMOFh5OW9qTFZtMlo1MjJsOEIrbTNnRHptbnhEWXp2OWhtYnYwL3pUQ0p4bnJpL3BVeGlPSDhZWHE0b05YRjc5VjlNUGZRNjFHMnNEcElBVW9uVjJWbzhYZVpPZFFya0hidHQ0T2F2M2JLa1NEUnZnMWRHSmlSZlQ3VlFiL2luUXZ0WVVDdWhRbXdCS2NLZ05nc0M0YXBWQmxZQlRFM0dSY3FvZDAzOVZVUUx2MUphTHF1VmRBVzliRVA0TEdVSU0yWklRQUFBPSIsInNoclRva2VuIjoiZXlKaGJHY2lPaUpTVXpJMU5pSXNJblI1Y0NJNkluQnZjQ0o5LmV5SmhkQ0k2SW1WNVNqQmxXRUZwVDJsS1MxWXhVV2xNUTBwb1lrZGphVTlwU2xOVmVra3hUbWxKYzBsdVp6RmtRMGsyU1dreFRGTlVUbEpQVnpWUFZXcGthVlZ0T1cxbFJ6RnNWMjA1V1dOWFNrbFhhMlJzWkhsSmMwbHRkSEJhUTBrMlNXa3hURk5VVGxKUFZ6VlBWV3BrYVZWdE9XMWxSekZzVjIwNVdXTlhTa2xYYTJSc1pIbEtPUzVsZVVwb1pGZFJhVTlwU21sT1JGWnNUVVJyZDFsVE1XdFpWMHB0VEZSUmVFNUVWWFJaVkVFeVQwTXdkMDlIUlRSTmFteHBUWHBDYkU5SFVXbE1RMHB3WXpOTmFVOXBTbTlrU0ZKM1kzcHZka3d6VGpCamVUVXpZVmMxYTJJelpIcE1iVFZzWkVNNWFscEhUVEZaVjFac1dWTXdlRTVYVFRGTVZGSnJXV3BaZEZscVFUTlBVekZ0V1RKR2ExcEVTVEZOUkZacldYcEpka2xwZDJsaFYwWXdTV3B2ZUU1cVp6Rk5WRWw0VGtSak5FeERTblZaYlZscFQycEZNazlFVlhoTmFrVXdUbnBuYzBsdFZqUmpRMGsyVFZSWk5FNVVTWGRQUkVVelQwTjNhVmxYYkhaSmFtOXBVbFJLWVZveGJGRmFNMlIwVmxSQ2MwOUhTbEZVYlZwNVdtNWtlVkl3T1ZoT00yTnlUMVZLTTFGVU1HbE1RMHBvWTBoQ2NGcERTVFpKYlVWNldWUk5lbGw2U21oTVZFazFUMGRWZEU1RVJtdE5VekExVFZSTk0weFhSVEZPUkZsNVRXMVZNazlFUm1wWmVVbHpTVzFHZDJOSGJHdFpWMDU1U1dwdmFVMXBTWE5KYlU1MVdtbEpObVY1U25Ga01uTnBUMjV6YVdFelVqVkphbTlwVld4T1FrbHBkMmxpYVVrMlNXNWFZVlpxUmtKYVJsa3dXSHBDUzJKWVJYaE5NRFI2V2tWYVYxVklhRzFhVlhSd1pWZHNOV1ZZVm5sUFdHaElWak5TUlZJelZrOVpibWhyVTFaR1RXRnFTblpSYkhCdFRsZEtWMk5XV1hSU1Z6UTFaREJPZVdGRk9ESmhiVGxyVDBkcmVVMXViSGhsYmxwdlpXcG9hVlpxVVRGV1Iyc3hVVmhaTWxRd2MzUmxSR1J1V0RKMFVXRnRXa0pYUmtKR1ZEQTVZVTlFYUhKT2JXaHVVakZrY0ZGWWFGZE5WVXBVWldwWmVGZHNSa1ZTVnpGSFpGZG9jMlZ1UmtkVmVscEZVMGhLYjFnemNFOU9XR3hLVW0xNFNGRXhTa2hpYXpreVdrVnpkMDFWT0hkVmJYZDVWMGR3Y0dGdE1VOWxSRVpJVTFWMFIxTnNWbXhNVlVwV1dteENNVTVJVmtoVldHZzBWRVpXYkZrelpGaFNNRnBJV1cxRk5FNVdVazVrZWtwWFkydHdNRXhYWkd4V1V6RlpVVE5PUzFsc1FtOVpNVll4WTBaQ1RtUnJPVFZaYmxwMlRYcGpOVnB0Um05VFdGcG1UVlphVFZaVVZtMWpSMXBLVG10YWRsZElaRzFqVXpGVFdXdHNWVlJJUmxCUFdFMDBZbGM0TW1NelNsbFRWWFJ4VkVSVk1HTnVaSGhaV0VaeFRURndUbGRzU2pKVFNFcE9VbFJPVW1KdGFFUldSRlpMVWxjNVFtVkZkelZVTVVsNFpESmFRMUY2WkdwT00yeHBaREphVWxReVRubFdXRUpXVlZOSmMwbHRWV2xQYVVwQ1ZWVkdRMGxwZDJsWlYzaHVTV3B2YVZWc1RYbE9WRmxwVEVOS2NtRlhVV2xQYVVreldXdHNTV05ZYkhKWFIwVjRVMVZXVGxKclRtbE1WbEpQWVZSb1RsbHFhRXhYYlhSNVlYcEdXRTFVWXpCUk1VcHZZVEZTUWxGNlRUUkpiakU1VEVOS2NGcElRV2xQYVVwdlpFaFNkMk42YjNaTU0wNHdZM2sxTTJGWE5XdGlNMlI2VEcwMWJHUkRPV3BhUjAweFdWZFdiRmxUTUhoT1YwMHhURlJTYTFscVdYUlpha0V6VDFNeGJWa3lSbXRhUkVreFRVUldhMWw2U1haSmFYZHBZakpzYTBscWIybE5iVTB6VDFkT2FVNTZaM1JOTWs1cVdWTXdNRTB5Vm1sTVYwcHNXV3BKZEZscVFUVk9iVlpwVDFSSk1FNXRSVFJKYVhkcFkyMW5hVTlwU1hkTWEwWlRVMVZGTW1OVVpFZGxiVTVXVm01U2NrMXVaR3hhYm13d1RVZDRRMXBJWkc1aU1IQlpZMnhPWmsxdGRGZFJiVGxJV2pCc2VGRXlNVFpTUnpoM1ZUQkdRbEZUTkdsTVEwcDZaRmRKYVU5cFNYbFplbU0xV1RKSk0wOURNSHBaTWs1b1RGUlJlbHBYU1hSWmJWWnBUV2t4YVUxRWF6SmFWMGsxVFdwUk1sbFVaMmxNUTBvd1lWZFJhVTlwU21wYVIwMHhXVmRXYkZsVE1IaE9WMDB4VEZSU2ExbHFXWFJaYWtFelQxTXhiVmt5Um10YVJFa3hUVVJXYTFsNlNXbE1RMG94WkVkcmFVOXBTVFJOYlRCNlpWUlpNRnBVVFhkUk1sSjZaR3hvU1dJeVVqWlJhMFpDU1dsM2FXUnRWbmxKYW05cFRWTTBkMGx1TUM1clNIRjVlbnBvVFhsUVYweGtiREptY25kWGQyczNhVXcyVVZScGNtZEhjalp3TVZOSFdURTBTM2hwYlZkeVREQnNORGQ2VFd4MlMxcHJaVEZXUTJKcFZFZG9kakp3VWxsTFptUnhVVE5TYmxGSE1YcFZWamRKUVhwaVYyUkNjRTQxY0RKUGRUaDZUWHBOUkhkNUxYUTVaMmRRVWpkZlZqTkJWREEyUVVGdVJHZFBla1ppU0hKM1JIaGhibGRFUmpSemRETkhaVmRpWTJwcU56WnlTMHRUUzBnMGVrSnVZMHRXUVROM1NFazRlRlZTVWpaSlNXdGxVRFJ2ZWxSc1FtdE1SVVl5VFRkMFdDMUtYMHBDYmxKd1NYaHJSelptWms1MmVITXdUVUZQV1RsdFpWQXRhWFJxV2pCNVEzTTNNVTloY1hOaU1VZFpabVZ5YkRoNFQwSTFkRVpoU1dwaVRtRlVUR0pJU2w5M1gyaFdSbTVmZWxOaU9HcHBka2xYVWpWSGJGVkNNRTV1Wlc5UVpVRmxPSGN5U21wR1NqbEVaVEpvYldGNFVsTlRMVTFQWHkwd01GcFFNa1pHVW14elMwMHpYMkptV25jaUxDSjBjeUk2TVRZNE5URXlPVEkzT0N3aVlpSTZJbmt3WVZobVJHVlFSRnBqVVMxT2VITjZaRGw1YlhwRlJVdExYMWhsVFV0WU1uUXpYemhQTlZWWGRsRWlMQ0p1YjI1alpTSTZJbU5qWlRKaE5HUXhZVFkzT1RReU5URTVaRE0zT0RGbU16SXdaRFkwTlRRNElpd2lZMjVtSWpwN0ltcDNheUk2ZXlKcmFXUWlPaUpFWjA1NVZ6WklhMVJDTUhWck5tNU1VRUZ5VTE5MVVsOTVibVY2YW1oTlJWRXdlWGR0TFRGdFIwbzBJaXdpWlNJNklrRlJRVUlpTENKcmRIa2lPaUpTVTBFaUxDSnVJam9pZGxwV01VRmtWalJmTUVwdGNURXpUak5rUmxaUWVHWmxTMmw1YVhsNWRYSTVlRWRYZEVSSGRVNWllR1JKVVV4cU1tOUNXbVkxWWxaeFZpMUZiamwzUTNKb1R6WnFiMlE0YVRJeWVYRjZkbWg2T0dKV05EVlVhVFZCZGpaUFN5MTROMmRmYTFCcVprRllVRVZQVDFvNE9HczJhR2RIVjJsQmVGWXhRbE42TmpGYVVVUkZiVVoxYUd4NmNVWlROa1JJY21oZmVrNDFlVWxHYkVkRFVrZHVUM1prU3pBeFR6QlNiREpZYW1scWJVNTRNVWRKUzBaS1ZXVXRRbFZtVUhVMGRVZFJlSGhNVldWamQxZEhSa2RpWVRnMVZFMTNNbFp5U25RdFoyVlZMVmhEYzBwaVVHaGpWWFZ3VUUxMlQzbGlkbTh6TnpsbVlXaEpkbDh4Vmt4Vk5XWndaa2syUm05WWQyWnhMVkppU1ZSTWNVODVjemh0YnpaemNsaEpTMnBNTlRSeWQzRmhjV296V2sxYVVuWkljazFGTTFGdWFFTlVOVXBGYjBGNFREbFBVakYzWmtKRE4yTTNlV0ozWmxGUFkzSlZjRlZSSW4xOWZRLlA3OHphbF9CaWV2T2JxdWp4WFZVQXQxZjVwMUtJV1d6XzFYbkdodHpwWlZlUUw4c09rZVIyRDBwYldhUFRWR3JFN2lQZHlmc1VhcUNzUnZORmVoU0VfTEQwZUhidHJqNDBwSklhVU9mWGc3Y2tfQ0FhbGFnOGJDb1NseXdtc0FfWE1QX040MnFrTFBlSTdlWXN4TVhTOGl3cHBQOFQxT2RtSTVUTmxXaHlINDJ0ZVFWOUhOOGNiMTNzdndYei13X2hKUmZlUjJTeU5wYWJ5TXczTWJ3WlFKTlU2YzEtRWc2ZGdTeWZfeWlhU1JzV0FZS0NUS0FUTU9CU3pkUnpzLWxJdjFISVdjbUk5REV2Nm5JZEFIY01hdWZoYjRRYi15S0xMbEZCRWNiaDFUX0JEbENvamEwU2UwODJLblcwNVJmT29EclFBbkNHaWtYZFFFYnBPWVROdyJ9.\u0022,\u0022correlationId\u0022:\u0022f15b6ce4-b0cc-44e9-bf5c-e0fe789f82c7\u0022}", + "messageId": "dff02ef289484cc19a852a493fb81a51", + "partitionKey": null, + "sessionId": null, + "replyToSessionId": null, + "correlationId": null, + "subject": null, + "contentType": null, + "replyTo": null, + "applicationProperties": { + "Diagnostic-Id": "00-711ca188744421c4d0ba3550b48b5e16-d3510d08b8d1a415-00" }, "enqueuedTime": "0001-01-01T00:00:00+00:00" } diff --git a/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecordedEvents/CallAutomationClientAutomatedLiveTests/CreateCallAndRejectAsync.json b/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecordedEvents/CallAutomationClientAutomatedLiveTests/CreateCallAndRejectAsync.json index 4f660bd56725..640372cf223f 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecordedEvents/CallAutomationClientAutomatedLiveTests/CreateCallAndRejectAsync.json +++ b/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecordedEvents/CallAutomationClientAutomatedLiveTests/CreateCallAndRejectAsync.json @@ -1,8 +1,8 @@ { "entries": [ { - "body": "{\u0022to\u0022:{\u0022kind\u0022:\u0022communicationUser\u0022,\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022from\u0022:{\u0022kind\u0022:\u0022communicationUser\u0022,\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzd2UtMDIuY29udi5za3lwZS5jb20vY29udi9DV2F1NWJ4T19FaWE5NXpyZkNmMExnP2k9OCZlPTYzODE5Mjc2MjMyMzU0NzYzOQ==\u0022,\u0022callerDisplayName\u0022:\u0022\u0022,\u0022incomingCallContext\u0022:\u0022eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJjYyI6Ikg0c0lBQUFBQUFBQUNzMVliWFBiTmhMK0t4eDE1ajVjQXhFQUNiNWdSdE9SWkRWeDQ3ZlljcExMZUtvQkFaQmlUWkU4a0xLa3BQbnZYVkN5TFVlNTFIZTlkc3JNeUFTd2VKNEhTd0M3bTA4OUtZcmlyR3J6TkplaXphdXl4ei8xVWxNdDdOOWM5WGd2NGtJMm5DUktDSnJFS0dZNFJEN3pLVXFTd0VjaVRDaVZHSXRJK1RQY1BTUkNJcEFTNlRSS2tLZThHRVhhRTFoaHJFakllaTk2S20vcVFtek94RUlEUG5Ub1V0VlZYcmJIbGsvRUhoRU1vRDJsSmZMajFNN1hLY0tZYVNvQ3BtTVJ3SnhDbE5sU1pOck9LWmRGOGFKWEM5UG1NcS9GRGlqeUdORWhFMGdyRmlFZlk0MEVTU2tpekFzU2hhbFdrUWFnZWE2VWhtV25vbWowbzVicHByYnFHbTN1dEJuV05WaldwcXExYVRjamtXMDVQNy9vdGRVZmQxUUtyd2VPQ243WFVWc1FqTUV6QnovM3o3TWNsYWFhTVVKakZLZ2dSYjZQRXhTQjg1R0hrMFRHTEVpWjd4MDZ5dWltV2hyWjRmYWVzK3IvNE1FaUwyOGI2MFRSdGtMT0FXemV0blhEWFZmVWVUOHQ4bXpld3J6MXB0L2N3amZweTJwaFI5dzc2c3JhQmZjdG01VkdtUGFsM0xPUTByMGpibHFaVzYzY0lJZ0NuTklVUlRMdzdFNEFUeWVLSUQ4QjJTa2p2bVRDcGFHYkU5ZnpZM2NyNUlkOFlOMjMwQ29Yd3hJNERFaVRFblF0eEhZcEdiaWcrUnZvdlpleVUyejBMMXEyZndOZFd5RTdWVXRWVDQwb203b3lWaHMwUVJtamZVTDhQbUZ4bndRZTkvd3djbnVmZDA0ZlYyV3JTekQrMUpQYjE5MlpGSFZkN0c0cnQxSDJaQ1pGbGNEQTNRRGZtSnV5R2lDSFVOOFBzSU9kNHpQbitNS0hkdGpIOEk5WWcyYlFnTHRndW0zSXdjN0V4LzB3NmhNTVJyakRTUWJqS1lmMzdyRWQ3UUFRN2N0aUlKWXFyeHcvRGdsMUxxY1g3dkR0aFVPdzc4VHc2em1FRUlkRXdCNDVjUWc5MExLZEVjakEzK1lVQTlQS0dwa20vNmozMm1uQy8rbXMwUUprdzFGMndBTk9BNWNCVjgzY01WcmUyWmV0K1JvMWVWWUtPRlhadDJZOVluTzdDRy9ienFWR3k5U0lqSTgvVkQ4Kzl0VXJ4U2V2emwrT3lHYTYvbmNkbkN6MHBCRkRMYzJIMTNzcUY4djF0aVZGcVhJbFdzMWg1YzcxMFlWRGlZZERIUGdlZWJybW5RdmJEVWd6YWJGMmpGREtnTXY2bEVUd3ZYenFHTHRsdG5hSDZIUVBuY1hnNFVOMDc1bm8zcGZvRkxUYlpRblpBZ01GdkFDSGh3eUVQVTgvMkIweTBEK1pBYlpkNXlGQ1dVUmpEQUhZdVQ5MGthVmdEaHk2dUVNM0dtTE5EdjJwZ3IwdjRKeE9yeS9Qam84Y3drTEcvQkQ3MUEvOGdKQXcybTd0cCtUMGtUeUtnNEQrSVhMdmdUejBTVWhaRU1HcEpwN3ZoUUdOdnVTR0k5KzV0aFpOWTIrRGlBQS9EcDRLZ0NZbVh2Z3NCWXd5ekE1WjZGL0F3dlkyb2lWaEVlUkkrUDlPUXY4c2trSWt1dUFMa1plb3V6ZTN2WXRjY1hKL2FTVXJMWXFzTW5rN1gvQmtKWjFheUZ2ZDFpSTN6a29uY0wzczlKcE4zVlp3OEllVHE5bjRkRVpvTkh0MU9oelBybDROeVN6Q1RsN0MxYWY1ZkRWSm0zZHYvbFdVbDZlWHAyN0ZodFByWHdnYnRwY3NlQi9NOC9mVFZNeXoyM2UvMHA4OThpdTVGN0tEcDc4SHY4eE9GN2NmV1o0Y1picDVqNzkvKzVPN21GKzNtK3B1OVhMdGpkNk1HdktoVGFqdTRPOXZ5SG9oYW9nbnZuTjFmUExhSmNFdXFqd014YzdMa0ZJMytyTGZScFJ1eXVFSXhKbXI0OHZKMlQ1YXVtaTNJMG5lR3ZpeWcwTW11Q2VCS3Q0RDNFNktIRkdXZXAwTXl1cUpQWFl1eHFmWGgveVI3UjhlOWtQUXU1d2NmVzBsc0pGMW9ldDVWV3FrN3lDbUgyZ0FFNHhJOEhTZTU0elB2cmI4eVBaL1pYMFUyd0gvY1ViZDVndTRiKytaSURwcVV4dElwWGt6RndqdUVyaFRlRFRtb3lNK0d2Snd5TW1RajBjOGh2Y0p4d0gzTVBlcE5SakhQQjd4WU1oajJEUWpIaEpPb1RuaEllTUIySTg0OWptRFRvK1BZajVrL0Nqa2t5TSszcDBFdlc0N2ZZN056ZmdOUEt2VnFyL2Q0UDNLWkRjM2VnMFpNbWd0MitibUJwYUQ1c3JBckpzYmtUVElSbTlrVi9JRXpYdEVlMGpjdmdHVWlxYWRKWER1VjdscTU3TlVhNVhBWWZzTzZoeWJFODI4aDBTaU1SSkJ6cFpCb0xXRmhmMnhZL2RaOFluT3V1UmZ4WWt2V0V4UnlCU0RaREJTS0thaFJKRDMrMFNsSVltOTFCWXZEZFNhWGRaMkx1WFNnUE96aDJLaTFLdHpLRVBNcmdOU1FFZ1FYK3VOVGY1MnVWclg2cFZ2enNac2VxV2x1SFhqYTNFWkw4L1AzdzRIQThDSG1nWnVER3N6cWN2cDNZZFhSeGZ6K1dhOEdJL3h5ZmR0QmpZQWEwQTRKRXhXeGNXMkdNbDFWMzNremVWdWFGZ1UxVXJEd2xxejFKOWhEbVNmMWplZDlPUHlMbThmQ3VYOUVadXVtcW9vdWpyaHYwcTlBZVF4K1liR2Z2b05UWGY4VGl4WnNqNmZUWElSczQ4bUhhZjRKSU84T3ZxSEhnUWV4QndLRWRDakhzVGp3SXZCRlhsenVpemEvQUlLUFhEYXpzZDVNektWVUJJKy82T2JsVTZXMlg2bURmOGRzSzB1QmZhOXhGY29FRUxEUjJVTVJZSW9sT0JVS3NqNlV4VkZ0Z3o2WDJwSjRNMU10YXc3M2pYd2RxWGdid1pwN0tXTUVBQUEiLCJzaHJUb2tlbiI6ImV5SmhiR2NpT2lKU1V6STFOaUlzSW5SNWNDSTZJbkJ2Y0NKOS5leUpoZENJNkltVjVTakJsV0VGcFQybEtTMVl4VVdsTVEwcG9Za2RqYVU5cFNsTlZla2t4VG1sSmMwbHVaekZrUTBrMlNXa3hURk5VVGxKUFZ6VlBWV3BrYVZWdE9XMWxSekZzVjIwNVdXTlhTa2xYYTJSc1pIbEpjMGx0ZEhCYVEwazJTV2t4VEZOVVRsSlBWelZQVldwa2FWVnRPVzFsUnpGc1YyMDVXV05YU2tsWGEyUnNaSGxLT1M1bGVVcG9aRmRSYVU5cFNtbE9SRlpzVFVScmQxbFRNV3RaVjBwdFRGUlJlRTVFVlhSWlZFRXlUME13ZDA5SFJUUk5hbXhwVFhwQ2JFOUhVV2xNUTBwd1l6Tk5hVTlwU205a1NGSjNZM3B2ZGt3elRqQmplVFV6WVZjMWEySXpaSHBNYlRWc1pFTTVhbHBIVFRGWlYxWnNXVk13ZUU1WFRURk1WRkpyV1dwWmRGbHFRVE5QVXpGdFdUSkdhMXBFU1RGTlJGWnJXWHBKZGtscGQybGhWMFl3U1dwdmVFNXFaM3BPZWxGNVRVUnJNa3hEU25WWmJWbHBUMnBGTWs5RVRUTk9SRWwzVDFSWmMwbHRWalJqUTBrMlRWUlpORTE2WjNsUFJHTTFUbWwzYVZsWGJIWkphbTlwVWxSS1lWb3hiRTloYlRGclVqSkplazF1VW5OVVdIQllUVVUxZEU1NlZuTmpiWFJ3WTBWS00xRlVNR2xNUTBwb1kwaENjRnBEU1RaSmJVVjZXVlJOZWxsNlNtaE1WRWsxVDBkVmRFNUVSbXROVXpBMVRWUk5NMHhYUlRGT1JGbDVUVzFWTWs5RVJtcFplVWx6U1cxR2QyTkhiR3RaVjA1NVNXcHZhVTFwU1hOSmJVNTFXbWxKTm1WNVNuRmtNbk5wVDI1emFXRXpValZKYW05cFZXeE9Ra2xwZDJsaWFVazJTV3BLVms1c1drWlVhM0JYWVdzd2QyUjZSa3BpU0U1NFlURk9UMVpWT1hGUmFrRXhUbnBPVWxJeWNGaFNiVzkzWTFkbmVXRlhUbmxhUkUxNFpESTViVk5WYUVOVU1rNTVVbXhKTlZGc1RtbFVWMUoyVW14Q2FtRnJPVWRXYW14bVVucGFXR05WV2xaWlZVNUxWbTAxTTFONlduWk5hM0JIV1RCT1RHRnRaRWxTYWtwTVZGaFZlRm96VGxOU01taHZVbGQzZVZVeVZsWlRSemxhV2pCYVRGUklWblZhV0doYVdteG9WRTR3Y0ZWU2VsWndZa1JLVmsxRlZrMVRXRXBtVkZST1IxcFhTWGhTYW1od1dsVTFiMUZyV1RKU1JsSnFaRmRPZFdONlFtWmtWR1J4V1cwMGRGcEhTbWhSYTNod1YwUmFhRTR6YUV0TmFteDZURlpWTW1Fd2NHaE9WamxXVlRGS00wOVlVakJUTUVwUVpEQjBTRTFYZUROak1qVlVaREZHTWxaWFVuZE9WMUpFVmpCc1RXUkdiR1pSTVhCMVlqRndXRk50T1c5bFZYUjZUa1pXV1dWdGJISlBSbHBJVlRCb1JHVlZTbE5oTVRsTldqRldVV1ZJUW5SaGJFSTBVbFpGTkdNelFrcGpTRmt3VlZkT2NsSkVVbXhqVmpsV1dYcGFkVXhZUmxKTmJtc3lZakZPZDFsV2NESlpWbHBZVm1wa1VHVlhTbEJrUkdoYVVqQk9SV1ZHUm14bFZUVkRZVVJhZDJOdWFFcFNWVGt4VFZVNVJWUlZkRWhUUjFaMFZWTkpjMGx0VldsUGFVcENWVlZHUTBscGQybFpWM2h1U1dwdmFWVnNUWGxPVkZscFRFTktjbUZYVVdsUGFVazBWbXN4VUZFeVZuRlZNR2cyV1hwWk5GZHFiRTFNVmxKbVYwWk9UVkl4Y0haWFZVWkVVMVpvVkZFeFVsTllNMmhtWkd4U1MySlZNWFpKYmpFNVRFTktjRnBJUVdsUGFVcHZaRWhTZDJONmIzWk1NMDR3WTNrMU0yRlhOV3RpTTJSNlRHMDFiR1JET1dwYVIwMHhXVmRXYkZsVE1IaE9WMDB4VEZSU2ExbHFXWFJaYWtFelQxTXhiVmt5Um10YVJFa3hUVVJXYTFsNlNYWkphWGRwWWpKc2EwbHFiMmxOYlUwelQxZE9hVTU2WjNSTk1rNXFXVk13TUUweVZtbE1WMHBzV1dwSmRGbHFRVFZPYlZacFQxUkpNRTV0UlRSSmFYZHBZMjFuYVU5cFNYZE1hMFpUVTFWRk1tTlVaRWRsYlU1V1ZtNVNjazF1Wkd4YWJtd3dUVWQ0UTFwSVpHNWlNSEJaWTJ4T1prMXRkRmRSYlRsSVdqQnNlRkV5TVRaU1J6aDNWVEJHUWxGVE5HbE1RMHA2WkZkSmFVOXBTWGxaZW1NMVdUSkpNMDlETUhwWk1rNW9URlJSZWxwWFNYUlpiVlpwVFdreGFVMUVhekphVjBrMVRXcFJNbGxVWjJsTVEwb3dZVmRSYVU5cFNtcGFSMDB4V1ZkV2JGbFRNSGhPVjAweFRGUlNhMWxxV1hSWmFrRXpUMU14YlZreVJtdGFSRWt4VFVSV2ExbDZTV2xNUTBveFpFZHJhVTlwU2t4VGJWSXhUMGRXVG1Sc2IzZGhWRkowVTJ4bk0yTXhTazlWVlVaQ1NXbDNhV1J0Vm5sSmFtOXBUVk0wZDBsdU1DNXdPVmgwUTAxRmRYSldiVkl0Y205VVQzSnRUblUyYUhGb2JVZHpjbUV5Y0RGd2VFVTNTbEJxV0ZNemIyaEJXRXMxZUdwek9UWk9jbVExU0ZGTGFISkVSRWhPYjBwdU1XSk1lSEZ4UTBsd1ZYVkxWVVZ1YTFWWFpIQnpOMFpYWjA5RU1VVlpOVlZ2TTBKeGJUUktSMHBJUTJ4bkxYRlRkbmRsZEdwdlozVjNZVWMwY1hOTmN6Z3dRM05zY3pkSlVXdDJhek4zYmpCVFZWaFVabDh3TUhWb1pFRlVhbnBxZWxGWWNEbFhUbU5hV0hBNWFXMTRRVjlCWjFaalJIRTBjM052YTJSMlRXOWFjMU5JTFVjNGQxWnhNMGhhVGpGWlVrWnJkelF4YkdscFZVWkdTWGgzUjBOeU4yeGlWVTFXV1V0dVRtUTROMkY2Ymt0NVEzTllhVkYyWXpKSVpEbFphR0Y2T1VNM1VHOVJUR1ZUVmtnNFREQlVOalpvV2pjMFFqTlhaM3BsZURFeGJGQkNVR3Q1TmpOME5GTjBURTFzYlhVNWVYSktZVzFVTmxaZlZqUm5hVXRQZDE5TldUSXlSbGh6T1ZOWGVuY2lMQ0owY3lJNk1UWTRNemMwTXpJMk5pd2lZaUk2SWxGR1lqQkhUVVpUVmpCR2RXc3phVnB5UjJNd1prTldORlY2VGpOVFptSTNaVUpFWDBZdE5qZEZiVUVpTENKdWIyNWpaU0k2SWpZMU1ERm1ZakExTnpjM1pUUTVaalE1WkRreVlUUXhZV0ZoWTJJM09EY3pJaXdpWTI1bUlqcDdJbXAzYXlJNmV5SnJhV1FpT2lKZlNHTXRWbHAxV0VOVFNIUlNWVTFWZUdkSWJrUlRWVGRTWW1wbU5WaHhhbkJ5UkRBMlFVMWxRemRSSWl3aVpTSTZJa0ZSUVVJaUxDSnJkSGtpT2lKU1UwRWlMQ0p1SWpvaU1sVTJWa1ZPU2xacVRUQjNNVWxzYzNGclUwNVZUMnBDTURVM00xRkhhbGRHYWpCeGFESnBZM0prTXpGM2IyWkpTRUpQWTNKR1VqbENVMkpOWkc5R1VHTnFUMFpXT1Y5SE5sZHhSbFZoUTBwV2JuZExObTh5U2taalEwdHFaMGhHTWt0TmRURm5jMUpIYUdoRmJESlRaVlZJYjFsblJrdE1kVzVsZUZsbVdGTTNTbFJITldsc01sVXdSVXhKY2w5Tk0wWmxZakZHT0dsbFRtaENSalpFVkdOMVkyNXpNRjkxTjJwaWJpMWtZbUZDVEdsWU5tRTNlRW95T1hNdFZUWnJTbUUxWDFWVFVuYzVkSFJMUWs5M1MwY3hiSGR6YmxOM1VYWlZaSEExWkVOWFNVeDBXVjlEV201dldsZEtiMmg1UzNNMFZWaDZhV3M0VmtkVFNFTjVRbEpyWDB4blZWQjRjRzFxVUhoRlVUaHpjRWx3ZGpSUlkydEVOR1Z4WDFWak5tNHRjVkV5ZVRadlUzQmhXblpoVmxkV04wOTVZazkwT0ZsSFEwUjRVV1Y1VGtKb05uQnllRWxGVDNVeFQwUk5TMGRJWlcxUkluMTlmUS5lRXlnSmV2NUFGa1RUQVZQSG9HOHkzeWFpRUdEa3J4QndScE1wNEdTNG5RelhVSUFIdzNGQ1AtRkZ2LVd5eUlldGZDcHRiQ1paSWQwZUtkZmUzVHBwM3lPMndYc2dLR3ZrX3djYXBaYXdNR1ZaRDViN20tVzIxNE42emNtYjhQRlMzLTlkVHA2MzFZbHlyeWlPZkhmcjdTRGw3eElTNlpEZTlYeEk1dFIyTm9tQWhjSmVGOHBWX3p2eGtKaUY0QWs4dWdYVURrbDg2UEt1N29ZeFFnT2xoOEEwelFIdUxJb1RXejNXeDJsbjNRdXM5V1RLVWZBWEJJanlFdzNQdDZjcEgtTVZjYUZuLTNVQ2ZIQzJGZ015cmw2ZU44N2RwSWE0MFpBeEdobXlCZTB3eXFTMnRLamx1RG1ENW5uWGJJdHl6WVhONlJScFBkQkp4Q0ktV2JZZlEifQ.\u0022,\u0022correlationId\u0022:\u00220a043b4d-6aae-4b55-8a1d-b0fcd8bdfd88\u0022}", - "messageId": "a1407e64da7642e1934b1d3c7281488e", + "body": "{\u0022to\u0022:{\u0022kind\u0022:\u0022communicationUser\u0022,\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022from\u0022:{\u0022kind\u0022:\u0022communicationUser\u0022,\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC94LWNvbnYtZXVuby0wMS5jb252LnNreXBlLmNvbS9jb252L2RKQndqcWMyRkVxSlBxWEZBVGxoTWc/aT0yJmU9NjM4MjA2NTU3OTUyMzYxMDc1\u0022,\u0022callerDisplayName\u0022:\u0022\u0022,\u0022incomingCallContext\u0022:\u0022eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJjYyI6Ikg0c0lBQUFBQUFBQUNzMVlhMi9iT0JiOUs0SVgyQTg3cFVWU0w1S0FzVkRzcEhVenlYanltR21BWUFPS29tUk5aRW1oNU5oSnAvOTlMMlVuY2VQT3RMczdzeGdWY01USFBlZndpdVM5dHg4SFNwYmxhZDBWV2FGa1Y5VFZRSHdjWktaZTJMOUZPaEFESnFScUJVbFNLV25DRVE5d2hQekFweWhKUWgvSktLRlVZU3haNnQvZy9pRU1aVHlVaU9BZ1F0cFRFUXE0SjNHS3NlSXFHcndacEVYYmxQTGhWQzQwNEVPSHJ0S21McXB1YXZtaTBHY1pEM3pFQ2RmSTE5aEhqRVlwb2xobkhETWU0Y2dEbTFKVytWTG0ydHBVeTdKOE0yaWs2UXBWTkhJTFJHWEd0WXd3QW9zTStkSVBrV1IrZ0VoQ0VvOEZTbk9kQWRDOFNGTU55ODVrMmVvWExSY1BqVlhYYW5PdlRkdzBNTE14ZGFOTjkzQWc4dzNucHplRHJ2NGpITVdUUFVleHJ6cHFBNEl4K3NMUDAvTk5qZ3BTamJOQUVVUWlHaUtmQmg1aWtZNlFseEJGRktXSkgvRjlSeG5kMWt1amV0ekJ0Nno2Tnp4WUZ0VnRhNTBvdTA2cU9ZRE51NjVwaGV2S3BoaG1aWkhQTzdCYlB3emJXL2dtUTFVdjdJaDdUMTNWdUd1a0ZOTExxa2FZREpYYW1hT1VlMC9jckRhM09uWFRVSWN5eVNnS2toVDJncDlraUhtU28weG5qSE5OVXo5TlhCcTVCWEU5bjdzYktmOHNSdGFCQzUwV01xN2FsVFlnVGlsUXRwQ2J4ZVRnaFBZdm9maEp6RmF6MGI5bzFmMGxsRzJrYkhVdDArYkN5S3B0YW1QVlFSTzBFVzhZK1VNU2VrT0tQZUg1RVhNSG43WitIOWRWcHl1WSszR2dOcS9iZ3ltYnB0eGVXVzZiMnVPWmxIVUNBL2NqZkcydXEzcUVITmpKMk1ITzlOU1p6bnlIMEdpSTRSK3h3KzJvQlcrQnNXMm8wZE9Va0ExRE9xU0VEQW4zN0ZBeUdsOElzajFOdHFNYkFhUjlXWXprTWkxcUovQUlvYzdaeGN5TmY1bzVCUHNPaDEvUElZUTRoQUU5YzNnRVBkQ3luUXgwNEsrUXlwSHBWSU5NV3p6cW5YYVdpSDg0YTdRQTRYQ2VIZkNBMDhLTklOSjI3aGl0N3UzTFp2b2F0VVZlU1RoYStlOVp2V0FMdTRvdGQ2RTBXbVpHNXVLZ2piOTc2V3RXcVpnY3o4ZEhyU3JWM2RYZDQ0ZXAzOVMzN2ZReHBqc3FGOHYxcHFWa2xSYXA3TFNBcFR1WGs1bERpWWNqSFBvZWViWG9yUk83QjlCbXNuTHRHSm1tQnB3R0V4aDhzc0F4ZHNkc3B1MmoweDMwZ0ZzWDc2TjczNGJ1dlVhbm9OMHVTNm9PR0Noc2hSQkhld3crSjhFMzZPK243VFBRUDVrQjlsM3ZJVUlEUmprbVVlQUVkRWdJSERyR2hqeDA0TXp4SHR0b2lEZFAySjhMMlBrQ3pzbkY1ZG5wZE9MNEpDUXNDa0Z6U0RFTmNlRGpmVzc2d3MxNEdOTC9pZHQ3NWdaQUgzc2gwQVlZVTI2ZjhEVTVISzdldFkxc1d6RHdHUUVCT0h5bEFLTFZkbnQ4VllMUFBTL2FaNkgvQjVaZ1p5TmFrb0J4aitBL25JVCtXU1NsVEhRcEZyS29VSDl4Ym5vWFJTckkwNldWckxRczg5b1UzWHdoa3BWeUdxbHVkZGZJd2pncm5jRDFzdFZySHBxdWhvTWZINTdmakU5dUNHVTM3MDdpOGMzNXU1amNNT3dVRlZ4OVduejM4SE41OUY1bjUzUkIydnRJUFo0ZllSNi8rekRuNjJ3Y3ovMUgvdTdIc3piSmY2WC84c2l2NUVuSUZwNStEZjVLVS9tMkxPNFc3OTltdk1TMGh0Z1lkUGoyREZEanRBdkxLUHJ3OXFTYzlmQlBOMlN6a0EwRUZOODVuMzUvN0pKd0cxYWVoN2p6TnFMVVphLzdiVWpwVGZaSElOQ2NUODhPVDNmUnNrVzNHVW1LenNDWEhlMHp3VDBKVkh3SGNHUEVIRmxWZXAyTXF2cXorZGlaalU4dTkvbVo3WS8zK3lIcW5SMU92clFTMk1pNjFNMjhyalRTOXhEVDl6VEFGSXhJK0xtZDU0eFB2N1I4WnZ1L3NENks3WUQvWXRGMHhRTHUyeWNtaUk3YU5BYnlhZEhPSmFKQjZQaStJSkVJSnVJZ0Ztd3N4bFNNUTNFVWlVa29lQ0E0dkhNeDVvSXljVGl4THpFVzRWaVFBekUrRXNHQjhNYUNleUtpSWliQzk4VFJrZUJqY1VnRWpRV1pDTHpkQkhyZDlmb2NtNXlKYTNoV3E5VndzOEdIdGNtdnIvVWEwbVRRV25YdDlUVXNCODFUQTFiWDF6SnBrWTNleUs3a016VHZCZTA1Yi9zZG9FeTIzVTBDNTM1VnBOMzhKdE02VGVDdy9RMktIWnNWM1hqUGlVUnJGSUtVTFlkQWE2c0wrMlBIbmhMajczWGVWd0NLRVMwMUpKQ1o4aVZraGI2SHVJTDhrSkpFcFRqVllSUWt0b0pwb2VEc3M3WWZsRm9hY0g3K1hGRlVldlZEbHRrc3UrK0FGQkR5dzJQOVlKTy9iYmJXdHdaWHl6eHJmejdtSmp1K3ZHK3VGdDNrclVkK0hJMEFId29idURGZ3pqUTM2eUkwcDY0dW1xdko3SkpmMWJQekdPWUFyQUhoa0RCWkZiTk5SVkxvdmdRcDJyUHRVRnlXOVVyRHdqcXoxSi9BQnJKUDY1dGUrclM2TDdybmFubDN4S2FycGk3THZsVDREM052Z0huSnZxR3htMzlEMDAzZkg2eCt1VlAwNlBEdS9lenV3MUY4VWM1UGNraXM2ZC8xS1BRWXhXRVFSRHlnWGtod0ZJQXppdlprV1hiRkRPbzljTnZXeTBWN1lHcVpLdGdBTDQ1T2RiTE1kM050K0YrQlRaR1o0Z1FpTkh6M3pFK2dHdmRTSkNHTUk2WWxZNFFGSkF2N3d1Ni9LU21CTnpmMXN1bDUxOERiVjRUL0J0L0hUcEtURUFBQSIsInNoclRva2VuIjoiZXlKaGJHY2lPaUpTVXpJMU5pSXNJblI1Y0NJNkluQnZjQ0o5LmV5SmhkQ0k2SW1WNVNqQmxXRUZwVDJsS1MxWXhVV2xNUTBwb1lrZGphVTlwU2xOVmVra3hUbWxKYzBsdVp6RmtRMGsyU1dreFRGTlVUbEpQVnpWUFZXcGthVlZ0T1cxbFJ6RnNWMjA1V1dOWFNrbFhhMlJzWkhsSmMwbHRkSEJhUTBrMlNXa3hURk5VVGxKUFZ6VlBWV3BrYVZWdE9XMWxSekZzVjIwNVdXTlhTa2xYYTJSc1pIbEtPUzVsZVVwb1pGZFJhVTlwU21sT1JGWnNUVVJyZDFsVE1XdFpWMHB0VEZSUmVFNUVWWFJaVkVFeVQwTXdkMDlIUlRSTmFteHBUWHBDYkU5SFVXbE1RMHB3WXpOTmFVOXBTbTlrU0ZKM1kzcHZka3d6VGpCamVUVXpZVmMxYTJJelpIcE1iVFZzWkVNNWFscEhUVEZaVjFac1dWTXdlRTVYVFRGTVZGSnJXV3BaZEZscVFUTlBVekZ0V1RKR2ExcEVTVEZOUkZacldYcEpka2xwZDJsaFYwWXdTV3B2ZUU1cVp6Rk5WRVV5VGxSUmVFeERTblZaYlZscFQycEZNazlFVlhoTlZGa3hUa1JGYzBsdFZqUmpRMGsyVFZSWk5FNVVTWGROZWtrd1RWTjNhVmxYYkhaSmFtOXBVbFJLWVZveGJFZFNSMVl3V21wT01tRnBkR2xXUlhob1pXNWFlRXd6Ykd0aGJYQnlUREJLTTFGVU1HbE1RMHBvWTBoQ2NGcERTVFpKYlVWNldWUk5lbGw2U21oTVZFazFUMGRWZEU1RVJtdE5VekExVFZSTk0weFhSVEZPUkZsNVRXMVZNazlFUm1wWmVVbHpTVzFHZDJOSGJHdFpWMDU1U1dwdmFVMXBTWE5KYlU1MVdtbEpObVY1U25Ga01uTnBUMjV6YVdFelVqVkphbTlwVld4T1FrbHBkMmxpYVVrMlNXNXdOazlWUms1aFJWWk5Za1ZGTUZSRVVuWk5SbkJQVGxaQ2RrMVhNVXRNVlRsMFpGVktSbVF5TldGV1ZFNTZWakF4ZGxReGFEUlVVekZFWWtkdk1sWkZkR1poTVdNd1ZXMXdNV1JyUmpaUmJYUktZVzVXTTJSR1ZUSmFTRUV4VWtWVk1tUXpWa1JaYkZFd1dqTk9iV0o2YUd4T01IaFpWbTFzVkZGWGNITmlhMDVXVmxoR1dHRnJiekpYVmtaaFVqSmtVMVJETVhsYVZuQkdVbXBDVm1SSFpGVk5NMDV0WXpCYU5sTnVjRnBpUlZKS1pWaE5kRnBGY0UxaFZVNVNZa1ZHZGxadVRuUmtia1pJWTNwYVFsbHVValJSYW14cFQxVmtkbVZXU2tWWlZWWlJXakJvY21KcVNucE5WMnh2WkRCT2RXRklRa3hrUkVadlZqQTFOV0pyY0VWa2JUa3paRWhTWmsxNmFHMWphMW95VkZoc2VWWklWa2hoVkd4U1ZVUkdWR0pGYkUxVVYxWlBVMGMxVUZSWE9VTmtlazVIV1ZSS1VGTXlVa3hOYlU1d1RUSjBiVk5JVVhsVWJFcFNVVE5rTVZkVlVYbGxhbHBPVGxaT1pscHRNVWRXUldoUlUwWTROVk50WnpGa1JsWkZWRVYwTlZWRVFrTmtWbXhxWkd0T2NWUlhWVEJWYmxwbVVqTmFlbU5XVm5GaFZteHdaR3RzYkZSWFpETmhWWE0xV2tWdk5GTldRbkZpYldoV1VYcFNNVk16WjNkYWFrSlZXVmMxVEZGV09UQlZNbkEyVlZOSmMwbHRWV2xQYVVwQ1ZWVkdRMGxwZDJsWlYzaHVTV3B2YVZWc1RYbE9WRmxwVEVOS2NtRlhVV2xQYVVwaFVsaHdUVkZWTlVoYWJUQXpVWHBrVUZWR2JFbE1XRXBWV1ROU1ZWRXlOVzFZTTNCSFRGaHNZV1F3Ums5WFdIQm1ZekJhUjJORVpIWkpiakU1VEVOS2NGcElRV2xQYVVwdlpFaFNkMk42YjNaTU0wNHdZM2sxTTJGWE5XdGlNMlI2VEcwMWJHUkRPV3BhUjAweFdWZFdiRmxUTUhoT1YwMHhURlJTYTFscVdYUlpha0V6VDFNeGJWa3lSbXRhUkVreFRVUldhMWw2U1haSmFYZHBZakpzYTBscWIybE5iVTB6VDFkT2FVNTZaM1JOTWs1cVdWTXdNRTB5Vm1sTVYwcHNXV3BKZEZscVFUVk9iVlpwVDFSSk1FNXRSVFJKYVhkcFkyMW5hVTlwU1hkTWEwWlRVMVZGTW1OVVpFZGxiVTVXVm01U2NrMXVaR3hhYm13d1RVZDRRMXBJWkc1aU1IQlpZMnhPWmsxdGRGZFJiVGxJV2pCc2VGRXlNVFpTUnpoM1ZUQkdRbEZUTkdsTVEwcDZaRmRKYVU5cFNYbFplbU0xV1RKSk0wOURNSHBaTWs1b1RGUlJlbHBYU1hSWmJWWnBUV2t4YVUxRWF6SmFWMGsxVFdwUk1sbFVaMmxNUTBvd1lWZFJhVTlwU21wYVIwMHhXVmRXYkZsVE1IaE9WMDB4VEZSU2ExbHFXWFJaYWtFelQxTXhiVmt5Um10YVJFa3hUVVJXYTFsNlNXbE1RMG94WkVkcmFVOXBTbkZPUlZwc1lsUkdiVm96YUVaaVYyUjJWVmR3V1ZVelNsRmhhMFpDU1dsM2FXUnRWbmxKYW05cFRWTTBkMGx1TUM1U1VEVlJOVmhyU214TmVEazNPR2R6YW1VNFgyMVJlbTExWlRCM2NHMUdaa1JJTW1GeVdtMUdOelppWHpaUWNYbzBUVUl6YVdkaGQyaEpTVTVMYUdkNUxUUlVVMWxEVW1wcFEwNVZUMmRMZUc1NFVXTjZZbVpmUm5wR2NXa3pNVTFaUlRGdVVHNDBPWFYyZW5SaWEyZG5NelY0Y0RodVRHWjRSakE0TURKWFRYUXlibnBXTm5GaFZYWm1iRTFJUTNnM1IxUlhWVTg1ZFZad1IxcG1iVk5zU1V4Nk5tUjJaME5DVkRJNGQweDVaRnA0Ym5OWVUwSnFkMGw0YTNWQmRtUldORU0xYWxSQ2VDMW5abTluZDJOS00wUnpRbDlZYmpaUmFWZGllbUZQTURsclprNXFlRGh1YkdOa1NYVm1lV3BNZFdFd2JXbG1jWEJrYTA1R1NsTlZPRXh1TVRKelEwSkNSSGhxUWs1cmF6VkNTWEZZUmtoNVdtTmFWVlZIYlUxMlMyMDFjemhpWVhkVldVdGhWVXROY0dSeldWTnNOMFZmYUhKS2RISm9hek5TZUZoeGFGOHlUMnhQUld0clFrUkxTamh3ZGxFaUxDSjBjeUk2TVRZNE5URXlPVEk1Tml3aVlpSTZJbVJFWlcxS2JuWlpXRWhEV25SNWNtNHhZWGxWT1hFelQxUkdabGMxWDFWRlMzQmpRM2N0YVdkVGJ6Z2lMQ0p1YjI1alpTSTZJamxoT1dFNVlXVTBNemN3TURRNFl6RmlObUV5TVdObU1XRmpNREF3WmpVeUlpd2lZMjVtSWpwN0ltcDNheUk2ZXlKcmFXUWlPaUpaWmpCaFpXbDNlRU5wTVROaU5EUjNaMW8zUTFGUlVUTkxWVE5WY0hWSFIwTm5PVlJXZEVWSlZHRXdJaXdpWlNJNklrRlJRVUlpTENKcmRIa2lPaUpTVTBFaUxDSnVJam9pZW5vNVFVMW9SVXhzUVRSTU5HOHdXazQxVUc4eGJVb3RUMjExUWtWM2JscFZNM05YVFc5UFdIaE5MVU5zYWpaVVMxOXJWelJTYW5WMlFYcENhMGxxZFhkMFZUWmtjRFZFUlRaM2RVTmlWRFJuYzJadk9HVTNURmhXYVZOQmFteHVRMVZWY1ZkcVNqWlpVVnBIWjFKTUxYSmxXa1ZHTUZWMFoxUXpjMlp6Um5wS2VsbHNSRWw1Y3kxa1NreHBRMUZzUVc5V2MyMTJjVWR6TmtGaWRIaENPV0k1UjI5NVVrUmhSVkJuU0d0dU1uTXhhV2gzUTI1b2NFdDBNV2hYVG5sdVNrUjJiM2QwZEY4ek9HWnlSblpOZVhKVWRVZHBPVkZRTVZOc1NVeE5aVTVJYms5TmIwSjNNMFpoTWs5TFpFc3lZMmt6YTJaSWRESk9VbEZEZDNWWlJESjZOazAxVTE5bWJVWlVTRkJJWHpsS2FEVjBWVVJNUzNsUU1FSjFXV04yUTJwTlpUUlNkbDlIZG5OeFZXcHBXV2wyU1dWTlozZHBTemxrU2poSlVHcHVhRlZETkhWTGVEQm1NRlJoYmt0QlgzUlRhbnBSSW4xOWZRLlZ1NmpDSmRDY2ZJZ0VyblZ1eVhGSU13VnMtTFh0eWEwZ0Nzay1GUXVBT2xYS3NZR1RmcjVWV080UDUyQnl4T1E4elVDRVBsOWdYal9qaE9MQU5STDBCTE1hQlJKdDlhTzkxSWxkN0pEc2stRUlxbFRlNE9ILWphaDdhOHliTkxhc0V1amNsYzlGTUs4RDZVUE1ibFU2bFJNNjBtdFNQMzVJTTBzZnFFSzZVdDhFX1B4eldaRkpKeXl2X002LV8yZlBON09MX19zbDMwY0tWX00tTTRobHdBTWRmbElyRVlxdGFib2JlX1RnTmZKMldReDR4MFVEcmQ4b0JqSzFEeVdfUnl0Z2pmZFV4SXpFaFNWNV9CUWZmekZwZDhUbWtrNDhvTVFLY0oxeXRzSXhmdlQ0WTJlWHR1MThKdVBEWHl2N1p2dnFZcmhwVzU5alBrckhndGEtQSJ9.\u0022,\u0022correlationId\u0022:\u00220d0b3470-1f4b-4e3d-a289-8ea881851f64\u0022}", + "messageId": "efb5d493a34f4937b2c414cb1e591d97", "partitionKey": null, "sessionId": null, "replyToSessionId": null, @@ -11,7 +11,22 @@ "contentType": null, "replyTo": null, "applicationProperties": { - "Diagnostic-Id": "00-b48884c5a1b4659c08698a89959e4ddf-abb95a4b2217e57e-00" + "Diagnostic-Id": "00-b221ec77bff6bc691668b32bf7a88242-36cd64a71753bc25-00" + }, + "enqueuedTime": "0001-01-01T00:00:00+00:00" + }, + { + "body": "{\u0022to\u0022:{\u0022kind\u0022:\u0022communicationUser\u0022,\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022from\u0022:{\u0022kind\u0022:\u0022communicationUser\u0022,\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC94LWNvbnYtZXVuby0wMS5jb252LnNreXBlLmNvbS9jb252L2RKQndqcWMyRkVxSlBxWEZBVGxoTWc/aT0yJmU9NjM4MjA2NTU3OTUyMzYxMDc1\u0022,\u0022callerDisplayName\u0022:\u0022\u0022,\u0022incomingCallContext\u0022:\u0022eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJjYyI6Ikg0c0lBQUFBQUFBQUNzMVlhMi9iT0JiOUs0SVgyQTg3cFVWU0w1S0FzVkRzcEhVenlYanltR21BWUFPS29tUk5aRW1oNU5oSnAvOTlMMlVuY2VQT3RMczdzeGdWY01USFBlZndpdVM5dHg4SFNwYmxhZDBWV2FGa1Y5VFZRSHdjWktaZTJMOUZPaEFESnFScUJVbFNLV25DRVE5d2hQekFweWhKUWgvSktLRlVZU3haNnQvZy9pRU1aVHlVaU9BZ1F0cFRFUXE0SjNHS3NlSXFHcndacEVYYmxQTGhWQzQwNEVPSHJ0S21McXB1YXZtaTBHY1pEM3pFQ2RmSTE5aEhqRVlwb2xobkhETWU0Y2dEbTFKVytWTG0ydHBVeTdKOE0yaWs2UXBWTkhJTFJHWEd0WXd3QW9zTStkSVBrV1IrZ0VoQ0VvOEZTbk9kQWRDOFNGTU55ODVrMmVvWExSY1BqVlhYYW5PdlRkdzBNTE14ZGFOTjkzQWc4dzNucHplRHJ2NGpITVdUUFVleHJ6cHFBNEl4K3NMUDAvTk5qZ3BTamJOQUVVUWlHaUtmQmg1aWtZNlFseEJGRktXSkgvRjlSeG5kMWt1amV0ekJ0Nno2Tnp4WUZ0VnRhNTBvdTA2cU9ZRE51NjVwaGV2S3BoaG1aWkhQTzdCYlB3emJXL2dtUTFVdjdJaDdUMTNWdUd1a0ZOTExxa2FZREpYYW1hT1VlMC9jckRhM09uWFRVSWN5eVNnS2toVDJncDlraUhtU28weG5qSE5OVXo5TlhCcTVCWEU5bjdzYktmOHNSdGFCQzUwV01xN2FsVFlnVGlsUXRwQ2J4ZVRnaFBZdm9maEp6RmF6MGI5bzFmMGxsRzJrYkhVdDArYkN5S3B0YW1QVlFSTzBFVzhZK1VNU2VrT0tQZUg1RVhNSG43WitIOWRWcHl1WSszR2dOcS9iZ3ltYnB0eGVXVzZiMnVPWmxIVUNBL2NqZkcydXEzcUVITmpKMk1ITzlOU1p6bnlIMEdpSTRSK3h3KzJvQlcrQnNXMm8wZE9Va0ExRE9xU0VEQW4zN0ZBeUdsOElzajFOdHFNYkFhUjlXWXprTWkxcUovQUlvYzdaeGN5TmY1bzVCUHNPaDEvUElZUTRoQUU5YzNnRVBkQ3luUXgwNEsrUXlwSHBWSU5NV3p6cW5YYVdpSDg0YTdRQTRYQ2VIZkNBMDhLTklOSjI3aGl0N3UzTFp2b2F0VVZlU1RoYStlOVp2V0FMdTRvdGQ2RTBXbVpHNXVLZ2piOTc2V3RXcVpnY3o4ZEhyU3JWM2RYZDQ0ZXAzOVMzN2ZReHBqc3FGOHYxcHFWa2xSYXA3TFNBcFR1WGs1bERpWWNqSFBvZWViWG9yUk83QjlCbXNuTHRHSm1tQnB3R0V4aDhzc0F4ZHNkc3B1MmoweDMwZ0ZzWDc2TjczNGJ1dlVhbm9OMHVTNm9PR0Noc2hSQkhld3crSjhFMzZPK243VFBRUDVrQjlsM3ZJVUlEUmprbVVlQUVkRWdJSERyR2hqeDA0TXp4SHR0b2lEZFAySjhMMlBrQ3pzbkY1ZG5wZE9MNEpDUXNDa0Z6U0RFTmNlRGpmVzc2d3MxNEdOTC9pZHQ3NWdaQUgzc2gwQVlZVTI2ZjhEVTVISzdldFkxc1d6RHdHUUVCT0h5bEFLTFZkbnQ4VllMUFBTL2FaNkgvQjVaZ1p5TmFrb0J4aitBL25JVCtXU1NsVEhRcEZyS29VSDl4Ym5vWFJTckkwNldWckxRczg5b1UzWHdoa3BWeUdxbHVkZGZJd2pncm5jRDFzdFZySHBxdWhvTWZINTdmakU5dUNHVTM3MDdpOGMzNXU1amNNT3dVRlZ4OVduejM4SE41OUY1bjUzUkIydnRJUFo0ZllSNi8rekRuNjJ3Y3ovMUgvdTdIc3piSmY2WC84c2l2NUVuSUZwNStEZjVLVS9tMkxPNFc3OTltdk1TMGh0Z1lkUGoyREZEanRBdkxLUHJ3OXFTYzlmQlBOMlN6a0EwRUZOODVuMzUvN0pKd0cxYWVoN2p6TnFMVVphLzdiVWpwVGZaSElOQ2NUODhPVDNmUnNrVzNHVW1LenNDWEhlMHp3VDBKVkh3SGNHUEVIRmxWZXAyTXF2cXorZGlaalU4dTkvbVo3WS8zK3lIcW5SMU92clFTMk1pNjFNMjhyalRTOXhEVDl6VEFGSXhJK0xtZDU0eFB2N1I4WnZ1L3NENks3WUQvWXRGMHhRTHUyeWNtaUk3YU5BYnlhZEhPSmFKQjZQaStJSkVJSnVJZ0Ztd3N4bFNNUTNFVWlVa29lQ0E0dkhNeDVvSXljVGl4THpFVzRWaVFBekUrRXNHQjhNYUNleUtpSWliQzk4VFJrZUJqY1VnRWpRV1pDTHpkQkhyZDlmb2NtNXlKYTNoV3E5VndzOEdIdGNtdnIvVWEwbVRRV25YdDlUVXNCODFUQTFiWDF6SnBrWTNleUs3a016VHZCZTA1Yi9zZG9FeTIzVTBDNTM1VnBOMzhKdE02VGVDdy9RMktIWnNWM1hqUGlVUnJGSUtVTFlkQWE2c0wrMlBIbmhMajczWGVWd0NLRVMwMUpKQ1o4aVZraGI2SHVJTDhrSkpFcFRqVllSUWt0b0pwb2VEc3M3WWZsRm9hY0g3K1hGRlVldlZEbHRrc3UrK0FGQkR5dzJQOVlKTy9iYmJXdHdaWHl6eHJmejdtSmp1K3ZHK3VGdDNrclVkK0hJMEFId29idURGZ3pqUTM2eUkwcDY0dW1xdko3SkpmMWJQekdPWUFyQUhoa0RCWkZiTk5SVkxvdmdRcDJyUHRVRnlXOVVyRHdqcXoxSi9BQnJKUDY1dGUrclM2TDdybmFubDN4S2FycGk3THZsVDREM052Z0huSnZxR3htMzlEMDAzZkg2eCt1VlAwNlBEdS9lenV3MUY4VWM1UGNraXM2ZC8xS1BRWXhXRVFSRHlnWGtod0ZJQXppdlprV1hiRkRPbzljTnZXeTBWN1lHcVpLdGdBTDQ1T2RiTE1kM050K0YrQlRaR1o0Z1FpTkh6M3pFK2dHdmRTSkNHTUk2WWxZNFFGSkF2N3d1Ni9LU21CTnpmMXN1bDUxOERiVjRUL0J0L0hUcEtURUFBQSIsInNoclRva2VuIjoiZXlKaGJHY2lPaUpTVXpJMU5pSXNJblI1Y0NJNkluQnZjQ0o5LmV5SmhkQ0k2SW1WNVNqQmxXRUZwVDJsS1MxWXhVV2xNUTBwb1lrZGphVTlwU2xOVmVra3hUbWxKYzBsdVp6RmtRMGsyU1dreFRGTlVUbEpQVnpWUFZXcGthVlZ0T1cxbFJ6RnNWMjA1V1dOWFNrbFhhMlJzWkhsSmMwbHRkSEJhUTBrMlNXa3hURk5VVGxKUFZ6VlBWV3BrYVZWdE9XMWxSekZzVjIwNVdXTlhTa2xYYTJSc1pIbEtPUzVsZVVwb1pGZFJhVTlwU21sT1JGWnNUVVJyZDFsVE1XdFpWMHB0VEZSUmVFNUVWWFJaVkVFeVQwTXdkMDlIUlRSTmFteHBUWHBDYkU5SFVXbE1RMHB3WXpOTmFVOXBTbTlrU0ZKM1kzcHZka3d6VGpCamVUVXpZVmMxYTJJelpIcE1iVFZzWkVNNWFscEhUVEZaVjFac1dWTXdlRTVYVFRGTVZGSnJXV3BaZEZscVFUTlBVekZ0V1RKR2ExcEVTVEZOUkZacldYcEpka2xwZDJsaFYwWXdTV3B2ZUU1cVp6Rk5WRVV5VGxSUmVFeERTblZaYlZscFQycEZNazlFVlhoTlZGa3hUa1JGYzBsdFZqUmpRMGsyVFZSWk5FNVVTWGROZWtrd1RWTjNhVmxYYkhaSmFtOXBVbFJLWVZveGJFZFNSMVl3V21wT01tRnBkR2xXUlhob1pXNWFlRXd6Ykd0aGJYQnlUREJLTTFGVU1HbE1RMHBvWTBoQ2NGcERTVFpKYlVWNldWUk5lbGw2U21oTVZFazFUMGRWZEU1RVJtdE5VekExVFZSTk0weFhSVEZPUkZsNVRXMVZNazlFUm1wWmVVbHpTVzFHZDJOSGJHdFpWMDU1U1dwdmFVMXBTWE5KYlU1MVdtbEpObVY1U25Ga01uTnBUMjV6YVdFelVqVkphbTlwVld4T1FrbHBkMmxpYVVrMlNXNXdOazlWUms1aFJWWk5Za1ZGTUZSRVVuWk5SbkJQVGxaQ2RrMVhNVXRNVlRsMFpGVktSbVF5TldGV1ZFNTZWakF4ZGxReGFEUlVVekZFWWtkdk1sWkZkR1poTVdNd1ZXMXdNV1JyUmpaUmJYUktZVzVXTTJSR1ZUSmFTRUV4VWtWVk1tUXpWa1JaYkZFd1dqTk9iV0o2YUd4T01IaFpWbTFzVkZGWGNITmlhMDVXVmxoR1dHRnJiekpYVmtaaFVqSmtVMVJETVhsYVZuQkdVbXBDVm1SSFpGVk5NMDV0WXpCYU5sTnVjRnBpUlZKS1pWaE5kRnBGY0UxaFZVNVNZa1ZHZGxadVRuUmtia1pJWTNwYVFsbHVValJSYW14cFQxVmtkbVZXU2tWWlZWWlJXakJvY21KcVNucE5WMnh2WkRCT2RXRklRa3hrUkVadlZqQTFOV0pyY0VWa2JUa3paRWhTWmsxNmFHMWphMW95VkZoc2VWWklWa2hoVkd4U1ZVUkdWR0pGYkUxVVYxWlBVMGMxVUZSWE9VTmtlazVIV1ZSS1VGTXlVa3hOYlU1d1RUSjBiVk5JVVhsVWJFcFNVVE5rTVZkVlVYbGxhbHBPVGxaT1pscHRNVWRXUldoUlUwWTROVk50WnpGa1JsWkZWRVYwTlZWRVFrTmtWbXhxWkd0T2NWUlhWVEJWYmxwbVVqTmFlbU5XVm5GaFZteHdaR3RzYkZSWFpETmhWWE0xV2tWdk5GTldRbkZpYldoV1VYcFNNVk16WjNkYWFrSlZXVmMxVEZGV09UQlZNbkEyVlZOSmMwbHRWV2xQYVVwQ1ZWVkdRMGxwZDJsWlYzaHVTV3B2YVZWc1RYbE9WRmxwVEVOS2NtRlhVV2xQYVVwaFVsaHdUVkZWTlVoYWJUQXpVWHBrVUZWR2JFbE1XRXBWV1ROU1ZWRXlOVzFZTTNCSFRGaHNZV1F3Ums5WFdIQm1ZekJhUjJORVpIWkpiakU1VEVOS2NGcElRV2xQYVVwdlpFaFNkMk42YjNaTU0wNHdZM2sxTTJGWE5XdGlNMlI2VEcwMWJHUkRPV3BhUjAweFdWZFdiRmxUTUhoT1YwMHhURlJTYTFscVdYUlpha0V6VDFNeGJWa3lSbXRhUkVreFRVUldhMWw2U1haSmFYZHBZakpzYTBscWIybE5iVTB6VDFkT2FVNTZaM1JOTWs1cVdWTXdNRTB5Vm1sTVYwcHNXV3BKZEZscVFUVk9iVlpwVDFSSk1FNXRSVFJKYVhkcFkyMW5hVTlwU1hkTWEwWlRVMVZGTW1OVVpFZGxiVTVXVm01U2NrMXVaR3hhYm13d1RVZDRRMXBJWkc1aU1IQlpZMnhPWmsxdGRGZFJiVGxJV2pCc2VGRXlNVFpTUnpoM1ZUQkdRbEZUTkdsTVEwcDZaRmRKYVU5cFNYbFplbU0xV1RKSk0wOURNSHBaTWs1b1RGUlJlbHBYU1hSWmJWWnBUV2t4YVUxRWF6SmFWMGsxVFdwUk1sbFVaMmxNUTBvd1lWZFJhVTlwU21wYVIwMHhXVmRXYkZsVE1IaE9WMDB4VEZSU2ExbHFXWFJaYWtFelQxTXhiVmt5Um10YVJFa3hUVVJXYTFsNlNXbE1RMG94WkVkcmFVOXBTbkZPUlZwc1lsUkdiVm96YUVaaVYyUjJWVmR3V1ZVelNsRmhhMFpDU1dsM2FXUnRWbmxKYW05cFRWTTBkMGx1TUM1U1VEVlJOVmhyU214TmVEazNPR2R6YW1VNFgyMVJlbTExWlRCM2NHMUdaa1JJTW1GeVdtMUdOelppWHpaUWNYbzBUVUl6YVdkaGQyaEpTVTVMYUdkNUxUUlVVMWxEVW1wcFEwNVZUMmRMZUc1NFVXTjZZbVpmUm5wR2NXa3pNVTFaUlRGdVVHNDBPWFYyZW5SaWEyZG5NelY0Y0RodVRHWjRSakE0TURKWFRYUXlibnBXTm5GaFZYWm1iRTFJUTNnM1IxUlhWVTg1ZFZad1IxcG1iVk5zU1V4Nk5tUjJaME5DVkRJNGQweDVaRnA0Ym5OWVUwSnFkMGw0YTNWQmRtUldORU0xYWxSQ2VDMW5abTluZDJOS00wUnpRbDlZYmpaUmFWZGllbUZQTURsclprNXFlRGh1YkdOa1NYVm1lV3BNZFdFd2JXbG1jWEJrYTA1R1NsTlZPRXh1TVRKelEwSkNSSGhxUWs1cmF6VkNTWEZZUmtoNVdtTmFWVlZIYlUxMlMyMDFjemhpWVhkVldVdGhWVXROY0dSeldWTnNOMFZmYUhKS2RISm9hek5TZUZoeGFGOHlUMnhQUld0clFrUkxTamh3ZGxFaUxDSjBjeUk2TVRZNE5URXlPVEk1Tml3aVlpSTZJbVJFWlcxS2JuWlpXRWhEV25SNWNtNHhZWGxWT1hFelQxUkdabGMxWDFWRlMzQmpRM2N0YVdkVGJ6Z2lMQ0p1YjI1alpTSTZJamxoT1dFNVlXVTBNemN3TURRNFl6RmlObUV5TVdObU1XRmpNREF3WmpVeUlpd2lZMjVtSWpwN0ltcDNheUk2ZXlKcmFXUWlPaUpaWmpCaFpXbDNlRU5wTVROaU5EUjNaMW8zUTFGUlVUTkxWVE5WY0hWSFIwTm5PVlJXZEVWSlZHRXdJaXdpWlNJNklrRlJRVUlpTENKcmRIa2lPaUpTVTBFaUxDSnVJam9pZW5vNVFVMW9SVXhzUVRSTU5HOHdXazQxVUc4eGJVb3RUMjExUWtWM2JscFZNM05YVFc5UFdIaE5MVU5zYWpaVVMxOXJWelJTYW5WMlFYcENhMGxxZFhkMFZUWmtjRFZFUlRaM2RVTmlWRFJuYzJadk9HVTNURmhXYVZOQmFteHVRMVZWY1ZkcVNqWlpVVnBIWjFKTUxYSmxXa1ZHTUZWMFoxUXpjMlp6Um5wS2VsbHNSRWw1Y3kxa1NreHBRMUZzUVc5V2MyMTJjVWR6TmtGaWRIaENPV0k1UjI5NVVrUmhSVkJuU0d0dU1uTXhhV2gzUTI1b2NFdDBNV2hYVG5sdVNrUjJiM2QwZEY4ek9HWnlSblpOZVhKVWRVZHBPVkZRTVZOc1NVeE5aVTVJYms5TmIwSjNNMFpoTWs5TFpFc3lZMmt6YTJaSWRESk9VbEZEZDNWWlJESjZOazAxVTE5bWJVWlVTRkJJWHpsS2FEVjBWVVJNUzNsUU1FSjFXV04yUTJwTlpUUlNkbDlIZG5OeFZXcHBXV2wyU1dWTlozZHBTemxrU2poSlVHcHVhRlZETkhWTGVEQm1NRlJoYmt0QlgzUlRhbnBSSW4xOWZRLlZ1NmpDSmRDY2ZJZ0VyblZ1eVhGSU13VnMtTFh0eWEwZ0Nzay1GUXVBT2xYS3NZR1RmcjVWV080UDUyQnl4T1E4elVDRVBsOWdYal9qaE9MQU5STDBCTE1hQlJKdDlhTzkxSWxkN0pEc2stRUlxbFRlNE9ILWphaDdhOHliTkxhc0V1amNsYzlGTUs4RDZVUE1ibFU2bFJNNjBtdFNQMzVJTTBzZnFFSzZVdDhFX1B4eldaRkpKeXl2X002LV8yZlBON09MX19zbDMwY0tWX00tTTRobHdBTWRmbElyRVlxdGFib2JlX1RnTmZKMldReDR4MFVEcmQ4b0JqSzFEeVdfUnl0Z2pmZFV4SXpFaFNWNV9CUWZmekZwZDhUbWtrNDhvTVFLY0oxeXRzSXhmdlQ0WTJlWHR1MThKdVBEWHl2N1p2dnFZcmhwVzU5alBrckhndGEtQSJ9.\u0022,\u0022correlationId\u0022:\u00220d0b3470-1f4b-4e3d-a289-8ea881851f64\u0022}", + "messageId": "efb5d493a34f4937b2c414cb1e591d97", + "partitionKey": null, + "sessionId": null, + "replyToSessionId": null, + "correlationId": null, + "subject": null, + "contentType": null, + "replyTo": null, + "applicationProperties": { + "Diagnostic-Id": "00-b221ec77bff6bc691668b32bf7a88242-36cd64a71753bc25-00" }, "enqueuedTime": "0001-01-01T00:00:00+00:00" } diff --git a/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecordedEvents/CallAutomationClientAutomatedLiveTests/CreateCallToACSGetCallAndHangUpCallTest.json b/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecordedEvents/CallAutomationClientAutomatedLiveTests/CreateCallToACSGetCallAndHangUpCallTest.json index 8e1d09cf10dc..4863d30dc5d4 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecordedEvents/CallAutomationClientAutomatedLiveTests/CreateCallToACSGetCallAndHangUpCallTest.json +++ b/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecordedEvents/CallAutomationClientAutomatedLiveTests/CreateCallToACSGetCallAndHangUpCallTest.json @@ -1,8 +1,8 @@ { "entries": [ { - "body": "{\u0022to\u0022:{\u0022kind\u0022:\u0022communicationUser\u0022,\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022from\u0022:{\u0022kind\u0022:\u0022communicationUser\u0022,\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzd2UtMDIuY29udi5za3lwZS5jb20vY29udi9iekNWZmdhZUJFVzJuc1JvYmlwOWZ3P2k9MSZlPTYzODE5Mjc1MTQyOTUxMDU4NA==\u0022,\u0022callerDisplayName\u0022:\u0022\u0022,\u0022incomingCallContext\u0022:\u0022eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJjYyI6Ikg0c0lBQUFBQUFBQUNzMVlhMi9qdUJYOUs0SUw5RU4zYVBHbEZ3R2pjSnhNSnk5UDFrazJtQ0pvUUpHVXJZa3NxWlQ4U0dibnYvZFNkaEpuUFoxTjI5MWlIY0FXeWN0enpyMFV5WHZ6cGFka1VZeXJOczl5SmR1OEtudmlTeSt6MWR6OTVyb25lckdRcWhFazFWTFNORUZKZ0NQRUEwNVJtb1ljeVNpbFZHRXNZODN2Y1BjaE1aS2hVa2pUTEVWTXN3VEZoa21zTWRZa29yMTNQWjAzZFNFZnhuSnVBQjg2VEtucktpL2JZOGNYUkNiRUNZc1F5MWlJT0tNR3BRb0RuZEVtekdRY0VCWEFuRUtXMDRXY0dqZW5YQlRGdTE0dGJadXJ2Slpib0RDSk0wVWxBS1VKQUNrU29EVFRGQ21OZ3pTaERFdk1BV2lXYTIzQTdVd1dqWG5SY3ZWUU8zV05zVXRqaDNVTmxyV3RhbVBiaHdNNTNYQitmZGRycTk4aVVIRzhGeWp5cTRIYWdHQ012dkgxOUhsVG9EVFZPQ0k4UlJIUE9PSVJaU2hoUnFNMFRySlFSaUhPcE5vUGxEVk50YkNxdysyOXhldC9FOEVpTCs4YkYwVFp0bExOQUd6V3RuVWpmRi9XZVQ4cjh1bXNoWG5yaDM1ekQydlNWOVhjamZoTDZxdmFoL0F0R2lNcHdyU3YxSTZKVXY2UytGbGw3NDMyWXhYam1HVWFoVndaeEdXUW9KUW1LYUlxaVhGS2VaeW8xS2VSbnhPZjhjVGZLUGxyUG5DYTUwYm5jbGcySzJOQm0xSWdiQzQzdmt3aEJzMGZRZkNUbHExa2F6NGIxZjRSaEcyVWJHVXRkSDFsWmRuVWxYWGlvQW5TQXRvbmhQY0poOStFQ01hajJPOTkzWVo5VkpXdEtjSDRTMDl0SHJmYlV0WjFzVDJ3L0VhN3paa1dWUW9EeXdHK3RiZGxOVUFlb1p3SHpNUGU4ZGc3dnVEUWp2b1kvb2d6YUFZTnhBdW11NFlhYkUwNDdrZHhuMkF3d2gxT09oaGRDWGp1UHE2akhXQ3ZlNWdQNUVMbmxjZVRNSWk5eWRXRlAvenB3aU9ZZXdsOE00OFE0cEVZMkdNdmlhQUhXcTR6QmhuNCs1eHlZRnRWSTl2a2oyYW5uYVhpTDk0YXpVRTI3R1lQSXVBMWNCNEkzY3c4YTlUU1BXek0xNmpKcDZXRWpUWDkzcXdYYk9HY1NEYnRISloxa1ZrNUZVZVQ5N09Ydm5xbHhlaW1ZU2ZITncrVHlmbnFmaldwN1ZCOXV0TDZma2ZsZkxIZXRKUXNkYTVsYXdSNDdsMGZYbmlVTUJ6aGtEUHkydWR0Q05zSGtHYXpZdTFacWJXRmtQVXBpV0c5T1BXc2UyVTJkdnZvZEFjOVNDREMrK2pKRzlHVFg2SlQwTzdja3FvRkJncDRJWTcyR1VoQTM4UUFkdnNNOUhkbWdOZXVpeENoUVV3VFRLTEFlOXAwc2FOZ0hteTZUWVNzZ2V0bWkvNWF3YzRLZU9kWDE1UHg4YUZIZ2lTa09NQXNESU9Rd01ZTjRyM2xZZHZsNmNqakpBenAvMFNldkpCanh0elVJT1pKUkNrTEk3Ym5PZXo1THJhMWJCcDNITVFFQk9Ed3RRSU16WURoTjBrSUtFL1lQZ3Y5UDdBRU8yK2lJd25paEJIOG01UFEzNHVra0trcHhGem1KZW9PemszdlBOZUNQSjFhNmNySVlsclp2SjNOUmJwU1hpM1Z2V2xybVZ0dlpWSTRYN1o2N1VQZFZyRHpoMGVYZDZQek8wTGp1dy9udzlIZDVZY2h1WXV4bDVkdzloblJSSmFFUHhRbkkvOFREMytNVHRuSnlZOVN0cWVMTkR5MXAvUnl1UjZQYjI0ZXlwL3BQeGo1bVR3SjJjTFRYNFAvSlAzeThQTDg2bW9xUiszRjJmSVJMNnBFajIreVpWYjhjTDMrTUZWTHY5WEZXUWYvZEVUV2MxbkRoY0s5eStPelU1K0UyMnZsZVNqeC9nWnZzeC8vc3QvdGxHN0svZ2hjTkpmSGs2UHhMbG8yYnpjamFkNWFXTm5CUGhNY2xFQ1Y3QUJ1SnNXZUxFdXpUZ2RsOWNvZWV4ZWo4K3Q5L3RqMUQvZjc0ZGFiSEIxK3l4TjRrVTFoNmxsVkdtU1djS252YVFBVGpFajRlaDd6UnVOdnVSKzcvbS80UjdFYjRDOHo2amFmdzRIN3hBVFhvN0cxaFhSYU5ET0phQkI2RVJmeFNCd2Npb09oaUlhQ0RNWG9RQ1R3ZkNSd0tCZ1duRHFEVVNLU0F4RU9CU1FzNUVCRVJGQm9Ib2tvRUNIWUh3ak1SUUNkVEJ3a1loaUl3MGdjSFlwUnNDRTI2N2JUNTduc1ROekNaN1ZhOVRjdmVMK3kwOXRiczRZc0diU1diWE43Qys2Z21iWXc2L1pXcGcxeTF6ZHlucnhDWXk5b3o1bmJkNEF5MmJSM0tlejdWYTdiMlYxbWpFNWhzLzBKYWgyWEZOMng1MHlpc1FwQjBqYUZtOVlWRis3TGpUMGx4bWRtMmhVQW1lR1o1cG9oRGdjeGduc29oTHlRWWhRU1YydVpUTFBNdUFLbWdYcXpTOXMrS3JXd0VQenBjMEZSbXRYSExITlpkdGNCT1NCa2lLZm13V1YvMjJTdGEvWCtmbklXTGNmdDlCR1hKKzhmUDBmTnhYbXVwb01CNEVOZEF5Y0cyTFRzK253WWZyeGNGNS8vZWMyUGw0dkY5ZVA3SWRnQXJBWGhrREU1RlJlYmdpUTNYUVdTTjVQdDBMQW9xcFVCeDFxN01GOWhEcVNmTGphZDlPTnltYmZQeGZMdWlNdFhiVlVVWGFud0h5WGZBQUxwOThwMDJUYzBkdk52YVBycDQraW5iQ3JOd2RFTkxadEpsZVoxa3EwZ3NTWi9Ob09Rd1oxRG93Q1M2Q1FnR0s1RUNFWGVuQytLTnIrQVlnK0N0bzF4M2h6WVNtb0Z5LzhTWm0zU3hYUTMxWVovQ1hTTGF1Sk1wcHFIaUhhTGlwbENpVTdnaVVNSnJYU1ljUk82U3VpL3FTZUJkMnFyUmQzeHJvRzNLd2YvQllncG1nNlFFQUFBIiwic2hyVG9rZW4iOiJleUpoYkdjaU9pSlNVekkxTmlJc0luUjVjQ0k2SW5CdmNDSjkuZXlKaGRDSTZJbVY1U2pCbFdFRnBUMmxLUzFZeFVXbE1RMHBvWWtkamFVOXBTbE5WZWtreFRtbEpjMGx1WnpGa1EwazJTV2t4VEZOVVRsSlBWelZQVldwa2FWVnRPVzFsUnpGc1YyMDVXV05YU2tsWGEyUnNaSGxKYzBsdGRIQmFRMGsyU1dreFRGTlVUbEpQVnpWUFZXcGthVlZ0T1cxbFJ6RnNWMjA1V1dOWFNrbFhhMlJzWkhsS09TNWxlVXBvWkZkUmFVOXBTbWxPUkZac1RVUnJkMWxUTVd0WlYwcHRURlJSZUU1RVZYUlpWRUV5VDBNd2QwOUhSVFJOYW14cFRYcENiRTlIVVdsTVEwcHdZek5OYVU5cFNtOWtTRkozWTNwdmRrd3pUakJqZVRVellWYzFhMkl6WkhwTWJUVnNaRU01YWxwSFRURlpWMVpzV1ZNd2VFNVhUVEZNVkZKcldXcFpkRmxxUVROUFV6RnRXVEpHYTFwRVNURk5SRlpyV1hwSmRrbHBkMmxoVjBZd1NXcHZlRTVxWjNwT2VrRjNUMVJKTVV4RFNuVlpiVmxwVDJwRk1rOUVUVE5OUkVFMVRXcFZjMGx0VmpSalEwazJUVlJaTkUxNll6Uk9lbGw1VGxOM2FWbFhiSFpKYW05cFVsUktZVm94YkZGYU0wNTNWRWh2ZVdGNlNrNVpWV3QyV2tSS1QxcDZWbUZOUkVKWlZtdEdRbEJVTUdsTVEwcG9ZMGhDY0ZwRFNUWkpiVVY2V1ZSTmVsbDZTbWhNVkVrMVQwZFZkRTVFUm10TlV6QTFUVlJOTTB4WFJURk9SRmw1VFcxVk1rOUVSbXBaZVVselNXMUdkMk5IYkd0WlYwNTVTV3B2YVUxcFNYTkpiVTUxV21sSk5tVjVTbkZrTW5OcFQyNXphV0V6VWpWSmFtOXBWV3hPUWtscGQybGlhVWsyU1c1TmVGTnJXalZVYlhnd1pXMWpOR1ZzWkhaYWJtY3lUMFZPTldGcVZrOWlSRXBYVW10S1lWTlZkRzlYYms0MVRteEpNMXBIV20xaVJ6RjVWRU13TVZScVpETmhNa3AzVkdwc2JFOUZjRVphUmxwcFZVVm9hbGRITldwU1JHaHBZakJhVjFOc1NuUlZTRVpOVjBoa2ExcEdhSE5XVlVaNFltNUNVbFZYVFRCUmJuQmhXVmhrUjFsdVFrNU5SRTQyVVZWMGJHUnNWWGxpTWpsaFZVVlNRMVpFUm5CalZrRjNaREpPYzFwSFdtbFdWRkpZVlhwc2VtSkhVbEJNVjA1T1pGaE9NbFZJVG10amJrSllWMGROZVV4WWFGUmlWRkpIVjI1YVYxcHJNV3hhYlRRMVZqRldUR0l5Y0c1T01Vb3daRVZzWVdNeE9WaFhSVVpFWTFWSmVFOVZXazlUVm5CMldURnNRMU5JUWpGbFIyaGhZekZzTlV4VVJsbFdWMlJ5WW0xU05Gb3phSGRTUnpVMFRYcFZNMVJYY0RaT1ZGcDVVMGhrVFU5RldrSlZSV3d6VkRKNFVWVlhPVmhTYTI4MFZsVjBNMlJIZUhoa2F6UjNaRlUxYUUweWJHcGxXRkpMVm0xMGIxcFhVakpOVmtJMFZtNWthMkZGYkVWU1IyaE9ZVEZPUjFac1NtMWtSelUxWTJ3NVJrNHlVVFJSYkVJMVdXMTRiRTlYV25Oa00zQkNVakJLZUZKNlVURlZha295VVROR1YxUnJSazFTYlVwMVdUSk9jVkpITlVsa1JWWnRWVk5KYzBsdFZXbFBhVXBDVlZWR1EwbHBkMmxaVjNodVNXcHZhVlZzVFhsT1ZGbHBURU5LY21GWFVXbFBhVXBTVG14YU1rNUZSakZNV0ZWNlkwUmtVR1J1Y0hWU2EyaE5VekU1V1ZZelVuWk5TRXBRV0hwc2RscHJiRnBTYWxwcFZrVldhMVJFVGxwSmJqRTVURU5LY0ZwSVFXbFBhVXB2WkVoU2QyTjZiM1pNTTA0d1kzazFNMkZYTld0aU0yUjZURzAxYkdSRE9XcGFSMDB4V1ZkV2JGbFRNSGhPVjAweFRGUlNhMWxxV1hSWmFrRXpUMU14YlZreVJtdGFSRWt4VFVSV2ExbDZTWFpKYVhkcFlqSnNhMGxxYjJsTmJVMHpUMWRPYVU1NlozUk5NazVxV1ZNd01FMHlWbWxNVjBwc1dXcEpkRmxxUVRWT2JWWnBUMVJKTUU1dFJUUkphWGRwWTIxbmFVOXBTWGRNYTBaVFUxVkZNbU5VWkVkbGJVNVdWbTVTY2sxdVpHeGFibXd3VFVkNFExcElaRzVpTUhCWlkyeE9aazF0ZEZkUmJUbElXakJzZUZFeU1UWlNSemgzVlRCR1FsRlROR2xNUTBwNlpGZEphVTlwU1hsWmVtTTFXVEpKTTA5RE1IcFpNazVvVEZSUmVscFhTWFJaYlZacFRXa3hhVTFFYXpKYVYwazFUV3BSTWxsVVoybE1RMG93WVZkUmFVOXBTbXBhUjAweFdWZFdiRmxUTUhoT1YwMHhURlJTYTFscVdYUlpha0V6VDFNeGJWa3lSbXRhUkVreFRVUldhMWw2U1dsTVEwb3haRWRyYVU5cFNuUlViVGxYWVdwQ2FXTjVNVVprVmxsNlYwWkpOV0pVVWpOa1JVWkNTV2wzYVdSdFZubEphbTlwVFZNMGQwbHVNQzVrUVhGZmFEa3ROMUEyZVMwM2MyTjJXVVV4V1RaMExWcDVUREozVDJKa2EzUXRNbWhOVmtabk0wMWlXUzF3YlZsRE4zbElkWGRqVUZNdFJuTjVlV1Z0ZEU5eGRuSkdlVWxtVXpWVmEwSlhZbGRtY0RSaGNFdERkRGRKZUZSSFdIRnBkR3gwZEdWRmRGWktMVkpuY0cxT1NUSXhPSEkzU2paYU0wOVlTblJ2ZGxoa1RVbFpaaTFQVkRreVlsVkRZVEZMVmtWcWRYQkRiMVoyT1dneVlsVlBObTlsVlZZMVRWbDBRazl2YWtoQk1FZFNRMVp3Y0ZkNFRYTm1jVWQ1WDFSMlprOUxOVzEwY0dSbFJFWnZVWGRQWVhKcWIxTnVZMDQ0TVd4UFdUQnZiV0l4YlZreU1sUlVWbVZOTkZKak56RlpOWEZtT1VVMlpWVlBkbVI1TmpKaFdFTnJWblozU1ZWVVQwSTRVRVZ3WjBodWFWQmZWMTkzYnpWSU1tc3lUVUpsVDIxUlRuSm9NbGxyV0RWUVZUUnZZMnRoZUd0SVdWOUZhVGhOY0dWT1prbFBlakF0UWxGMVdUUnllbU5uYzBWaFJ6UnhObmNpTENKMGN5STZNVFk0TXpjME16STFPU3dpWWlJNklucE1iMkV0WmpVeU1XVTVPRFJhVTNGQ1VEQllXak5TTkZsclFURkpPV2h1TUhobWJVUTBSV2g2UjNjaUxDSnViMjVqWlNJNkltVXhOVGt3TlRWaFltTXhOelE0WkRRNU1EWTFNVE16WWpjeFkyRTJNVEV3SWl3aVkyNW1JanA3SW1wM2F5STZleUpyYVdRaU9pSmtSMFl5Tm5wTE16TXhaMDlQZDE4MGVWOVZVMlkyWmpaelVVdFNiakUzVUdsUlZYSjJhVlV4TFZSdklpd2laU0k2SWtGUlFVSWlMQ0pyZEhraU9pSlNVMEVpTENKdUlqb2ljekZLUm5sT2JIUjZaemg2VjI5bWVEWTRRM2xxTlU1c01sWkdRbHBKUzJoYWMzazJVamRrWm1ac2JYSk1MVFZPTjNkclluQk9PV1U0U2tWa1ZtSlFTR05ZYm1ORU9HSnZSbFpLVW0xUWNVeFlkMlJrV0d4VlFYRnVjRkZSWXpSQ2VscGhkMFppY0Uwd00zcEJTMlYyVlRKdmIxcFFSRUpVTVdseFVEQjNZMnhrWm1KVk5GZFRPWE5zWkU4dFkwMTFjM1pRYzJSeWNGZFlZekl0ZUZOdE5FWmFkbFptVFdWbWJqbFhWVXR2YW1jM1VuUjBTVnB6WDFkWVFVTnhRakU1Ums1SldtOWpXVUpJY0hWNGFGcHpXWGt0TVZoVloydHVaSGhuZUhCRWJuZ3pOVGROYW5vMU5uSklkMHc0UmtGUVNYZFBiRkJSYjFkR1NqaFZTM2QwYkhGMlRqQjFUbUV6YVdONWRFcFdhMmhsWkhZeFVIaFdkMlJvU1VSRWFFMXJVMFpXVW1aMGJubHlYMFUzWkRoQ1VIbGliR1U1Wm14M2VrRkhRbkZITkRWU01uWkRjVlpPUVV4R1ltNWpZMnBFYmtoMFJXWlJJbjE5ZlEuSmhJNnFuejlTMDB5S3dXODYzSkloRnQ2alU3cWQ4Yk1fWHJjMDNWZ2FLdm1nV1dtSG5DeldaOVgtdXZPLWNQNEFOQWIwam9lSTJWVjA0RkEwS25FSXBidXktM0IwbjVKaG00OG5CbERxRm50dktSdEVoNGhCc0ZGdnFpN1ZUSVlFR1MyaGYzTlFGWmlIM3luMlZQZG84cEZ3Q0pnajZrUGlfMFl6aUE3ZTQyVF91a0otbHhGaGx4MWdJVndSSHJiNV9vSzdiNVEzM2lIVW9YNGZEcFdtSHMxZnFGTU9BVlFsTVJMdkcxZHFqZk0tU0t3c1k4N3NkLWZsdmh4U04yWThHVGNwMWdyX09ucE9SblZwTGp1YVRXVWhnNFJpdFpZVE5pbFVjMFN4aG0tZGg1ZGtKc1lCY0J5akRRU0ktb0swQ29ZTk1UZjdzN3dQdHJSYm9RMjVRIn0.\u0022,\u0022correlationId\u0022:\u0022e8fabd46-2673-403c-9d93-44d05cd6f4e6\u0022}", - "messageId": "2c96ce11eb94463c9db2c5cfbb177af6", + "body": "{\u0022to\u0022:{\u0022kind\u0022:\u0022communicationUser\u0022,\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022from\u0022:{\u0022kind\u0022:\u0022communicationUser\u0022,\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC94LWNvbnYtZXVuby0wMS5jb252LnNreXBlLmNvbS9jb252L3NlYUZjT1o3QkVPcHNLekFkRUU2VEE/aT0wJmU9NjM4MjA2NTQ3NTE3MzQxMDc0\u0022,\u0022callerDisplayName\u0022:\u0022\u0022,\u0022incomingCallContext\u0022:\u0022eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJjYyI6Ikg0c0lBQUFBQUFBQUNzMVlhMi9iT0JiOUs0SVgyQS9iMGlhcEJ4K0FzWEJzWjVKSjQ2U0oyMFVId1FZVVNjbWF5SkpHa21Pbm5mNzN2WlNkeEsyejArN3V6R0ljd0JaZjU1eDdSZkxlbTA4OXJmSjhWclpaa21uVlptWFJrNTk2U1YwdTNXOW1lckxIcGRLTkpMRlJpc1lDaVJBekZJUUJSWEVjQlVpeG1GS05zZUltdU1YZGgzQ1VpRWdnRytNRVdWOHpGQXBmWVlPeEZuSGNlOTB6V1ZQbDZtR21saGJ3b2NNV3BpcXpvajExZk1KRUprcXdSZ24xQlFwRW9wR0lLRUZKRWlZQnNSSEJBWU0xdVNyU2xVcXRXMU9zOHZ4MXIxSjFtK21zVWp1Z21HZ1RzQ2hFSktZYUJVeHpwQklkSWgzRzFtZlVXazBVQUMweVl5eVluYWk4c2M5YTVnK1ZVOWZZK3Q3V282cUNtVlZkVnJadUg0NVV1dVg4L0xyWGxyK0RvNVFKa1ltNFFwZ0huRktNNDRpRjMzVFVGZ1JqOU1MWDQrZTdIR1dFN3hNcUFzU2l4RWVCSWdFQ0l4Z3loaGxsTURjK1pvZU9xbTFUcm1yZDRmYSt4K3AvNDhFOEsrNGE1MFRWdGtvdkFHelJ0bFVqQndOVlpmMGt6OUpGQytzMkQvM21EdDVKWDVkTE56SzRwd05kRFRaSWEyUlhSWWt3Nld1OU4wZnJ3VDBaSkdWOVo4MkFZMnVEVURDVVJDSkJnU0UrRXBhRDF4bE5LSTZ0VmJFWVVEYkl5TUFQeEdBcjVlL1prSUxvcFRXWkdoWE4ydFlnVG10UXRuUWJCMFNsNElUbVQ2SDRVY3hPYzIxL3RycjlVeWpiU3RucFdwbHFYcXVpcWNyYXFZTW1hQ04rbndWOUV2bDlpbjNwQjR3UGVwOTNmaCtYUldzTG1QdXBwN2VQdTRPcHFpcmZYVm1EeHJqakdlZGxEQVAzUTN4VDN4VGxFSGswcE56RDN1bk1PNzBNUEVKWkg4TWZjY1BOc0FGdndXTFgwTVBIS1JIdlI3UlBDZWtUNGJ1aGVEaWVTN0k3VGE2akhXS3ZlMWdPMWNwa3BSZFNFbUx2YW40NUdMMi85T0IyOGdSOCt4NGh4Q09Pbm51Q1FRKzBYQ2NISGZnYnBHcFl0N3BDZFpOOXRIdnRKSlovOHpab0NjTGhQSHZnQWErQkcwR2FadUhWVnQrN2grMzBEV3F5dEZCd3ROTGZXdldNTFowVm5XUFVNTk1XclpKYXBSSmZuWncvOTFWckk2OW03eGZweFVTOWk5NWVURjd4WTFWOGJGcmZEdlpVTGxlYmJVdXJ3bVJHdFZhQzZkNjd5YVZIQ2R3a09BcDg4cFhST3llMkQ2Q3RUdktOVnl0amFuQWFUT0R3eWtLdmRqdG1PKzBRbmU2aGg4SzUrQkNkZkI4NitScWRnblpubHRJdE1GRFlDaEZtQnd5QklDSDlOa00zN1pDQi9zRU1zTzg2RHhFYWNpb3dZU0hZMmljRURoM25mUkY1Y09aRWgxMWJpRGVQMkY4SzJIc0Qzdm44M2RYc2RBSTdXakRPbzBENEVHYzVYUDNCUytUMG1aeUxLS0wvRXpsNUlnOVl5SDBodUdBTTg0ajdMM0RENGVwY1c2bW1BUUVCSjhDUG82OEVoQUVtK1BzVWdLVitlTWhDL3c4czRkNUdkQ1FoRno0QS90NGs5SThpeVZWc2M3bFVXWUc2aTNQYnU4eU0zSjI1RFlyWFZ1VnBXV2Z0WWluanRmWXFwZTlzVzZtczl0WTJodXRscDdkK3FOb1NEdjVvZW4wN1ByOGxsTitlbkkvR3Q5Y25JM0xMc1pjVmNQVloyYjZablp5Mjc4WEZ6L09USXNvLy9MaGErL1BadkJXYnlHZkI5TzVWcHM2cWJMWDZsZjdUSjcrU1J5RTdlUG90K0kyUHhmSEhFOEdyVTc2WjVWZnBxN01Oem96V3Y0UlhhdjNobUgrWXBQRUhzK2pnSDIvSWFxa3FDQ2lCZDMzNjVteEFvbDFZZVJvUzNnK01VZ2l5WC9XN2tOSXRPUnlCUUhOOWVqV2Q3YU1seTNZN0VtZHREVzkyZU1nRTl5UlFpVDNBN1NMdXFhS3dtM2hZbEYvTXg5N2wrUHpkSVQ5My9hUERmb2g2VjlQSlM1YkFScmE1clJabFlaRzloNWgrb0FHbVlFU2lMOWY1M25qMmt2bmM5YjlnSDhWdUlIaGVVYlhaRXU3YlJ5YUlqcmF1YXNpblpiTlFpSWFSRndTU01CbE81TkZJOHJFY1V6bU81REdUazBpS1VBcDRGbklzSk9WeU9uRVBJeXlqc1NSSGNud3N3eVBwajZYd0phTnlSR1RneStOaktjWnlTaVFkU1RLUmVMY0o3S2J0OUhrdU9aTTM4Rm12MS8zdEJ1K1hkWHB6WXplUUpvUFdvbTF1YnNBY3REQTFyTHE1VVhHRFhQUkd6cEl2MFB4bnRLZTg3VGVBRXRXMHR6R2MrM1ZtMnNWdFlxMko0YkQ5QllvZGx4WGQraytKUkZOckJDbGJDb0hXVlJmdXk0MDlKc1p2Yk5wVkFDcmhRU0pJaktpeUdBWGNKaWlHK3hwUnc0MzJDYmVXSnE2Q2FhRGc3TEsyQzYxWE5UZy9mYW9vQ3J1K1NCS1haWGNka0FKQ2ZuaG1IMXp5dDh2V3VsWlA0SVZPeFk4bnhjYUcvNWd2OHV6dFQrYnU3WEFJK0ZEWXdJM1JwWlpIWTNaNWZMMEs4ZnNmSHZMeGZOcEcwelhNQWRnYWhFUEM1RlJjYml1U3pIWWxTTlpjN1laR2VWNnVMUmpXMWl2N0dkWkE5dWw4MDBrL0xlNno5cWxhM2g5eDZXcGQ1bmxYS3Z5SHVUZkFQR2ZmME5qUHY2RTVhS3c2MWhjL3NhUHBSZFdjZlJ5WjZUU2FqeUN4eG4rMXc4am5GRWNoeEVUQy9JQkFKQVpuWk0zNUttK3pTNmozd0cwN0wyZk5VVjBxbzJFRFBEdmEySGlWN3VmYThGK0JiUkZOUmNLSVlTaG1qS1BBV25qUzhJSnhBaEdYbVNDaXlyM1cvNnFrQk42MExsZFZ4N3NCM3E0aS9CY3pKTDdxa3hBQUFBPT0iLCJzaHJUb2tlbiI6ImV5SmhiR2NpT2lKU1V6STFOaUlzSW5SNWNDSTZJbkJ2Y0NKOS5leUpoZENJNkltVjVTakJsV0VGcFQybEtTMVl4VVdsTVEwcG9Za2RqYVU5cFNsTlZla2t4VG1sSmMwbHVaekZrUTBrMlNXa3hURk5VVGxKUFZ6VlBWV3BrYVZWdE9XMWxSekZzVjIwNVdXTlhTa2xYYTJSc1pIbEpjMGx0ZEhCYVEwazJTV2t4VEZOVVRsSlBWelZQVldwa2FWVnRPVzFsUnpGc1YyMDVXV05YU2tsWGEyUnNaSGxLT1M1bGVVcG9aRmRSYVU5cFNtbE9SRlpzVFVScmQxbFRNV3RaVjBwdFRGUlJlRTVFVlhSWlZFRXlUME13ZDA5SFJUUk5hbXhwVFhwQ2JFOUhVV2xNUTBwd1l6Tk5hVTlwU205a1NGSjNZM3B2ZGt3elRqQmplVFV6WVZjMWEySXpaSHBNYlRWc1pFTTVhbHBIVFRGWlYxWnNXVk13ZUU1WFRURk1WRkpyV1dwWmRGbHFRVE5QVXpGdFdUSkdhMXBFU1RGTlJGWnJXWHBKZGtscGQybGhWMFl3U1dwdmVFNXFaekZOVkVVMVRsUlplVXhEU25WWmJWbHBUMnBGTWs5RVZYaE5WR3N4VG1wSmMwbHRWalJqUTBrMlRWUlpORTVVU1hkT2Fra3lUV2wzYVZsWGJIWkphbTlwVWxSS1lWb3hiRVJoV0hCclpGVmplbFZIVm1GbGFtUllZMms1ZEZaVGRFMWtNbU16WWxWR00xRlVNR2xNUTBwb1kwaENjRnBEU1RaSmJVVjZXVlJOZWxsNlNtaE1WRWsxVDBkVmRFNUVSbXROVXpBMVRWUk5NMHhYUlRGT1JGbDVUVzFWTWs5RVJtcFplVWx6U1cxR2QyTkhiR3RaVjA1NVNXcHZhVTFwU1hOSmJVNTFXbWxKTm1WNVNuRmtNbk5wVDI1emFXRXpValZKYW05cFZXeE9Ra2xwZDJsaWFVazJTVzVTUzFsdE5VdFVNMWw0VmpCNE5GcHRkekpPVldSU1RsUkthMDFYT0ROaE1ITjBaRE5HZVZOR1FuaFZNVkpTVFVad00weFZNSGxXTURWWFZFaEthMU5yVmxkWlZYQkZUa2hzYlZWdVZrVmlNV3hUVVdzMVJGUlZlRU5qYW14UVVXMXdXVk5yUm1wWmJXTjVaR3BTU0dOclZrcGFWMVYzVGxkc2QxVlVTWHBrZWxwM1RqTmFiRTE2UWt4T1YxSktVbXRzZFdOSFdubFZiRnBxWkdwV01tUlhTbkZVV0hCWlRta3dkMVl6YkhGUlYxSjVWMVJTZFU1WGVGZGlNRGwxVGtWS2NWSldiM1JPYlVaMVVXNWFhMVZ0Vm10V1JYQTBVbXQwYjFVeWNIQk1WbWh5V1ZoS2Fsb3lVWGRPVjFwcFl6TnZOVlV4YkZOVk1IaEVWbTFhZEZOdWFFNVBWRkp1VmtSb00xTnRhR2hUZWtwRlRtMU9hVlZJVFhsWlZFSlhWVVZ3VFdGc09WZFNSVkY1V1d4b2FWZHJlR3BSTTJ4NlUxaHdhRTVZYXpSWmExSTJUbFYwZDFZd1RtNVhVekZVV2pGR1dWTlVSa2RpZWxGMFZXcG9iVlF5YUROYWJYUldXbXRXYkZaSE1UTlRSMUo1Wkd3NWNsVkZjRTlWYWxaQ1lXNUpORk5xWTNkaVJVWXhaVWRuTVZGdFdraFBWbkIzVFZST2IyRlZlSFpqTTBVMFVqSTVSMUV6VWt4bGJYaHZZVWQ0ZUU1c1JYZGlWVTU1WTI1b2Jsa3dkM2hVYm1oVVZWTkpjMGx0VldsUGFVcENWVlZHUTBscGQybFpWM2h1U1dwdmFWVnNUWGxPVkZscFRFTktjbUZYVVdsUGFVcDVWV3hPY2xWRVFsZE9iWGN6Wld3NVRsUlhUbVpVZWxKelZsVmFTbHBIUmxOWk0xbDVZWHBzVTFKRlJUTmpWMVpNVmpGV1JHUXpSa1pKYmpFNVRFTktjRnBJUVdsUGFVcHZaRWhTZDJONmIzWk1NMDR3WTNrMU0yRlhOV3RpTTJSNlRHMDFiR1JET1dwYVIwMHhXVmRXYkZsVE1IaE9WMDB4VEZSU2ExbHFXWFJaYWtFelQxTXhiVmt5Um10YVJFa3hUVVJXYTFsNlNYWkphWGRwWWpKc2EwbHFiMmxOYlUwelQxZE9hVTU2WjNSTk1rNXFXVk13TUUweVZtbE1WMHBzV1dwSmRGbHFRVFZPYlZacFQxUkpNRTV0UlRSSmFYZHBZMjFuYVU5cFNYZE1hMFpUVTFWRk1tTlVaRWRsYlU1V1ZtNVNjazF1Wkd4YWJtd3dUVWQ0UTFwSVpHNWlNSEJaWTJ4T1prMXRkRmRSYlRsSVdqQnNlRkV5TVRaU1J6aDNWVEJHUWxGVE5HbE1RMHA2WkZkSmFVOXBTWGxaZW1NMVdUSkpNMDlETUhwWk1rNW9URlJSZWxwWFNYUlpiVlpwVFdreGFVMUVhekphVjBrMVRXcFJNbGxVWjJsTVEwb3dZVmRSYVU5cFNtcGFSMDB4V1ZkV2JGbFRNSGhPVjAweFRGUlNhMWxxV1hSWmFrRXpUMU14YlZreVJtdGFSRWt4VFVSV2ExbDZTV2xNUTBveFpFZHJhVTlwU2s1YWF6QTFVMVpDVlZkVlZrWmFWVkpKWkVVNGQyTldUbkJsYTBaQ1NXbDNhV1J0Vm5sSmFtOXBUVk0wZDBsdU1DNU9ObEZ4TWsxamMwdDFhVFpVZG5KTFp6QlVhWFpwZDFKNFgwdEthMUpWWW1oWE1ETkVMWGxQZVUxeVMweE1jMWxCVlc5R01XZHRSMHRrUlMxakxWTktZVGRzVEcxVU1tdFVaWGRWU2pSRFltRkZZbmxCZG1OSlZYQk1lVkpOWldWVFFTMTBhUzFvYWtkRlNFeHVTM2N6TWxONWFtWldkWE55YUdNelZHZHVWM1pYYTFCamIxODNSSFpSWWpoWWRuZzBlRGxwUWs5eFNHOVVRazEzVTJGSlpuSlVSbXQ1T0ZGRE9YcElTbVJuYzFoTFVFeDZNV3B6TWxCd1J5MXROVlZZVW1kRk5YSnRUVlpEVEVKZk1saEpiVGR3VGpsdlUyODVTbGRDYUdweU0yUmhNREZmVEVWb2VubERWMFJYU2xZM2JYWnBUbkYwU1MxUlVqRXdOMHBQTVZsWE4wVTJOeTFIUXkxaFltbDNSa3BXZWtsM1ZYaExOVTlNYzNCT04ydHBObmswTkdORlJIb3RZVXhzY1RnelNqWnhNM2ROVDJNemJsQmtka2RHT1cxT1ZVUkhkREJSVVZSZmVtMURNbEJ0TVZoVFZFRWlMQ0owY3lJNk1UWTROVEV5T1RJNE55d2lZaUk2SWs1c2NEbHRYMUZYUVc1T04xVmhjVk5TY2tKQmVYVlBkRTVSYlZWWFJtb3plSFZ1ZUZoSFlWSkxhakFpTENKdWIyNWpaU0k2SW1WalpEVXhOVEUxWmpZME1EUTBPV1ZoWmpFek5UVTBPVGcxWWpBNE9EYzBJaXdpWTI1bUlqcDdJbXAzYXlJNmV5SnJhV1FpT2lJM2RWOHljMjFFU201VE1WcGFUemhEUkZONWRVWk9XVTVZUjNNdGFXbEZhVVpITURabVJHeEtZM2hqSWl3aVpTSTZJa0ZSUVVJaUxDSnJkSGtpT2lKU1UwRWlMQ0p1SWpvaWRFcGlia3BQZGpGWFRIaG1iRFkxUjFFMU1tUXhiemRyU3kxM2NYSklVSEZUVkZFd1duY3RUVEpYVGxaTWNtUktSVlpoU2tRMGVXWlNkVVJ2V1ZKQ1RrTk5URUp5T1U5Q2FsaEtRV05pWnpKMk5FZHlSVWxsWlRBMWFYQlJNak4zTm5BM2RtVXpNRXMxWkVsR1NXNXdabkpTVm1OMk5YWjFZbXBOZWxnMkxUQlhlV3BCWkhKWk5HNDFiRlp2VDI0MFFtcEZXaTAyWVc1Q2RtUlNaV1JVU25oR1MyaFRhbWt0V0d0aGNtTm5aREExWm1KemVqbFRXVkpUVEVOV1ptMUtlRTA1TkdkVU9IZEthR0ZMTWtRMlkySlFjekpoTUZaUVNreHFYMVpFUkRKaVdHSmFUR05EZVhOSmVtRTFlVGhpUkhvMVMzQlhRMmRaTFZOblVWaEpNVVp2TkMxU09HWlBhSGRtYTFWbVJXVlViWGRJWkhKMlgydFFTazVTTlVGcWNqaEtOekJzUVhWNGFEVkNaa2M1V25BeE0yaHBURzl6Y1RoSGIwWkRkRXQ2Ykdob2JIRTJVVEJ0UTNKeWVHZGpUREZPZUZOUkluMTlmUS5zaWktaDNybUFMdkxoc2l6eDVPRWoxVnFXMjF3Z2tZOFEyelNLcTFnUlp3OTN4dVZ4U1Ytd21DYVYwZ3VZZFhvMDg0NFJUcU5KQVJ4OXRWekFQcFU1TFR4Q1dYSTFTMFFxUlZFQzFHSFRfUzBvZG9NU2lTZmxxV0hBMzJ6S2I0ZjBab2liVWJ5OWdmbnpZcVppTHFWNDNkaW1QRHlwVy1uRV9IVk5VWUZfemVlalU1OWt1ZWU2b3JoU2ptM3loc3cyWVhkWG5tZDk0OEdid1dJUlF6N0VyQUtNVEItNWgxdVNpYXdxV1lVMFc0WGhVcXdhR2NGN1ZzeWluZldYQ2cyblAyNjBERWNLTFdZZEtZb0tzUjl4YjE3bDVncWlGdHBKb0ZFMkMxOG4tc0tkYmVYUk1kZkp2UzlUb3J5dGxGcmpwZmN2SjhrbTBBNHNYWmZCUTd5S2cifQ.\u0022,\u0022correlationId\u0022:\u0022b29f71d7-b778-4ee7-bce0-0f6837d462af\u0022}", + "messageId": "e9502be2d0ad40eba8125a9616efa72e", "partitionKey": null, "sessionId": null, "replyToSessionId": null, @@ -11,13 +11,13 @@ "contentType": null, "replyTo": null, "applicationProperties": { - "Diagnostic-Id": "00-ebc6f1111019886fdd529cbf199a461d-143bc4e0c2b1e34b-00" + "Diagnostic-Id": "00-5d7c0122784207fc451776a3fa5c1080-2538fa0444e58ee9-00" }, "enqueuedTime": "0001-01-01T00:00:00+00:00" }, { - "body": "[{\u0022id\u0022:\u0022Sanitized\u0022,\u0022source\u0022:\u0022calling/callConnections/401f3500-0632-4aed-8aa2-e1bd0116d7e3\u0022,\u0022type\u0022:\u0022Microsoft.Communication.CallConnected\u0022,\u0022data\u0022:{\u0022callConnectionId\u0022:\u0022401f3500-0632-4aed-8aa2-e1bd0116d7e3\u0022,\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzd2UtMDIuY29udi5za3lwZS5jb20vY29udi9iekNWZmdhZUJFVzJuc1JvYmlwOWZ3P2k9MSZlPTYzODE5Mjc1MTQyOTUxMDU4NA==\u0022,\u0022correlationId\u0022:\u0022e8fabd46-2673-403c-9d93-44d05cd6f4e6\u0022},\u0022time\u0022:\u00222023-05-10T18:27:41.5837754\\u002B00:00\u0022,\u0022specversion\u0022:\u00221.0\u0022,\u0022datacontenttype\u0022:\u0022application/json\u0022,\u0022subject\u0022:\u0022calling/callConnections/401f3500-0632-4aed-8aa2-e1bd0116d7e3\u0022}]", - "messageId": "e261d96ea4b64924981e261af7948e56", + "body": "[{\u0022id\u0022:\u0022Sanitized\u0022,\u0022source\u0022:\u0022calling/callConnections/411f1200-b763-4317-b5bc-9b58fb43507f\u0022,\u0022type\u0022:\u0022Microsoft.Communication.CallConnected\u0022,\u0022data\u0022:{\u0022callConnectionId\u0022:\u0022411f1200-b763-4317-b5bc-9b58fb43507f\u0022,\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC94LWNvbnYtZXVuby0wMS5jb252LnNreXBlLmNvbS9jb252L3NlYUZjT1o3QkVPcHNLekFkRUU2VEE/aT0wJmU9NjM4MjA2NTQ3NTE3MzQxMDc0\u0022,\u0022correlationId\u0022:\u0022b29f71d7-b778-4ee7-bce0-0f6837d462af\u0022},\u0022time\u0022:\u00222023-05-26T19:28:10.5807105\\u002B00:00\u0022,\u0022specversion\u0022:\u00221.0\u0022,\u0022datacontenttype\u0022:\u0022application/json\u0022,\u0022subject\u0022:\u0022calling/callConnections/411f1200-b763-4317-b5bc-9b58fb43507f\u0022}]", + "messageId": "dd2bec75226249f3b4779ca8a5abbc14", "partitionKey": null, "sessionId": null, "replyToSessionId": null, @@ -26,13 +26,13 @@ "contentType": null, "replyTo": null, "applicationProperties": { - "Diagnostic-Id": "00-cb8c248960fac76b39235dc9fc9358a9-06b0e8f10948efe3-00" + "Diagnostic-Id": "00-ad8d5b248ba7e69867fb71629bf769a7-4f8733f2291b3e8f-00" }, "enqueuedTime": "0001-01-01T00:00:00+00:00" }, { - "body": "[{\u0022id\u0022:\u0022Sanitized\u0022,\u0022source\u0022:\u0022calling/callConnections/401f3500-0632-4aed-8aa2-e1bd0116d7e3\u0022,\u0022type\u0022:\u0022Microsoft.Communication.ParticipantsUpdated\u0022,\u0022data\u0022:{\u0022participants\u0022:[{\u0022identifier\u0022:{\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022kind\u0022:\u0022communicationUser\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022isMuted\u0022:false},{\u0022identifier\u0022:{\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022kind\u0022:\u0022communicationUser\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022isMuted\u0022:false}],\u0022sequenceNumber\u0022:1,\u0022callConnectionId\u0022:\u0022401f3500-0632-4aed-8aa2-e1bd0116d7e3\u0022,\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzd2UtMDIuY29udi5za3lwZS5jb20vY29udi9iekNWZmdhZUJFVzJuc1JvYmlwOWZ3P2k9MSZlPTYzODE5Mjc1MTQyOTUxMDU4NA==\u0022,\u0022correlationId\u0022:\u0022e8fabd46-2673-403c-9d93-44d05cd6f4e6\u0022},\u0022time\u0022:\u00222023-05-10T18:27:41.5837754\\u002B00:00\u0022,\u0022specversion\u0022:\u00221.0\u0022,\u0022datacontenttype\u0022:\u0022application/json\u0022,\u0022subject\u0022:\u0022calling/callConnections/401f3500-0632-4aed-8aa2-e1bd0116d7e3\u0022}]", - "messageId": "8baf26cda6f74acb979dd97a7f74bb09", + "body": "[{\u0022id\u0022:\u0022Sanitized\u0022,\u0022source\u0022:\u0022calling/callConnections/411f1200-b763-4317-b5bc-9b58fb43507f\u0022,\u0022type\u0022:\u0022Microsoft.Communication.ParticipantsUpdated\u0022,\u0022data\u0022:{\u0022participants\u0022:[{\u0022identifier\u0022:{\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022kind\u0022:\u0022communicationUser\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022isMuted\u0022:false},{\u0022identifier\u0022:{\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022kind\u0022:\u0022communicationUser\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022isMuted\u0022:false}],\u0022sequenceNumber\u0022:1,\u0022callConnectionId\u0022:\u0022411f1200-b763-4317-b5bc-9b58fb43507f\u0022,\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC94LWNvbnYtZXVuby0wMS5jb252LnNreXBlLmNvbS9jb252L3NlYUZjT1o3QkVPcHNLekFkRUU2VEE/aT0wJmU9NjM4MjA2NTQ3NTE3MzQxMDc0\u0022,\u0022correlationId\u0022:\u0022b29f71d7-b778-4ee7-bce0-0f6837d462af\u0022},\u0022time\u0022:\u00222023-05-26T19:28:10.5807105\\u002B00:00\u0022,\u0022specversion\u0022:\u00221.0\u0022,\u0022datacontenttype\u0022:\u0022application/json\u0022,\u0022subject\u0022:\u0022calling/callConnections/411f1200-b763-4317-b5bc-9b58fb43507f\u0022}]", + "messageId": "81d2110e8a3e4d82bddbc03026bc7791", "partitionKey": null, "sessionId": null, "replyToSessionId": null, @@ -41,13 +41,13 @@ "contentType": null, "replyTo": null, "applicationProperties": { - "Diagnostic-Id": "00-11f70a1003900c74620b3f99f642542c-0c27311de93b4c55-00" + "Diagnostic-Id": "00-18bfac2076f3853d95db4e355a191bb6-4ba194c700574bd3-00" }, "enqueuedTime": "0001-01-01T00:00:00+00:00" }, { - "body": "[{\u0022id\u0022:\u0022Sanitized\u0022,\u0022source\u0022:\u0022calling/callConnections/401f3500-0632-4aed-8aa2-e1bd0116d7e3\u0022,\u0022type\u0022:\u0022Microsoft.Communication.CallDisconnected\u0022,\u0022data\u0022:{\u0022callConnectionId\u0022:\u0022401f3500-0632-4aed-8aa2-e1bd0116d7e3\u0022,\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzd2UtMDIuY29udi5za3lwZS5jb20vY29udi9iekNWZmdhZUJFVzJuc1JvYmlwOWZ3P2k9MSZlPTYzODE5Mjc1MTQyOTUxMDU4NA==\u0022,\u0022correlationId\u0022:\u0022e8fabd46-2673-403c-9d93-44d05cd6f4e6\u0022},\u0022time\u0022:\u00222023-05-10T18:27:42.6306614\\u002B00:00\u0022,\u0022specversion\u0022:\u00221.0\u0022,\u0022datacontenttype\u0022:\u0022application/json\u0022,\u0022subject\u0022:\u0022calling/callConnections/401f3500-0632-4aed-8aa2-e1bd0116d7e3\u0022}]", - "messageId": "c24140908ac94028ac858ff179ced625", + "body": "[{\u0022id\u0022:\u0022Sanitized\u0022,\u0022source\u0022:\u0022calling/callConnections/411f1200-b763-4317-b5bc-9b58fb43507f\u0022,\u0022type\u0022:\u0022Microsoft.Communication.CallDisconnected\u0022,\u0022data\u0022:{\u0022callConnectionId\u0022:\u0022411f1200-b763-4317-b5bc-9b58fb43507f\u0022,\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC94LWNvbnYtZXVuby0wMS5jb252LnNreXBlLmNvbS9jb252L3NlYUZjT1o3QkVPcHNLekFkRUU2VEE/aT0wJmU9NjM4MjA2NTQ3NTE3MzQxMDc0\u0022,\u0022correlationId\u0022:\u0022b29f71d7-b778-4ee7-bce0-0f6837d462af\u0022},\u0022time\u0022:\u00222023-05-26T19:28:11.706554\\u002B00:00\u0022,\u0022specversion\u0022:\u00221.0\u0022,\u0022datacontenttype\u0022:\u0022application/json\u0022,\u0022subject\u0022:\u0022calling/callConnections/411f1200-b763-4317-b5bc-9b58fb43507f\u0022}]", + "messageId": "a49afd7ba9cf49c9b3a4a2716fbb9e96", "partitionKey": null, "sessionId": null, "replyToSessionId": null, @@ -56,7 +56,7 @@ "contentType": null, "replyTo": null, "applicationProperties": { - "Diagnostic-Id": "00-3049050651943be549ad3db8a636e7de-069a5e66e208eb64-00" + "Diagnostic-Id": "00-e4f579d1c2275a88cf0fee0be970ccbc-5b8d6d17c25c1746-00" }, "enqueuedTime": "0001-01-01T00:00:00+00:00" } diff --git a/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecordedEvents/CallAutomationClientAutomatedLiveTests/CreateCallToACSGetCallAndHangUpCallTestAsync.json b/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecordedEvents/CallAutomationClientAutomatedLiveTests/CreateCallToACSGetCallAndHangUpCallTestAsync.json index 05f9f46074bc..d1b17f1df069 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecordedEvents/CallAutomationClientAutomatedLiveTests/CreateCallToACSGetCallAndHangUpCallTestAsync.json +++ b/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecordedEvents/CallAutomationClientAutomatedLiveTests/CreateCallToACSGetCallAndHangUpCallTestAsync.json @@ -1,8 +1,8 @@ { "entries": [ { - "body": "{\u0022to\u0022:{\u0022kind\u0022:\u0022communicationUser\u0022,\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022from\u0022:{\u0022kind\u0022:\u0022communicationUser\u0022,\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzd2UtMDIuY29udi5za3lwZS5jb20vY29udi92NHpXZ25YekNrQ1FVaXZIWkd0a1d3P2k9MTkmZT02MzgxOTI3NDY3NzYzOTI1MTk=\u0022,\u0022callerDisplayName\u0022:\u0022\u0022,\u0022incomingCallContext\u0022:\u0022eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJjYyI6Ikg0c0lBQUFBQUFBQUNzMVlhMi9iUmhiOUs0UVc2SWQxUnB3WEh6T0FzSkJsMlhFVHU0NGZTUnNZYXd5SFE0b1JSUklrOVhLYS83NTNLTm1XbzJ6cWR0dEZHWURXdk00NTkzTHV6TDM1M05NcXo4L0xOa3N5cmRxc0xIcnljeStweTVuOW04VTkyUXVsMG8wa1Vhd1VqUVFTSGc0UTl6aEZVZVJ6cElLSVVvMnhDbU4raDd1SGhFajVPa1lZeHo1aU1STW9ORXpoR05va0NIdXZlbkhXVkxsYW42dVpBWHpvTUVWY2xWblJubG8rTFNKQmZFYVFvRDVEWERHRmxDQUpvbDRRNHpERXd0Y1UxdVNxU09jcU5YWk5NYy96VjcxSzFXMm1zMHB0Z1Zoa3RGSlJnRVFzSXNSWkhDUEZxRVlpb1N4TUlrOHp4Z0Zva3NXeEFiTVRsVGZtU2N2MXVyTHFHbE12VEQyc0twaFoxV1ZsNm5aOXFOSU41NWRYdmJiOE14d0Zobjd0cU9BM0hiVUJ3UmpXNzcwZW5oYzVLdlk5N2hHQ1VSQ0EyM2xNQ1FwRFRsQmt2RVNvaEdyS2tuMUgxYVlwNTdYdWNIc3ZzZnEvZUREUGltbGpuYWphVnVrSmdFM2F0bXFrNjZvcTZ5ZDVsazVhV0xkYTk1c3BmSk8rTG1kMnhGMVFWMWV1MW1qZUxBM0N0Sy8xemd5dDNRVnhrN0tlbXRqbDFBK29GZ3laUUlFNlRRVlNDWThSVGFJNENzRTY2Z3VYQm01R1hNYUZ1eEh5cjJ4QVFQTE14SmthRnNCUjI4MnBRZGRNYlV4SndRWE4zMER2ZzVTdDR0cDhNcnI5RytqYUNObXFtc2ZWZGEyS3BpcHJxdzJhb015amZVSjRuM2lpRHlFdkdROUN0L2RsNi9SUldiU21nTW1mZTNyemN4dVRxcXJ5N1dubE5yR056Q2d2SXhoWURQQnRmVnVVQStRUTZ2a3NjTEJ6ZXU2Y1huQm9CMzBNLzRpZDBBd2FjQmNzdHcwOTJFN2h1QitFZllKeG4xSm1SNkxCNkZwQ3UzdHNSenZBVHZkak5sRHpPQ3NkajNMbU81ZlhGKzd3L1lWRE1IY0V2SmxEQ0hGSUNPeWhJd0xvZ1pidERFRUcvajZuR3RTdHJsRGRaUGRtcDUxRThwL09DczFBTm9TeUF4NXdHamdNWk54TW5Ocm9oZjJ4bWI1Q1RaWVdDcUlxL2Q2cUoyeHBqUWcyN1V3Yk5FOXFsY28wK09YNnFhOWF4akk1ZTNNelA2QjBuVSt1VC96czV1QWRTVTNwRDNkVXp1YXJUVXVySXM1aTFSb0psanMzUnhjT0pRd0gyT2VNUExkNTY4SjJEZExxSkY4NXRZcmpHbHpXcHlTRTd4VmdwN1piWmpOdkg1M3VvSHNDUEx5UEhyd1FQZmdhbllKMmE1YlNMVEJRd1BSeDhEVURGOFNqTDJEbzV1MHowTCtZQWJaZDV5R0loNUFLVEFMUGVRaTYwRkl3QjRKT2RPaTFnYnRtaS81Y3djNFhjTTZ1Ynk3UFQ0OWdlelBDT053VEFjemd6T1ArWm1zL0o2ZFA1S0h3ZmZvL2tRZVA1RFRnT01Ud3BqNWhvVThaMnpNY1FyNXpiYVdhQmdUd2tBQS85cDhMQUQxQ0VQd3lCWmdKYjUrRi9oOVl2SjJOYUVtOFVEREErN05KNkY5Rmtxdkk1SEttc2dKMTUrYW1kNWJGa2p3Y1d0SFNxRHd0NjZ5ZHpHUzAxRTZsOU5TMGxjcHFaMmtpT0Y2MmV1dDExWllRK01QeDFkM283STdROE83MTJYQjBkL1Y2U081QzdHUUZISDFHcHUvb21pOHpXdm5tZnZMUng1OE9EdHpGOHVUOTlkSEo5Q3BUczJOQ2w4SHgxUDJWL3B1Ulg4bURrQzA4L1MzNHF0U0x3K1RnVXp5ZWZ5Ukg2WGg4c0JoOVBCNmZuWnh6TWcyblUwYlc2WEd6VWgzOHd3bFp6VlFGOXdsM3JrN2Z2bkdKdjcxVkhvZUVjd0xCNUlaZjk5dEE2WmJzajhBOWMzVjZPVDdmUlV0bTdXWWt5dG9hdnV4Z253bk9TYUFTTzRDYlJhR2ppc0tzb2tGUlBwdVBuWXZSMmMwK2YyajdoL3Y5Y09sZGpvKytaUWxzWkpPYmFsSVdCcGtGM09sN0dtQUtSc1Ivdm80NW8vTnZtUi9hL20vWVI3RWQ0RThycWphYndYbjd3QVMzbzZtckdsSnAyVXdVMUJhK0EvbUhONUpIeDNJMGx2eFlIbnJTRDZVL2xtUWtENFVjQlRJY3kwTW1LWlhEUUE0UHdWbVNITWxnTEptUTNsZ2VjZWtKZVV5azhLVEFFaDlKNGx2QVl5NTlJZG4ybWpTcnR0UG4yTnhNM3NLelhDNzdtdzNlTCt2MDl0YXNJRU1HclVYYjNONkNPV2dTMTdEcTlsWkZEYkszTjdLV1BFTmpUMmlQaWR0M2dCTFZ0SGNSeFAweWk5dkpYV0pNSEVHdy9RUHFISnNUM2JISFJLS3BOWUtjTFlXTDFoWVc5bVhISHJMaXR5YnRrbjlQS2MvWHpFTStuQktJR3dWcG9RazQ0dFJFeHZnYUxuM1BGaThOMUpwZDF2YVQxdk1hbko4K0ZoT0ZXZjZVSkRiRjdqb2dCWVFFOFkxWjIrUnZtNnQxcmQ3YjRkblNWTFAycWdsV2E2aFhKcXYzTjlWeU1BQjhxR25neElBNUI0bFozZGZWcC9TWGs0Tm9Hbi80K2NmVmovd2R6QUhZR29SRHdtUlZYR3lLa2N4MDFVZldYRzZIaG5sZUxnMFkxdFp6OHdYV1FQWnBmZE5KUHkwV1dmdFlLTytPMkhTMUx2TzhxeE4rVitvTklFL0pOelIyMDI5b3VndCsveUV0ZnI0ZlRVZnZickxGNjQ4bjdmVEQwdWJWNGdjejhCbGNPbkFWK2tIZ00wRTlJc0FYV1hNMno5dnNBaW85OE5yV3lWbHpXSmNxMXZEOW4vd2NtMmllN3FiYThQOEJtNi9xWVc2Z1ZrWW1EQTNpZ1FjVmVhUVYwa2tjZWNLUHVCOXFXd2Y5a1dJU2VOTzZuRmNkN3dwNHUxcndQeFY5QTRhTkVBQUEiLCJzaHJUb2tlbiI6ImV5SmhiR2NpT2lKU1V6STFOaUlzSW5SNWNDSTZJbkJ2Y0NKOS5leUpoZENJNkltVjVTakJsV0VGcFQybEtTMVl4VVdsTVEwcG9Za2RqYVU5cFNsTlZla2t4VG1sSmMwbHVaekZrUTBrMlNXa3hURk5VVGxKUFZ6VlBWV3BrYVZWdE9XMWxSekZzVjIwNVdXTlhTa2xYYTJSc1pIbEpjMGx0ZEhCYVEwazJTV2t4VEZOVVRsSlBWelZQVldwa2FWVnRPVzFsUnpGc1YyMDVXV05YU2tsWGEyUnNaSGxLT1M1bGVVcG9aRmRSYVU5cFNtbE9SRlpzVFVScmQxbFRNV3RaVjBwdFRGUlJlRTVFVlhSWlZFRXlUME13ZDA5SFJUUk5hbXhwVFhwQ2JFOUhVV2xNUTBwd1l6Tk5hVTlwU205a1NGSjNZM3B2ZGt3elRqQmplVFV6WVZjMWEySXpaSHBNYlRWc1pFTTVhbHBIVFRGWlYxWnNXVk13ZUU1WFRURk1WRkpyV1dwWmRGbHFRVE5QVXpGdFdUSkdhMXBFU1RGTlJGWnJXWHBKZGtscGQybGhWMFl3U1dwdmVFNXFaM3BPZWswMVQxUkZlRXhEU25WWmJWbHBUMnBGTWs5RVRUTk5lbXMxVFZSRmMwbHRWalJqUTBrMlRWUlpORTE2WjNsT2FsbDRUVk4zYVZsWGJIWkphbTlwVWxSS1lWb3hiRkJhTVdNeVYwaGFUbVJGV2taaGFsRjRWVzV3VkZsV1VrdFhhemxPV1RCR1FsQlVNR2xNUTBwb1kwaENjRnBEU1RaSmJVVjZXVlJOZWxsNlNtaE1WRWsxVDBkVmRFNUVSbXROVXpBMVRWUk5NMHhYUlRGT1JGbDVUVzFWTWs5RVJtcFplVWx6U1cxR2QyTkhiR3RaVjA1NVNXcHZhVTFwU1hOSmJVNTFXbWxKTm1WNVNuRmtNbk5wVDI1emFXRXpValZKYW05cFZXeE9Ra2xwZDJsaWFVazJTV3BTUWxkSVVtOVdNMlJRV1ZVeFNHVkZOWHBqVlRsWVYyMUtaazFYYkdwU1ZWcExWVWhPWms1RVpGSmFWM2Q0VmxSV2MxWnJjRTFPYW1SNFRUTlNVVTB5V2toTlJGRjBWbE14U1dGc1dtbGxibEpoWW0xYWFXTXlOREJpYlVWNVZteHdRMUpJV2xwaWExcFJVbGhzWmxadVZucGxWV1JaVVdzNVNHRXhUbFZUUkdSV1VWVjBiR1ZIU25sTmJHeGhZak5PTlZSck1ETmpNazR4VFRKSmRHUXlUbnBTVlRVMVZrWnNTbU5xWnpKaVJYQnpZakp3YlZRd1VtRlRibVJvWVZjeGVFMUZUVFZhV0dSdlRtdGFUazVHUWtkU2JXaEVUVVpLVjFkdGNGSlZiRnBRVFVkR1FtTkhSVEZXU0ZJeVZGWlNUbUV5V21aaldGRTBVek5KTWxneFJsTlphMUl3V25wb2FWSnRaRmxTTTJoRVVXNW9VRnByTlZGa1ZGSk5VbTF3YlZkdFNsQk9hMDVNWlVkbmQweFlRbEpOUmxwbVRWYzFVMWRxVWtaV00wa3hZVlZvZFZGcVpIWlNWbVI1Vmxkc1RGWnNXa3RWYkRsMVRUSTVRMU15WkVsU2VtUlRVbmt4TmxkVk9YQlhWVnA1VkZkS1JsZFdWa3hSTWtZMlVXdHNhVlV6VGpOaWFsWldZVzVDYWxKNlRsVk5XSEJtWlcxT2QyUXdWazFZTTFwSlZHdGFiR015Y0hOWFZtaHpZMjVDZFZaVk9URmtXRXAyVkVoV1JsbFhNVEpUVlZwV1ZWTkpjMGx0VldsUGFVcENWVlZHUTBscGQybFpWM2h1U1dwdmFWVnNUWGxPVkZscFRFTktjbUZYVVdsUGFVcFhUVEU1UTJGWGFFdFdSV3d5VlRKUmVWWXpXWFJWUmxKd1V6QTFOVmR0T1dGV2JXaGFUbXRPYjJGR1dsWlJWRlpPVVd4R1lWcHVZM2RKYmpFNVRFTktjRnBJUVdsUGFVcHZaRWhTZDJONmIzWk1NMDR3WTNrMU0yRlhOV3RpTTJSNlRHMDFiR1JET1dwYVIwMHhXVmRXYkZsVE1IaE9WMDB4VEZSU2ExbHFXWFJaYWtFelQxTXhiVmt5Um10YVJFa3hUVVJXYTFsNlNYWkphWGRwWWpKc2EwbHFiMmxOYlUwelQxZE9hVTU2WjNSTk1rNXFXVk13TUUweVZtbE1WMHBzV1dwSmRGbHFRVFZPYlZacFQxUkpNRTV0UlRSSmFYZHBZMjFuYVU5cFNYZE1hMFpUVTFWRk1tTlVaRWRsYlU1V1ZtNVNjazF1Wkd4YWJtd3dUVWQ0UTFwSVpHNWlNSEJaWTJ4T1prMXRkRmRSYlRsSVdqQnNlRkV5TVRaU1J6aDNWVEJHUWxGVE5HbE1RMHA2WkZkSmFVOXBTWGxaZW1NMVdUSkpNMDlETUhwWk1rNW9URlJSZWxwWFNYUlpiVlpwVFdreGFVMUVhekphVjBrMVRXcFJNbGxVWjJsTVEwb3dZVmRSYVU5cFNtcGFSMDB4V1ZkV2JGbFRNSGhPVjAweFRGUlNhMWxxV1hSWmFrRXpUMU14YlZreVJtdGFSRWt4VFVSV2ExbDZTV2xNUTBveFpFZHJhVTlwU1ROU2EzZ3lUak5TUWxSc1ZuSlVNREZ6WkZVeGRXRlliRXRrVlVaQ1NXbDNhV1J0Vm5sSmFtOXBUVk0wZDBsdU1DNW1TMnBVVUU1ZlptWkVhMFJ1TW1oVFlXSldPWEpGUlRsMWR6UldPVW8yVVhVM2QzbFBiRzh4Y2kxbGRVczNNM1pHUld0eFgwMXpYMnRSYXpKTWJYcHlSalpaVFdGaFJERjBiMms0V0hkVFNsTnNhVGN3VWxoQ1VFcE1VMGxGVEZKNWVqTTFjalozVTJORFRIWkVMV3BaYjNCZk1GRTFjVzlaYTJGeFVIRmlVWE5rYURCUmEwbDRaMkowY1hOb2NUQkJUQzFXTWtsWGFuUkJjbWR2U210dmVtMTVVbE5UZEVndFkxWnZWekUxV21kNFUwNXBXRTV6U0RaNlYxcDZiRFJFTXpJNFMzVkxZMHhyUW0xU2NtMVpWemxNVUhCNFRVMUxMWHAyYjI5a1JWUXdWbTVLZFRZM05ubDRZbE4yYm00MlEwZEZNWHBhWkZoU1dqVkNZbWhCYmxkeFZqZ3hNbXBZVm5aUWIwVnhiR3BYYVhCb09GRkJlbkZpUjJwc1REWmllVEEzYTJOU1NESldZbkpKTkd0QlpHaE1WRFUxVm0weGJuVkdWelJzUVROWFFYVnFSamhCTTFSQlNEQmFOMGd3VUZSVVNuY2lMQ0owY3lJNk1UWTRNemMwTXpJM01Dd2lZaUk2SWs1MFJUSnlSRUpPVkZSc2RsOXphVXh2TTFkemMwdFRjMEp0TFZwcFVEQXpSMVo2UVhRMVlqZHVWamdpTENKdWIyNWpaU0k2SWpBM1pqaG1ZalkwT1dZd1pUUm1Nalk1WXpjeE1HSTBOMlU1T0dWbFpqSXdJaXdpWTI1bUlqcDdJbXAzYXlJNmV5SnJhV1FpT2lKalprTXhXVXBrU2twb2JuRmpTVzlNUTNsT01FbHhhSFI1Y1VOYVJrTTBhV1ZMT0dWNFEycFNWSGxySWl3aVpTSTZJa0ZSUVVJaUxDSnJkSGtpT2lKU1UwRWlMQ0p1SWpvaU5FRllkR2hYZDA5aFRVZDRUbk54VDFkYVlsOHhhV05GUmtwUWMxODBOMUZsYkRGVk5XeFdTa3cyTjNFemRGQXpaa2N3TkMxVkxVaHFWbUo2ZEZwdVptSnpialJ1WVRKV1drSkVkbGx1UmxCRmVWOVdkWE41UjFoQ1QwZHJVMVJJTjFWQlMyVjRZbkl5V1ZwdmMzbE9UVGR6WTNVellpMTNZM05GVG5sVVdVbHlPRFpzU214dmFtWlBSRnBLZDJGcGJYRXdRemxsZDJnMlJrMDBVRVpHYUVNd1VsWmFhbEZTVms4d1lVRndZVFZVZEhaTlZFMXJabDl4ZERoTGNqWmZVVkppUkhSbk9HSkdaMWhIZUVOQ2VFOW1UbEIxTkV4R2FtWmFZazgyUTB0NGFEQXRjRkV3Vmw4eGJsSmFORVZYY2pWcFNHNUNOMjlGVjNKVmFVdFdWa3BTWDI0emIwSkxaMGhITjFKSExYcFpUMmxaUm5KTllrVlpWVXREWVhwQ1NXSlRjM2R1TlZWcWNHTkhNMVF4ZWw5NlkzQjNSVXhmZGtoT1JtVnphbXhaV0d4eWNHNVZUM1YxY205TWRVVmhiWFpKUmxWUkluMTlmUS5HXy1jR1RlNXF1WWNtclpybEExR29XOGh2YWpnYWtiLWxTXzNuMEdxNlpxcDU0T0djZ183cXJiT1RhMW54VXpOelhsdzFlQkZYajhRdkV0RldJazVfcHlPZ2NNYk9lUE9BYWVDbnN4T2VNVTV3SGNmVFgyMG9NblFNbkpsU2VhcDc2M2dodkZqSXgwNkFhMjdwa2RyWk1DNFBtNUt3OGI0Q3BMWGx5S1hkLWRjaVdDNjNuSHIwZHExV2NzUDMtUTB3dWxFMk5tZ1FYQUFCTlhwT0VvQjlRWlZ5SmZFRnQwd1JtUkRoaEF2Q2x4c2JFNkxMUjlDV0J6LW5HVUZ5b0lVRnpMZG00aGxQVnFQblJTblR4X0RFMjEzdjlfcFhrZHJDRjA3RVFQdnhtU1RtSlpjTEtudWR6SmxMQU1DWHNXcGxVVjA0Nms2V1VNX0RtZVNzMlJ5YVEifQ.\u0022,\u0022correlationId\u0022:\u00225504e9f2-e88e-4751-9bca-cfdb596b468c\u0022}", - "messageId": "a89cffe7da0e41e49b1dc2597e8e387c", + "body": "{\u0022to\u0022:{\u0022kind\u0022:\u0022communicationUser\u0022,\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022from\u0022:{\u0022kind\u0022:\u0022communicationUser\u0022,\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC94LWNvbnYtZXVuby0wMS5jb252LnNreXBlLmNvbS9jb252L19BWE1CZmZuMGtHZGJuRTBRMTRqdEE/aT0wJmU9NjM4MjA2NTQ3NTE3MzQxMDc0\u0022,\u0022callerDisplayName\u0022:\u0022\u0022,\u0022incomingCallContext\u0022:\u0022eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJjYyI6Ikg0c0lBQUFBQUFBQUNzMVlhMi9qdUJYOUs0SUw5RU14dFBqUWd5UmdGSTZUekdSbjhwakVTYlpCVUlPaUtKc1RXZEpLY3V4a2R2NTdMLzFJbkhHNms3YTd4U3FBTFBLUzV4eGV2dTdOMTQ1V2VYNVN0amF6V3JXMkxEcnlheWVyeTZuN3RXbEhkcmhVdXBFa1NaV2lpVUFpeERFS3dvQ2lKSWtDcE9LRVVvMng0bWt3d3N1SGNKU0pTQ0VheEFvWnBtTVVDcVp3aXJFV1duZmVkVkxiVkxsNk9GRlRBL2hRWVlxMEttM1JIamsrbFNpaEU2cVJNUUZHUWNRSVVta1dvREJqY1d5d0NxbWgwQ2RYeFhpbXhzYjFLV1o1L3E1VHFicTEybFpxRFlSNWxuTE9HR0k0QWFCQVlNUU55MUNtTU1PVWlsZ3BCVUFUbTZZR2hwMnB2REhQV29ZUGxWUFhtUHJlMVAycWdwWlZYVmFtYmgvMjFIakYrZTFkcHkxL0QwZXhhTWRSeVE4ZHRRTEJHTDN5Mmp4dmNoVG5SQW1oQklyQ0xBT1BKeHJ4MkFTSXBWSE1jSlNKT0dTN2pxcE5VODVxdmNUdHZHWFUvOGFEdVMzdUd1ZEUxYlpLVHdCczByWlZJMzFmVmJhYjVYWThhYUhmNHFIYjNNR2NkSFU1ZFJiL252cTY4aGRJdzBxWkZTWENwS3YxVmh1dC9YdmlaMlY5WjFLZkpZRkphYVNSU2loSFFaSXlsQWh1a0dJa2kya2FoanJLZkJyN2x2Z3NFUDVLeXQ5dHo2MjBxVW10NmhmTjNOUWdUbXRRTm5VTEIwU053UW5ObjBMeFJzeGFjMjIrR04zK0taU3RwS3gxemRKcVdLdWlxY3JhcVlNaWFDT3NHd2RkRXJFdXhVeXlJT1orNTl2YTc0T3lhRTBCYmI5MjlPcHp2VEZWVmVYckk4dHZVcmM5azd4TXdIRGZ3N2YxYlZIMmtFZERSanpzSFoxNFIyZUJSMmpjeGZCSG5MbnBOZUF0Nk93S3VyZHBFdkZ1Ukx1VWtDNFJ6Sm1TM21Bb3lYbzN1WXEyaDczbHg3U25acWt0dlVBd0Vuam53ek8vZjNYbUVSeDRBdDdNSTRSNGhBTTk5MFFNTlZCeWxSeDA0QitRcWw3ZDZnclZqWDAwVytVc2tYL3pGbWdLd21FL2UrQUJyNEVUUWFiTnhLdU52bmNmcStZTDFOaHhvV0JyalgrcjF6TzJkS01JVjJXckRacGx0UnJMK1dMdjhibXVtcWR5OFBQTjRWVjh2WDgyRnlmdmY1cmF5L0hEa2VIaXc1Yks2V3l4S21sVnBEWlZyWkV3ZE85eS84eWpoT0VZUndITXlzdEJyNTNZUG9DMk9zc1hYcTNTdEFhblFRTU9VeFo2dFZzeHEyYTc2SFFMUFJUT3hidm80ZHZRdysvUktXaDN3MUs2QlFZS1N5SEM4U3NNSktSdllZQm11d3owRDJhQWRiZjBFS0VocHdLVE9QUkMyaVVFTmgzblhSRjVzT2ZFRXJzMmNOOXNzRjhLMkpvQjczaDRlWDV5dE8vUkNDeVU4b2dFTEloQ2dmSE83TEQxN0N5NXVZZ2krajl4aDAvY2pFUUJ4NEdBTzBvUUVNRlcrM09iRy9iVzByT1ZhaG9RRUhBQy9EajZUa0NJc1FqZnJJQ0pYUmI2ZjJBSnQ5YWhJd2s1ZUFQLzdpVDBqeUxKVldKeU9WVzJRTXR6YzFVN3Rha2ttek1ybVJ1Vmo4dmF0cE9wVE9iYXE1UytNMjJsYk8zTlRRS255MXB2L1ZDMUplejcvc0hGYUhBOElwU1BQaHozQjZPTEQzMHk0dGl6Qlp4OFJzNkhOM3RYMlZ5UVQ4UGhXWmlwMDV0Q2ZZamI2djdqcElwL0tpZW5qL3pFdi9DVFgray9HZm1WYklTczRlbVA0TC9FNWZYcHJQaEhkWHlSMWJQSlFYN0g3bEwrMkFaSCt1NHEvV3o2cy8yMnNPUmdDYjg1SUt1cHF1QStDYnlMbzA4ZmZSS3RiNVVuay9EZXg1VDYvUHQ2ZDZNc3UreGE0SjY1T0RvL09ObEd5NmJ0eXBMWXRvYVo3ZTB5d1RFSlZHSUxjTldKZTZvb3pDTHBGZVdMOXRnN0d4eGY3dkp6VjkvZnJZZEw3L3hnLzdXUndFSTJ1YWttWldHUXVZY3JmVWNETk1HSVJDLzdNVzl3OHRyd3VhdC9aWHdVT3dPY0VSdEQxZG9wSExjYkpyZ2NUVjNWRUU3TFpnSlJlQmg1UVNCSkxNTjl1ZGVYZkNBSFZBNGllUmpML1VpS1VBcjRGbklnSk9YeVlOOTk5TEdNQnBMc3ljR2hEUGNrRzBqQlpFeGxuOGlBeWNOREtRYnlnRWphbDJSZjR2VWlNSXQycWM5enNabThoV2MrbjNkWEM3eGIxdVBiVzdPQUtCbTBGbTF6ZXd2RFFaTzBobDYzdHlwcGtMdThrUnZKQ3pUMmpQWVV0djBHVUthYWRwVEF2cC9idEoyTU1tUFNCRGJiWHlEWGNVSFJpRDNGRVUydEVVUnNZN2huWFhMaFhzNjJpWXMvbWZFeUFXQXh6MEk0ZzEzQ2xrQ3lGWVlvNFpEZ0NCV2JCUEtIU0tYQ0pUQU41SnZMb08xVTYxa056aDgvSlJTRm1aOW1tUXV5bHhVUUFVSjQrTkU4dU5odkhhd3RTeDFmVDZ5d29iMytaWEl6U0xMRjVlSG42OGR4cndmNGtOZkFpUUZ0UHB5ZkZzSDRRcDhPcXRsVmNUTzhIcjZmSHZlaERjRFdJQnppSmFmaWJKV1FXTFBNUUd4enZqYjE4N3ljR3hoWVc4L01OK2dEd2FmenpWTDZVWEZ2MjZka2VkdmlvdFc2elBObHB2QWZodDRBOHh4OFEyRTcvSWFpUCtyL2ZMeVhaUVcrZTU4bXhRSCtUSUl2YlIvaWF2eFgwNHNZcHpnS2d6Z2tNUXNJamwyMlpadmpXZDdhTTBqM3dHMXJMOXRtcnk1VnFtRUJQRHM2TmNsc3ZCMXF3ejhGVnRNSzF6cG1FVWFSQ1dCYU02MFFaeWFCZ0Q4bHNZb1VEaFBpVXFIL0pxTUUzbkZkenFvbDd3SjRsd25odndCMWNYdVBraEFBQUE9PSIsInNoclRva2VuIjoiZXlKaGJHY2lPaUpTVXpJMU5pSXNJblI1Y0NJNkluQnZjQ0o5LmV5SmhkQ0k2SW1WNVNqQmxXRUZwVDJsS1MxWXhVV2xNUTBwb1lrZGphVTlwU2xOVmVra3hUbWxKYzBsdVp6RmtRMGsyU1dreFRGTlVUbEpQVnpWUFZXcGthVlZ0T1cxbFJ6RnNWMjA1V1dOWFNrbFhhMlJzWkhsSmMwbHRkSEJhUTBrMlNXa3hURk5VVGxKUFZ6VlBWV3BrYVZWdE9XMWxSekZzVjIwNVdXTlhTa2xYYTJSc1pIbEtPUzVsZVVwb1pGZFJhVTlwU21sT1JGWnNUVVJyZDFsVE1XdFpWMHB0VEZSUmVFNUVWWFJaVkVFeVQwTXdkMDlIUlRSTmFteHBUWHBDYkU5SFVXbE1RMHB3WXpOTmFVOXBTbTlrU0ZKM1kzcHZka3d6VGpCamVUVXpZVmMxYTJJelpIcE1iVFZzWkVNNWFscEhUVEZaVjFac1dWTXdlRTVYVFRGTVZGSnJXV3BaZEZscVFUTlBVekZ0V1RKR2ExcEVTVEZOUkZacldYcEpka2xwZDJsaFYwWXdTV3B2ZUU1cVp6Rk5WRVUxVGxSWmVVeERTblZaYlZscFQycEZNazlFVlhoTlZHc3hUbXBKYzBsdFZqUmpRMGsyVFZSWk5FNVVTWGRPYWtreVRXbDNhVmxYYkhaSmFtOXBVbFJLWVZveGJFUmhXSEJyWkZWamVsVkhWbUZsYW1SWVkyazVkRlpUZEUxa01tTXpZbFZHTTFGVU1HbE1RMHBvWTBoQ2NGcERTVFpKYlVWNldWUk5lbGw2U21oTVZFazFUMGRWZEU1RVJtdE5VekExVFZSTk0weFhSVEZPUkZsNVRXMVZNazlFUm1wWmVVbHpTVzFHZDJOSGJHdFpWMDU1U1dwdmFVMXBTWE5KYlU1MVdtbEpObVY1U25Ga01uTnBUMjV6YVdFelVqVkphbTlwVld4T1FrbHBkMmxpYVVrMlNXNVNTMWx0TlV0VU0xbDRWakI0TkZwdGR6Sk9WV1JTVGxSS2EwMVhPRE5oTUhOMFpETkdlVk5HUW5oVk1WSlNUVVp3TTB4Vk1IbFdNRFZYVkVoS2ExTnJWbGRaVlhCRlRraHNiVlZ1VmtWaU1XeFRVV3MxUkZSVmVFTmphbXhRVVcxd1dWTnJSbXBaYldONVpHcFNTR05yVmtwYVYxVjNUbGRzZDFWVVNYcGtlbHAzVGpOYWJFMTZRa3hPVjFKS1VtdHNkV05IV25sVmJGcHFaR3BXTW1SWFNuRlVXSEJaVG1rd2QxWXpiSEZSVjFKNVYxUlNkVTVYZUZkaU1EbDFUa1ZLY1ZKV2IzUk9iVVoxVVc1YWExVnRWbXRXUlhBMFVtdDBiMVV5Y0hCTVZtaHlXVmhLYWxveVVYZE9WMXBwWXpOdk5WVXhiRk5WTUhoRVZtMWFkRk51YUU1UFZGSnVWa1JvTTFOdGFHaFRla3BGVG0xT2FWVklUWGxaVkVKWFZVVndUV0ZzT1ZkU1JWRjVXV3hvYVZkcmVHcFJNMng2VTFod2FFNVlhelJaYTFJMlRsVjBkMVl3VG01WFV6RlVXakZHV1ZOVVJrZGllbEYwVldwb2JWUXlhRE5hYlhSV1dtdFdiRlpITVROVFIxSjVaR3c1Y2xWRmNFOVZhbFpDWVc1Sk5GTnFZM2RpUlVZeFpVZG5NVkZ0V2toUFZuQjNUVlJPYjJGVmVIWmpNMFUwVWpJNVIxRXpVa3hsYlhodllVZDRlRTVzUlhkaVZVNTVZMjVvYmxrd2QzaFVibWhVVlZOSmMwbHRWV2xQYVVwQ1ZWVkdRMGxwZDJsWlYzaHVTV3B2YVZWc1RYbE9WRmxwVEVOS2NtRlhVV2xQYVVwNVZXeE9jbFZFUWxkT2JYY3paV3c1VGxSWFRtWlVlbEp6VmxWYVNscEhSbE5aTTFsNVlYcHNVMUpGUlROalYxWk1WakZXUkdRelJrWkpiakU1VEVOS2NGcElRV2xQYVVwdlpFaFNkMk42YjNaTU0wNHdZM2sxTTJGWE5XdGlNMlI2VEcwMWJHUkRPV3BhUjAweFdWZFdiRmxUTUhoT1YwMHhURlJTYTFscVdYUlpha0V6VDFNeGJWa3lSbXRhUkVreFRVUldhMWw2U1haSmFYZHBZakpzYTBscWIybE5iVTB6VDFkT2FVNTZaM1JOTWs1cVdWTXdNRTB5Vm1sTVYwcHNXV3BKZEZscVFUVk9iVlpwVDFSSk1FNXRSVFJKYVhkcFkyMW5hVTlwU1hkTWEwWlRVMVZGTW1OVVpFZGxiVTVXVm01U2NrMXVaR3hhYm13d1RVZDRRMXBJWkc1aU1IQlpZMnhPWmsxdGRGZFJiVGxJV2pCc2VGRXlNVFpTUnpoM1ZUQkdRbEZUTkdsTVEwcDZaRmRKYVU5cFNYbFplbU0xV1RKSk0wOURNSHBaTWs1b1RGUlJlbHBYU1hSWmJWWnBUV2t4YVUxRWF6SmFWMGsxVFdwUk1sbFVaMmxNUTBvd1lWZFJhVTlwU21wYVIwMHhXVmRXYkZsVE1IaE9WMDB4VEZSU2ExbHFXWFJaYWtFelQxTXhiVmt5Um10YVJFa3hUVVJXYTFsNlNXbE1RMG94WkVkcmFVOXBTazVhYXpBMVUxWkNWVmRWVmtaYVZWSkpaRVU0ZDJOV1RuQmxhMFpDU1dsM2FXUnRWbmxKYW05cFRWTTBkMGx1TUM1T05sRnhNazFqYzB0MWFUWlVkbkpMWnpCVWFYWnBkMUo0WDB0S2ExSlZZbWhYTURORUxYbFBlVTF5UzB4TWMxbEJWVzlHTVdkdFIwdGtSUzFqTFZOS1lUZHNURzFVTW10VVpYZFZTalJEWW1GRllubEJkbU5KVlhCTWVWSk5aV1ZUUVMxMGFTMW9ha2RGU0V4dVMzY3pNbE41YW1aV2RYTnlhR016VkdkdVYzWlhhMUJqYjE4M1JIWlJZamhZZG5nMGVEbHBRazl4U0c5VVFrMTNVMkZKWm5KVVJtdDVPRkZET1hwSVNtUm5jMWhMVUV4Nk1XcHpNbEJ3UnkxdE5WVllVbWRGTlhKdFRWWkRURUpmTWxoSmJUZHdUamx2VTI4NVNsZENhR3B5TTJSaE1ERmZURVZvZW5sRFYwUlhTbFkzYlhacFRuRjBTUzFSVWpFd04wcFBNVmxYTjBVMk55MUhReTFoWW1sM1JrcFdla2wzVlhoTE5VOU1jM0JPTjJ0cE5uazBOR05GUkhvdFlVeHNjVGd6U2paeE0zZE5UMk16YmxCa2RrZEdPVzFPVlVSSGREQlJVVlJmZW0xRE1sQnRNVmhUVkVFaUxDSjBjeUk2TVRZNE5URXlPVE13TUN3aVlpSTZJalJ1WTA0eFNsSklUVGczYlUwM1FrNUNUMjQ0U0ZCclZUQklNMDlWYldoalQwSkpZM1JSTUhwUlFsRWlMQ0p1YjI1alpTSTZJbVk1TkRrNE1qRm1PREpsT1RSbFl6QTROemN4TWpOaFpETm1aRGxtTldNeklpd2lZMjVtSWpwN0ltcDNheUk2ZXlKcmFXUWlPaUkzZFY4eWMyMUVTbTVUTVZwYVR6aERSRk41ZFVaT1dVNVlSM010YVdsRmFVWkhNRFptUkd4S1kzaGpJaXdpWlNJNklrRlJRVUlpTENKcmRIa2lPaUpTVTBFaUxDSnVJam9pZEVwaWJrcFBkakZYVEhobWJEWTFSMUUxTW1ReGJ6ZHJTeTEzY1hKSVVIRlRWRkV3V25jdFRUSlhUbFpNY21SS1JWWmhTa1EwZVdaU2RVUnZXVkpDVGtOTlRFSnlPVTlDYWxoS1FXTmlaekoyTkVkeVJVbGxaVEExYVhCUk1qTjNObkEzZG1Vek1FczFaRWxHU1c1d1puSlNWbU4yTlhaMVltcE5lbGcyTFRCWGVXcEJaSEpaTkc0MWJGWnZUMjQwUW1wRldpMDJZVzVDZG1SU1pXUlVTbmhHUzJoVGFta3RXR3RoY21OblpEQTFabUp6ZWpsVFdWSlRURU5XWm0xS2VFMDVOR2RVT0hkS2FHRkxNa1EyWTJKUWN6SmhNRlpRU2t4cVgxWkVSREppV0dKYVRHTkRlWE5KZW1FMWVUaGlSSG8xUzNCWFEyZFpMVk5uVVZoSk1VWnZOQzFTT0daUGFIZG1hMVZtUldWVWJYZElaSEoyWDJ0UVNrNVNOVUZxY2poS056QnNRWFY0YURWQ1prYzVXbkF4TTJocFRHOXpjVGhIYjBaRGRFdDZiR2hvYkhFMlVUQnRRM0p5ZUdkalRERk9lRk5SSW4xOWZRLlBYNVUxdURMSEcwemRfdW1yMGxBN3dfME5KNG40dEFnRHRSbDh2X0JpZmV6SUZnNHFlT0V6c0djSjRaT3NDVWdKZS12YlI3WGtsWXQxODVUSk9KYmFTUDJQWjVnYklZcUhzOGVtTEEtb193WWxYanBPSS1XWi1YcGt3czVCUjc4OTJ3OGw4ZnpySXpxZGtBRnlPZldlYWwwNVdzaE9Venh6U2lBME81U3ZSQTJGcjVCbGxLcUhiRmNDalhkcU9mdWNyTWdSUGljVzdGemdaYVhIYnljOWhXV0VuQWNhLURLYmtjX1ZmQk1LTDVHWTlSdWJYbXdLelk0ejZZMk53b1lOdUVQV2F1Y09SMU5kWG5WZ3ZYbGxTdUFDQzZ5SncyMndSX1dnc3lTUWNFSC10blJGN3dfMS1mT3dYRDJ4dVl3cUtQMjlQdUdicUU4UVl0OEZRbER6ZyJ9.\u0022,\u0022correlationId\u0022:\u002233460360-6e4b-4fca-83eb-b9d17a6a05b1\u0022}", + "messageId": "061f9b832ce34b058b2d302c201d30d3", "partitionKey": null, "sessionId": null, "replyToSessionId": null, @@ -11,13 +11,13 @@ "contentType": null, "replyTo": null, "applicationProperties": { - "Diagnostic-Id": "00-b6182ce8942ffc61dc2b134f73b1bdbe-64daa5f587658e59-00" + "Diagnostic-Id": "00-0ecbcf84b41883cd808a00d489d5854c-c5fac45631dc368f-00" }, "enqueuedTime": "0001-01-01T00:00:00+00:00" }, { - "body": "[{\u0022id\u0022:\u0022Sanitized\u0022,\u0022source\u0022:\u0022calling/callConnections/401f3500-5c7c-4781-8adc-3e51774e8bf7\u0022,\u0022type\u0022:\u0022Microsoft.Communication.ParticipantsUpdated\u0022,\u0022data\u0022:{\u0022participants\u0022:[{\u0022identifier\u0022:{\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022kind\u0022:\u0022communicationUser\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022isMuted\u0022:false},{\u0022identifier\u0022:{\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022kind\u0022:\u0022communicationUser\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022isMuted\u0022:false}],\u0022sequenceNumber\u0022:1,\u0022callConnectionId\u0022:\u0022401f3500-5c7c-4781-8adc-3e51774e8bf7\u0022,\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzd2UtMDIuY29udi5za3lwZS5jb20vY29udi92NHpXZ25YekNrQ1FVaXZIWkd0a1d3P2k9MTkmZT02MzgxOTI3NDY3NzYzOTI1MTk=\u0022,\u0022correlationId\u0022:\u00225504e9f2-e88e-4751-9bca-cfdb596b468c\u0022},\u0022time\u0022:\u00222023-05-10T18:27:53.0086127\\u002B00:00\u0022,\u0022specversion\u0022:\u00221.0\u0022,\u0022datacontenttype\u0022:\u0022application/json\u0022,\u0022subject\u0022:\u0022calling/callConnections/401f3500-5c7c-4781-8adc-3e51774e8bf7\u0022}]", - "messageId": "f5e2d2f45f6645d4aae712323d9a0c89", + "body": "[{\u0022id\u0022:\u0022Sanitized\u0022,\u0022source\u0022:\u0022calling/callConnections/411f1200-98cc-4751-9ef8-3072073ef879\u0022,\u0022type\u0022:\u0022Microsoft.Communication.ParticipantsUpdated\u0022,\u0022data\u0022:{\u0022participants\u0022:[{\u0022identifier\u0022:{\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022kind\u0022:\u0022communicationUser\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022isMuted\u0022:false},{\u0022identifier\u0022:{\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022kind\u0022:\u0022communicationUser\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022isMuted\u0022:false}],\u0022sequenceNumber\u0022:1,\u0022callConnectionId\u0022:\u0022411f1200-98cc-4751-9ef8-3072073ef879\u0022,\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC94LWNvbnYtZXVuby0wMS5jb252LnNreXBlLmNvbS9jb252L19BWE1CZmZuMGtHZGJuRTBRMTRqdEE/aT0wJmU9NjM4MjA2NTQ3NTE3MzQxMDc0\u0022,\u0022correlationId\u0022:\u002233460360-6e4b-4fca-83eb-b9d17a6a05b1\u0022},\u0022time\u0022:\u00222023-05-26T19:28:23.6285642\\u002B00:00\u0022,\u0022specversion\u0022:\u00221.0\u0022,\u0022datacontenttype\u0022:\u0022application/json\u0022,\u0022subject\u0022:\u0022calling/callConnections/411f1200-98cc-4751-9ef8-3072073ef879\u0022}]", + "messageId": "2d4d0e01c3c04dfe9c30ceb5fe7d1317", "partitionKey": null, "sessionId": null, "replyToSessionId": null, @@ -26,13 +26,13 @@ "contentType": null, "replyTo": null, "applicationProperties": { - "Diagnostic-Id": "00-675c19d9f6d8778d8b7c601485b82748-6cc975fc9739a8f9-00" + "Diagnostic-Id": "00-88a3903cc473fe86a8104f6125e5e00b-a31ad6cbaa6880bc-00" }, "enqueuedTime": "0001-01-01T00:00:00+00:00" }, { - "body": "[{\u0022id\u0022:\u0022Sanitized\u0022,\u0022source\u0022:\u0022calling/callConnections/401f3500-5c7c-4781-8adc-3e51774e8bf7\u0022,\u0022type\u0022:\u0022Microsoft.Communication.CallConnected\u0022,\u0022data\u0022:{\u0022callConnectionId\u0022:\u0022401f3500-5c7c-4781-8adc-3e51774e8bf7\u0022,\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzd2UtMDIuY29udi5za3lwZS5jb20vY29udi92NHpXZ25YekNrQ1FVaXZIWkd0a1d3P2k9MTkmZT02MzgxOTI3NDY3NzYzOTI1MTk=\u0022,\u0022correlationId\u0022:\u00225504e9f2-e88e-4751-9bca-cfdb596b468c\u0022},\u0022time\u0022:\u00222023-05-10T18:27:53.0086127\\u002B00:00\u0022,\u0022specversion\u0022:\u00221.0\u0022,\u0022datacontenttype\u0022:\u0022application/json\u0022,\u0022subject\u0022:\u0022calling/callConnections/401f3500-5c7c-4781-8adc-3e51774e8bf7\u0022}]", - "messageId": "43de13d5e6ae432d8b4db1fcc065f9bd", + "body": "[{\u0022id\u0022:\u0022Sanitized\u0022,\u0022source\u0022:\u0022calling/callConnections/411f1200-98cc-4751-9ef8-3072073ef879\u0022,\u0022type\u0022:\u0022Microsoft.Communication.CallConnected\u0022,\u0022data\u0022:{\u0022callConnectionId\u0022:\u0022411f1200-98cc-4751-9ef8-3072073ef879\u0022,\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC94LWNvbnYtZXVuby0wMS5jb252LnNreXBlLmNvbS9jb252L19BWE1CZmZuMGtHZGJuRTBRMTRqdEE/aT0wJmU9NjM4MjA2NTQ3NTE3MzQxMDc0\u0022,\u0022correlationId\u0022:\u002233460360-6e4b-4fca-83eb-b9d17a6a05b1\u0022},\u0022time\u0022:\u00222023-05-26T19:28:23.6285642\\u002B00:00\u0022,\u0022specversion\u0022:\u00221.0\u0022,\u0022datacontenttype\u0022:\u0022application/json\u0022,\u0022subject\u0022:\u0022calling/callConnections/411f1200-98cc-4751-9ef8-3072073ef879\u0022}]", + "messageId": "01ba42ed7e594c0089c44f2c56b2231b", "partitionKey": null, "sessionId": null, "replyToSessionId": null, @@ -41,13 +41,13 @@ "contentType": null, "replyTo": null, "applicationProperties": { - "Diagnostic-Id": "00-abb01a7d6618d61b2a28c747ecf3d7f2-79623a6cba571038-00" + "Diagnostic-Id": "00-ad531225a128dece44bb2fc87548bb2d-114418b99e60507c-00" }, "enqueuedTime": "0001-01-01T00:00:00+00:00" }, { - "body": "[{\u0022id\u0022:\u0022Sanitized\u0022,\u0022source\u0022:\u0022calling/callConnections/401f3500-5c7c-4781-8adc-3e51774e8bf7\u0022,\u0022type\u0022:\u0022Microsoft.Communication.CallDisconnected\u0022,\u0022data\u0022:{\u0022callConnectionId\u0022:\u0022401f3500-5c7c-4781-8adc-3e51774e8bf7\u0022,\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzd2UtMDIuY29udi5za3lwZS5jb20vY29udi92NHpXZ25YekNrQ1FVaXZIWkd0a1d3P2k9MTkmZT02MzgxOTI3NDY3NzYzOTI1MTk=\u0022,\u0022correlationId\u0022:\u00225504e9f2-e88e-4751-9bca-cfdb596b468c\u0022},\u0022time\u0022:\u00222023-05-10T18:27:54.1336256\\u002B00:00\u0022,\u0022specversion\u0022:\u00221.0\u0022,\u0022datacontenttype\u0022:\u0022application/json\u0022,\u0022subject\u0022:\u0022calling/callConnections/401f3500-5c7c-4781-8adc-3e51774e8bf7\u0022}]", - "messageId": "1b60936819694af0992efcb2b25fc380", + "body": "[{\u0022id\u0022:\u0022Sanitized\u0022,\u0022source\u0022:\u0022calling/callConnections/411f1200-98cc-4751-9ef8-3072073ef879\u0022,\u0022type\u0022:\u0022Microsoft.Communication.CallDisconnected\u0022,\u0022data\u0022:{\u0022callConnectionId\u0022:\u0022411f1200-98cc-4751-9ef8-3072073ef879\u0022,\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC94LWNvbnYtZXVuby0wMS5jb252LnNreXBlLmNvbS9jb252L19BWE1CZmZuMGtHZGJuRTBRMTRqdEE/aT0wJmU9NjM4MjA2NTQ3NTE3MzQxMDc0\u0022,\u0022correlationId\u0022:\u002233460360-6e4b-4fca-83eb-b9d17a6a05b1\u0022},\u0022time\u0022:\u00222023-05-26T19:28:25.1910817\\u002B00:00\u0022,\u0022specversion\u0022:\u00221.0\u0022,\u0022datacontenttype\u0022:\u0022application/json\u0022,\u0022subject\u0022:\u0022calling/callConnections/411f1200-98cc-4751-9ef8-3072073ef879\u0022}]", + "messageId": "cc7b79ff7e614f9ca6dca90b9d02b7e3", "partitionKey": null, "sessionId": null, "replyToSessionId": null, @@ -56,7 +56,7 @@ "contentType": null, "replyTo": null, "applicationProperties": { - "Diagnostic-Id": "00-038554d73514645a0cd6b3cb54649fe2-454bd3cd0c4c0349-00" + "Diagnostic-Id": "00-036dbe73a6fa3216c3e7fa9491af84da-b0d562c2ad84e61f-00" }, "enqueuedTime": "0001-01-01T00:00:00+00:00" } diff --git a/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecordedEvents/CallConnectionAutomatedLiveTests/RemoveAUserCallTest.json b/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecordedEvents/CallConnectionAutomatedLiveTests/RemoveAUserCallTest.json index 6dc5502e04da..34ea64f71735 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecordedEvents/CallConnectionAutomatedLiveTests/RemoveAUserCallTest.json +++ b/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecordedEvents/CallConnectionAutomatedLiveTests/RemoveAUserCallTest.json @@ -1,8 +1,8 @@ { "entries": [ { - "body": "{\u0022to\u0022:{\u0022kind\u0022:\u0022communicationUser\u0022,\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022from\u0022:{\u0022kind\u0022:\u0022communicationUser\u0022,\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzd2UtMDIuY29udi5za3lwZS5jb20vY29udi93RExtMll6WEFFLXVZOThYVWJmVDl3P2k9MjAmZT02MzgxOTI3NTY3ODYzNzY4NjM=\u0022,\u0022callerDisplayName\u0022:\u0022\u0022,\u0022incomingCallContext\u0022:\u0022eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJjYyI6Ikg0c0lBQUFBQUFBQUNzMVliVS9qT2hiK0sxRlgyZzk3eDYzdEpFNWlxVnFWVWk0c1E0Y3BNRHRjb1VXTzdhU0JOTWwxVWxLWU8vOTlqOU1DWmNyT1pYZnZTRGRJYWZ6MlBJK1BYODQ1Zk9sSmtlZlRzc21TVElvbUs0c2UvOUpMVExtd3Y1bnE4VjdJaGF3NWlaVVFOSTVRNU9NQWViNUhVUnd6RDRrZ3BsUmlMRUxsWGVQdUlTRVNUQ3BFWkNpUXE5d0loZG9WV0dHc1NDQjc3M29xcTZ0YzNFL0ZRZ00rVk9oQ1ZXVldORWVXVHdpUFNKWEVLQlMranp6bCtpaVd6RVhLRHdUVGhBQS9nVEc1S05LbFNMVWRVeXp6L0YydkVxYkpaRmFKRFZBaUVrL0tRQ0tsZklJODdHTVVLUm9oUHdoVmtHaWxoUllBTk0rVTBqRHRST1MxZnRaeWZsOVpkYlUyZDlxTXFncDZWcWFzdEdudTkwUzY1dno2cnRlVWY0U2hFclZqS1BXN2hscURZSXhlZVQwK2J6SlVSTDFFeWpoR09LRVllVzZVb0ppUkdERU5aa3BJeUtqM2lxR01yc3Vsa1IxdTd5MnovZzhXekxQaXRyWkdGRTBqNUJ6QTVrMVQxWHd3RUZYV1QvSXNuVGN3Ym5YZnIyOWhUZnF5WE5pV3dSMGR5R29nSlZyV1dsQ0VhVi9LclM1U0R1N0lJQ25OclZZREZTZUVDajlHd2xVSzlwVFdTUGhNb2pCMC9WZ3oxMDBvRzlCZ2tKR0I2MFdEdFpLL1owT3JlYUZWSmtaRjNXb0QycVFFWVF0ckR0Q1VnZzNxUDRQZ1J5MGJ5VWJmYU5uOEdZU3RsV3hrTFZWMWJrUlJWNld4NHFBSTBuemFKOFRyRXc5K0k4SmRMd2dIdmE4YnM0L0xvdEVGZFA3U2srdlB6YkVVVlpWdkxxeEJyZXpoalBNeWhvYTdJYjR5VjBVNVJBNmhQdk9JZzUyanFYTjA2a0U1NkdQNEk3WkRQYXpCWGpEY0Z1UncwOFhEL1NEc0U0ejdsTHEySlI2T3p6bVV1OGRXTkVQc2RCK0xvVmlxckhSOHlrTHN6TTVQQjZOUHB3N0JuaFBCMjNVSUlRNEpnVDEwb2dCcW9HUXJRNUNCdjg4cGhxYVJGVEoxOXFDM3lrbk0vK2FzMEFKa3cybDJ3QUpPRGZjQlYvWGNNVnJlMlk5MTl4V3FzN1FRY0xEUzc0MTZ4dVoyRXAxWnhEQ1RHaTBUSTFLdTNJZmd1YTVxRlQ5VG1YZjY2ZU5QaHRTWGwrNFlqKzZtMDAvekpOaFN1Vml1MWlVcENwVXAwV2dPTTNjdTlrOGRTbHdjWU9hNTVPV2NOeVpzN2tHYVNmS1ZZNFJTQmt6V3B5U0U5UXF3WSt5V1dmZmJSYWRiNkg0RUZ0NUZKMjlFSjkraVU5QnVweVZrQXd3VU1Ca092bVh3SXVMVE56QjAvWFlaNkE5bWdHM1hXUWpPUTBnalRBTGZlVHgwb2FXZ0RoeTZxRU0zR3R6TkJ2MmxncTBWY0U3T0wyYlRvMzNZM2k0T1NZU3g2NFBoV1JDeFhXcjZUQjFHak5IL2k1bzhVd2MraXdMZmkveUFobUVVWVhlWEhFNThaOWxLMURVbzhFQXFZNWk5VklBZFB5VGtqUkt3aDNkMmlMZFp2eC9MNG0vdFEwdmloNUZMOEI5T1FuOFVTUzVpbmZPRnlBclVYWnZyMmtXbStLYkRDc1d0Rm5sYW1xeVpMM2pjU3FjUzhsWTNsY2lNMCtvWWJwZU5Ybk5mTlNXYys5SGs3SHA4Y2sxb2VIMTRNaHBmbngyT3lEVnN6NnlBbTAvejRuTTdkK3VmMmwrbkh4Y0hleEY5bUFUdlI4RW5mVFA1VmYvOHo5SFp6RHY4Qi80d2MzK2ovM0xKYitSUnlBYWUvaDc4QXQ4azhTL2x4VjM5Y0tHUGo4ZHRXK1kzN2VYbE5QZlQ4eHZDem5EeHkreGpldC9CUDE2UTFVSlU0RTQ4NSt6by9mR0FzSTFUZVdxS25KOERTZ2ZodC9YV29YUkRkbHZBelp3ZHpTYlRiYlJrMGF4YjRxd3hzTExEWFNhNEpvRXEyZ0pjRHdvZFVSUjZGUStMOGtWLzdKeU9UeTUyK1VOYlA5cXRCNTgzbSt5L05oUFl5RHJYMWJ3c05OSjM0TkozTkVBWGpBaDdPYzUxeHRQWHBoL2ErbGZtUjdGdDhKNUhWRTIyZ092MmtRbWNvemFWZ1dDYTEzT0JJRlp3bU12OU1kOC80T01KOXc3NG5zOVp5Tm1Fa3pIZmkvZzQ0T0dFNzdtY1VqNEsrR2dQak1YSlBnOG0zSTI0UCtIN0h2Y2pma0I0NVBNSWM3elBDYk9BQng1bkVYZEhhMks5YWpwOWpvM04rQlU4YmR2MjF4dThYNXIwNmtxdklFWUdyVVZUWDEzQmROQmNHUmgxZFNYaUdsbm5qZXhNWHFDNXoyaFBjZHQzZ0JKUk45Y3huUHMyVTgzOE90RmF4WERZL2dLWmpnMkpydDJuT0tJMkVrSElsb0tmdGFtRmZkbTJ4N0Q0dlU2NzhKL0Z2dFMraEtBZkZnSjVURVJJRUt4UndqemhoM0JocU5qbWJMcUdiTE1MMmo1SXVUUmcvUFFwblNoMCt5RkpiSXpkVlVBRUNQSGhzYjYzc2Q4bVZPdEt2VVZHMDRQazV2WndkbklmNWVkNzhqejFacVBoRVBBaHE0RWJ3NlppUzNXNzc1MjRKNmVMbzhsbmQzYnNIOHEwaFQ0QWEwQTR4RXRXeGVrNkhjbDBsMzlrOVd6VE5NcnpzdFV3c2NZczlWY1lBOEdudFUwbi9haTR5NXFuVkhtN3hVYXJwc3p6TGxINHIwSnZBSUhndTlWZDdBMkY3ZWdiaW9OMi8vMkNYajU4SGszUThqSUtQMS9FeVhuVVFsaE44Vi8xa0xuZ2RDaDR4Q0JrYnNEZ0JiYkk2cE5sM21TbmtPdUIxVFpHenVvOVV3b2xZZjJmN2F4MHZFeTNJMjM0ajBDM3FyQ2dyc0xDZzZRdWhxU09TVmpWS0pGSXh6SFdNZ2lvb3N3bVF2OUxPZ204cVNtWFZjZTdBdDR1Ry93MzY0Rng5SThRQUFBPSIsInNoclRva2VuIjoiZXlKaGJHY2lPaUpTVXpJMU5pSXNJblI1Y0NJNkluQnZjQ0o5LmV5SmhkQ0k2SW1WNVNqQmxXRUZwVDJsS1MxWXhVV2xNUTBwb1lrZGphVTlwU2xOVmVra3hUbWxKYzBsdVp6RmtRMGsyU1dreFRGTlVUbEpQVnpWUFZXcGthVlZ0T1cxbFJ6RnNWMjA1V1dOWFNrbFhhMlJzWkhsSmMwbHRkSEJhUTBrMlNXa3hURk5VVGxKUFZ6VlBWV3BrYVZWdE9XMWxSekZzVjIwNVdXTlhTa2xYYTJSc1pIbEtPUzVsZVVwb1pGZFJhVTlwU21sT1JGWnNUVVJyZDFsVE1XdFpWMHB0VEZSUmVFNUVWWFJaVkVFeVQwTXdkMDlIUlRSTmFteHBUWHBDYkU5SFVXbE1RMHB3WXpOTmFVOXBTbTlrU0ZKM1kzcHZka3d6VGpCamVUVXpZVmMxYTJJelpIcE1iVFZzWkVNNWFscEhUVEZaVjFac1dWTXdlRTVYVFRGTVZGSnJXV3BaZEZscVFUTlBVekZ0V1RKR2ExcEVTVEZOUkZacldYcEpka2xwZDJsaFYwWXdTV3B2ZUU1cVozcE9la0YzVDFSSk1VeERTblZaYlZscFQycEZNazlFVFROTlJFRTFUV3BWYzBsdFZqUmpRMGsyVFZSWk5FMTZZelJPZWxsNVRsTjNhVmxYYkhaSmFtOXBVbFJLWVZveGJGRmFNMDUzVkVodmVXRjZTazVaVld0MldrUktUMXA2Vm1GTlJFSlpWbXRHUWxCVU1HbE1RMHBvWTBoQ2NGcERTVFpKYlVWNldWUk5lbGw2U21oTVZFazFUMGRWZEU1RVJtdE5VekExVFZSTk0weFhSVEZPUkZsNVRXMVZNazlFUm1wWmVVbHpTVzFHZDJOSGJHdFpWMDU1U1dwdmFVMXBTWE5KYlU1MVdtbEpObVY1U25Ga01uTnBUMjV6YVdFelVqVkphbTlwVld4T1FrbHBkMmxpYVVrMlNXNU5lRk5yV2pWVWJYZ3daVzFqTkdWc1pIWmFibWN5VDBWT05XRnFWazlpUkVwWFVtdEtZVk5WZEc5WGJrNDFUbXhKTTFwSFdtMWlSekY1VkVNd01WUnFaRE5oTWtwM1ZHcHNiRTlGY0VaYVJscHBWVVZvYWxkSE5XcFNSR2hwWWpCYVYxTnNTblJWU0VaTlYwaGthMXBHYUhOV1ZVWjRZbTVDVWxWWFRUQlJibkJoV1Zoa1IxbHVRazVOUkU0MlVWVjBiR1JzVlhsaU1qbGhWVVZTUTFaRVJuQmpWa0YzWkRKT2MxcEhXbWxXVkZKWVZYcHNlbUpIVWxCTVYwNU9aRmhPTWxWSVRtdGpia0pZVjBkTmVVeFlhRlJpVkZKSFYyNWFWMXByTVd4YWJUUTFWakZXVEdJeWNHNU9NVW93WkVWc1lXTXhPVmhYUlVaRVkxVkplRTlWV2s5VFZuQjJXVEZzUTFOSVFqRmxSMmhoWXpGc05VeFVSbGxXVjJSeVltMVNORm96YUhkU1J6VTBUWHBWTTFSWGNEWk9WRnA1VTBoa1RVOUZXa0pWUld3elZESjRVVlZYT1ZoU2EyODBWbFYwTTJSSGVIaGthelIzWkZVMWFFMHliR3BsV0ZKTFZtMTBiMXBYVWpKTlZrSTBWbTVrYTJGRmJFVlNSMmhPWVRGT1IxWnNTbTFrUnpVMVkydzVSazR5VVRSUmJFSTFXVzE0YkU5WFduTmtNM0JDVWpCS2VGSjZVVEZWYWtveVVUTkdWMVJyUmsxU2JVcDFXVEpPY1ZKSE5VbGtSVlp0VlZOSmMwbHRWV2xQYVVwQ1ZWVkdRMGxwZDJsWlYzaHVTV3B2YVZWc1RYbE9WRmxwVEVOS2NtRlhVV2xQYVVwU1RteGFNazVGUmpGTVdGVjZZMFJrVUdSdWNIVlNhMmhOVXpFNVdWWXpVblpOU0VwUVdIcHNkbHByYkZwU2FscHBWa1ZXYTFSRVRscEpiakU1VEVOS2NGcElRV2xQYVVwdlpFaFNkMk42YjNaTU0wNHdZM2sxTTJGWE5XdGlNMlI2VEcwMWJHUkRPV3BhUjAweFdWZFdiRmxUTUhoT1YwMHhURlJTYTFscVdYUlpha0V6VDFNeGJWa3lSbXRhUkVreFRVUldhMWw2U1haSmFYZHBZakpzYTBscWIybE5iVTB6VDFkT2FVNTZaM1JOTWs1cVdWTXdNRTB5Vm1sTVYwcHNXV3BKZEZscVFUVk9iVlpwVDFSSk1FNXRSVFJKYVhkcFkyMW5hVTlwU1hkTWEwWlRVMVZGTW1OVVpFZGxiVTVXVm01U2NrMXVaR3hhYm13d1RVZDRRMXBJWkc1aU1IQlpZMnhPWmsxdGRGZFJiVGxJV2pCc2VGRXlNVFpTUnpoM1ZUQkdRbEZUTkdsTVEwcDZaRmRKYVU5cFNYbFplbU0xV1RKSk0wOURNSHBaTWs1b1RGUlJlbHBYU1hSWmJWWnBUV2t4YVUxRWF6SmFWMGsxVFdwUk1sbFVaMmxNUTBvd1lWZFJhVTlwU21wYVIwMHhXVmRXYkZsVE1IaE9WMDB4VEZSU2ExbHFXWFJaYWtFelQxTXhiVmt5Um10YVJFa3hUVVJXYTFsNlNXbE1RMG94WkVkcmFVOXBTblJVYlRsWFlXcENhV041TVVaa1ZsbDZWMFpKTldKVVVqTmtSVVpDU1dsM2FXUnRWbmxKYW05cFRWTTBkMGx1TUM1a1FYRmZhRGt0TjFBMmVTMDNjMk4yV1VVeFdUWjBMVnA1VERKM1QySmthM1F0TW1oTlZrWm5NMDFpV1Mxd2JWbEROM2xJZFhkalVGTXRSbk41ZVdWdGRFOXhkbkpHZVVsbVV6VlZhMEpYWWxkbWNEUmhjRXREZERkSmVGUkhXSEZwZEd4MGRHVkZkRlpLTFZKbmNHMU9TVEl4T0hJM1NqWmFNMDlZU25SdmRsaGtUVWxaWmkxUFZEa3lZbFZEWVRGTFZrVnFkWEJEYjFaMk9XZ3lZbFZQTm05bFZWWTFUVmwwUWs5dmFraEJNRWRTUTFad2NGZDRUWE5tY1VkNVgxUjJaazlMTlcxMGNHUmxSRVp2VVhkUFlYSnFiMU51WTA0NE1XeFBXVEJ2YldJeGJWa3lNbFJVVm1WTk5GSmpOekZaTlhGbU9VVTJaVlZQZG1SNU5qSmhXRU5yVm5aM1NWVlVUMEk0VUVWd1owaHVhVkJmVjE5M2J6VklNbXN5VFVKbFQyMVJUbkpvTWxscldEVlFWVFJ2WTJ0aGVHdElXVjlGYVRoTmNHVk9aa2xQZWpBdFFsRjFXVFJ5ZW1ObmMwVmhSelJ4Tm5jaUxDSjBjeUk2TVRZNE16YzBNekkzT0N3aVlpSTZJazlRWDFGcmFXTmhUV1ZRZVZBMVptZHdTblY0WmtsV2QxbDVUSGsyVUVsa2RtWjJNV1o0YURsT1RHOGlMQ0p1YjI1alpTSTZJbVE1WVRsak1EazVNemN5WXpReU9HVTRZbU16TmpZeVpESmlNVFJsWlRkbElpd2lZMjVtSWpwN0ltcDNheUk2ZXlKcmFXUWlPaUprUjBZeU5ucExNek14WjA5UGQxODBlVjlWVTJZMlpqWnpVVXRTYmpFM1VHbFJWWEoyYVZVeExWUnZJaXdpWlNJNklrRlJRVUlpTENKcmRIa2lPaUpTVTBFaUxDSnVJam9pY3pGS1JubE9iSFI2WnpoNlYyOW1lRFk0UTNscU5VNXNNbFpHUWxwSlMyaGFjM2syVWpka1ptWnNiWEpNTFRWT04zZHJZbkJPT1dVNFNrVmtWbUpRU0dOWWJtTkVPR0p2UmxaS1VtMVFjVXhZZDJSa1dHeFZRWEZ1Y0ZGUll6UkNlbHBoZDBaaWNFMHdNM3BCUzJWMlZUSnZiMXBRUkVKVU1XbHhVREIzWTJ4a1ptSlZORmRUT1hOc1pFOHRZMDExYzNaUWMyUnljRmRZWXpJdGVGTnRORVphZGxabVRXVm1iamxYVlV0dmFtYzNVblIwU1ZwelgxZFlRVU54UWpFNVJrNUpXbTlqV1VKSWNIVjRhRnB6V1hrdE1WaFZaMnR1WkhobmVIQkVibmd6TlRkTmFubzFObkpJZDB3NFJrRlFTWGRQYkZCUmIxZEdTamhWUzNkMGJIRjJUakIxVG1FemFXTjVkRXBXYTJobFpIWXhVSGhXZDJSb1NVUkVhRTFyVTBaV1VtWjBibmx5WDBVM1pEaENVSGxpYkdVNVpteDNla0ZIUW5GSE5EVlNNblpEY1ZaT1FVeEdZbTVqWTJwRWJraDBSV1pSSW4xOWZRLnJjckZBX25NdlMydW9HRjNQMExZb3U0dldKVlNWTWhFUVEzM2ZERHdBVTFyTDFtaTg5Zk1oZ3FYdFFkU0NlUmNNLWdsM1ZPN29PRUlwdVQ4cjBNdmtPd09VZmRtaUlZakhDTWtIcV81YjFaZjV4TDdLXzJvU29TbUNCaV9vZHI4cElfM1l1LV9XNHJiejU2Zno1dW1RQU1TeU9HMV9DTU10T0wyS25iM002R0JCbHMtaDVCVXdMY09lQnVVeUMydzZmeEJmbWVfR1JWZ2RMYVlfdC1USGJsWVNmdVpuOGFrbGFqb0xTVHpZZXg4RVpOM0xlTjRxZTA1S3lGZnlVLWRiSGM1c1NWeTFuczdQaGVJTXYwWFRVZ3VJV1ZEZzhQSzluNElaUU1CT3VBSVdqUmc4VGprRUNiMnNUR3dBeDdaTDAxdjFFRHh2anE1dHAwWExPd0F2QSJ9.\u0022,\u0022correlationId\u0022:\u00225c23d0a4-95b7-46c9-a9fc-ebb0ec772d26\u0022}", - "messageId": "7ac30fc7b0c34e80a245a080f0ad89fd", + "body": "{\u0022to\u0022:{\u0022kind\u0022:\u0022communicationUser\u0022,\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022from\u0022:{\u0022kind\u0022:\u0022communicationUser\u0022,\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC94LWNvbnYtZXVuby0wMS5jb252LnNreXBlLmNvbS9jb252L0hLSlNVMk9XNDBDdGhVS2tBNGlWOHc/aT0xJmU9NjM4MjA2NTUyNjc1OTIxMDI3\u0022,\u0022callerDisplayName\u0022:\u0022\u0022,\u0022incomingCallContext\u0022:\u0022eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJjYyI6Ikg0c0lBQUFBQUFBQUNzMVliVy9iT0JMK0s0SVAyQTkzcFVWU2xFUVNNQTZPazdScG1qUk40clE0QkJkUUZDVnJJMHNxSmNkT3UvM3ZPNVNkeEttNzI5N2Q3bUVWUUJiSjRjd3p3NWQ1SnA4SFdwWGxhZDBWV2FGVlY5VFZRSDRlWkxhZXU5OGlIY2dCbDBxM2tpU3BValFSU0lRNFJpeGtGQ1ZKeEpDS0UwbzF4b3FuN0FiM0QrRW9FNEloVHRNRXhRd3JSRWlnY0lveHkxUXdlREZJaTdZcDFmMnBtaHZRRHgybVNwdTZxTG9qWnk5S2pBa05OaWloSkVETUJCd3BsV3FVSlZFWXFaU213cVF3cDFSVnZsQzVjWE9xUlZtK0dEVEtkb1V1R3JWUlJFeVVabW1Ha2NaUmlwZ2dCSEVGcnl4TjRpeElDZVdFZ2FKWmthWUczTTVVMlpvbkxKZjNqVVBYR250bjdMaHBRTEt4ZFdOc2Q3K244clhOTHk4R1hmMEhCQ3BRQWhtVkJTaGttMEJGU244M1VHc2xHS052dkI2ZUh3cFVvalZMVTBGUlNKbEdqT2dZS1pFeFJJUWdJalVKeVhTNkd5aHIybnBoZGE5MzhDTmUvMFlFeTZLNmJWMFFWZGNwUFFObHM2NXJXdW43cWltR1dWbmtzdzdtcmU2SDdTMnN5VkRYY3pmaTMxRmZOLzRLYVkzTW9xb1JKa090dDJTMDl1K0luOVgyMXFSK0ZyQkVoeVpCbk5NRVhCUVJTdUtZSTZZenczVkVJb3dUbjhaK1FmeUFDWDhONVovRmlBRG91VWtMTmE3YXBiRUFUbXRBTmxkclozSUlRdnVYUVB3QVpvUFptcCtON3Y0U3lOWlFOcmdXYVhOcFZkVTJ0WFhvb0FuWVNEQ00yWkJFd1pEaVFBWXM1djdneXlidWs3cnFUQVd5bndkNi9iazVtS3BweXMyVjViZXBPNTVKV1Njd2NEZkMxL2E2cWtmSW95RUxQZXdkblhwSFo4d2pOQjVpK0NOdXVCMjFFQzJZN0JwNjlDQVM4V0ZFaDVTUUlSR0JHMHBHazB0Sk5xZkpkWFFqN1BVZjg1RmFwRVh0aFhDT0krLzg4c3dmWDUxNUJETlB3RHZ3Q0NFZTRXQ2VleUtHSG1pNVRnNDQ4SGVNcXBIdGRJTnNXM3d5Vyswc2tYLzNWbWdPd09FOGV4QUJyNFViUWFidHpMTkczN21QdGZnS3RVVmVLVGhhK2UvTmV0SXRuUmZ4dWwxb2d4YVpWYm4wUHh6blQzM05NcFZ2N3ZDN1czMDFyaXR6TlQxVXg1Zjc3MTd5S1I1dm9ad3ZWdXVXVmxWYXBLb3pFbHozcHZ0bkhsem9PTVlSQzhoWFRtK0MyTjBETnB1Vks4K3FOTFVRTkJEZ3NHU2haOTJPV1l2dGFxZGIya1BoUXJ5clBmNHg3ZkhYMmlsZ2QyNHAzWUVGQ2xzaHd2R09CY2d1SWYyK2hWNXMxd0w5a3kzQXZ1c2pSR2pJcWNBa0RyMlFEZ21CUThmNVVFUWVuRG5SNjdZRzhzMkQ3dWNBdGxiQU83bWNucDhlN1FQY01NSWhqMElTQzhETUdkczFUWjlNY3hGRjlIOHlIVCthanVJUWxqc0drWkRGZ1dBMDJOa1ljTFQ2d0RhcWJRRUE0M0JWUlRqNkNrQ0lneWo2TVFSTUFOcGRLL1QvWUNYYzJvYk9TTWhGUVBBZmJvVCtXVVpLbFpoU3psVlJvZjdhWFBmT2kxU1NoeXNyV1JwVjVyVXR1dGxjSmt2dE5VcmZtcTVSaGZXV0pvSExaWVBYM2pkZERjZCtmSEJ4TXptNUFTSjM4K3BrUExtNWVEVW1OeHg3UlFVWG41SHZEOHV6OFhneC9kZkhLcGhoVlgwNFZjMkhsLzg0bWRXWHVqMmY1djVia3gxZFRLOStvZjhPeUMva0FjaEdQZjJlK3Vwb1BIbXR4NGRNdkpxeGVWWk8ycGY2NUZEYzU3NDJ5YUxGcTlONU9iOHYzL1hxSCs3SFpxNGFTQ2ZNdXpoNmMreTdWSW1mRFFudlpVeXB6Ny91ZHdtbG43STdBbW5tNHVqODRIUmJXemJ2MWlOSjBWbFkyZEd1SmJnbHdaVFlVcmlleEQxVlZXYVZqS3I2bVR6MnppWW4wMTM3M1BXUGQvc2g1NTBmN0gvTEU5aklwalROREhJSU1uZVEwWGN3Z0FoR0pIbytML0FtcDk5eW43ditiL2hIc1J0Z1R6T2FycGpEYmZ0Z0NYS2pzWTBGTmkzYm1VSTBqRHpHSklsbHVDLzN4cEpQNUlUS1NTUVBZN2tmU1JGS0FkOUNUb1NrWEI3c3U0OHhsdEZFa2owNU9aVGhuZ3dtVWdReXBuSk1KQXZrNGFFVUUzbEFKQjFMc2kveFpoT1lWZGZqOHh3MWs5ZndMSmZMNFhxREQydWJYMStiRlpCa3dGcDE3ZlUxdUlObXFZVloxOWNxYVpITDNjaDU4a3hiOEtUdGtiWDlqcUpNdGQxTkF1ZCtXYVRkN0NZekprM2dzUDBOU2gzSGlXNkNSeHJSV28yQXNPV1FabDF0NFY1dTdJRVd2ekg1dW9TSU5BMUV6QkNqUkNFV2NJRjRURUlFWGRpd1dCc2xIUDB6TFpTYlBXZDdxL1hDUXZEengzcWlNc3UzV2VZNGR0OEJCQkRZNGJHNWQ5UnZ3OVg2MWlENEVPYjVsTktEeWZuUG4zajdtczJxa3pmTDBRajBRMWtETndiSStORXllWGUzUEx3dDNzZWZQcFluWWZLYWZIUXlvTllDY0tCTERzWFp1aDRwVEYrQUZPMzVabWhjbHZVU3lreloyWVg1QW5PQWU3clk5TkNQcXJ1aWU2eVZ0MGNjV2JWMVdmYUZ3bi9JdkVITkUvZUd4amI3aHFiLzZ2ajF4WlMrZmMvd3BKdE5qMi9IckxqaVMwZXJmektqS09BVVIyRklJU3NLWUJBMGhtQVU3Y21pN0lvenFQWWdiSnNvRisyZXJhR2NoZzN3RkdpbzhSYjVOdE9HL3duMHk1b0ZVTGN4VHFHbTFFRDFvWkJHU1dBNE1vU0ZobVpRNjhXdVR2MnZDa3F3bTl0NjBmUjJWMkMzcndkL0JjRGt6ekNSRUFBQSIsInNoclRva2VuIjoiZXlKaGJHY2lPaUpTVXpJMU5pSXNJblI1Y0NJNkluQnZjQ0o5LmV5SmhkQ0k2SW1WNVNqQmxXRUZwVDJsS1MxWXhVV2xNUTBwb1lrZGphVTlwU2xOVmVra3hUbWxKYzBsdVp6RmtRMGsyU1dreFRGTlVUbEpQVnpWUFZXcGthVlZ0T1cxbFJ6RnNWMjA1V1dOWFNrbFhhMlJzWkhsSmMwbHRkSEJhUTBrMlNXa3hURk5VVGxKUFZ6VlBWV3BrYVZWdE9XMWxSekZzVjIwNVdXTlhTa2xYYTJSc1pIbEtPUzVsZVVwb1pGZFJhVTlwU21sT1JGWnNUVVJyZDFsVE1XdFpWMHB0VEZSUmVFNUVWWFJaVkVFeVQwTXdkMDlIUlRSTmFteHBUWHBDYkU5SFVXbE1RMHB3WXpOTmFVOXBTbTlrU0ZKM1kzcHZka3d6VGpCamVUVXpZVmMxYTJJelpIcE1iVFZzWkVNNWFscEhUVEZaVjFac1dWTXdlRTVYVFRGTVZGSnJXV3BaZEZscVFUTlBVekZ0V1RKR2ExcEVTVEZOUkZacldYcEpka2xwZDJsaFYwWXdTV3B2ZUU1cVp6Rk5WRVV6VFZSQk1FeERTblZaYlZscFQycEZNazlFVlhoTlZHTjRUVVJSYzBsdFZqUmpRMGsyVFZSWk5FNVVTWGROZW1kM1RrTjNhVmxYYkhaSmFtOXBVbFJLWVZveGJFOWhhemxRWld4Q2RscHJhR2xUZW1oNVQwWndjbVJ1VWpGT01HUXdUVlZLYmxGVU1HbE1RMHBvWTBoQ2NGcERTVFpKYlVWNldWUk5lbGw2U21oTVZFazFUMGRWZEU1RVJtdE5VekExVFZSTk0weFhSVEZPUkZsNVRXMVZNazlFUm1wWmVVbHpTVzFHZDJOSGJHdFpWMDU1U1dwdmFVMXBTWE5KYlU1MVdtbEpObVY1U25Ga01uTnBUMjV6YVdFelVqVkphbTlwVld4T1FrbHBkMmxpYVVrMlNXNW5NR1Z1VG5KU1JGWnRXbFpTWms5VlJsRllNamt3WlZjNU0xUXdkRkZrUld3MlRtMDVOVlZzYUVka1ZqbHBWRE5rZDFwVlVraGxSVW95VFRKYWQxSlZVbGxaYTBsM1pGZGFRazlFYkRCYWJHdzJVV3BrZEZWWE5EQlphM0JyVkZSR1RsWlZjSEZPYmxaM1ZVVTFXRk5XUm5wWk1sWkZVMWRrV1ZOSFpFWlJWbXgxVXpGR1NXSnNRbFJrYTA1TFpVWndkRmt5Vmtaa1NHZzBVekJ3YzFKNlRqSlhhemg2WVZWd1RGUXdXa05SV0VWM1dtMXNlVlZJUWxGTlZqa3pWa1JzYzJReE9VSldWR00wVWtaR1IxUldRblpZTVd3MllrZEtOV0pzWkZSaVZtUkNZV3huZUZKWVVsZGpha1p1WVROT1VtSjZhM1JPTURsMlRUTm9iMkZWY0cxWmJGSlFVMGRHYTFwSFNscE9SbFUwVlZoR1ZGSnNaSE5pV0ZaMFlqRkdjMUpGU25aYU1rbDNZak5qTUZwVlpFZGFSR1JxWTNwWk5FMUdUWGRYYW1SRllVVkdlVmxZVG1sWFZ6ZzFWVEprUlV4VlJuTlBWMHBxVTFkT1RsRXdaRFZoUjBaNFlrVk5kMkV5V2tWVk0wNUVWa1pPVVZWV09XMVRWV3cyVDBSU01HVkhaRlJOVlU1SFVtMDVhVk5ITVVaV2JFcE9aRmRSTUZaSGFFbFZWbVEwVFZVMWQySXpiSFprU0ZvMFZGVldlVlpFV21aWFV6Rm9UVmhHUkU1R09WcE9SWFExVlZOSmMwbHRWV2xQYVVwQ1ZWVkdRMGxwZDJsWlYzaHVTV3B2YVZWc1RYbE9WRmxwVEVOS2NtRlhVV2xQYVVreFRGUk9jMlJxYkZOa1NFa3hWMVJTUWxwRlpFdGlSWFJVWW1reE1tSkdWWFJrVld4SlQxVmFORTFXWkcxWFJFNUlWRWhLVkZwSGJGSkpiakU1VEVOS2NGcElRV2xQYVVwdlpFaFNkMk42YjNaTU0wNHdZM2sxTTJGWE5XdGlNMlI2VEcwMWJHUkRPV3BhUjAweFdWZFdiRmxUTUhoT1YwMHhURlJTYTFscVdYUlpha0V6VDFNeGJWa3lSbXRhUkVreFRVUldhMWw2U1haSmFYZHBZakpzYTBscWIybE5iVTB6VDFkT2FVNTZaM1JOTWs1cVdWTXdNRTB5Vm1sTVYwcHNXV3BKZEZscVFUVk9iVlpwVDFSSk1FNXRSVFJKYVhkcFkyMW5hVTlwU1hkTWEwWlRVMVZGTW1OVVpFZGxiVTVXVm01U2NrMXVaR3hhYm13d1RVZDRRMXBJWkc1aU1IQlpZMnhPWmsxdGRGZFJiVGxJV2pCc2VGRXlNVFpTUnpoM1ZUQkdRbEZUTkdsTVEwcDZaRmRKYVU5cFNYbFplbU0xV1RKSk0wOURNSHBaTWs1b1RGUlJlbHBYU1hSWmJWWnBUV2t4YVUxRWF6SmFWMGsxVFdwUk1sbFVaMmxNUTBvd1lWZFJhVTlwU21wYVIwMHhXVmRXYkZsVE1IaE9WMDB4VEZSU2ExbHFXWFJaYWtFelQxTXhiVmt5Um10YVJFa3hUVVJXYTFsNlNXbE1RMG94WkVkcmFVOXBTbTFsV0ZaWlVsaGtXbFpYV1hkalZYaHdaRE5vUm1KVmFIUllNRVpDU1dsM2FXUnRWbmxKYW05cFRWTTBkMGx1TUM1d1JtUklMV05IVVhkRFExcE5OREJmVjBOQldFbG1aak0xYmtZM2RFbzBabUp1YVcweVZIaFdiVXBpTkRSQmVrMWhaMjV1ZGtoTmVGUlpXVU01TjNsRU0wazBRbTFWVldKc2JrMVdOVmRKYWtSeVRVSlRabFJ3TW1zM1kxSjRaR2s1Ym5SVVEwWXdhMlZoU2taU01VUlJOVE5JVFVab1ptbHBZekpETmw4dGJGOVpRVFpLV2sxWlMwNVFhREY0VDBWb1ozQnlhbWhyVG1sbVdqQlBYMlZtU2xkaU4ycHVjbFZVY0RCVFVGZzFSMHRtVm1Ga2JqQnpiVlZ5YWs5SUxVSk1NMlpaWjBrNFdqWktSMGxWTUU1RlZuRktkVlUyVUUxdmVIRnhWMXB0TTNSNFMyUm1SV3Q1YUhRMU1GZ3RNbTVVV25aMGFETkhVVFIxYkhwak9GQXdRelZtU2xaak1IWjFSRzQxV0RjNWRYaDBXRk5tU0d0VU4wMVNZelJpTWpVeFRsbE5WRWRGYTNab05uY3dSRmt6UzBReFNGZHZka1U0ZWxNMlEwSldjMFp3Y1VGbVVGRTBhRnBZWlVnM1UwMHhUV1pYYm1jaUxDSjBjeUk2TVRZNE5URXpNakE0TWl3aVlpSTZJbVp3VTNVeU5XUmpSRVUwY1VaT1QwdE1iRFpaWDFGS1dtaERkQzFuYjNJemNsSmlka2xuT1dnM2NYTWlMQ0p1YjI1alpTSTZJamc0TURjMU9UYzVZalF4TWpReVl6YzVabVJsTlRBMk16azVNalF3TXpRNUlpd2lZMjVtSWpwN0ltcDNheUk2ZXlKcmFXUWlPaUk0VnpONGIzTkhTR0oyZUZSQlEwdENkVVI0T1c1UVlrSmlOMWRtUWtkWGNWRlhRME55TVc1bExYa3dJaXdpWlNJNklrRlJRVUlpTENKcmRIa2lPaUpTVTBFaUxDSnVJam9pZURSNmMydEVOV1psVkY4NVFWQmZiM1I1YjNkUFMxQjBTWG8yYjNsU1dFWjFYMkpQZDNCbFJFZDRRbll6Wm5CRlJGaGlRakIxWmtFNE9YUm1XWHBDTjIxUmJqUmlTbVJOTVUxVlNtbzJkWEJRVGxkSlVYTmpaVVJKWjFoSVowVkJXVzVMVVVodVVGTjJRMHA0V20xalpVVjBlSGhMU214SE0zWmFUek5wU2t0UFJrSkJjVEJtYVhKUWNGQXhYM2RVT1d4M1gwRlZOemhFVVVaTlVHOWZXWHBzWW5sdVYxTnRWMEZxV0RGRmRGWnlNV2RyYzFGdk9TMDNUMjh6ZUdocFNtWmlWRTlJWVdSa1lsazBWVGhSY1ZOR1YyeHRkVzF2VVd4RVFtOW5ZakJ2ZHpSbFIwWmtOMk56Tmpnd1V6QmFOMFJvUVhKaGMySlpiemxUWjBRdFFXdzVZbU5KWTAxRFIzbG9ZWEZzUXpCclprUlRjME5VVTFCUlgyWkpTWG80TkhSNFoxTXhRMFpHYjJKSWJVVldVazExWkRSVWFFaFJWM2d4VG5CdmVXOTBkbmhOUlhKVU5sOVpMV0V4Y1VNMFgxazBTM2xSSW4xOWZRLm5JY3pmbW5veWUtMDZZcGQ0bl90dWh0T0hJTXI2Zmdqcm1lWE95cUxiTy1BNzFjZHU3UmRxYTRacFZYTEVkVEJvb285LV8xTlhnSUpQdHBvdkEzUHhVOWE2eVNfSmhVMVI5UzJfZmFZNjYxTFRpU0M5ZURxd2ZxZHlXRGMtRzVXRUlwRFpSQnZ1c3k0YThVei03QlFfYk9iZzhxa2pvMlNTaG9IMGpUUDVULU5VUTdSMTQ5WHRMcC04TGFqMHZGQ3Q2TEhUTDlEQWt4cVpLaWpLbDlwTHhzNmJhankyNmltQU1pR2hMaDc0UjBkM2pkMWVzS1FuWk42Q2JvOWdubmhiMUwteXRkcE9PTzdFSHZHUjdGdG9JLTluSUt0VXg2UGc0RGlzWUJuWkl4OUxLX09Qdzd6b2Y4Y016My1nRzN2Ql9kdnBqOUEtUTJvUDJaRUloUlp5dyJ9.\u0022,\u0022correlationId\u0022:\u0022f38d4482-00cb-4c06-b3e8-e145e2f5077c\u0022}", + "messageId": "143185a38b0b4a5b926ad0c7ceb82336", "partitionKey": null, "sessionId": null, "replyToSessionId": null, @@ -11,13 +11,13 @@ "contentType": null, "replyTo": null, "applicationProperties": { - "Diagnostic-Id": "00-008d8f07a0b6a0079b6ff63060e1add5-fbe662959019253c-00" + "Diagnostic-Id": "00-aefe132521c390779c3e7f65c4d7cdc4-4717dc8cb7e47274-00" }, "enqueuedTime": "0001-01-01T00:00:00+00:00" }, { - "body": "[{\u0022id\u0022:\u0022Sanitized\u0022,\u0022source\u0022:\u0022calling/callConnections/401f3500-18a6-4ec3-8c05-415a2f0a3c09\u0022,\u0022type\u0022:\u0022Microsoft.Communication.CallConnected\u0022,\u0022data\u0022:{\u0022callConnectionId\u0022:\u0022401f3500-18a6-4ec3-8c05-415a2f0a3c09\u0022,\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzd2UtMDIuY29udi5za3lwZS5jb20vY29udi93RExtMll6WEFFLXVZOThYVWJmVDl3P2k9MjAmZT02MzgxOTI3NTY3ODYzNzY4NjM=\u0022,\u0022correlationId\u0022:\u00225c23d0a4-95b7-46c9-a9fc-ebb0ec772d26\u0022},\u0022time\u0022:\u00222023-05-10T18:28:00.1649744\\u002B00:00\u0022,\u0022specversion\u0022:\u00221.0\u0022,\u0022datacontenttype\u0022:\u0022application/json\u0022,\u0022subject\u0022:\u0022calling/callConnections/401f3500-18a6-4ec3-8c05-415a2f0a3c09\u0022}]", - "messageId": "856b0bec10974dfa9fc381f23c2cca27", + "body": "[{\u0022id\u0022:\u0022Sanitized\u0022,\u0022source\u0022:\u0022calling/callConnections/421f1200-0b6d-4499-9060-01d269293aa1\u0022,\u0022type\u0022:\u0022Microsoft.Communication.CallConnected\u0022,\u0022data\u0022:{\u0022callConnectionId\u0022:\u0022421f1200-0b6d-4499-9060-01d269293aa1\u0022,\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC94LWNvbnYtZXVuby0wMS5jb252LnNreXBlLmNvbS9jb252L0hLSlNVMk9XNDBDdGhVS2tBNGlWOHc/aT0xJmU9NjM4MjA2NTUyNjc1OTIxMDI3\u0022,\u0022correlationId\u0022:\u0022f38d4482-00cb-4c06-b3e8-e145e2f5077c\u0022},\u0022time\u0022:\u00222023-05-26T20:14:47.9489239\\u002B00:00\u0022,\u0022specversion\u0022:\u00221.0\u0022,\u0022datacontenttype\u0022:\u0022application/json\u0022,\u0022subject\u0022:\u0022calling/callConnections/421f1200-0b6d-4499-9060-01d269293aa1\u0022}]", + "messageId": "da698ed5a44d4f7f9d6cb999d931ce41", "partitionKey": null, "sessionId": null, "replyToSessionId": null, @@ -26,13 +26,13 @@ "contentType": null, "replyTo": null, "applicationProperties": { - "Diagnostic-Id": "00-a00cef52d5986dc3ebd3b62499f933c6-5dd3109c4772628a-00" + "Diagnostic-Id": "00-f0b5044470fac60edae5104cc63c09df-84c219e7be74b8fb-00" }, "enqueuedTime": "0001-01-01T00:00:00+00:00" }, { - "body": "[{\u0022id\u0022:\u0022Sanitized\u0022,\u0022source\u0022:\u0022calling/callConnections/401f3500-18a6-4ec3-8c05-415a2f0a3c09\u0022,\u0022type\u0022:\u0022Microsoft.Communication.ParticipantsUpdated\u0022,\u0022data\u0022:{\u0022participants\u0022:[{\u0022identifier\u0022:{\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022kind\u0022:\u0022communicationUser\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022isMuted\u0022:false},{\u0022identifier\u0022:{\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022kind\u0022:\u0022communicationUser\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022isMuted\u0022:false}],\u0022sequenceNumber\u0022:1,\u0022callConnectionId\u0022:\u0022401f3500-18a6-4ec3-8c05-415a2f0a3c09\u0022,\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzd2UtMDIuY29udi5za3lwZS5jb20vY29udi93RExtMll6WEFFLXVZOThYVWJmVDl3P2k9MjAmZT02MzgxOTI3NTY3ODYzNzY4NjM=\u0022,\u0022correlationId\u0022:\u00225c23d0a4-95b7-46c9-a9fc-ebb0ec772d26\u0022},\u0022time\u0022:\u00222023-05-10T18:28:00.1649744\\u002B00:00\u0022,\u0022specversion\u0022:\u00221.0\u0022,\u0022datacontenttype\u0022:\u0022application/json\u0022,\u0022subject\u0022:\u0022calling/callConnections/401f3500-18a6-4ec3-8c05-415a2f0a3c09\u0022}]", - "messageId": "b36f622d29554e219654627d1c6cf61f", + "body": "[{\u0022id\u0022:\u0022Sanitized\u0022,\u0022source\u0022:\u0022calling/callConnections/421f1200-0b6d-4499-9060-01d269293aa1\u0022,\u0022type\u0022:\u0022Microsoft.Communication.ParticipantsUpdated\u0022,\u0022data\u0022:{\u0022participants\u0022:[{\u0022identifier\u0022:{\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022kind\u0022:\u0022communicationUser\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022isMuted\u0022:false},{\u0022identifier\u0022:{\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022kind\u0022:\u0022communicationUser\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022isMuted\u0022:false}],\u0022sequenceNumber\u0022:1,\u0022callConnectionId\u0022:\u0022421f1200-0b6d-4499-9060-01d269293aa1\u0022,\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC94LWNvbnYtZXVuby0wMS5jb252LnNreXBlLmNvbS9jb252L0hLSlNVMk9XNDBDdGhVS2tBNGlWOHc/aT0xJmU9NjM4MjA2NTUyNjc1OTIxMDI3\u0022,\u0022correlationId\u0022:\u0022f38d4482-00cb-4c06-b3e8-e145e2f5077c\u0022},\u0022time\u0022:\u00222023-05-26T20:14:47.8551793\\u002B00:00\u0022,\u0022specversion\u0022:\u00221.0\u0022,\u0022datacontenttype\u0022:\u0022application/json\u0022,\u0022subject\u0022:\u0022calling/callConnections/421f1200-0b6d-4499-9060-01d269293aa1\u0022}]", + "messageId": "618d88a4510a4a458153b1775a502856", "partitionKey": null, "sessionId": null, "replyToSessionId": null, @@ -41,13 +41,13 @@ "contentType": null, "replyTo": null, "applicationProperties": { - "Diagnostic-Id": "00-88bfcf133e1b1050331cea5ad8fc3959-3768960d0aca0729-00" + "Diagnostic-Id": "00-0218ae645630e4b0a4d0114e67ccdb5d-4df71995a265244c-00" }, "enqueuedTime": "0001-01-01T00:00:00+00:00" }, { - "body": "[{\u0022id\u0022:\u0022Sanitized\u0022,\u0022source\u0022:\u0022calling/callConnections/401f3500-18a6-4ec3-8c05-415a2f0a3c09\u0022,\u0022type\u0022:\u0022Microsoft.Communication.RemoveParticipantSucceeded\u0022,\u0022data\u0022:{\u0022operationContext\u0022:\u0022MyTestOperationcontext\u0022,\u0022participant\u0022:{\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022callConnectionId\u0022:\u0022401f3500-18a6-4ec3-8c05-415a2f0a3c09\u0022,\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzd2UtMDIuY29udi5za3lwZS5jb20vY29udi93RExtMll6WEFFLXVZOThYVWJmVDl3P2k9MjAmZT02MzgxOTI3NTY3ODYzNzY4NjM=\u0022,\u0022correlationId\u0022:\u00225c23d0a4-95b7-46c9-a9fc-ebb0ec772d26\u0022},\u0022time\u0022:\u00222023-05-10T18:28:01.4149362\\u002B00:00\u0022,\u0022specversion\u0022:\u00221.0\u0022,\u0022datacontenttype\u0022:\u0022application/json\u0022,\u0022subject\u0022:\u0022calling/callConnections/401f3500-18a6-4ec3-8c05-415a2f0a3c09\u0022}]", - "messageId": "40d59a0145724ea8b8647d0e3afb7e70", + "body": "[{\u0022id\u0022:\u0022Sanitized\u0022,\u0022source\u0022:\u0022calling/callConnections/421f1200-0b6d-4499-9060-01d269293aa1\u0022,\u0022type\u0022:\u0022Microsoft.Communication.RemoveParticipantSucceeded\u0022,\u0022data\u0022:{\u0022operationContext\u0022:\u0022MyTestOperationcontext\u0022,\u0022participant\u0022:{\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022callConnectionId\u0022:\u0022421f1200-0b6d-4499-9060-01d269293aa1\u0022,\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC94LWNvbnYtZXVuby0wMS5jb252LnNreXBlLmNvbS9jb252L0hLSlNVMk9XNDBDdGhVS2tBNGlWOHc/aT0xJmU9NjM4MjA2NTUyNjc1OTIxMDI3\u0022,\u0022correlationId\u0022:\u0022f38d4482-00cb-4c06-b3e8-e145e2f5077c\u0022},\u0022time\u0022:\u00222023-05-26T20:14:50.2614342\\u002B00:00\u0022,\u0022specversion\u0022:\u00221.0\u0022,\u0022datacontenttype\u0022:\u0022application/json\u0022,\u0022subject\u0022:\u0022calling/callConnections/421f1200-0b6d-4499-9060-01d269293aa1\u0022}]", + "messageId": "a44563218ffc450f8f38db649b382496", "partitionKey": null, "sessionId": null, "replyToSessionId": null, @@ -56,22 +56,7 @@ "contentType": null, "replyTo": null, "applicationProperties": { - "Diagnostic-Id": "00-233c71f05877cb7f3b7ae59a13f23c55-71080373753e1c01-00" - }, - "enqueuedTime": "0001-01-01T00:00:00+00:00" - }, - { - "body": "[{\u0022id\u0022:\u0022Sanitized\u0022,\u0022source\u0022:\u0022calling/callConnections/401f3500-18a6-4ec3-8c05-415a2f0a3c09\u0022,\u0022type\u0022:\u0022Microsoft.Communication.CallDisconnected\u0022,\u0022data\u0022:{\u0022callConnectionId\u0022:\u0022401f3500-18a6-4ec3-8c05-415a2f0a3c09\u0022,\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzd2UtMDIuY29udi5za3lwZS5jb20vY29udi93RExtMll6WEFFLXVZOThYVWJmVDl3P2k9MjAmZT02MzgxOTI3NTY3ODYzNzY4NjM=\u0022,\u0022correlationId\u0022:\u00225c23d0a4-95b7-46c9-a9fc-ebb0ec772d26\u0022},\u0022time\u0022:\u00222023-05-10T18:28:01.7743192\\u002B00:00\u0022,\u0022specversion\u0022:\u00221.0\u0022,\u0022datacontenttype\u0022:\u0022application/json\u0022,\u0022subject\u0022:\u0022calling/callConnections/401f3500-18a6-4ec3-8c05-415a2f0a3c09\u0022}]", - "messageId": "750c11ab9e4541a1a20459d09a5788f1", - "partitionKey": null, - "sessionId": null, - "replyToSessionId": null, - "correlationId": null, - "subject": null, - "contentType": null, - "replyTo": null, - "applicationProperties": { - "Diagnostic-Id": "00-a2904e5fc9787cebb0569c227e1cd2ec-46c55b40995d4470-00" + "Diagnostic-Id": "00-47a52e29845fcd34ca14fe738bf5fd9e-1d0f805a7bb543d9-00" }, "enqueuedTime": "0001-01-01T00:00:00+00:00" } diff --git a/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecordedEvents/CallConnectionAutomatedLiveTests/RemoveAUserCallTestAsync.json b/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecordedEvents/CallConnectionAutomatedLiveTests/RemoveAUserCallTestAsync.json index 02d13a249b80..0ed8ed141d91 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecordedEvents/CallConnectionAutomatedLiveTests/RemoveAUserCallTestAsync.json +++ b/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecordedEvents/CallConnectionAutomatedLiveTests/RemoveAUserCallTestAsync.json @@ -1,8 +1,8 @@ { "entries": [ { - "body": "{\u0022to\u0022:{\u0022kind\u0022:\u0022communicationUser\u0022,\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022from\u0022:{\u0022kind\u0022:\u0022communicationUser\u0022,\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzd2UtMDIuY29udi5za3lwZS5jb20vY29udi9Dek9ZZU1ETWhVLXo2SFhoaTBTZ3lnP2k9NCZlPTYzODE5Mjc2NzYxNTIzODI1Mg==\u0022,\u0022callerDisplayName\u0022:\u0022\u0022,\u0022incomingCallContext\u0022:\u0022eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJjYyI6Ikg0c0lBQUFBQUFBQUNzMVkrMi9iT0JMK1Z3UWZzRDljUzV1a0hxUUlHQWZIaVZzM2o3cDVkTGVMNEFLS29tVFZzcVNsNUZlNi9kOTNLRHVKVS9lNnZic3RzQXFpaU9Sd3ZtK0dqNW5KcDQ2U2VYNVJObG1TS2Rsa1pkRVJuenFKS2VmMmJ4WjNSSWNMcVdwQm9saEtHb1VvOURGRG51OVJGRVdCaHlTTEtGVVlTeDU3ZDdoOUNFY3lVREZ5SldQSWpkMFFjZTFLSEdNY0U2WTdMenR4VmxlNTNGekl1UWI5MEtHTHVDcXpvaGxiUEJyaWhDZGFJUytNSlBLa0JCQS9aQ2lodnArRW5tWTRjV0ZPTG90MElWTnQ1eFNMUEgvWnFhUnBNcFZWY3FkSU01VlFnaFdLWlJJaUQ4Y004VEJLa0l4WUZIbytWYkgwUWRFMGkyTU5aaWN5ci9VVGwrdE5aZG5WMml5MUdWUVZTRmFtckxScE5rY3kzV0orZnRscHlyL0NVVG82Y0ZUeXA0N2FLc0VZZmVYMThIeVhvMExpSy9CcWhFTHFCOGdqbUlPamRJS1NTQ1dNSmlya3NYdm9LS1ByY21GVXE3ZnpQVmIvQncvbVdUR3JyUk5sMDBnMUJXWFRwcWxxMGV2Skt1c21lWlpPRzVpMzNuVHJHYXhKVjVWek85SmIwcDZxZWtxaFJiM1NDQk5VeDdDMnM3cXIxSjZrVXIwbDZTV2xtZW00aDVsTHNZNEM1SU81c0NNOGduaWdDTUtlSmxwVHloSVo5eWpyWmFUbmVtRnZTK2hmV1o5Z0ZHQkVQRVJDNjlHNWpqTTVLQURXQUZ1bGdPcGNicTFMd1N2MTM4aUVCMHFIUmhqOVVhdm1iMFIxUytpUTZDS3VybzBzNnFvMGxpNDBnYXhQdTRUWVg2L3Jlc0wxR085MVB1OVdabGdXalM1QTlsTkhiVDkzWjFsV1ZiNjc1WHAxYkU5MGxKY1JEQ3o3K05iY0ZtVWZPY1RGQWZFZDdJd3ZuUEhFY3dobFhRdy94QXJVL1JwOENkTnRRL1YzSWg3dThxQkxBdEwxcVIySStzTnJRWFlIMEhZMGZleTBIL08rWE1SWjZmallEd0xuOG5yU0c3eWZPQVI3VGdodjF5R0VPSVFET0hkQ0JqM1FzcDBjV09CdlFzcSthVlNGVEozZDY3MTJFb2wvT21zMEI5SndBVGhndjFQREZTTGlldW9ZclpiMll5dStSbldXRmhMT1l2cXRXVSs2aGJXQmJkdVowbWlSR0prS0hiMllQdlZWSzVnMGE1SlIrTjRsVVQ1T1ZrVnhkcmw1ODRwY1puc3M1NHYxdHFWa0VXZXhiTFFBdzUyYjQ0bERZVGtZRGp5WFBETjU1OEJtQTh4TWtxOGRJK1BZZ01PNmxIQllySUE0eG02WHJkeWhjcnFuM0EvQnZ3ZksyWGNxWjE4cXA4RGNHaVZWQXdBUWZuQ0EyUmNBSGx5NDlEc0FXcmxEQVBwakFXREh0ZTRoMU9jUWl3bnpuZmEwZVYzQ2VaZGczNEhqRnJiYWpZYm90TlArak1DZTk1M3o2NXZMaS9HeDR4S1BrSUI3bEFRZUNSaWpubmNJVForZ2VSZ0U5UCtCWm8vUUZLeUFoZllBbkpFZ1lNRWhOSnowMXEyVnJHdkE5emdCZUJ3OHh3YzZKQWpwZHhFZ3NHa1BRZWlQQi9IM2RxREY4SG5vRXZ4WFk5QWZoSkhMU09kaUxyTUN0WGZsdG5lZXhXSW5zRWJSU3NzOExVM1dUT2NpV2ltbmttcW1tMHBteGxucENPNlVIVjJ6cVpvU2p2dmc1T3B1ZUg1SEtMOTdmVDRZM2wyOUhwQTdqcDJzZ1B0T0MvYnJ6OHZKaGJ0eGM4T09xMWdXZERBWjRRVTVHeTFuNy9sNmZobzNIK09qYXZZNy9iZExmaWNQUkhicTZaK3BmNFd2UHN5SzMyYVQwOUhaZlg1Vi96YXF5Q3YzV0wwZDk5NlY5Kzl1N3VrSFBrL2pkYXYrNFZxczVyS0NHT0k1VitPejB4NEpkcEhrY1NoMFhqRktlL3pMZmh0RjJpbUhJeEJicnNhWEp4ZjcycEo1c3gySnNzYkF3dllQa2VCMkJLaHdUK0YyRW5ka1VlaDExQy9LWi9MWW1RelBidzd4dWUwZkhQWkRvTHM4T2Y2YUpiQ05kYTZyYVZsb3BKY1F4Zzg0Z0Fna0NzSHplYTR6dlBpYStkejJmOFUraXUyQTl6U2phckk1M0xNUFNCQVN0YWtNWk4yaW5rb0VLYkl6WW1JWUNNYkZFUk00aEZBb1hDSkNDb1RFMEJlZUswWlkwSkZ3QjJMZ2lSUGZpaDI1SW9EbVFCd2ZpK0ZBOENNeFBCSHVpY0JVSElXQ2N4RlFFYmlDbllqUllBdXMxMDNMejdFSm1yaUZaN1ZhZGJjYnZGdWE5UFpXcnlHWkJxNUZVOS9lZ2psb0dodVlkWHNyb3hyWmtJMnNKYyswdVUvYUhyTzJieWhLWk4zY1JYRHNWMW5jVE84U3JlTUlEdHMvb0NTeWFkQ2QrNWc5MUVZaHlOSlNDSysyQnJFdk8vYVFMWi9wZEZ0cUpDd09Fc1VRZGFFdzgyek5FeVZTb2xEREhjMWRiak01VytmVVVKYTJpZHBicFJZR25KOCsxaDJGWHIxTkVwdDZ0eDJROVVGS2VLbzNOdC9icFdkdHE3TTZQWDRkM3I4NFMwZlQ4dzhmcjE3OGZEUCtWYWY5UHVpSDhnZHVESkRKenQvb1luUUI5UWs1OVdoMWRqS3YzbVR2UUFiVUdpQU9XWkpsTWRuV0xabHVDNVdzdnR3TkRmSzhYR2t3ckRFTC9Sbm1RTUpwZmROU0h4ZkxySG1zcWZkSGJJWnF5anh2NjRmL0t2OEdKYnNNbk1KUXNkelB2YUhaRzk2Ly9hRFBqOCtuTitnK2VQM0xOTU5YNlNhRnBOcjdTZmNERndJT1pSRC9JT3k3blBvVVhKSFY1NHU4eVNaUUU0TFRkajdPNmlOVHlsakI4ais1T2RiUkl0MVBydUUvQisyaUtyalhKWUVhbTdnSzZzY0lTdHJRandoeWlldEtqbDBKa2QrV1IvOUwyUW00cVNrWFZZdTdCdHkyYXZ3RDFKTlR5cmNRQUFBPSIsInNoclRva2VuIjoiZXlKaGJHY2lPaUpTVXpJMU5pSXNJblI1Y0NJNkluQnZjQ0o5LmV5SmhkQ0k2SW1WNVNqQmxXRUZwVDJsS1MxWXhVV2xNUTBwb1lrZGphVTlwU2xOVmVra3hUbWxKYzBsdVp6RmtRMGsyU1dreFRGTlVUbEpQVnpWUFZXcGthVlZ0T1cxbFJ6RnNWMjA1V1dOWFNrbFhhMlJzWkhsSmMwbHRkSEJhUTBrMlNXa3hURk5VVGxKUFZ6VlBWV3BrYVZWdE9XMWxSekZzVjIwNVdXTlhTa2xYYTJSc1pIbEtPUzVsZVVwb1pGZFJhVTlwU21sT1JGWnNUVVJyZDFsVE1XdFpWMHB0VEZSUmVFNUVWWFJaVkVFeVQwTXdkMDlIUlRSTmFteHBUWHBDYkU5SFVXbE1RMHB3WXpOTmFVOXBTbTlrU0ZKM1kzcHZka3d6VGpCamVUVXpZVmMxYTJJelpIcE1iVFZzWkVNNWFscEhUVEZaVjFac1dWTXdlRTVYVFRGTVZGSnJXV3BaZEZscVFUTlBVekZ0V1RKR2ExcEVTVEZOUkZacldYcEpka2xwZDJsaFYwWXdTV3B2ZUU1cVozcE9la0YzVDFSSk1VeERTblZaYlZscFQycEZNazlFVFROTlJFRTFUV3BWYzBsdFZqUmpRMGsyVFZSWk5FMTZZelJPZWxsNVRsTjNhVmxYYkhaSmFtOXBVbFJLWVZveGJGRmFNMDUzVkVodmVXRjZTazVaVld0MldrUktUMXA2Vm1GTlJFSlpWbXRHUWxCVU1HbE1RMHBvWTBoQ2NGcERTVFpKYlVWNldWUk5lbGw2U21oTVZFazFUMGRWZEU1RVJtdE5VekExVFZSTk0weFhSVEZPUkZsNVRXMVZNazlFUm1wWmVVbHpTVzFHZDJOSGJHdFpWMDU1U1dwdmFVMXBTWE5KYlU1MVdtbEpObVY1U25Ga01uTnBUMjV6YVdFelVqVkphbTlwVld4T1FrbHBkMmxpYVVrMlNXNU5lRk5yV2pWVWJYZ3daVzFqTkdWc1pIWmFibWN5VDBWT05XRnFWazlpUkVwWFVtdEtZVk5WZEc5WGJrNDFUbXhKTTFwSFdtMWlSekY1VkVNd01WUnFaRE5oTWtwM1ZHcHNiRTlGY0VaYVJscHBWVVZvYWxkSE5XcFNSR2hwWWpCYVYxTnNTblJWU0VaTlYwaGthMXBHYUhOV1ZVWjRZbTVDVWxWWFRUQlJibkJoV1Zoa1IxbHVRazVOUkU0MlVWVjBiR1JzVlhsaU1qbGhWVVZTUTFaRVJuQmpWa0YzWkRKT2MxcEhXbWxXVkZKWVZYcHNlbUpIVWxCTVYwNU9aRmhPTWxWSVRtdGpia0pZVjBkTmVVeFlhRlJpVkZKSFYyNWFWMXByTVd4YWJUUTFWakZXVEdJeWNHNU9NVW93WkVWc1lXTXhPVmhYUlVaRVkxVkplRTlWV2s5VFZuQjJXVEZzUTFOSVFqRmxSMmhoWXpGc05VeFVSbGxXVjJSeVltMVNORm96YUhkU1J6VTBUWHBWTTFSWGNEWk9WRnA1VTBoa1RVOUZXa0pWUld3elZESjRVVlZYT1ZoU2EyODBWbFYwTTJSSGVIaGthelIzWkZVMWFFMHliR3BsV0ZKTFZtMTBiMXBYVWpKTlZrSTBWbTVrYTJGRmJFVlNSMmhPWVRGT1IxWnNTbTFrUnpVMVkydzVSazR5VVRSUmJFSTFXVzE0YkU5WFduTmtNM0JDVWpCS2VGSjZVVEZWYWtveVVUTkdWMVJyUmsxU2JVcDFXVEpPY1ZKSE5VbGtSVlp0VlZOSmMwbHRWV2xQYVVwQ1ZWVkdRMGxwZDJsWlYzaHVTV3B2YVZWc1RYbE9WRmxwVEVOS2NtRlhVV2xQYVVwU1RteGFNazVGUmpGTVdGVjZZMFJrVUdSdWNIVlNhMmhOVXpFNVdWWXpVblpOU0VwUVdIcHNkbHByYkZwU2FscHBWa1ZXYTFSRVRscEpiakU1VEVOS2NGcElRV2xQYVVwdlpFaFNkMk42YjNaTU0wNHdZM2sxTTJGWE5XdGlNMlI2VEcwMWJHUkRPV3BhUjAweFdWZFdiRmxUTUhoT1YwMHhURlJTYTFscVdYUlpha0V6VDFNeGJWa3lSbXRhUkVreFRVUldhMWw2U1haSmFYZHBZakpzYTBscWIybE5iVTB6VDFkT2FVNTZaM1JOTWs1cVdWTXdNRTB5Vm1sTVYwcHNXV3BKZEZscVFUVk9iVlpwVDFSSk1FNXRSVFJKYVhkcFkyMW5hVTlwU1hkTWEwWlRVMVZGTW1OVVpFZGxiVTVXVm01U2NrMXVaR3hhYm13d1RVZDRRMXBJWkc1aU1IQlpZMnhPWmsxdGRGZFJiVGxJV2pCc2VGRXlNVFpTUnpoM1ZUQkdRbEZUTkdsTVEwcDZaRmRKYVU5cFNYbFplbU0xV1RKSk0wOURNSHBaTWs1b1RGUlJlbHBYU1hSWmJWWnBUV2t4YVUxRWF6SmFWMGsxVFdwUk1sbFVaMmxNUTBvd1lWZFJhVTlwU21wYVIwMHhXVmRXYkZsVE1IaE9WMDB4VEZSU2ExbHFXWFJaYWtFelQxTXhiVmt5Um10YVJFa3hUVVJXYTFsNlNXbE1RMG94WkVkcmFVOXBTblJVYlRsWFlXcENhV041TVVaa1ZsbDZWMFpKTldKVVVqTmtSVVpDU1dsM2FXUnRWbmxKYW05cFRWTTBkMGx1TUM1a1FYRmZhRGt0TjFBMmVTMDNjMk4yV1VVeFdUWjBMVnA1VERKM1QySmthM1F0TW1oTlZrWm5NMDFpV1Mxd2JWbEROM2xJZFhkalVGTXRSbk41ZVdWdGRFOXhkbkpHZVVsbVV6VlZhMEpYWWxkbWNEUmhjRXREZERkSmVGUkhXSEZwZEd4MGRHVkZkRlpLTFZKbmNHMU9TVEl4T0hJM1NqWmFNMDlZU25SdmRsaGtUVWxaWmkxUFZEa3lZbFZEWVRGTFZrVnFkWEJEYjFaMk9XZ3lZbFZQTm05bFZWWTFUVmwwUWs5dmFraEJNRWRTUTFad2NGZDRUWE5tY1VkNVgxUjJaazlMTlcxMGNHUmxSRVp2VVhkUFlYSnFiMU51WTA0NE1XeFBXVEJ2YldJeGJWa3lNbFJVVm1WTk5GSmpOekZaTlhGbU9VVTJaVlZQZG1SNU5qSmhXRU5yVm5aM1NWVlVUMEk0VUVWd1owaHVhVkJmVjE5M2J6VklNbXN5VFVKbFQyMVJUbkpvTWxscldEVlFWVFJ2WTJ0aGVHdElXVjlGYVRoTmNHVk9aa2xQZWpBdFFsRjFXVFJ5ZW1ObmMwVmhSelJ4Tm5jaUxDSjBjeUk2TVRZNE16YzBNekk0TlN3aVlpSTZJbE5xWWxkWmR6WTVWamh6YVdVMlFWbEtNM1pEUjJoRWRtWlBabVJRVTJ4MFJYQnpSMjFUVjAxbU56QWlMQ0p1YjI1alpTSTZJbUkyTWpsaVl6RmtZMkprTlRSbE9XTTVOVGMzTkRFNE5XUmxNakk1TVdObUlpd2lZMjVtSWpwN0ltcDNheUk2ZXlKcmFXUWlPaUprUjBZeU5ucExNek14WjA5UGQxODBlVjlWVTJZMlpqWnpVVXRTYmpFM1VHbFJWWEoyYVZVeExWUnZJaXdpWlNJNklrRlJRVUlpTENKcmRIa2lPaUpTVTBFaUxDSnVJam9pY3pGS1JubE9iSFI2WnpoNlYyOW1lRFk0UTNscU5VNXNNbFpHUWxwSlMyaGFjM2syVWpka1ptWnNiWEpNTFRWT04zZHJZbkJPT1dVNFNrVmtWbUpRU0dOWWJtTkVPR0p2UmxaS1VtMVFjVXhZZDJSa1dHeFZRWEZ1Y0ZGUll6UkNlbHBoZDBaaWNFMHdNM3BCUzJWMlZUSnZiMXBRUkVKVU1XbHhVREIzWTJ4a1ptSlZORmRUT1hOc1pFOHRZMDExYzNaUWMyUnljRmRZWXpJdGVGTnRORVphZGxabVRXVm1iamxYVlV0dmFtYzNVblIwU1ZwelgxZFlRVU54UWpFNVJrNUpXbTlqV1VKSWNIVjRhRnB6V1hrdE1WaFZaMnR1WkhobmVIQkVibmd6TlRkTmFubzFObkpJZDB3NFJrRlFTWGRQYkZCUmIxZEdTamhWUzNkMGJIRjJUakIxVG1FemFXTjVkRXBXYTJobFpIWXhVSGhXZDJSb1NVUkVhRTFyVTBaV1VtWjBibmx5WDBVM1pEaENVSGxpYkdVNVpteDNla0ZIUW5GSE5EVlNNblpEY1ZaT1FVeEdZbTVqWTJwRWJraDBSV1pSSW4xOWZRLkZLOG02S05yUXBtWkh0LVkzZF9zNlRhdDFEX0pGSkwybzdZWVFVY3NfVWdtYkZhdFQ5ZTZjNWhjNFIzUDdsOGFlZk5ha2QwWDlfNVgzUnF1Tm9CMWRHUUpSbDhrOFE0Qmxmc1lMeTdUNUp6NlpCcEQ3Z09kdkdXNzBqQlVQQXl4RHpmVGVpR0Qwck9qbThtQmJZWC1BQWFRRzJvaTRFbUNKS04xVm9iaENBOUJBN3NQMjV3NU1hc1oxbndkMVpyUGJRZkhJUDhHbW1BeHNMdndnZWhJNndXMm1IRm5JMFBMdGREdlN2a2htcU5zeXFPT3dOeUxvMTRIcnVfcDUwb0lOY3hPRktVLXNyZGVTR3FmQ2hOX2NZbm9PMGRrSi1ER0p1WVVzTndtVDkwcnlscC1YOWJ4NDJkOXBFVGtWRW5lcVE5OWExRkNJelBWUmtKamZWLXpsdyJ9.\u0022,\u0022correlationId\u0022:\u0022cadda1f9-13c6-4bcd-95b1-3133a803a141\u0022}", - "messageId": "e98a070e3cb8429cbd22ad8ce470bbe6", + "body": "{\u0022to\u0022:{\u0022kind\u0022:\u0022communicationUser\u0022,\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022from\u0022:{\u0022kind\u0022:\u0022communicationUser\u0022,\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC94LWNvbnYtZXVuby0wMS5jb252LnNreXBlLmNvbS9jb252L2N5NzJtN3B2VDAtR0JqLTBIQWJaSGc/aT0xJmU9NjM4MjA2NTUyNjc1OTIxMDI3\u0022,\u0022callerDisplayName\u0022:\u0022\u0022,\u0022incomingCallContext\u0022:\u0022eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJjYyI6Ikg0c0lBQUFBQUFBQUNzMVlhMi9qdUJYOUs0SUw5RU4zYUpFVUtWRUVqTUp4a2gxdkVpZklZM2M2Q0JwUUZHVnJJa3RhU242a3MvUGZleWs3aVNkT2Q5SjJCMWdGa01YWE9lZGV2dTdONTU1V1JUR3AyanpMdFdyenF1ekp6NzNNVm5QM202YzkyUk5TNlVhU0pGV0tKakdLT1k0UTQ0eWlKQWtaVWxGQ3FjWllpWlRkNGU0aEFtVnhURkZLRTRyaVdJZUl4NEhDS2NhYWNOTjcxMHZ6cGk3VXcwVE5EZUJEaFNuVHVzckxkdXo0RWg0YXdTT09PSWxUeEVUR2tjQU1veWhraE9rNERCWEdNS1pRNVhTaHBzYU5LUmRGOGE1WEs5dm1PcS9WRmtpSExFNTBCSkpObUNDbXd4U3BWRE9Va01nRVNzVlVhdzVBc3p4TkRaaWRxYUl4ejFxdUgycW5yakYyYWV5d3JxRm5iYXZhMlBiaFFFMDNuRi9lOWRycWozQlVsdTA1S3Z1bW96WWdHS05YWG8vUG14d2xvb0NKV0RrMUFvT2pERWNxeVNJVWtEQWpxY2pTTU1QN2pyS21xUlpXZDdpOXQxajlIenhZNU9WOTQ1eW8ybGJwR1lETjJyWnVwTytyT3U5blJUNmR0VEJ1L2RCdjdtRk8rcnFhdXhaL1NYMWQrMnVrTlRLTHNrS1k5TFhlNmFPMXZ5UitWdGw3ay9wS1lNSkNxcEJSQ1VITWdENFZnSjFZTUJ3S0dqTXRzRThqUHlkK3dHSi9JK1h2K1lDQTZMbEpjelVzbTVXeGJsVnBVRFpYRzJPbTRJVG1UNkg0VWN4V3N6V2ZqRzcvRk1vMlVyYTZGbWw5YlZYWjFKVjE2cUFJMmtqUWoxaWZoRUdmNGtBR0xCSis3OHZXNzZPcWJFMEpmVC8zOU9aenV6RlZYUmZiSTh0dlVyYzlrNkpLb0dFNXdMZjJ0cXdHeUtNaDRSNzJ4aE52Zk1FOFFxTStoai9pbXB0QkE5NkN3YTZnQjQ5ZFF0RVBhWjhTMGlkeDRKcVN3ZWhha3UxdWNoWHRBSHZkeDN5Z0ZtbGVlU3dtSWZNdXJ5Lzg0YzhYSHNITWkrRWRlSVFRandpZ0YxNGNRUTJVWEtVQUhmZ2JwR3BnVzEwajIrVC9NanZsTEpGLzg5Wm9Ec0poUDN2Z0FhK0JFMEdtemN5elJpL2R4NmI3R2pYNXRGU3d0YWEvTitvWld6b3IrS2FjYTRNV21WVlR5YUw3eStlNmVwWEs4TU81bnJIVGoxcE1vcVBoNnY2bVZLYzNtUTUzVk00WDYwMUpxekxOVTlVYUNhWjdONGNYSGlVQmpuRElBdkxDNkswVDJ3ZlFack5pN1ZtVnBoYWNCaDBFVEJuM3JGc3htMjc3NkhRSG5jZk94ZnZvL0czby9DVTZCZTNPTEtWYllLQ3dGRUljdmNiQTZac1lPTjFub04rWkFkWmQ1eUZDT2V4UFRDTHVjZG9uQkRhZEVQMDQ5R0RQeFIyMk5YRGZQR0ovTFdCbkJyeXo2NXZMeWZqUUl6d1dFUlUwcEdGSVNjeERLdmFtSjloT1QwY3U0UDZtL3hjNWZ5Sm4wTWlFQUEyWUJoRVJYSWlYM0xDNU90ZldxbWxBQUJNRStISDRRZ0FQb1A2dENnSzJ0MFRZZGdLL0x3dmZXWWlPaElzNElQZ1BKNkhmaTZSUWlTbmtYT1VsNmc3T1RlMDhUeVY1UExTU2xWSEZ0TEo1TzV2TFpLVzlXdWw3MDlZcXQ5N0tKSEM4YlBYYWg3cXRZT01QajY3dVJtZDNoSXE3OTJmRDBkM1YreUc1RTlqTFN6ajZqTXlySTNQKzZicGQvSkJOVHZ5VGYveGdSNytjMFlQa3A2c1pQY2pHbjlvYlk4WSttLzlHL3htUTM4aWprQzA4L1JiOCtyamd4OWxpZmZtSkwwd3hPcWVqb3Y1SkxYOWVsbWVUVFA5NmNQUXhucCtlV056QlA1NlE5VnpWY0tFdzcycDhldUtUY0h1dFBEWEYzbzhScGI1NFdlK3VsRzdJZmd0Y05GZmp5NlBKTGxvMmJ6Y3RTZDVhbU5uQlBoT2NrMEFWN3dCdUJnbFBsYVZaSjRPeStxby85aTVHWnpmNy9NTFZEL2ZyNGRhN1BEcDh6UkpZeUtZdzlhd3FEVEpMdU5QM05FQVhqRWo0OWJqQUcwMWVNMSs0K2xmc285ZzFzT2NSZFp2UDRieDlaSUxiMGRqYVFqd3RtNWxDbEljZVk1SkVraC9LZzZFVUl6bWljaFRLNDBnZWhqTG1Nb2J2V0k1aVNZVThPblFmUXl6RGtTUUhjblFzK1lFTVJqSU9aRVRsa0VnV3lPTmpHWS9rRVpGMEtNbWh4TnRGWU5adHA4OXp3Wm04aFdlMVd2VTNDN3hmMmVudHJWbERtQXhheTdhNXZRVnowQ3kxTU9yMlZpVU5jcmMzY3BaOGhSWThvejNGYmI4RGxLbW12VXRnMzYveXRKM2RaY2FrQ1d5MnYwQ3k0NktpdStBcGtHaXNSaEN5VGVHaWRkbUZlN20yeDhENDFFeTdEQ0NLT01rSTVHbUNLMGdpRE9RQ0NSTVVaVG9ocVJGaGtobVgwcGdHRXM0dWFqdlhlbUhCK2RPbmpLSTBxL01zYzFGMlZ3RWhJTVNISitiQkJYL2JhSzByOVc1VzYvQ0VIZit5UGhaNGNqb2RuNFFmeWYxME1BQjhTR3pneElBK2grUk16eWRsck8wcCs2Q3kwL2JEV1pZTm9RL0FXaEFPQVpOVGNiSEpTSExUcFNCNWM3bHRHaFpGdFRKZ1dHc1g1Z3VNZ2VqVCthYVRQaTZYZWZ1VUxlKzJ1SERWVmtYUnBRci9aZXdOTU0vUk54UjI0MjhvK3ZvaG92T29YbDVqOU9QQko0VGZENU9QNzZjdXNQNnJHWVNCb0Rqa25JWVJqeUdHb0JFNEkyL09Ga1diWDBDK0IyN2Jlamx2RG13RmlUQXNnR2RIcHlaWlRIZGpiZml2d0daYTB5d2ljUFpBUnFnMFpPT3hRQW5tTU1zNFNnUkxVcHdKbHh2K1R5a2w4RTV0dGFnNzNqWHdkaG5odndIUHQ5NFBreEFBQUE9PSIsInNoclRva2VuIjoiZXlKaGJHY2lPaUpTVXpJMU5pSXNJblI1Y0NJNkluQnZjQ0o5LmV5SmhkQ0k2SW1WNVNqQmxXRUZwVDJsS1MxWXhVV2xNUTBwb1lrZGphVTlwU2xOVmVra3hUbWxKYzBsdVp6RmtRMGsyU1dreFRGTlVUbEpQVnpWUFZXcGthVlZ0T1cxbFJ6RnNWMjA1V1dOWFNrbFhhMlJzWkhsSmMwbHRkSEJhUTBrMlNXa3hURk5VVGxKUFZ6VlBWV3BrYVZWdE9XMWxSekZzVjIwNVdXTlhTa2xYYTJSc1pIbEtPUzVsZVVwb1pGZFJhVTlwU21sT1JGWnNUVVJyZDFsVE1XdFpWMHB0VEZSUmVFNUVWWFJaVkVFeVQwTXdkMDlIUlRSTmFteHBUWHBDYkU5SFVXbE1RMHB3WXpOTmFVOXBTbTlrU0ZKM1kzcHZka3d6VGpCamVUVXpZVmMxYTJJelpIcE1iVFZzWkVNNWFscEhUVEZaVjFac1dWTXdlRTVYVFRGTVZGSnJXV3BaZEZscVFUTlBVekZ0V1RKR2ExcEVTVEZOUkZacldYcEpka2xwZDJsaFYwWXdTV3B2ZUU1cVp6Rk5WRVV6VFZSQk1FeERTblZaYlZscFQycEZNazlFVlhoTlZHTjRUVVJSYzBsdFZqUmpRMGsyVFZSWk5FNVVTWGROZW1kM1RrTjNhVmxYYkhaSmFtOXBVbFJLWVZveGJFOWhhemxRWld4Q2RscHJhR2xUZW1oNVQwWndjbVJ1VWpGT01HUXdUVlZLYmxGVU1HbE1RMHBvWTBoQ2NGcERTVFpKYlVWNldWUk5lbGw2U21oTVZFazFUMGRWZEU1RVJtdE5VekExVFZSTk0weFhSVEZPUkZsNVRXMVZNazlFUm1wWmVVbHpTVzFHZDJOSGJHdFpWMDU1U1dwdmFVMXBTWE5KYlU1MVdtbEpObVY1U25Ga01uTnBUMjV6YVdFelVqVkphbTlwVld4T1FrbHBkMmxpYVVrMlNXNW5NR1Z1VG5KU1JGWnRXbFpTWms5VlJsRllNamt3WlZjNU0xUXdkRkZrUld3MlRtMDVOVlZzYUVka1ZqbHBWRE5rZDFwVlVraGxSVW95VFRKYWQxSlZVbGxaYTBsM1pGZGFRazlFYkRCYWJHdzJVV3BrZEZWWE5EQlphM0JyVkZSR1RsWlZjSEZPYmxaM1ZVVTFXRk5XUm5wWk1sWkZVMWRrV1ZOSFpFWlJWbXgxVXpGR1NXSnNRbFJrYTA1TFpVWndkRmt5Vmtaa1NHZzBVekJ3YzFKNlRqSlhhemg2WVZWd1RGUXdXa05SV0VWM1dtMXNlVlZJUWxGTlZqa3pWa1JzYzJReE9VSldWR00wVWtaR1IxUldRblpZTVd3MllrZEtOV0pzWkZSaVZtUkNZV3huZUZKWVVsZGpha1p1WVROT1VtSjZhM1JPTURsMlRUTm9iMkZWY0cxWmJGSlFVMGRHYTFwSFNscE9SbFUwVlZoR1ZGSnNaSE5pV0ZaMFlqRkdjMUpGU25aYU1rbDNZak5qTUZwVlpFZGFSR1JxWTNwWk5FMUdUWGRYYW1SRllVVkdlVmxZVG1sWFZ6ZzFWVEprUlV4VlJuTlBWMHBxVTFkT1RsRXdaRFZoUjBaNFlrVk5kMkV5V2tWVk0wNUVWa1pPVVZWV09XMVRWV3cyVDBSU01HVkhaRlJOVlU1SFVtMDVhVk5ITVVaV2JFcE9aRmRSTUZaSGFFbFZWbVEwVFZVMWQySXpiSFprU0ZvMFZGVldlVlpFV21aWFV6Rm9UVmhHUkU1R09WcE9SWFExVlZOSmMwbHRWV2xQYVVwQ1ZWVkdRMGxwZDJsWlYzaHVTV3B2YVZWc1RYbE9WRmxwVEVOS2NtRlhVV2xQYVVreFRGUk9jMlJxYkZOa1NFa3hWMVJTUWxwRlpFdGlSWFJVWW1reE1tSkdWWFJrVld4SlQxVmFORTFXWkcxWFJFNUlWRWhLVkZwSGJGSkpiakU1VEVOS2NGcElRV2xQYVVwdlpFaFNkMk42YjNaTU0wNHdZM2sxTTJGWE5XdGlNMlI2VEcwMWJHUkRPV3BhUjAweFdWZFdiRmxUTUhoT1YwMHhURlJTYTFscVdYUlpha0V6VDFNeGJWa3lSbXRhUkVreFRVUldhMWw2U1haSmFYZHBZakpzYTBscWIybE5iVTB6VDFkT2FVNTZaM1JOTWs1cVdWTXdNRTB5Vm1sTVYwcHNXV3BKZEZscVFUVk9iVlpwVDFSSk1FNXRSVFJKYVhkcFkyMW5hVTlwU1hkTWEwWlRVMVZGTW1OVVpFZGxiVTVXVm01U2NrMXVaR3hhYm13d1RVZDRRMXBJWkc1aU1IQlpZMnhPWmsxdGRGZFJiVGxJV2pCc2VGRXlNVFpTUnpoM1ZUQkdRbEZUTkdsTVEwcDZaRmRKYVU5cFNYbFplbU0xV1RKSk0wOURNSHBaTWs1b1RGUlJlbHBYU1hSWmJWWnBUV2t4YVUxRWF6SmFWMGsxVFdwUk1sbFVaMmxNUTBvd1lWZFJhVTlwU21wYVIwMHhXVmRXYkZsVE1IaE9WMDB4VEZSU2ExbHFXWFJaYWtFelQxTXhiVmt5Um10YVJFa3hUVVJXYTFsNlNXbE1RMG94WkVkcmFVOXBTbTFsV0ZaWlVsaGtXbFpYV1hkalZYaHdaRE5vUm1KVmFIUllNRVpDU1dsM2FXUnRWbmxKYW05cFRWTTBkMGx1TUM1d1JtUklMV05IVVhkRFExcE5OREJmVjBOQldFbG1aak0xYmtZM2RFbzBabUp1YVcweVZIaFdiVXBpTkRSQmVrMWhaMjV1ZGtoTmVGUlpXVU01TjNsRU0wazBRbTFWVldKc2JrMVdOVmRKYWtSeVRVSlRabFJ3TW1zM1kxSjRaR2s1Ym5SVVEwWXdhMlZoU2taU01VUlJOVE5JVFVab1ptbHBZekpETmw4dGJGOVpRVFpLV2sxWlMwNVFhREY0VDBWb1ozQnlhbWhyVG1sbVdqQlBYMlZtU2xkaU4ycHVjbFZVY0RCVFVGZzFSMHRtVm1Ga2JqQnpiVlZ5YWs5SUxVSk1NMlpaWjBrNFdqWktSMGxWTUU1RlZuRktkVlUyVUUxdmVIRnhWMXB0TTNSNFMyUm1SV3Q1YUhRMU1GZ3RNbTVVV25aMGFETkhVVFIxYkhwak9GQXdRelZtU2xaak1IWjFSRzQxV0RjNWRYaDBXRk5tU0d0VU4wMVNZelJpTWpVeFRsbE5WRWRGYTNab05uY3dSRmt6UzBReFNGZHZka1U0ZWxNMlEwSldjMFp3Y1VGbVVGRTBhRnBZWlVnM1UwMHhUV1pYYm1jaUxDSjBjeUk2TVRZNE5URXpNVGszTWl3aVlpSTZJa0YyY0hobk1ETjRNa2R3WVdGdFRGTlNNWGhXYVhoWVNqSmFlVkJvVm5aTFZERjZkRVZETlVSaFZ6Z2lMQ0p1YjI1alpTSTZJbU5pTkRBek1USm1PRGswWVRRMk5qWmhPRE0yWm1SaFpHRXlOelZoWWpVeUlpd2lZMjVtSWpwN0ltcDNheUk2ZXlKcmFXUWlPaUk0VnpONGIzTkhTR0oyZUZSQlEwdENkVVI0T1c1UVlrSmlOMWRtUWtkWGNWRlhRME55TVc1bExYa3dJaXdpWlNJNklrRlJRVUlpTENKcmRIa2lPaUpTVTBFaUxDSnVJam9pZURSNmMydEVOV1psVkY4NVFWQmZiM1I1YjNkUFMxQjBTWG8yYjNsU1dFWjFYMkpQZDNCbFJFZDRRbll6Wm5CRlJGaGlRakIxWmtFNE9YUm1XWHBDTjIxUmJqUmlTbVJOTVUxVlNtbzJkWEJRVGxkSlVYTmpaVVJKWjFoSVowVkJXVzVMVVVodVVGTjJRMHA0V20xalpVVjBlSGhMU214SE0zWmFUek5wU2t0UFJrSkJjVEJtYVhKUWNGQXhYM2RVT1d4M1gwRlZOemhFVVVaTlVHOWZXWHBzWW5sdVYxTnRWMEZxV0RGRmRGWnlNV2RyYzFGdk9TMDNUMjh6ZUdocFNtWmlWRTlJWVdSa1lsazBWVGhSY1ZOR1YyeHRkVzF2VVd4RVFtOW5ZakJ2ZHpSbFIwWmtOMk56Tmpnd1V6QmFOMFJvUVhKaGMySlpiemxUWjBRdFFXdzVZbU5KWTAxRFIzbG9ZWEZzUXpCclprUlRjME5VVTFCUlgyWkpTWG80TkhSNFoxTXhRMFpHYjJKSWJVVldVazExWkRSVWFFaFJWM2d4VG5CdmVXOTBkbmhOUlhKVU5sOVpMV0V4Y1VNMFgxazBTM2xSSW4xOWZRLkxxelVoVkMxek5nelNOMW9vZVQzazFCT1QtX3lYMVExM21xOXFHc3F2ZjlCNTlkMGplNlRBN0tXT1hocklwMUNOTkREZHVCSllqMXdYVmUyRWhxREN5VEZ4czZ3Q0d5RmNwQnNVMXpoYkVRSE1hdUZGZzI0bjI5WEUzRDh5Q1ZvX045MzJMcmVPRkZoQlpudk5vbi1kNWZuMUQ5SzJzQmMyYWFBNXFHbE5EaTFRN2VZSUxZXzdjZC1fVUxfMUVOdUR1eFJFVklMSHFEMi1fSExyTXN1c1NLUXE4VTkyOWdobGVyX2JuTlctQ1E3eFVlWS1zWjZtQlBjQkVBTkxwbVBqaUloUm5JQUlLZVQxRDhScWotcWN4TFhOWDJTeXllczR6QWszWVYxbF9TSjEzOUlyZ0pLRGZsRC1PQ051b2U2T1UwV1ZNSVV5SU1mS1piMTMwX3JLQSJ9.\u0022,\u0022correlationId\u0022:\u00227df71103-abac-4898-b050-807b84bd0f80\u0022}", + "messageId": "09d5820352144af79097c076ecfbd3f4", "partitionKey": null, "sessionId": null, "replyToSessionId": null, @@ -11,13 +11,13 @@ "contentType": null, "replyTo": null, "applicationProperties": { - "Diagnostic-Id": "00-ddf4454b4558740ace17c162c2dda77b-86196039aa1282ba-00" + "Diagnostic-Id": "00-8f6dfab978812c6f5f744fca6dd87244-98cd4a749d09905d-00" }, "enqueuedTime": "0001-01-01T00:00:00+00:00" }, { - "body": "[{\u0022id\u0022:\u0022Sanitized\u0022,\u0022source\u0022:\u0022calling/callConnections/401f3500-3e66-41b7-a9bb-2d7a775ac83b\u0022,\u0022type\u0022:\u0022Microsoft.Communication.CallConnected\u0022,\u0022data\u0022:{\u0022callConnectionId\u0022:\u0022401f3500-3e66-41b7-a9bb-2d7a775ac83b\u0022,\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzd2UtMDIuY29udi5za3lwZS5jb20vY29udi9Dek9ZZU1ETWhVLXo2SFhoaTBTZ3lnP2k9NCZlPTYzODE5Mjc2NzYxNTIzODI1Mg==\u0022,\u0022correlationId\u0022:\u0022cadda1f9-13c6-4bcd-95b1-3133a803a141\u0022},\u0022time\u0022:\u00222023-05-10T18:28:08.1181865\\u002B00:00\u0022,\u0022specversion\u0022:\u00221.0\u0022,\u0022datacontenttype\u0022:\u0022application/json\u0022,\u0022subject\u0022:\u0022calling/callConnections/401f3500-3e66-41b7-a9bb-2d7a775ac83b\u0022}]", - "messageId": "e450a3a41b724c799b88a4ea654c2eb7", + "body": "[{\u0022id\u0022:\u0022Sanitized\u0022,\u0022source\u0022:\u0022calling/callConnections/441f1200-99ea-4773-9879-89c9f13fef83\u0022,\u0022type\u0022:\u0022Microsoft.Communication.ParticipantsUpdated\u0022,\u0022data\u0022:{\u0022participants\u0022:[{\u0022identifier\u0022:{\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022kind\u0022:\u0022communicationUser\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022isMuted\u0022:false},{\u0022identifier\u0022:{\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022kind\u0022:\u0022communicationUser\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022isMuted\u0022:false}],\u0022sequenceNumber\u0022:1,\u0022callConnectionId\u0022:\u0022441f1200-99ea-4773-9879-89c9f13fef83\u0022,\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC94LWNvbnYtZXVuby0wMS5jb252LnNreXBlLmNvbS9jb252L2N5NzJtN3B2VDAtR0JqLTBIQWJaSGc/aT0xJmU9NjM4MjA2NTUyNjc1OTIxMDI3\u0022,\u0022correlationId\u0022:\u00227df71103-abac-4898-b050-807b84bd0f80\u0022},\u0022time\u0022:\u00222023-05-26T20:12:57.7415219\\u002B00:00\u0022,\u0022specversion\u0022:\u00221.0\u0022,\u0022datacontenttype\u0022:\u0022application/json\u0022,\u0022subject\u0022:\u0022calling/callConnections/441f1200-99ea-4773-9879-89c9f13fef83\u0022}]", + "messageId": "7b071b1392e84948812eb10e63a265c9", "partitionKey": null, "sessionId": null, "replyToSessionId": null, @@ -26,13 +26,13 @@ "contentType": null, "replyTo": null, "applicationProperties": { - "Diagnostic-Id": "00-c106a6726aabb73428bf4dcc3ff714b7-f24dc5f1dba6a06a-00" + "Diagnostic-Id": "00-d2a0d737fa6cf2fe1c0ac60823255499-e10959c073733888-00" }, "enqueuedTime": "0001-01-01T00:00:00+00:00" }, { - "body": "[{\u0022id\u0022:\u0022Sanitized\u0022,\u0022source\u0022:\u0022calling/callConnections/401f3500-3e66-41b7-a9bb-2d7a775ac83b\u0022,\u0022type\u0022:\u0022Microsoft.Communication.ParticipantsUpdated\u0022,\u0022data\u0022:{\u0022participants\u0022:[{\u0022identifier\u0022:{\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022kind\u0022:\u0022communicationUser\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022isMuted\u0022:false},{\u0022identifier\u0022:{\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022kind\u0022:\u0022communicationUser\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022isMuted\u0022:false}],\u0022sequenceNumber\u0022:1,\u0022callConnectionId\u0022:\u0022401f3500-3e66-41b7-a9bb-2d7a775ac83b\u0022,\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzd2UtMDIuY29udi5za3lwZS5jb20vY29udi9Dek9ZZU1ETWhVLXo2SFhoaTBTZ3lnP2k9NCZlPTYzODE5Mjc2NzYxNTIzODI1Mg==\u0022,\u0022correlationId\u0022:\u0022cadda1f9-13c6-4bcd-95b1-3133a803a141\u0022},\u0022time\u0022:\u00222023-05-10T18:28:08.1181865\\u002B00:00\u0022,\u0022specversion\u0022:\u00221.0\u0022,\u0022datacontenttype\u0022:\u0022application/json\u0022,\u0022subject\u0022:\u0022calling/callConnections/401f3500-3e66-41b7-a9bb-2d7a775ac83b\u0022}]", - "messageId": "261d242653154a639ee6e17e0cc6ffed", + "body": "[{\u0022id\u0022:\u0022Sanitized\u0022,\u0022source\u0022:\u0022calling/callConnections/441f1200-99ea-4773-9879-89c9f13fef83\u0022,\u0022type\u0022:\u0022Microsoft.Communication.CallConnected\u0022,\u0022data\u0022:{\u0022callConnectionId\u0022:\u0022441f1200-99ea-4773-9879-89c9f13fef83\u0022,\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC94LWNvbnYtZXVuby0wMS5jb252LnNreXBlLmNvbS9jb252L2N5NzJtN3B2VDAtR0JqLTBIQWJaSGc/aT0xJmU9NjM4MjA2NTUyNjc1OTIxMDI3\u0022,\u0022correlationId\u0022:\u00227df71103-abac-4898-b050-807b84bd0f80\u0022},\u0022time\u0022:\u00222023-05-26T20:12:57.835222\\u002B00:00\u0022,\u0022specversion\u0022:\u00221.0\u0022,\u0022datacontenttype\u0022:\u0022application/json\u0022,\u0022subject\u0022:\u0022calling/callConnections/441f1200-99ea-4773-9879-89c9f13fef83\u0022}]", + "messageId": "c112e2335db24d41a47b19e0518dcd27", "partitionKey": null, "sessionId": null, "replyToSessionId": null, @@ -41,13 +41,13 @@ "contentType": null, "replyTo": null, "applicationProperties": { - "Diagnostic-Id": "00-8e92e8e292c0857b44d54660ff057313-d6414606c8fa1a0a-00" + "Diagnostic-Id": "00-8a34c57360e7b449bad5843a1b4cd616-5654833ec15edcda-00" }, "enqueuedTime": "0001-01-01T00:00:00+00:00" }, { - "body": "[{\u0022id\u0022:\u0022Sanitized\u0022,\u0022source\u0022:\u0022calling/callConnections/401f3500-3e66-41b7-a9bb-2d7a775ac83b\u0022,\u0022type\u0022:\u0022Microsoft.Communication.RemoveParticipantSucceeded\u0022,\u0022data\u0022:{\u0022operationContext\u0022:\u0022MyTestOperationcontext\u0022,\u0022participant\u0022:{\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022callConnectionId\u0022:\u0022401f3500-3e66-41b7-a9bb-2d7a775ac83b\u0022,\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzd2UtMDIuY29udi5za3lwZS5jb20vY29udi9Dek9ZZU1ETWhVLXo2SFhoaTBTZ3lnP2k9NCZlPTYzODE5Mjc2NzYxNTIzODI1Mg==\u0022,\u0022correlationId\u0022:\u0022cadda1f9-13c6-4bcd-95b1-3133a803a141\u0022},\u0022time\u0022:\u00222023-05-10T18:28:09.0556259\\u002B00:00\u0022,\u0022specversion\u0022:\u00221.0\u0022,\u0022datacontenttype\u0022:\u0022application/json\u0022,\u0022subject\u0022:\u0022calling/callConnections/401f3500-3e66-41b7-a9bb-2d7a775ac83b\u0022}]", - "messageId": "711f7444c5c24c17b1e8a36dfc2f354c", + "body": "[{\u0022id\u0022:\u0022Sanitized\u0022,\u0022source\u0022:\u0022calling/callConnections/441f1200-99ea-4773-9879-89c9f13fef83\u0022,\u0022type\u0022:\u0022Microsoft.Communication.RemoveParticipantSucceeded\u0022,\u0022data\u0022:{\u0022operationContext\u0022:\u0022MyTestOperationcontext\u0022,\u0022participant\u0022:{\u0022rawId\u0022:\u0022Sanitized\u0022,\u0022communicationUser\u0022:{\u0022id\u0022:\u0022Sanitized\u0022}},\u0022callConnectionId\u0022:\u0022441f1200-99ea-4773-9879-89c9f13fef83\u0022,\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC94LWNvbnYtZXVuby0wMS5jb252LnNreXBlLmNvbS9jb252L2N5NzJtN3B2VDAtR0JqLTBIQWJaSGc/aT0xJmU9NjM4MjA2NTUyNjc1OTIxMDI3\u0022,\u0022correlationId\u0022:\u00227df71103-abac-4898-b050-807b84bd0f80\u0022},\u0022time\u0022:\u00222023-05-26T20:12:59.6008579\\u002B00:00\u0022,\u0022specversion\u0022:\u00221.0\u0022,\u0022datacontenttype\u0022:\u0022application/json\u0022,\u0022subject\u0022:\u0022calling/callConnections/441f1200-99ea-4773-9879-89c9f13fef83\u0022}]", + "messageId": "cd59d3169ed04caca4929c662b9689b7", "partitionKey": null, "sessionId": null, "replyToSessionId": null, @@ -56,13 +56,13 @@ "contentType": null, "replyTo": null, "applicationProperties": { - "Diagnostic-Id": "00-17f6308df4056ebe2d7646b346ff218d-28eaa5d04e73aeeb-00" + "Diagnostic-Id": "00-3dff6bac80fe43b9eac06386e31470da-d41b6d457598e7b9-00" }, "enqueuedTime": "0001-01-01T00:00:00+00:00" }, { - "body": "[{\u0022id\u0022:\u0022Sanitized\u0022,\u0022source\u0022:\u0022calling/callConnections/401f3500-3e66-41b7-a9bb-2d7a775ac83b\u0022,\u0022type\u0022:\u0022Microsoft.Communication.CallDisconnected\u0022,\u0022data\u0022:{\u0022callConnectionId\u0022:\u0022401f3500-3e66-41b7-a9bb-2d7a775ac83b\u0022,\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzd2UtMDIuY29udi5za3lwZS5jb20vY29udi9Dek9ZZU1ETWhVLXo2SFhoaTBTZ3lnP2k9NCZlPTYzODE5Mjc2NzYxNTIzODI1Mg==\u0022,\u0022correlationId\u0022:\u0022cadda1f9-13c6-4bcd-95b1-3133a803a141\u0022},\u0022time\u0022:\u00222023-05-10T18:28:09.118133\\u002B00:00\u0022,\u0022specversion\u0022:\u00221.0\u0022,\u0022datacontenttype\u0022:\u0022application/json\u0022,\u0022subject\u0022:\u0022calling/callConnections/401f3500-3e66-41b7-a9bb-2d7a775ac83b\u0022}]", - "messageId": "a698736bb7d14a9dbd48009e1139d607", + "body": "[{\u0022id\u0022:\u0022Sanitized\u0022,\u0022source\u0022:\u0022calling/callConnections/441f1200-99ea-4773-9879-89c9f13fef83\u0022,\u0022type\u0022:\u0022Microsoft.Communication.CallDisconnected\u0022,\u0022data\u0022:{\u0022callConnectionId\u0022:\u0022441f1200-99ea-4773-9879-89c9f13fef83\u0022,\u0022serverCallId\u0022:\u0022aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC94LWNvbnYtZXVuby0wMS5jb252LnNreXBlLmNvbS9jb252L2N5NzJtN3B2VDAtR0JqLTBIQWJaSGc/aT0xJmU9NjM4MjA2NTUyNjc1OTIxMDI3\u0022,\u0022correlationId\u0022:\u00227df71103-abac-4898-b050-807b84bd0f80\u0022},\u0022time\u0022:\u00222023-05-26T20:12:59.7571024\\u002B00:00\u0022,\u0022specversion\u0022:\u00221.0\u0022,\u0022datacontenttype\u0022:\u0022application/json\u0022,\u0022subject\u0022:\u0022calling/callConnections/441f1200-99ea-4773-9879-89c9f13fef83\u0022}]", + "messageId": "52aa804ed18b4f60bafce92c806d84fc", "partitionKey": null, "sessionId": null, "replyToSessionId": null, @@ -71,7 +71,7 @@ "contentType": null, "replyTo": null, "applicationProperties": { - "Diagnostic-Id": "00-f5c0c02350070be2ac49f3fe18f7a851-2ae865b446d1b046-00" + "Diagnostic-Id": "00-ae06dda9f3b8f32ba993338814e242e2-9adf1c870ee35473-00" }, "enqueuedTime": "0001-01-01T00:00:00+00:00" } diff --git a/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecords/CallAutomationClientAutomatedLiveTests/CreateCallAndReject.json b/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecords/CallAutomationClientAutomatedLiveTests/CreateCallAndReject.json index 19bbb3a4eb39..f031fd975c61 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecords/CallAutomationClientAutomatedLiveTests/CreateCallAndReject.json +++ b/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecords/CallAutomationClientAutomatedLiveTests/CreateCallAndReject.json @@ -8,11 +8,11 @@ "Authorization": "Sanitized", "Content-Length": "2", "Content-Type": "application/json", - "traceparent": "00-35109207cf53fc43edb88b62c8e7210d-40cc456409097327-00", - "User-Agent": "azsdk-net-Communication.Identity/1.3.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "418d1b341064ff3255fbb4afff9db6de", + "traceparent": "00-705c1588b5a246126949c0814977367d-8da08b449bdb1799-00", + "User-Agent": "azsdk-net-Communication.Identity/1.3.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "fefb86528e830a5e42c7461f54b1d613", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:29 GMT", + "x-ms-date": "Fri, 26 May 2023 19:27:49 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": {}, @@ -21,14 +21,14 @@ "api-supported-versions": "2020-07-20-preview2, 2021-02-22-preview1, 2021-03-07, 2021-10-31-preview, 2021-11-01, 2022-06-01, 2022-10-01, 2023-08-01", "Content-Length": "31", "Content-Type": "application/json; charset=utf-8", - "Date": "Wed, 10 May 2023 18:27:30 GMT", - "MS-CV": "FDH5DCqGh0SVw3pQuyT23g.0", + "Date": "Fri, 26 May 2023 19:27:51 GMT", + "MS-CV": "Wxcn1ysF20SeuvqC\u002BHUxPA.0", "Request-Context": "appId=", "Strict-Transport-Security": "max-age=2592000", - "X-Azure-Ref": "0E\u002BJbZAAAAABXLjR6EN7oQrLYMtPfZ8w0WVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "X-Azure-Ref": "0OAhxZAAAAAC0ne1J0R1oQo7GOHbFr2c7V1NURURHRTA4MTUAOWZjN2I1MTktYThjYy00Zjg5LTkzNWUtYzkxNDhhZTA5ZTgx", "X-Cache": "CONFIG_NOCACHE", - "x-ms-client-request-id": "418d1b341064ff3255fbb4afff9db6de", - "X-Processing-Time": "105ms" + "x-ms-client-request-id": "fefb86528e830a5e42c7461f54b1d613", + "X-Processing-Time": "32ms" }, "ResponseBody": { "identity": { @@ -44,11 +44,11 @@ "Authorization": "Sanitized", "Content-Length": "2", "Content-Type": "application/json", - "traceparent": "00-5eb98b6dd684f3d94281b4a5016cb1a8-a5c1e7dd7a76e666-00", - "User-Agent": "azsdk-net-Communication.Identity/1.3.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "0f447c2656ea5971d51384ad57c8c880", + "traceparent": "00-011db3db0fbaa4f9b513bda5011470df-e00b5e42f66959b1-00", + "User-Agent": "azsdk-net-Communication.Identity/1.3.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "35c3a426e62ec3853c5b25ba56b35357", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:29 GMT", + "x-ms-date": "Fri, 26 May 2023 19:27:50 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": {}, @@ -57,14 +57,14 @@ "api-supported-versions": "2020-07-20-preview2, 2021-02-22-preview1, 2021-03-07, 2021-10-31-preview, 2021-11-01, 2022-06-01, 2022-10-01, 2023-08-01", "Content-Length": "31", "Content-Type": "application/json; charset=utf-8", - "Date": "Wed, 10 May 2023 18:27:30 GMT", - "MS-CV": "/\u002Bmk7B4tRUags4GfuUPG7Q.0", + "Date": "Fri, 26 May 2023 19:27:51 GMT", + "MS-CV": "aKAcDpGFY0CWKunr9yx6tQ.0", "Request-Context": "appId=", "Strict-Transport-Security": "max-age=2592000", - "X-Azure-Ref": "0E\u002BJbZAAAAADd5gZwohDdQYDViibqgA/\u002BWVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "X-Azure-Ref": "0OAhxZAAAAACrAUpjNu91TroGWNOX6Z5AV1NURURHRTA4MTUAOWZjN2I1MTktYThjYy00Zjg5LTkzNWUtYzkxNDhhZTA5ZTgx", "X-Cache": "CONFIG_NOCACHE", - "x-ms-client-request-id": "0f447c2656ea5971d51384ad57c8c880", - "X-Processing-Time": "80ms" + "x-ms-client-request-id": "35c3a426e62ec3853c5b25ba56b35357", + "X-Processing-Time": "32ms" }, "ResponseBody": { "identity": { @@ -79,37 +79,36 @@ "Accept": "application/json", "Authorization": "Sanitized", "Content-Length": "0", - "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "X-FORWARDED-HOST": "Sanitized", - "x-ms-client-request-id": "2fd849409075acda6294e5ed29893c2c", + "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "93cd1ded55597caed11c20547a22a54b", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:30 GMT", + "x-ms-date": "Fri, 26 May 2023 19:27:50 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { "Content-Length": "0", - "Date": "Wed, 10 May 2023 18:27:33 GMT", + "Date": "Fri, 26 May 2023 19:27:54 GMT", "Server": "Kestrel" }, "ResponseBody": null }, { - "RequestUri": "https://sanitized.skype.com/calling/callConnections?api-version=2023-01-15-preview", + "RequestUri": "https://sanitized.skype.com/calling/callConnections?api-version=2023-03-06", "RequestMethod": "POST", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "Content-Length": "205", + "Content-Length": "197", "Content-Type": "application/json", "Repeatability-First-Sent": "Sanitized", "Repeatability-Request-ID": "Sanitized", - "traceparent": "00-80444621c4fec2b9d09efba8bc724b54-3615feca25110fbb-00", - "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "c2a67961ec37de59aa346b508b84a88d", + "traceparent": "00-870471b3e9d4c7e35aac98141d6f53bf-1397eb1aa4ce84cf-00", + "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "0bb8bd608a736ce90138c12868a3b48f", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:32 GMT", + "x-ms-date": "Fri, 26 May 2023 19:27:53 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": { @@ -121,27 +120,23 @@ } } ], - "sourceIdentity": { + "source": { "id": "Sanitized" }, - "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized", - "customContext": { - "voipHeaders": { - } - } + "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized" }, "StatusCode": 201, "ResponseHeaders": { - "Content-Length": "533", + "Content-Length": "464", "Content-Type": "application/json; charset=utf-8", - "Date": "Wed, 10 May 2023 18:27:32 GMT", - "X-Azure-Ref": "0FeJbZAAAAADdjefT6NW3TKSJvcer9cKpWVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "Date": "Fri, 26 May 2023 19:27:55 GMT", + "X-Azure-Ref": "0OwhxZAAAAAB66bFfgLilSIezJKCPGZ8TV1NURURHRTA4MTUAOWZjN2I1MTktYThjYy00Zjg5LTkzNWUtYzkxNDhhZTA5ZTgx", "X-Cache": "CONFIG_NOCACHE", - "X-Microsoft-Skype-Chain-ID": "21afa092-9e3c-4f21-a526-260b3fbfb2b3", - "x-ms-client-request-id": "c2a67961ec37de59aa346b508b84a88d" + "X-Microsoft-Skype-Chain-ID": "f15b6ce4-b0cc-44e9-bf5c-e0fe789f82c7", + "x-ms-client-request-id": "0bb8bd608a736ce90138c12868a3b48f" }, "ResponseBody": { - "callConnectionId": "401f3500-4391-4c88-8eec-90bac9c28e33", + "callConnectionId": "411f1200-17d6-413b-85bc-337e55180aa3", "targets": [ { "rawId": "Sanitized", @@ -153,103 +148,83 @@ ], "callConnectionState": "connecting", "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized", - "mediaSubscriptionId": "d735cdc7-c747-4023-a9ec-a6a65a58ca89", "sourceDisplayName": "", - "sourceIdentity": { + "source": { "rawId": "Sanitized", "kind": "communicationUser", "communicationUser": { "id": "Sanitized" } }, - "correlationId": "21afa092-9e3c-4f21-a526-260b3fbfb2b3" + "correlationId": "f15b6ce4-b0cc-44e9-bf5c-e0fe789f82c7" } }, { - "RequestUri": "https://sanitized.skype.com/calling/callConnections:reject?api-version=2023-01-15-preview", + "RequestUri": "https://sanitized.skype.com/calling/callConnections:reject?api-version=2023-03-06", "RequestMethod": "POST", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "Content-Length": "8075", + "Content-Length": "8069", "Content-Type": "application/json", "Repeatability-First-Sent": "Sanitized", "Repeatability-Request-ID": "Sanitized", - "traceparent": "00-a5fbe5f61103290104177aaa39a3e4e2-6830c8e376ac05b7-00", - "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "b56f343286c59668a197ad5671832f4c", + "traceparent": "00-ceba6c1528795e40f7ee10bae211f340-bfccbaebff64cba9-00", + "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "3631ef7343e3d0baf5466312c530481a", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:34 GMT", + "x-ms-date": "Fri, 26 May 2023 19:28:00 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": { - "incomingCallContext": "eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJjYyI6Ikg0c0lBQUFBQUFBQUNzMVliVy9iT0JMK0s0SVB1QStIMGlZcFNxSUlHQXZYZHR1a1NacEw4OUpkQkJkUUpHVXJrU1dWa3QvUzdYL2ZvZXdrVHR6cjl1NTJEK3NBc2trT24rZmhpRVBPNUV0SHlUdy9LWnNzelpSc3NyTG9pQytkMUpZejk1M3BqdWh3SVZVdFNLS2xwRW1NNGdCSGlBV01vaVFKR1pKUlFxbkNXSExOYm5EN0lSekpVQ21VcEQ1SHZ2Wmp4STB2c2NaWWt6RHR2T3Jvcks1eXVUNlJNd1A0MEdFS1haVlowUnc0UGo5Vk9xSlJpTkxZVHhFTHFVR3hIeXJFTkZZa3dxa0tFeC9tNUxLWXpPWEV1RG5GUE05ZmRTcHBtMHhsbGR3Q3hRbnp1WThwU29PQUk1YVNDTWs0RFpDU1NxZWFNa1VTQ1VEVFRHc0R5MDVsWHBzbkxlZnJ5cW1yalYwWU82Z3FzS3hzV1JuYnJGL0x5WWJ6NjZ0T1UvNFJqa3FpbDQ2SzhPODZhZ09DTWZyRzQrSHpRNDdDbk5NMDFUN0NqRWp3T0pkSTRpUkZPbUtSb2FrMmtVcjJIV1ZOWGM2dGFuRTdQN0xxZitQQlBDdnVhdWRFMlRSU1RRRnMyalJWTFhvOVdXWGROTThtMHdibXJkYmQrZzdlU1ZlVk16ZlNXOUNlcW5yZ3ZubHRKRVdZZHBYYU1WR3F0eUM5dExSM1J2ZDBCRUo0ckZIQ1FCbmpxVUVjTTNoRVdtTkthWmdrcEVlalhrWjZQb3Q3R3lVL1pYMENtbWRHWjNKUTFFdGpRWnRTSUd6bTlnMW9tb0FQNnIrQzRBY3RXOG5XM0JyVi9CV0ViWlJzWmMxMWRXNWxVVmVsZGVLZ0NkSUMyaVdFZFFtRDc1Z0luMFc4MS9tNmRmdXdMQnBUZ1BHWGp0cjgzSWFscktwOGUyRDFhdTJDTThuTEJBWVdmWHh0cjR1eWp6eENHV09oaDcyREUrL2dsRUU3Nm1MNEk4Nmc3dGZnTDVqdUdxcS9OV0c0Ry9FdXdYNlhSTnlOSlAzaHVTRGJZSElkVFI5NzdZOVpYODUxVm5vQnhqNzJ6czVQZTRQTFU0OWc1c1h3OUQxQ2lFYzRzSE12anFBSFdxNlRnd3o4ZlU3WnQ0MnFrSzJ6ZTdQVFRoUHhEMitGWmlBYm90a0REM2cxbkFkQzExUFBHclZ3UHpibUsxUm5rMEpDWUUyK04rc0pXN2hGdEc2Ui9Vd1pORSt0bkFoMUt1MVRYN1hVWXZUdVlsWVdBWjRNNGtNMkdoenArOCtYNjlIdGFFZmxiTDdhdEpRc2RLWmxZd1NzM0xzWW5YcVUrRGpDSWZQSjh6VnZYZGlzUVpwTjg1Vm5wZFlXWE5hbGhMdjN4VHpydHN6R2JoK2Q3cUFITVhoNEg1MzhJRHA1aVU1QnUxdVdWQTB3VU5nSklZNWVNckNZQlBRSEdGcTdmUWI2SnpQQXRtczlSR2pBYVl4SkZIZ1BRY2RiQ2crQ0xtN1JyWUhyWm92K1hNSE9HL0NPenkvT1RnNUdIZ2w5bUVrWmljT1FFWUlEL2kxeStrVE93WkQrVCtUa2tUeUVkZURJWnl5SWZNcjl5TWY4SlRlRWZPdmFTdGExT3cyNEU0ckQ1d0tnQ1RjeC9rRUZNV2I3TFBUL3dCTHNiRVJIRXZEWUI3dy9tb1QrV1NTNVRFd3VaaklyVUh0dWJucG5tUmJibUZ1aFpHbGtQaWx0MWt4bklsa3FyNUxxempTVnpLeTNOQWtjTDF1OWRsMDFKUVQrWVB6eFpuaDhReWkvZVhjOEdONThmRGNnTnh4N1dRRkhueEdYMmNHSHQrbXlLZU82eUVhdnI5Ni9XUTFaTUs1dWt5TDZwNHJmdjdIbDJzNUdSNy9TZi9ua1YvSWdaQXRQZncvKy9TZk8wc04zeS9sRTg4UHErUFNYOGR2NzQ2dHBjVkhkWjdkblIreXUvank1UE1GVkMvOXdRbFl6V2NGOXdyeVBCMGZ2ZXlUYzNpcVBRN0gzTnFLMHgxLzJ1MEJwcCt5UHdEM3o4ZUJzZkxLTGxzNmF6VWlTTlJiZWJIK2ZDYzVKb0lwM0FEZVR1Q2VMd3F5U2ZsRStzOGZlNmZENFlwK2Z1LzdCZmo5Y2VtZmowYmRXQWh2WjVLYWFsb1ZCWmdGMytwNEdNTUdJaE0vbitkN3c1RnZMNTY3L0crdWoyQTJ3cHhsVms4M2d2SDFnZ3R2UjJNcENOaTNxcVVRMENMMTRMTWF4aUdQQlg0dGhMRVpjREFaaU9CWjBKQVpNdkg0amdxRVlNUkg3clUwb1dDaDhHS1ZpSElvSWVrYmlEUmR2WU5SM1UwSW04Rmd3eUdrQXh4ZUQ0WWJZckpwV24rZVNNM0VObitWeTJkMXM4RzVwSjlmWFpnVkpNbWd0bXZyNkdwYURwdHJDck90cm1kVEkzZDdJcmVRWm12K0U5cGk0ZlFjb2xYVnprMERjTHpQZFRHOVNZM1FDd2ZZM0tIVmNUblRqUHlZU3RWVUljcllKWExTdXRuQVBOL2FRRngrWlNadi9KeUhSUVNvNUNsVWNJSlpBTVNGWklCSHhJeDJFakFZK2M1V2ZxYUhjYkxPMkQwck5MVGgvOGxoUEZHYjVJVTFka3QxMlFBb0lDZUo3czNiSjN6WlhhMXNkOW9FZVhPYW40ZUk0cmFyNVlYUjJtQjNjVC9wOXdJZXlCazRNc0luT1l2YnpiWDcxK2RPSHhidnlsN2R2ODAvcm41ZGdBN0FXaEVQQzVGU2NidXFSekxRRlNGYWZiWWNHZVY0dURTeXNzWFB6RmVaQTl1bDgwMG8vS0JaWjgxZ3I3NDY0ZE5XV2VkNVdDdjlSN2cwZ2tIMHZUWnQ4UTJNMy9ZWm1iekdjMXV6cTFsemRoZXZwK0tpSkdaM0ZBNWRYczcrYmZ1akRwVU1qRmdaeHdLRm9pMTJCbk5YSDg3ekpJSWxyd0d0YkoyZjFhMXRLcmVEOVAvbFptMlErMlUyMTRWOEM3VnVsUktZU3h4VEZ4b2NDUEtVRXlZQ0dpSVk0OFZNb1cybGJpdjlYOVNUd1RtdzVyMXJlRmZDMjVlQnZjSVBIOFpBUUFBQT0iLCJzaHJUb2tlbiI6ImV5SmhiR2NpT2lKU1V6STFOaUlzSW5SNWNDSTZJbkJ2Y0NKOS5leUpoZENJNkltVjVTakJsV0VGcFQybEtTMVl4VVdsTVEwcG9Za2RqYVU5cFNsTlZla2t4VG1sSmMwbHVaekZrUTBrMlNXa3hURk5VVGxKUFZ6VlBWV3BrYVZWdE9XMWxSekZzVjIwNVdXTlhTa2xYYTJSc1pIbEpjMGx0ZEhCYVEwazJTV2t4VEZOVVRsSlBWelZQVldwa2FWVnRPVzFsUnpGc1YyMDVXV05YU2tsWGEyUnNaSGxLT1M1bGVVcG9aRmRSYVU5cFNtbE9SRlpzVFVScmQxbFRNV3RaVjBwdFRGUlJlRTVFVlhSWlZFRXlUME13ZDA5SFJUUk5hbXhwVFhwQ2JFOUhVV2xNUTBwd1l6Tk5hVTlwU205a1NGSjNZM3B2ZGt3elRqQmplVFV6WVZjMWEySXpaSHBNYlRWc1pFTTVhbHBIVFRGWlYxWnNXVk13ZUU1WFRURk1WRkpyV1dwWmRGbHFRVE5QVXpGdFdUSkdhMXBFU1RGTlJGWnJXWHBKZGtscGQybGhWMFl3U1dwdmVFNXFaM3BPZWtGNlQxUkZNa3hEU25WWmJWbHBUMnBGTWs5RVRUTk5SRTAxVFZSWmMwbHRWalJqUTBrMlRWUlpORTE2WXpWTlJGbDRUbWwzYVZsWGJIWkphbTlwVWxSS1lWb3hiRTloYlRGclVqSkplazF1VW5OVVdIQllUVVUxZEU1NlZuTmpiWFJ3WTBWS00xRlVNR2xNUTBwb1kwaENjRnBEU1RaSmJVVjZXVlJOZWxsNlNtaE1WRWsxVDBkVmRFNUVSbXROVXpBMVRWUk5NMHhYUlRGT1JGbDVUVzFWTWs5RVJtcFplVWx6U1cxR2QyTkhiR3RaVjA1NVNXcHZhVTFwU1hOSmJVNTFXbWxKTm1WNVNuRmtNbk5wVDI1emFXRXpValZKYW05cFZXeE9Ra2xwZDJsaWFVazJTV3BDTldOdFJtWmhNbEpPVVZkb2QxRlhUa3BrVm1nMFRGWk9NRk5IZEU1T2JGazBVVzVzTVZKNlFtcFBSWFJDVGxWa05VNHpiSFpVUmxreVVUQXhTazU2YUhSVFNFNVdWVVJLZWxWSFZreGtiVkl4VlVaV2VHSkdTalZpU0VaUFVqQm9ZVmx1Vm1GbFJXeDRWMFZTY0ZZeVpFOU1WRlUwVkROQ1RtSnNjREZNVlVwSVlteHdTMk5GYTNkUk1VNXhXbFZhZUdSWWFGUmxibWd4VkVoS1NHTllXa3BhVjJOM1VWUm9TR05XVm1aTldFcHpXVmhhUkUxWFdUQmFNRGxTVFRCMFMyTlhVWGRQVkd3MVYwWnNiMDFxWkdwUlZGWklXSHBDZGxOR1FtcFdTRkpSVkdwQ2JFOUZaM2RpYkhCMVpWZDBkMDV1V1hoT1Z6RmFUMGQ0VWxOcVZuUlhWRUpaVld0R1EySkdUazVQU0VFMVlsaE5lbFJXYkRSYU1GcHVZVWhPVFZwRVdrSlhXRko0VFZkMFRtSXpiREZhUlZwVFRXdFNORTB3YkhsV1ZURlBWRlpHVVU5VVpGbGxWWFJQWkRCak1XVnNPVEpsUlRWUVkwVk9VbUpUTVU1alIyOTRWbGRrVG1ScmREQldNRFF5VFVoT2IxcHJiM2RXVmpreVZGUmpkR1JZYUZKVmJFSXpWRzVvY2s1dGRFbE5WRnAwVmpKdmVsTkViSE5aVlhNMFpFWmFNRkZZWkZsa1JGWnpWbGR3UlZFeFVrdFRhbVJ0WkZoQk5FMUlZM2hqVld4M1ZWTkpjMGx0VldsUGFVcENWVlZHUTBscGQybFpWM2h1U1dwdmFWVnNUWGxPVkZscFRFTktjbUZYVVdsUGFVcHdVMGhXVTFkWVVsUmFiSEJzWlZoQ2RsVnJjRlpTTURsSlZsZG5lR1ZHUW5OWGJFSkZVbXQ0TW1KNlduZFBWVW8xWWxWb1VVOUZiR3BKYmpFNVRFTktjRnBJUVdsUGFVcHZaRWhTZDJONmIzWk1NMDR3WTNrMU0yRlhOV3RpTTJSNlRHMDFiR1JET1dwYVIwMHhXVmRXYkZsVE1IaE9WMDB4VEZSU2ExbHFXWFJaYWtFelQxTXhiVmt5Um10YVJFa3hUVVJXYTFsNlNYWkphWGRwWWpKc2EwbHFiMmxOYlUwelQxZE9hVTU2WjNSTk1rNXFXVk13TUUweVZtbE1WMHBzV1dwSmRGbHFRVFZPYlZacFQxUkpNRTV0UlRSSmFYZHBZMjFuYVU5cFNYZE1hMFpUVTFWRk1tTlVaRWRsYlU1V1ZtNVNjazF1Wkd4YWJtd3dUVWQ0UTFwSVpHNWlNSEJaWTJ4T1prMXRkRmRSYlRsSVdqQnNlRkV5TVRaU1J6aDNWVEJHUWxGVE5HbE1RMHA2WkZkSmFVOXBTWGxaZW1NMVdUSkpNMDlETUhwWk1rNW9URlJSZWxwWFNYUlpiVlpwVFdreGFVMUVhekphVjBrMVRXcFJNbGxVWjJsTVEwb3dZVmRSYVU5cFNtcGFSMDB4V1ZkV2JGbFRNSGhPVjAweFRGUlNhMWxxV1hSWmFrRXpUMU14YlZreVJtdGFSRWt4VFVSV2ExbDZTV2xNUTBveFpFZHJhVTlwU21sVGJEbG9XVmRXZW1GV2NGWk5hM1JZVkRGc2VVMUZhRzFXUlVaQ1NXbDNhV1J0Vm5sSmFtOXBUVk0wZDBsdU1DNXdjRjlNZEhOVVgzQTRVMGx6UTJsSFgxaEdUWFJSTTNwZmNEUkRXRXR0WW1WNGNIQk5OelpTY1RFMk5XTk9hVEpLY0U1SlZFeElNV0ZFTlZsNFExTk1aMGgyYjNrMGJUZFBURUp4U0VGMVdYcERkM0JpWlVWVlIyWlZaMWd0ZGtKRWFUZHVVVkZqZEdkdGNWbEhNRE00TFV4VWR6TkdPVTB6V25oSlZYQnZiMmhRVkdaa1kydE5aMHB1T0hGWk0zTm5VbmQzYjJZeVRYUkJSVUp4VGxCcGFsOHlWMGN0T1VVeUxUZ3dlbU5hTm5ZdFlUY3lUbVZDVmtGWFh6VXRYM1I1TFZsdWNrTlFMVUZXUm1JMFJXTjRibGd4ZFRWTFJWUnNVVmd3Y1RKSE1IUm5TVXR2ZWxwM1MzZFVVRlpuVVZkaFZqVTFZVmN5VnpKRlZIbGZOREF3VVc1ak0yaG9SalkzYVdNeU9WOVVMVlJyTW1kVWFVeFdjR1pqTkhBdFJsQnFaemRqV1Vsa01YbGFRVUl6YlVOdFVGbGFTMHBxV1d4UVkwdE5Na1ZaTTFCVmEwVjZkM1ZHTkRkR2FHNUNZbU5CYzJGVlpuY2lMQ0owY3lJNk1UWTRNemMwTXpJMU5Dd2lZaUk2SWtkQmEzUktjMnhrV1hKS01tMHliVmwzY0dWbU1VNVNRMnAzV25SemJrMUhaR2QwVTFaNGExUXlha2tpTENKdWIyNWpaU0k2SW1GaE1UQXhZamswTW1abVlUUTVZbUppTVdVM09UZzNZbVUwWmpWaE5tRm1JaXdpWTI1bUlqcDdJbXAzYXlJNmV5SnJhV1FpT2lJME1IWk1YemxHUTFoVGIyWlZiMFJ3V0U5MmN6WmhVbXAzVlc1bldVUjNkRlJNTURoWFdsTkRhVWRySWl3aVpTSTZJa0ZSUVVJaUxDSnJkSGtpT2lKU1UwRWlMQ0p1SWpvaU1IbHlZVjlyWkUxQmFIQkJZMGwxV0hndFUzUklhMDAyVmpoQ2VYVkhNR000UzBFMVIzazNlVzlNVmpaRFRVazNPRzFJYzFWUU1uTlFaVXQyWkhWUVZYRnNVbmxzY1U1SFNGcGlkVnA0U1hGWVJHbFhaMDR0TlRoUGNFMXVXblV0UWtkdVdrcHdTVEJEVTJwbFJuRjFlRk42ZUhWTWNrZHhka2xsWnpCQk9FZHhWVjh4Y214aGRrTXhaalJuVDFFelMwcHhaREE1T1hsWVdXZ3lOMk5CTlVkZk1HOUlVR05VZEZCT01HVTRTREJ1V201NWEzQTJkakUxYlZrNGJGRktOVzFaTUZoU1FVSnNVMDA0Y0RsdGN6Tk5XWGhuUm1kb2MweGtOa0ZaZEhFeGEwMXZlWFZrUmxJeVJIZ3pTWEpWVFU1TlVWQTVOMWg1UzA1M1J6VjZYM1o0VGs5d1ExRnRMVTF3YWpGVlowMTJTM1JYVGpZd2MyaG1TakJWWDNaTk55MTFlRkZTVUhkT2VHczJhMGd4Tm0xWGFqTklPV3hoU3poMFZuUkJkMWgwTld4VmFrUkRWRXBLTjJaMWNEZ3dkekZ4U1hCUkluMTlmUS5aYW42UGRxZmxocHBKNFlneE8xZWZOTjNrRDZDa25oT0JDaklqOWNEMVFuU2ZvR01nLWVPUkUxUGh2NFdWbVYtUXNxMTVsam9mSVQzMUZXUEdCNHZnVURHNERHYjFPMXhuV2tMYzUyM2M3TXh6Vkx3dk9YNWcxNWNaQmhCaklkenZ6LTVtdjh5Yk1GQmI0OEhwV0ZfcnljRDZUbnVuVUE3akliYnd5VHV5Q2xSZk1jMHREX3RqWnVBbk1LWHc1dlhDRVJMbWlISm11SXVxUmUtVWZOcHFjQl9tRHNoS2pJTkV6UFYtT0w0RW1oZTF0d1czSXJXUGZrUnJfdW9CTXZEWTVKNGl2WUR3eTJQLWFUMmVnQTQ1TEtudXZIRXh3cnpxRGI2MXlUeHM4MDIzZWRINDF3T0tKTTNPMDd1X1A1aDBhZkVOUkdDM3NYVU9rYzdyUU5XVHcifQ.", + "incomingCallContext": "eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJjYyI6Ikg0c0lBQUFBQUFBQUNzMVliVy9qdUJIK0s0SUw5RU83dEVsS2xFZ0NSdUhZU1RhM3NaUE5PdzVCQTRxaWJDV3lwS1hrMkxtOS9lOGR5azdpamJlMzIvYXVPQWV3eGJmbmVXWkVjbWJ5dWFOVm5rL0tKa3N6clpxc0xEcnljeWUxNWR6OVprbEhkcmhVdXBZa1RwU2lzVUNDNFFnRkxLQW9qc01BcVNpbVZHT3NlQkxjNGZaRE9FcEZLRkNjQmlFeXZvNFFFNzdDQ2NaYXhMVHpycE5rZFpXcnA0bWFHOENIRGxNa1Zaa1Z6VkhMRjRlVWN4MGo1aXNmQlRyZ0tNYVlJcDJtTFBKVHFvSll3SnBjRmRPRm1ocTNwbGprK2J0T3BXeVQ2YXhTR3lCdGxDQXNqcENLalVJQmppbW9OZEFrUEFBd0xiQnlRTE1zU1F5WW5hcThOcTlhTHA0cXA2NDI5dEhZUVZYQnpNcVdsYkhOMDU2YXJqbS92T3MwNWUvaEtLVjJIT1YvMTFGckVJelJONzZlUHova0tCcWtCQ2VLSVVOeENCNDNJZUlwVGhERlJ2Z3Npa09jaEx1T3NxWXVGMWEzdUowZnNmcmZlRERQaW9mYU9WRTFqZEl6QUpzMVRWWExYazlWV1RmTnMrbXNnWFdycDI3OUFPK2txOHU1RytrOTBwNnVlaXVrTlRLTG9rU1lkTFhlbXFOMTc1SDAwdEkrbUtSSGNCU0wyQkNrU1p5aUlFNG9LRFUrSXI3aUlpUXFwamp0MGFpWGtaNGZpTjVheWoreVBnSFJjNU5rYWxEVVMyUGRydEtnYks3V3hrekJDZldmUXZHem1JMW1hKzZOYnY0VXl0WlNOcm9XU1hWaFZWRlhwWFhxb0FuYWlOK05naTRKL1M3RnZ2U0RpUGM2WHpaK0g1WkZZd3FZKzdtajE0K2JnNm1xS3Q5Y1diMDZjY2N6enNzWUJoNzcrTmJlRm1VZmVaVFJ5TVBlMGNRN09nMDhRcU11aGovaWh1dCtEZDZDeGE2aCs4OVRRdDROYVpjUzBpWENkME54ZjNnaHllWTB1WTZtajczMllkNVhpeVFyUFViREtQRE9MazU3ZzZ0VGorREFFL0R0ZTRRUWozQ2c1NTZJb0FkYXJwT0REdndkVXRXM2phNlFyYk5mekZZN2plWGZ2QldhZzNBNHp4NTR3S3ZoUnBCSlBmT3MwWS91WVQxOWhlcHNXaWc0V3RQZld2V0tMWjBWYk4zT3RFR0wxS3FwVEs2dkgxNzdxbVVpZjdsaTRvUStQSDQ4cWFyOTBmbjRtRC9kVCs2UHl5MlY4OFZxM2RLcVNMSkVOVWFDNmQ3bDZOU2p4TWNSRGdPZnZERjY0OFRtQ2JUWk5GOTVWaVdKQmFmQkJBNnZqSG5XN1pqMXRGMTB1b1hPaEhQeExqcjdNWFQyRnAyQ2RtZVcwZzB3VU5nS0lZNTJHQUtJTlBUN0RPMjBYUWI2QnpQQXZtczlSQ2pqVkdBQ3ptQzBTd2djT3M2N0l2VGd6SWtXMnhxSU44L1lYd3ZZZWdQZStPTHliSEkwOGdqek1RMERETGdSNXZCZXNSL3VrdE5YY3JnZ1F2by9rYk1YY2hGUndSZ0pNVXlpalBpY3Y2V0dzOVY2dGxKMURmd0JKMENQd3pmOExQUUQrbU1DQXVINy9pNEwvVCt3c0sxOTZFZ1lGK0R1MzUyRS9sRWtPV1JodVp5cnJFRHR2Ym51bldlSkpNOTNWcncwS3ArV05tdG1jeGt2dFZjcC9XQ2FTbVhXVzVvWWJwZU5YdnRVTlNXYys4SCsrZDF3ZkVjb3Yzcy9IZ3p2enQ4UHlCM0hYbGJBelFjNzc2WTRzSWNEc1R3NnZpUlg0OE5pOEtGTVJveDkrUHRGZkxEWW4zMjgvbWw1U0ZqK0svMm5UMzRsejBJMjhQUjc4UGMzOTNoUDNIUHVEN0lnM1hzL09ZR28rRGc4WGx4OTVQczNsMlU4dWE2UEgyYVhMZnp6QlZuTlZRWHhKUERPajQ0LzlHRHpycVBLeTVEd0RpTktlL3h0djRzbzdaTGRFWWd6NTBkbis1TnR0SFRlckVmaXJMSHdadnU3VEhCTkFwWFlBbHd2NHA0cUNyT0srMFg1MVh6c25RN0hsN3Y4M1BVUGR2c2g2SjN0ajc1bENXeGtrNXRxVmhZR21VY0k2VHNhWUFwR0pQeDZuZThOSjk4eW43ditiOWhIc1JzSVhsZFVUVGFINi9hWkNZS2pzWldGZEZyV000VW9DNzBna0NTU2JDVDNCcElQNVpES1lTZ1BJamtLcFdCU3dMT1FReUVwbC9zajl6REFNaHhLc2llSEI1THRTWDhvaFM4aktnZEVCcjQ4T0pCaUtQZUpwQU5KUmhKdk5vRlpOYTAreitWbThoWSt5K1d5dTk3ZzNkSk9iMi9OQ3JKazBGbzA5ZTB0bUlObWlZVlZ0N2NxcnBFTDNzaFo4aFdhLzRyMmtyYjlCbENxNnVZdWhuTy96SkptZHBjYWs4UncyUDRDdFk1TGl1NzhsenlpdGhwQnhqYUZPT3VLQy9mbHhwN3o0bU16WFJkYm9hRkNxd0NSS0tJbzhJMUJJcVFFbVlCR1VVeUlyMm5rQ3BnYTZzMDJhVHZSZW1IQitkT1hncUl3eTVNMGRVbDIyd0VaSUtTSEg4eVR5LzAyeVZyYjZsU2YyTS8yT2p6YXU3bGl4emVENjZ5c0J1Y2YrMzNBaDdvR2JneFgwL0NmRDZ0SmRaZ2RYbzczczlXSmYvaitWTGs1QUd0Qk9PUkxUc1hwdWlESlRGdUJaUFhaWm1pUTUrWFNnR0dOWFpndnNBYVNUK2ViVnZwUjhaZzFMOFh5OW9qTFZtMlo1MjJsOEIrbTNnRHptbnhEWXp2OWhtYnYwL3pUQ0p4bnJpL3BVeGlPSDhZWHE0b05YRjc5VjlNUGZRNjFHMnNEcElBVW9uVjJWbzhYZVpPZFFya0hidHQ0T2F2M2JLa1NEUnZnMWRHSmlSZlQ3VlFiL2luUXZ0WVVDdWhRbXdCS2NLZ05nc0M0YXBWQmxZQlRFM0dSY3FvZDAzOVZVUUx2MUphTHF1VmRBVzliRVA0TEdVSU0yWklRQUFBPSIsInNoclRva2VuIjoiZXlKaGJHY2lPaUpTVXpJMU5pSXNJblI1Y0NJNkluQnZjQ0o5LmV5SmhkQ0k2SW1WNVNqQmxXRUZwVDJsS1MxWXhVV2xNUTBwb1lrZGphVTlwU2xOVmVra3hUbWxKYzBsdVp6RmtRMGsyU1dreFRGTlVUbEpQVnpWUFZXcGthVlZ0T1cxbFJ6RnNWMjA1V1dOWFNrbFhhMlJzWkhsSmMwbHRkSEJhUTBrMlNXa3hURk5VVGxKUFZ6VlBWV3BrYVZWdE9XMWxSekZzVjIwNVdXTlhTa2xYYTJSc1pIbEtPUzVsZVVwb1pGZFJhVTlwU21sT1JGWnNUVVJyZDFsVE1XdFpWMHB0VEZSUmVFNUVWWFJaVkVFeVQwTXdkMDlIUlRSTmFteHBUWHBDYkU5SFVXbE1RMHB3WXpOTmFVOXBTbTlrU0ZKM1kzcHZka3d6VGpCamVUVXpZVmMxYTJJelpIcE1iVFZzWkVNNWFscEhUVEZaVjFac1dWTXdlRTVYVFRGTVZGSnJXV3BaZEZscVFUTlBVekZ0V1RKR2ExcEVTVEZOUkZacldYcEpka2xwZDJsaFYwWXdTV3B2ZUU1cVp6Rk5WRWw0VGtSak5FeERTblZaYlZscFQycEZNazlFVlhoTmFrVXdUbnBuYzBsdFZqUmpRMGsyVFZSWk5FNVVTWGRQUkVVelQwTjNhVmxYYkhaSmFtOXBVbFJLWVZveGJGRmFNMlIwVmxSQ2MwOUhTbEZVYlZwNVdtNWtlVkl3T1ZoT00yTnlUMVZLTTFGVU1HbE1RMHBvWTBoQ2NGcERTVFpKYlVWNldWUk5lbGw2U21oTVZFazFUMGRWZEU1RVJtdE5VekExVFZSTk0weFhSVEZPUkZsNVRXMVZNazlFUm1wWmVVbHpTVzFHZDJOSGJHdFpWMDU1U1dwdmFVMXBTWE5KYlU1MVdtbEpObVY1U25Ga01uTnBUMjV6YVdFelVqVkphbTlwVld4T1FrbHBkMmxpYVVrMlNXNWFZVlpxUmtKYVJsa3dXSHBDUzJKWVJYaE5NRFI2V2tWYVYxVklhRzFhVlhSd1pWZHNOV1ZZVm5sUFdHaElWak5TUlZJelZrOVpibWhyVTFaR1RXRnFTblpSYkhCdFRsZEtWMk5XV1hSU1Z6UTFaREJPZVdGRk9ESmhiVGxyVDBkcmVVMXViSGhsYmxwdlpXcG9hVlpxVVRGV1Iyc3hVVmhaTWxRd2MzUmxSR1J1V0RKMFVXRnRXa0pYUmtKR1ZEQTVZVTlFYUhKT2JXaHVVakZrY0ZGWWFGZE5WVXBVWldwWmVGZHNSa1ZTVnpGSFpGZG9jMlZ1UmtkVmVscEZVMGhLYjFnemNFOU9XR3hLVW0xNFNGRXhTa2hpYXpreVdrVnpkMDFWT0hkVmJYZDVWMGR3Y0dGdE1VOWxSRVpJVTFWMFIxTnNWbXhNVlVwV1dteENNVTVJVmtoVldHZzBWRVpXYkZrelpGaFNNRnBJV1cxRk5FNVdVazVrZWtwWFkydHdNRXhYWkd4V1V6RlpVVE5PUzFsc1FtOVpNVll4WTBaQ1RtUnJPVFZaYmxwMlRYcGpOVnB0Um05VFdGcG1UVlphVFZaVVZtMWpSMXBLVG10YWRsZElaRzFqVXpGVFdXdHNWVlJJUmxCUFdFMDBZbGM0TW1NelNsbFRWWFJ4VkVSVk1HTnVaSGhaV0VaeFRURndUbGRzU2pKVFNFcE9VbFJPVW1KdGFFUldSRlpMVWxjNVFtVkZkelZVTVVsNFpESmFRMUY2WkdwT00yeHBaREphVWxReVRubFdXRUpXVlZOSmMwbHRWV2xQYVVwQ1ZWVkdRMGxwZDJsWlYzaHVTV3B2YVZWc1RYbE9WRmxwVEVOS2NtRlhVV2xQYVVreldXdHNTV05ZYkhKWFIwVjRVMVZXVGxKclRtbE1WbEpQWVZSb1RsbHFhRXhYYlhSNVlYcEdXRTFVWXpCUk1VcHZZVEZTUWxGNlRUUkpiakU1VEVOS2NGcElRV2xQYVVwdlpFaFNkMk42YjNaTU0wNHdZM2sxTTJGWE5XdGlNMlI2VEcwMWJHUkRPV3BhUjAweFdWZFdiRmxUTUhoT1YwMHhURlJTYTFscVdYUlpha0V6VDFNeGJWa3lSbXRhUkVreFRVUldhMWw2U1haSmFYZHBZakpzYTBscWIybE5iVTB6VDFkT2FVNTZaM1JOTWs1cVdWTXdNRTB5Vm1sTVYwcHNXV3BKZEZscVFUVk9iVlpwVDFSSk1FNXRSVFJKYVhkcFkyMW5hVTlwU1hkTWEwWlRVMVZGTW1OVVpFZGxiVTVXVm01U2NrMXVaR3hhYm13d1RVZDRRMXBJWkc1aU1IQlpZMnhPWmsxdGRGZFJiVGxJV2pCc2VGRXlNVFpTUnpoM1ZUQkdRbEZUTkdsTVEwcDZaRmRKYVU5cFNYbFplbU0xV1RKSk0wOURNSHBaTWs1b1RGUlJlbHBYU1hSWmJWWnBUV2t4YVUxRWF6SmFWMGsxVFdwUk1sbFVaMmxNUTBvd1lWZFJhVTlwU21wYVIwMHhXVmRXYkZsVE1IaE9WMDB4VEZSU2ExbHFXWFJaYWtFelQxTXhiVmt5Um10YVJFa3hUVVJXYTFsNlNXbE1RMG94WkVkcmFVOXBTVFJOYlRCNlpWUlpNRnBVVFhkUk1sSjZaR3hvU1dJeVVqWlJhMFpDU1dsM2FXUnRWbmxKYW05cFRWTTBkMGx1TUM1clNIRjVlbnBvVFhsUVYweGtiREptY25kWGQyczNhVXcyVVZScGNtZEhjalp3TVZOSFdURTBTM2hwYlZkeVREQnNORGQ2VFd4MlMxcHJaVEZXUTJKcFZFZG9kakp3VWxsTFptUnhVVE5TYmxGSE1YcFZWamRKUVhwaVYyUkNjRTQxY0RKUGRUaDZUWHBOUkhkNUxYUTVaMmRRVWpkZlZqTkJWREEyUVVGdVJHZFBla1ppU0hKM1JIaGhibGRFUmpSemRETkhaVmRpWTJwcU56WnlTMHRUUzBnMGVrSnVZMHRXUVROM1NFazRlRlZTVWpaSlNXdGxVRFJ2ZWxSc1FtdE1SVVl5VFRkMFdDMUtYMHBDYmxKd1NYaHJSelptWms1MmVITXdUVUZQV1RsdFpWQXRhWFJxV2pCNVEzTTNNVTloY1hOaU1VZFpabVZ5YkRoNFQwSTFkRVpoU1dwaVRtRlVUR0pJU2w5M1gyaFdSbTVmZWxOaU9HcHBka2xYVWpWSGJGVkNNRTV1Wlc5UVpVRmxPSGN5U21wR1NqbEVaVEpvYldGNFVsTlRMVTFQWHkwd01GcFFNa1pHVW14elMwMHpYMkptV25jaUxDSjBjeUk2TVRZNE5URXlPVEkzT0N3aVlpSTZJbmt3WVZobVJHVlFSRnBqVVMxT2VITjZaRGw1YlhwRlJVdExYMWhsVFV0WU1uUXpYemhQTlZWWGRsRWlMQ0p1YjI1alpTSTZJbU5qWlRKaE5HUXhZVFkzT1RReU5URTVaRE0zT0RGbU16SXdaRFkwTlRRNElpd2lZMjVtSWpwN0ltcDNheUk2ZXlKcmFXUWlPaUpFWjA1NVZ6WklhMVJDTUhWck5tNU1VRUZ5VTE5MVVsOTVibVY2YW1oTlJWRXdlWGR0TFRGdFIwbzBJaXdpWlNJNklrRlJRVUlpTENKcmRIa2lPaUpTVTBFaUxDSnVJam9pZGxwV01VRmtWalJmTUVwdGNURXpUak5rUmxaUWVHWmxTMmw1YVhsNWRYSTVlRWRYZEVSSGRVNWllR1JKVVV4cU1tOUNXbVkxWWxaeFZpMUZiamwzUTNKb1R6WnFiMlE0YVRJeWVYRjZkbWg2T0dKV05EVlVhVFZCZGpaUFN5MTROMmRmYTFCcVprRllVRVZQVDFvNE9HczJhR2RIVjJsQmVGWXhRbE42TmpGYVVVUkZiVVoxYUd4NmNVWlROa1JJY21oZmVrNDFlVWxHYkVkRFVrZHVUM1prU3pBeFR6QlNiREpZYW1scWJVNTRNVWRKUzBaS1ZXVXRRbFZtVUhVMGRVZFJlSGhNVldWamQxZEhSa2RpWVRnMVZFMTNNbFp5U25RdFoyVlZMVmhEYzBwaVVHaGpWWFZ3VUUxMlQzbGlkbTh6TnpsbVlXaEpkbDh4Vmt4Vk5XWndaa2syUm05WWQyWnhMVkppU1ZSTWNVODVjemh0YnpaemNsaEpTMnBNTlRSeWQzRmhjV296V2sxYVVuWkljazFGTTFGdWFFTlVOVXBGYjBGNFREbFBVakYzWmtKRE4yTTNlV0ozWmxGUFkzSlZjRlZSSW4xOWZRLlA3OHphbF9CaWV2T2JxdWp4WFZVQXQxZjVwMUtJV1d6XzFYbkdodHpwWlZlUUw4c09rZVIyRDBwYldhUFRWR3JFN2lQZHlmc1VhcUNzUnZORmVoU0VfTEQwZUhidHJqNDBwSklhVU9mWGc3Y2tfQ0FhbGFnOGJDb1NseXdtc0FfWE1QX040MnFrTFBlSTdlWXN4TVhTOGl3cHBQOFQxT2RtSTVUTmxXaHlINDJ0ZVFWOUhOOGNiMTNzdndYei13X2hKUmZlUjJTeU5wYWJ5TXczTWJ3WlFKTlU2YzEtRWc2ZGdTeWZfeWlhU1JzV0FZS0NUS0FUTU9CU3pkUnpzLWxJdjFISVdjbUk5REV2Nm5JZEFIY01hdWZoYjRRYi15S0xMbEZCRWNiaDFUX0JEbENvamEwU2UwODJLblcwNVJmT29EclFBbkNHaWtYZFFFYnBPWVROdyJ9.", "callRejectReason": "none" }, "StatusCode": 204, "ResponseHeaders": { - "Date": "Wed, 10 May 2023 18:27:35 GMT", - "X-Azure-Ref": "0F\u002BJbZAAAAABqG0M/peERQLAwmx/rSm8nWVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "Date": "Fri, 26 May 2023 19:28:01 GMT", + "X-Azure-Ref": "0QghxZAAAAAC\u002Bp3HAHuRcR708taE\u002BGhtWV1NURURHRTA4MTUAOWZjN2I1MTktYThjYy00Zjg5LTkzNWUtYzkxNDhhZTA5ZTgx", "X-Cache": "CONFIG_NOCACHE", - "X-Microsoft-Skype-Chain-ID": "21afa092-9e3c-4f21-a526-260b3fbfb2b3", - "x-ms-client-request-id": "b56f343286c59668a197ad5671832f4c" + "X-Microsoft-Skype-Chain-ID": "f15b6ce4-b0cc-44e9-bf5c-e0fe789f82c7", + "x-ms-client-request-id": "3631ef7343e3d0baf5466312c530481a" }, "ResponseBody": null }, { - "RequestUri": "https://sanitized.skype.com/calling/callConnections/401f3500-4391-4c88-8eec-90bac9c28e33?api-version=2023-01-15-preview", + "RequestUri": "https://sanitized.skype.com/calling/callConnections/411f1200-17d6-413b-85bc-337e55180aa3?api-version=2023-03-06", "RequestMethod": "GET", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "dd4b58d606225449f0fa8440248a20dd", + "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "995adab648fb63e3346192219485132d", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:34 GMT", + "x-ms-date": "Fri, 26 May 2023 19:28:00 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": null, - "StatusCode": 200, + "StatusCode": 404, "ResponseHeaders": { - "Content-Length": "533", + "Content-Length": "53", "Content-Type": "application/json; charset=utf-8", - "Date": "Wed, 10 May 2023 18:27:35 GMT", - "X-Azure-Ref": "0F\u002BJbZAAAAACoQ9B\u002BvLYlSJje8PDltykXWVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "Date": "Fri, 26 May 2023 19:28:02 GMT", + "X-Azure-Ref": "0QghxZAAAAAAwlZ6wQ0LTT5RusLdh6sziV1NURURHRTA4MTUAOWZjN2I1MTktYThjYy00Zjg5LTkzNWUtYzkxNDhhZTA5ZTgx", "X-Cache": "CONFIG_NOCACHE", - "X-Microsoft-Skype-Chain-ID": "21afa092-9e3c-4f21-a526-260b3fbfb2b3", - "x-ms-client-request-id": "dd4b58d606225449f0fa8440248a20dd" + "X-Microsoft-Skype-Chain-ID": "af9e0d9c-a31d-4a0d-9592-55d002ac407d", + "x-ms-client-request-id": "995adab648fb63e3346192219485132d" }, "ResponseBody": { - "callConnectionId": "401f3500-4391-4c88-8eec-90bac9c28e33", - "targets": [ - { - "rawId": "Sanitized", - "kind": "communicationUser", - "communicationUser": { - "id": "Sanitized" - } - } - ], - "callConnectionState": "connecting", - "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized", - "mediaSubscriptionId": "d735cdc7-c747-4023-a9ec-a6a65a58ca89", - "sourceDisplayName": "", - "sourceIdentity": { - "rawId": "Sanitized", - "kind": "communicationUser", - "communicationUser": { - "id": "Sanitized" - } - }, - "correlationId": "21afa092-9e3c-4f21-a526-260b3fbfb2b3" + "error": { + "code": "8522", + "message": "Call not found." + } } } ], "Variables": { "COMMUNICATION_LIVETEST_STATIC_CONNECTION_STRING": "endpoint=https://acs-callautomationtestsupporter.communication.azure.com/;accesskey=Kg==", "DISPATCHER_ENDPOINT": "https://sanitized.skype.com", - "PMA_Endpoint": null, - "RandomSeed": "865923932", + "RandomSeed": "954052092", "SERVICEBUS_STRING": "Endpoint=sb://acs-callautomationtestservicebus.servicebus.windows.net/;SharedAccessKeyName=Sanitized;SharedAccessKey=Kg==" } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecords/CallAutomationClientAutomatedLiveTests/CreateCallAndRejectAsync.json b/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecords/CallAutomationClientAutomatedLiveTests/CreateCallAndRejectAsync.json index 014dc755d617..715b1d7a050b 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecords/CallAutomationClientAutomatedLiveTests/CreateCallAndRejectAsync.json +++ b/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecords/CallAutomationClientAutomatedLiveTests/CreateCallAndRejectAsync.json @@ -8,11 +8,11 @@ "Authorization": "Sanitized", "Content-Length": "2", "Content-Type": "application/json", - "traceparent": "00-b9e872e101105b402b8d070f0ccfda56-8f414cfd14c876f9-00", - "User-Agent": "azsdk-net-Communication.Identity/1.3.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "4a54a8d88077ef625097ad852e6fed83", + "traceparent": "00-ec2e9efad56bc8958e704532271b4feb-d0acbdbea9fc2183-00", + "User-Agent": "azsdk-net-Communication.Identity/1.3.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "55cb38f896d32373ead47d347efcf2e0", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:42 GMT", + "x-ms-date": "Fri, 26 May 2023 19:28:10 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": {}, @@ -21,14 +21,14 @@ "api-supported-versions": "2020-07-20-preview2, 2021-02-22-preview1, 2021-03-07, 2021-10-31-preview, 2021-11-01, 2022-06-01, 2022-10-01, 2023-08-01", "Content-Length": "31", "Content-Type": "application/json; charset=utf-8", - "Date": "Wed, 10 May 2023 18:27:42 GMT", - "MS-CV": "hIBxS9I4Q0i11ve5qymkmQ.0", + "Date": "Fri, 26 May 2023 19:28:12 GMT", + "MS-CV": "zYT5\u002BiMcCU6GGxDE0o3tpQ.0", "Request-Context": "appId=", "Strict-Transport-Security": "max-age=2592000", - "X-Azure-Ref": "0H\u002BJbZAAAAAAtEttkXM0LQpf2YCkgTdWSWVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "X-Azure-Ref": "0TAhxZAAAAACnZSi1Ko8ZRJOXhBervCGnV1NURURHRTA4MTUAOWZjN2I1MTktYThjYy00Zjg5LTkzNWUtYzkxNDhhZTA5ZTgx", "X-Cache": "CONFIG_NOCACHE", - "x-ms-client-request-id": "4a54a8d88077ef625097ad852e6fed83", - "X-Processing-Time": "82ms" + "x-ms-client-request-id": "55cb38f896d32373ead47d347efcf2e0", + "X-Processing-Time": "32ms" }, "ResponseBody": { "identity": { @@ -44,11 +44,11 @@ "Authorization": "Sanitized", "Content-Length": "2", "Content-Type": "application/json", - "traceparent": "00-6abd92fa3394784b76bdf6540d5e5fd9-3cf810531c9a2909-00", - "User-Agent": "azsdk-net-Communication.Identity/1.3.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "b328b90cd5c07c0f8d79e72e57273e89", + "traceparent": "00-2187e3667423e0c6544318effb2243a3-c2d92d7c66535edd-00", + "User-Agent": "azsdk-net-Communication.Identity/1.3.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "424cec0d41f3187d6afb5c493cd2eb22", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:42 GMT", + "x-ms-date": "Fri, 26 May 2023 19:28:10 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": {}, @@ -57,14 +57,14 @@ "api-supported-versions": "2020-07-20-preview2, 2021-02-22-preview1, 2021-03-07, 2021-10-31-preview, 2021-11-01, 2022-06-01, 2022-10-01, 2023-08-01", "Content-Length": "31", "Content-Type": "application/json; charset=utf-8", - "Date": "Wed, 10 May 2023 18:27:42 GMT", - "MS-CV": "/XpQMTFX3Eik1g2UeVLWtA.0", + "Date": "Fri, 26 May 2023 19:28:12 GMT", + "MS-CV": "bcHUtbaop0myRHUIViTWvQ.0", "Request-Context": "appId=", "Strict-Transport-Security": "max-age=2592000", - "X-Azure-Ref": "0H\u002BJbZAAAAAA2bJkzxmF9RKJghQwqHC2jWVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "X-Azure-Ref": "0TAhxZAAAAACeUwPqFnbdTKQfylFGuSTKV1NURURHRTA4MTUAOWZjN2I1MTktYThjYy00Zjg5LTkzNWUtYzkxNDhhZTA5ZTgx", "X-Cache": "CONFIG_NOCACHE", - "x-ms-client-request-id": "b328b90cd5c07c0f8d79e72e57273e89", - "X-Processing-Time": "81ms" + "x-ms-client-request-id": "424cec0d41f3187d6afb5c493cd2eb22", + "X-Processing-Time": "17ms" }, "ResponseBody": { "identity": { @@ -79,37 +79,36 @@ "Accept": "application/json", "Authorization": "Sanitized", "Content-Length": "0", - "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "X-FORWARDED-HOST": "Sanitized", - "x-ms-client-request-id": "8c9755028c9da567d3aad384fa87d5e5", + "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "259e0f47a8b5e0489834ade80180cada", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:42 GMT", + "x-ms-date": "Fri, 26 May 2023 19:28:11 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { "Content-Length": "0", - "Date": "Wed, 10 May 2023 18:27:45 GMT", + "Date": "Fri, 26 May 2023 19:28:14 GMT", "Server": "Kestrel" }, "ResponseBody": null }, { - "RequestUri": "https://sanitized.skype.com/calling/callConnections?api-version=2023-01-15-preview", + "RequestUri": "https://sanitized.skype.com/calling/callConnections?api-version=2023-03-06", "RequestMethod": "POST", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "Content-Length": "205", + "Content-Length": "197", "Content-Type": "application/json", "Repeatability-First-Sent": "Sanitized", "Repeatability-Request-ID": "Sanitized", - "traceparent": "00-4c43c304bd0f8034393ca4674705a3c2-0cda742d79451884-00", - "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "d4ae10e53876030799d8bdfd98349728", + "traceparent": "00-a18b61fb3d542d850defb88e24b68a47-77f42cea088ba7b9-00", + "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "bbebe66c21d8b7f4bab2ebd8392ae617", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:44 GMT", + "x-ms-date": "Fri, 26 May 2023 19:28:13 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": { @@ -121,27 +120,23 @@ } } ], - "sourceIdentity": { + "source": { "id": "Sanitized" }, - "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized", - "customContext": { - "voipHeaders": { - } - } + "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized" }, "StatusCode": 201, "ResponseHeaders": { - "Content-Length": "533", + "Content-Length": "464", "Content-Type": "application/json; charset=utf-8", - "Date": "Wed, 10 May 2023 18:27:44 GMT", - "X-Azure-Ref": "0IeJbZAAAAABc/PKxj0xJRrB7YobNXRW1WVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "Date": "Fri, 26 May 2023 19:28:14 GMT", + "X-Azure-Ref": "0TwhxZAAAAABejvOFiMIGT7Z7dNfk3z5oV1NURURHRTA4MTUAOWZjN2I1MTktYThjYy00Zjg5LTkzNWUtYzkxNDhhZTA5ZTgx", "X-Cache": "CONFIG_NOCACHE", - "X-Microsoft-Skype-Chain-ID": "0a043b4d-6aae-4b55-8a1d-b0fcd8bdfd88", - "x-ms-client-request-id": "d4ae10e53876030799d8bdfd98349728" + "X-Microsoft-Skype-Chain-ID": "0d0b3470-1f4b-4e3d-a289-8ea881851f64", + "x-ms-client-request-id": "bbebe66c21d8b7f4bab2ebd8392ae617" }, "ResponseBody": { - "callConnectionId": "401f3500-f426-4d61-bc2b-1abdcc3c13c1", + "callConnectionId": "411f1200-693b-4171-9cc9-9b64765d7859", "targets": [ { "rawId": "Sanitized", @@ -153,103 +148,83 @@ ], "callConnectionState": "connecting", "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized", - "mediaSubscriptionId": "242b248b-1725-4f4b-828c-6d3ecd5d9cac", "sourceDisplayName": "", - "sourceIdentity": { + "source": { "rawId": "Sanitized", "kind": "communicationUser", "communicationUser": { "id": "Sanitized" } }, - "correlationId": "0a043b4d-6aae-4b55-8a1d-b0fcd8bdfd88" + "correlationId": "0d0b3470-1f4b-4e3d-a289-8ea881851f64" } }, { - "RequestUri": "https://sanitized.skype.com/calling/callConnections:reject?api-version=2023-01-15-preview", + "RequestUri": "https://sanitized.skype.com/calling/callConnections:reject?api-version=2023-03-06", "RequestMethod": "POST", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "Content-Length": "8059", + "Content-Length": "8069", "Content-Type": "application/json", "Repeatability-First-Sent": "Sanitized", "Repeatability-Request-ID": "Sanitized", - "traceparent": "00-b2106e2c55bfe28564c5d266ef301b3f-d840065050601d87-00", - "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "d883245861d880e55283df15018a8105", + "traceparent": "00-39e66de4dcbe24f8c55423811fb98aad-a0c0fa22a28a5350-00", + "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "6eed5be9cd5d642aa46caabe939416e9", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:46 GMT", + "x-ms-date": "Fri, 26 May 2023 19:28:15 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": { - "incomingCallContext": "eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJjYyI6Ikg0c0lBQUFBQUFBQUNzMVliWFBiTmhMK0t4eDE1ajVjQXhFQUNiNWdSdE9SWkRWeDQ3ZlljcExMZUtvQkFaQmlUWkU4a0xLa3BQbnZYVkN5TFVlNTFIZTlkc3JNeUFTd2VKNEhTd0M3bTA4OUtZcmlyR3J6TkplaXphdXl4ei8xVWxNdDdOOWM5WGd2NGtJMm5DUktDSnJFS0dZNFJEN3pLVXFTd0VjaVRDaVZHSXRJK1RQY1BTUkNJcEFTNlRSS2tLZThHRVhhRTFoaHJFakllaTk2S20vcVFtek94RUlEUG5Ub1V0VlZYcmJIbGsvRUhoRU1vRDJsSmZMajFNN1hLY0tZYVNvQ3BtTVJ3SnhDbE5sU1pOck9LWmRGOGFKWEM5UG1NcS9GRGlqeUdORWhFMGdyRmlFZlk0MEVTU2tpekFzU2hhbFdrUWFnZWE2VWhtV25vbWowbzVicHByYnFHbTN1dEJuV05WaldwcXExYVRjamtXMDVQNy9vdGRVZmQxUUtyd2VPQ243WFVWc1FqTUV6QnovM3o3TWNsYWFhTVVKakZLZ2dSYjZQRXhTQjg1R0hrMFRHTEVpWjd4MDZ5dWltV2hyWjRmYWVzK3IvNE1FaUwyOGI2MFRSdGtMT0FXemV0blhEWFZmVWVUOHQ4bXpld3J6MXB0L2N3amZweTJwaFI5dzc2c3JhQmZjdG01VkdtUGFsM0xPUTByMGpibHFaVzYzY0lJZ0NuTklVUlRMdzdFNEFUeWVLSUQ4QjJTa2p2bVRDcGFHYkU5ZnpZM2NyNUlkOFlOMjMwQ29Yd3hJNERFaVRFblF0eEhZcEdiaWcrUnZvdlpleVUyejBMMXEyZndOZFd5RTdWVXRWVDQwb203b3lWaHMwUVJtamZVTDhQbUZ4bndRZTkvd3djbnVmZDA0ZlYyV3JTekQrMUpQYjE5MlpGSFZkN0c0cnQxSDJaQ1pGbGNEQTNRRGZtSnV5R2lDSFVOOFBzSU9kNHpQbitNS0hkdGpIOEk5WWcyYlFnTHRndW0zSXdjN0V4LzB3NmhNTVJyakRTUWJqS1lmMzdyRWQ3UUFRN2N0aUlKWXFyeHcvRGdsMUxxY1g3dkR0aFVPdzc4VHc2em1FRUlkRXdCNDVjUWc5MExLZEVjakEzK1lVQTlQS0dwa20vNmozMm1uQy8rbXMwUUprdzFGMndBTk9BNWNCVjgzY01WcmUyWmV0K1JvMWVWWUtPRlhadDJZOVluTzdDRy9ienFWR3k5U0lqSTgvVkQ4Kzl0VXJ4U2V2emwrT3lHYTYvbmNkbkN6MHBCRkRMYzJIMTNzcUY4djF0aVZGcVhJbFdzMWg1YzcxMFlWRGlZZERIUGdlZWJybW5RdmJEVWd6YWJGMmpGREtnTXY2bEVUd3ZYenFHTHRsdG5hSDZIUVBuY1hnNFVOMDc1bm8zcGZvRkxUYlpRblpBZ01GdkFDSGh3eUVQVTgvMkIweTBEK1pBYlpkNXlGQ1dVUmpEQUhZdVQ5MGthVmdEaHk2dUVNM0dtTE5EdjJwZ3IwdjRKeE9yeS9Qam84Y3drTEcvQkQ3MUEvOGdKQXcybTd0cCtUMGtUeUtnNEQrSVhMdmdUejBTVWhaRU1HcEpwN3ZoUUdOdnVTR0k5KzV0aFpOWTIrRGlBQS9EcDRLZ0NZbVh2Z3NCWXd5ekE1WjZGL0F3dlkyb2lWaEVlUkkrUDlPUXY4c2trSWt1dUFMa1plb3V6ZTN2WXRjY1hKL2FTVXJMWXFzTW5rN1gvQmtKWjFheUZ2ZDFpSTN6a29uY0wzczlKcE4zVlp3OEllVHE5bjRkRVpvTkh0MU9oelBybDROeVN6Q1RsN0MxYWY1ZkRWSm0zZHYvbFdVbDZlWHAyN0ZodFByWHdnYnRwY3NlQi9NOC9mVFZNeXoyM2UvMHA4OThpdTVGN0tEcDc4SHY4eE9GN2NmV1o0Y1picDVqNzkvKzVPN21GKzNtK3B1OVhMdGpkNk1HdktoVGFqdTRPOXZ5SG9oYW9nbnZuTjFmUExhSmNFdXFqd014YzdMa0ZJMytyTGZScFJ1eXVFSXhKbXI0OHZKMlQ1YXVtaTNJMG5lR3ZpeWcwTW11Q2VCS3Q0RDNFNktIRkdXZXAwTXl1cUpQWFl1eHFmWGgveVI3UjhlOWtQUXU1d2NmVzBsc0pGMW9ldDVWV3FrN3lDbUgyZ0FFNHhJOEhTZTU0elB2cmI4eVBaL1pYMFUyd0gvY1ViZDVndTRiKytaSURwcVV4dElwWGt6RndqdUVyaFRlRFRtb3lNK0d2Snd5TW1RajBjOGh2Y0p4d0gzTVBlcE5SakhQQjd4WU1oajJEUWpIaEpPb1RuaEllTUIySTg0OWptRFRvK1BZajVrL0Nqa2t5TSszcDBFdlc0N2ZZN056ZmdOUEt2VnFyL2Q0UDNLWkRjM2VnMFpNbWd0MitibUJwYUQ1c3JBckpzYmtUVElSbTlrVi9JRXpYdEVlMGpjdmdHVWlxYWRKWER1VjdscTU3TlVhNVhBWWZzTzZoeWJFODI4aDBTaU1SSkJ6cFpCb0xXRmhmMnhZL2RaOFluT3V1UmZ4WWt2V0V4UnlCU0RaREJTS0thaFJKRDMrMFNsSVltOTFCWXZEZFNhWGRaMkx1WFNnUE96aDJLaTFLdHpLRVBNcmdOU1FFZ1FYK3VOVGY1MnVWclg2cFZ2enNac2VxV2x1SFhqYTNFWkw4L1AzdzRIQThDSG1nWnVER3N6cWN2cDNZZFhSeGZ6K1dhOEdJL3h5ZmR0QmpZQWEwQTRKRXhXeGNXMkdNbDFWMzNremVWdWFGZ1UxVXJEd2xxejFKOWhEbVNmMWplZDlPUHlMbThmQ3VYOUVadXVtcW9vdWpyaHYwcTlBZVF4K1liR2Z2b05UWGY4VGl4WnNqNmZUWElSczQ4bUhhZjRKSU84T3ZxSEhnUWV4QndLRWRDakhzVGp3SXZCRlhsenVpemEvQUlLUFhEYXpzZDVNektWVUJJKy82T2JsVTZXMlg2bURmOGRzSzB1QmZhOXhGY29FRUxEUjJVTVJZSW9sT0JVS3NqNlV4VkZ0Z3o2WDJwSjRNMU10YXc3M2pYd2RxWGdid1pwN0tXTUVBQUEiLCJzaHJUb2tlbiI6ImV5SmhiR2NpT2lKU1V6STFOaUlzSW5SNWNDSTZJbkJ2Y0NKOS5leUpoZENJNkltVjVTakJsV0VGcFQybEtTMVl4VVdsTVEwcG9Za2RqYVU5cFNsTlZla2t4VG1sSmMwbHVaekZrUTBrMlNXa3hURk5VVGxKUFZ6VlBWV3BrYVZWdE9XMWxSekZzVjIwNVdXTlhTa2xYYTJSc1pIbEpjMGx0ZEhCYVEwazJTV2t4VEZOVVRsSlBWelZQVldwa2FWVnRPVzFsUnpGc1YyMDVXV05YU2tsWGEyUnNaSGxLT1M1bGVVcG9aRmRSYVU5cFNtbE9SRlpzVFVScmQxbFRNV3RaVjBwdFRGUlJlRTVFVlhSWlZFRXlUME13ZDA5SFJUUk5hbXhwVFhwQ2JFOUhVV2xNUTBwd1l6Tk5hVTlwU205a1NGSjNZM3B2ZGt3elRqQmplVFV6WVZjMWEySXpaSHBNYlRWc1pFTTVhbHBIVFRGWlYxWnNXVk13ZUU1WFRURk1WRkpyV1dwWmRGbHFRVE5QVXpGdFdUSkdhMXBFU1RGTlJGWnJXWHBKZGtscGQybGhWMFl3U1dwdmVFNXFaM3BPZWxGNVRVUnJNa3hEU25WWmJWbHBUMnBGTWs5RVRUTk9SRWwzVDFSWmMwbHRWalJqUTBrMlRWUlpORTE2WjNsUFJHTTFUbWwzYVZsWGJIWkphbTlwVWxSS1lWb3hiRTloYlRGclVqSkplazF1VW5OVVdIQllUVVUxZEU1NlZuTmpiWFJ3WTBWS00xRlVNR2xNUTBwb1kwaENjRnBEU1RaSmJVVjZXVlJOZWxsNlNtaE1WRWsxVDBkVmRFNUVSbXROVXpBMVRWUk5NMHhYUlRGT1JGbDVUVzFWTWs5RVJtcFplVWx6U1cxR2QyTkhiR3RaVjA1NVNXcHZhVTFwU1hOSmJVNTFXbWxKTm1WNVNuRmtNbk5wVDI1emFXRXpValZKYW05cFZXeE9Ra2xwZDJsaWFVazJTV3BLVms1c1drWlVhM0JYWVdzd2QyUjZSa3BpU0U1NFlURk9UMVpWT1hGUmFrRXhUbnBPVWxJeWNGaFNiVzkzWTFkbmVXRlhUbmxhUkUxNFpESTViVk5WYUVOVU1rNTVVbXhKTlZGc1RtbFVWMUoyVW14Q2FtRnJPVWRXYW14bVVucGFXR05WV2xaWlZVNUxWbTAxTTFONlduWk5hM0JIV1RCT1RHRnRaRWxTYWtwTVZGaFZlRm96VGxOU01taHZVbGQzZVZVeVZsWlRSemxhV2pCYVRGUklWblZhV0doYVdteG9WRTR3Y0ZWU2VsWndZa1JLVmsxRlZrMVRXRXBtVkZST1IxcFhTWGhTYW1od1dsVTFiMUZyV1RKU1JsSnFaRmRPZFdONlFtWmtWR1J4V1cwMGRGcEhTbWhSYTNod1YwUmFhRTR6YUV0TmFteDZURlpWTW1Fd2NHaE9WamxXVlRGS00wOVlVakJUTUVwUVpEQjBTRTFYZUROak1qVlVaREZHTWxaWFVuZE9WMUpFVmpCc1RXUkdiR1pSTVhCMVlqRndXRk50T1c5bFZYUjZUa1pXV1dWdGJISlBSbHBJVlRCb1JHVlZTbE5oTVRsTldqRldVV1ZJUW5SaGJFSTBVbFpGTkdNelFrcGpTRmt3VlZkT2NsSkVVbXhqVmpsV1dYcGFkVXhZUmxKTmJtc3lZakZPZDFsV2NESlpWbHBZVm1wa1VHVlhTbEJrUkdoYVVqQk9SV1ZHUm14bFZUVkRZVVJhZDJOdWFFcFNWVGt4VFZVNVJWUlZkRWhUUjFaMFZWTkpjMGx0VldsUGFVcENWVlZHUTBscGQybFpWM2h1U1dwdmFWVnNUWGxPVkZscFRFTktjbUZYVVdsUGFVazBWbXN4VUZFeVZuRlZNR2cyV1hwWk5GZHFiRTFNVmxKbVYwWk9UVkl4Y0haWFZVWkVVMVpvVkZFeFVsTllNMmhtWkd4U1MySlZNWFpKYmpFNVRFTktjRnBJUVdsUGFVcHZaRWhTZDJONmIzWk1NMDR3WTNrMU0yRlhOV3RpTTJSNlRHMDFiR1JET1dwYVIwMHhXVmRXYkZsVE1IaE9WMDB4VEZSU2ExbHFXWFJaYWtFelQxTXhiVmt5Um10YVJFa3hUVVJXYTFsNlNYWkphWGRwWWpKc2EwbHFiMmxOYlUwelQxZE9hVTU2WjNSTk1rNXFXVk13TUUweVZtbE1WMHBzV1dwSmRGbHFRVFZPYlZacFQxUkpNRTV0UlRSSmFYZHBZMjFuYVU5cFNYZE1hMFpUVTFWRk1tTlVaRWRsYlU1V1ZtNVNjazF1Wkd4YWJtd3dUVWQ0UTFwSVpHNWlNSEJaWTJ4T1prMXRkRmRSYlRsSVdqQnNlRkV5TVRaU1J6aDNWVEJHUWxGVE5HbE1RMHA2WkZkSmFVOXBTWGxaZW1NMVdUSkpNMDlETUhwWk1rNW9URlJSZWxwWFNYUlpiVlpwVFdreGFVMUVhekphVjBrMVRXcFJNbGxVWjJsTVEwb3dZVmRSYVU5cFNtcGFSMDB4V1ZkV2JGbFRNSGhPVjAweFRGUlNhMWxxV1hSWmFrRXpUMU14YlZreVJtdGFSRWt4VFVSV2ExbDZTV2xNUTBveFpFZHJhVTlwU2t4VGJWSXhUMGRXVG1Sc2IzZGhWRkowVTJ4bk0yTXhTazlWVlVaQ1NXbDNhV1J0Vm5sSmFtOXBUVk0wZDBsdU1DNXdPVmgwUTAxRmRYSldiVkl0Y205VVQzSnRUblUyYUhGb2JVZHpjbUV5Y0RGd2VFVTNTbEJxV0ZNemIyaEJXRXMxZUdwek9UWk9jbVExU0ZGTGFISkVSRWhPYjBwdU1XSk1lSEZ4UTBsd1ZYVkxWVVZ1YTFWWFpIQnpOMFpYWjA5RU1VVlpOVlZ2TTBKeGJUUktSMHBJUTJ4bkxYRlRkbmRsZEdwdlozVjNZVWMwY1hOTmN6Z3dRM05zY3pkSlVXdDJhek4zYmpCVFZWaFVabDh3TUhWb1pFRlVhbnBxZWxGWWNEbFhUbU5hV0hBNWFXMTRRVjlCWjFaalJIRTBjM052YTJSMlRXOWFjMU5JTFVjNGQxWnhNMGhhVGpGWlVrWnJkelF4YkdscFZVWkdTWGgzUjBOeU4yeGlWVTFXV1V0dVRtUTROMkY2Ymt0NVEzTllhVkYyWXpKSVpEbFphR0Y2T1VNM1VHOVJUR1ZUVmtnNFREQlVOalpvV2pjMFFqTlhaM3BsZURFeGJGQkNVR3Q1TmpOME5GTjBURTFzYlhVNWVYSktZVzFVTmxaZlZqUm5hVXRQZDE5TldUSXlSbGh6T1ZOWGVuY2lMQ0owY3lJNk1UWTRNemMwTXpJMk5pd2lZaUk2SWxGR1lqQkhUVVpUVmpCR2RXc3phVnB5UjJNd1prTldORlY2VGpOVFptSTNaVUpFWDBZdE5qZEZiVUVpTENKdWIyNWpaU0k2SWpZMU1ERm1ZakExTnpjM1pUUTVaalE1WkRreVlUUXhZV0ZoWTJJM09EY3pJaXdpWTI1bUlqcDdJbXAzYXlJNmV5SnJhV1FpT2lKZlNHTXRWbHAxV0VOVFNIUlNWVTFWZUdkSWJrUlRWVGRTWW1wbU5WaHhhbkJ5UkRBMlFVMWxRemRSSWl3aVpTSTZJa0ZSUVVJaUxDSnJkSGtpT2lKU1UwRWlMQ0p1SWpvaU1sVTJWa1ZPU2xacVRUQjNNVWxzYzNGclUwNVZUMnBDTURVM00xRkhhbGRHYWpCeGFESnBZM0prTXpGM2IyWkpTRUpQWTNKR1VqbENVMkpOWkc5R1VHTnFUMFpXT1Y5SE5sZHhSbFZoUTBwV2JuZExObTh5U2taalEwdHFaMGhHTWt0TmRURm5jMUpIYUdoRmJESlRaVlZJYjFsblJrdE1kVzVsZUZsbVdGTTNTbFJITldsc01sVXdSVXhKY2w5Tk0wWmxZakZHT0dsbFRtaENSalpFVkdOMVkyNXpNRjkxTjJwaWJpMWtZbUZDVEdsWU5tRTNlRW95T1hNdFZUWnJTbUUxWDFWVFVuYzVkSFJMUWs5M1MwY3hiSGR6YmxOM1VYWlZaSEExWkVOWFNVeDBXVjlEV201dldsZEtiMmg1UzNNMFZWaDZhV3M0VmtkVFNFTjVRbEpyWDB4blZWQjRjRzFxVUhoRlVUaHpjRWx3ZGpSUlkydEVOR1Z4WDFWak5tNHRjVkV5ZVRadlUzQmhXblpoVmxkV04wOTVZazkwT0ZsSFEwUjRVV1Y1VGtKb05uQnllRWxGVDNVeFQwUk5TMGRJWlcxUkluMTlmUS5lRXlnSmV2NUFGa1RUQVZQSG9HOHkzeWFpRUdEa3J4QndScE1wNEdTNG5RelhVSUFIdzNGQ1AtRkZ2LVd5eUlldGZDcHRiQ1paSWQwZUtkZmUzVHBwM3lPMndYc2dLR3ZrX3djYXBaYXdNR1ZaRDViN20tVzIxNE42emNtYjhQRlMzLTlkVHA2MzFZbHlyeWlPZkhmcjdTRGw3eElTNlpEZTlYeEk1dFIyTm9tQWhjSmVGOHBWX3p2eGtKaUY0QWs4dWdYVURrbDg2UEt1N29ZeFFnT2xoOEEwelFIdUxJb1RXejNXeDJsbjNRdXM5V1RLVWZBWEJJanlFdzNQdDZjcEgtTVZjYUZuLTNVQ2ZIQzJGZ015cmw2ZU44N2RwSWE0MFpBeEdobXlCZTB3eXFTMnRLamx1RG1ENW5uWGJJdHl6WVhONlJScFBkQkp4Q0ktV2JZZlEifQ.", + "incomingCallContext": "eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJjYyI6Ikg0c0lBQUFBQUFBQUNzMVlhMi9iT0JiOUs0SVgyQTg3cFVWU0w1S0FzVkRzcEhVenlYanltR21BWUFPS29tUk5aRW1oNU5oSnAvOTlMMlVuY2VQT3RMczdzeGdWY01USFBlZndpdVM5dHg4SFNwYmxhZDBWV2FGa1Y5VFZRSHdjWktaZTJMOUZPaEFESnFScUJVbFNLV25DRVE5d2hQekFweWhKUWgvSktLRlVZU3haNnQvZy9pRU1aVHlVaU9BZ1F0cFRFUXE0SjNHS3NlSXFHcndacEVYYmxQTGhWQzQwNEVPSHJ0S21McXB1YXZtaTBHY1pEM3pFQ2RmSTE5aEhqRVlwb2xobkhETWU0Y2dEbTFKVytWTG0ydHBVeTdKOE0yaWs2UXBWTkhJTFJHWEd0WXd3QW9zTStkSVBrV1IrZ0VoQ0VvOEZTbk9kQWRDOFNGTU55ODVrMmVvWExSY1BqVlhYYW5PdlRkdzBNTE14ZGFOTjkzQWc4dzNucHplRHJ2NGpITVdUUFVleHJ6cHFBNEl4K3NMUDAvTk5qZ3BTamJOQUVVUWlHaUtmQmg1aWtZNlFseEJGRktXSkgvRjlSeG5kMWt1amV0ekJ0Nno2Tnp4WUZ0VnRhNTBvdTA2cU9ZRE51NjVwaGV2S3BoaG1aWkhQTzdCYlB3emJXL2dtUTFVdjdJaDdUMTNWdUd1a0ZOTExxa2FZREpYYW1hT1VlMC9jckRhM09uWFRVSWN5eVNnS2toVDJncDlraUhtU28weG5qSE5OVXo5TlhCcTVCWEU5bjdzYktmOHNSdGFCQzUwV01xN2FsVFlnVGlsUXRwQ2J4ZVRnaFBZdm9maEp6RmF6MGI5bzFmMGxsRzJrYkhVdDArYkN5S3B0YW1QVlFSTzBFVzhZK1VNU2VrT0tQZUg1RVhNSG43WitIOWRWcHl1WSszR2dOcS9iZ3ltYnB0eGVXVzZiMnVPWmxIVUNBL2NqZkcydXEzcUVITmpKMk1ITzlOU1p6bnlIMEdpSTRSK3h3KzJvQlcrQnNXMm8wZE9Va0ExRE9xU0VEQW4zN0ZBeUdsOElzajFOdHFNYkFhUjlXWXprTWkxcUovQUlvYzdaeGN5TmY1bzVCUHNPaDEvUElZUTRoQUU5YzNnRVBkQ3luUXgwNEsrUXlwSHBWSU5NV3p6cW5YYVdpSDg0YTdRQTRYQ2VIZkNBMDhLTklOSjI3aGl0N3UzTFp2b2F0VVZlU1RoYStlOVp2V0FMdTRvdGQ2RTBXbVpHNXVLZ2piOTc2V3RXcVpnY3o4ZEhyU3JWM2RYZDQ0ZXAzOVMzN2ZReHBqc3FGOHYxcHFWa2xSYXA3TFNBcFR1WGs1bERpWWNqSFBvZWViWG9yUk83QjlCbXNuTHRHSm1tQnB3R0V4aDhzc0F4ZHNkc3B1MmoweDMwZ0ZzWDc2TjczNGJ1dlVhbm9OMHVTNm9PR0Noc2hSQkhld3crSjhFMzZPK243VFBRUDVrQjlsM3ZJVUlEUmprbVVlQUVkRWdJSERyR2hqeDA0TXp4SHR0b2lEZFAySjhMMlBrQ3pzbkY1ZG5wZE9MNEpDUXNDa0Z6U0RFTmNlRGpmVzc2d3MxNEdOTC9pZHQ3NWdaQUgzc2gwQVlZVTI2ZjhEVTVISzdldFkxc1d6RHdHUUVCT0h5bEFLTFZkbnQ4VllMUFBTL2FaNkgvQjVaZ1p5TmFrb0J4aitBL25JVCtXU1NsVEhRcEZyS29VSDl4Ym5vWFJTckkwNldWckxRczg5b1UzWHdoa3BWeUdxbHVkZGZJd2pncm5jRDFzdFZySHBxdWhvTWZINTdmakU5dUNHVTM3MDdpOGMzNXU1amNNT3dVRlZ4OVduejM4SE41OUY1bjUzUkIydnRJUFo0ZllSNi8rekRuNjJ3Y3ovMUgvdTdIc3piSmY2WC84c2l2NUVuSUZwNStEZjVLVS9tMkxPNFc3OTltdk1TMGh0Z1lkUGoyREZEanRBdkxLUHJ3OXFTYzlmQlBOMlN6a0EwRUZOODVuMzUvN0pKd0cxYWVoN2p6TnFMVVphLzdiVWpwVGZaSElOQ2NUODhPVDNmUnNrVzNHVW1LenNDWEhlMHp3VDBKVkh3SGNHUEVIRmxWZXAyTXF2cXorZGlaalU4dTkvbVo3WS8zK3lIcW5SMU92clFTMk1pNjFNMjhyalRTOXhEVDl6VEFGSXhJK0xtZDU0eFB2N1I4WnZ1L3NENks3WUQvWXRGMHhRTHUyeWNtaUk3YU5BYnlhZEhPSmFKQjZQaStJSkVJSnVJZ0Ztd3N4bFNNUTNFVWlVa29lQ0E0dkhNeDVvSXljVGl4THpFVzRWaVFBekUrRXNHQjhNYUNleUtpSWliQzk4VFJrZUJqY1VnRWpRV1pDTHpkQkhyZDlmb2NtNXlKYTNoV3E5VndzOEdIdGNtdnIvVWEwbVRRV25YdDlUVXNCODFUQTFiWDF6SnBrWTNleUs3a016VHZCZTA1Yi9zZG9FeTIzVTBDNTM1VnBOMzhKdE02VGVDdy9RMktIWnNWM1hqUGlVUnJGSUtVTFlkQWE2c0wrMlBIbmhMajczWGVWd0NLRVMwMUpKQ1o4aVZraGI2SHVJTDhrSkpFcFRqVllSUWt0b0pwb2VEc3M3WWZsRm9hY0g3K1hGRlVldlZEbHRrc3UrK0FGQkR5dzJQOVlKTy9iYmJXdHdaWHl6eHJmejdtSmp1K3ZHK3VGdDNrclVkK0hJMEFId29idURGZ3pqUTM2eUkwcDY0dW1xdko3SkpmMWJQekdPWUFyQUhoa0RCWkZiTk5SVkxvdmdRcDJyUHRVRnlXOVVyRHdqcXoxSi9BQnJKUDY1dGUrclM2TDdybmFubDN4S2FycGk3THZsVDREM052Z0huSnZxR3htMzlEMDAzZkg2eCt1VlAwNlBEdS9lenV3MUY4VWM1UGNraXM2ZC8xS1BRWXhXRVFSRHlnWGtod0ZJQXppdlprV1hiRkRPbzljTnZXeTBWN1lHcVpLdGdBTDQ1T2RiTE1kM050K0YrQlRaR1o0Z1FpTkh6M3pFK2dHdmRTSkNHTUk2WWxZNFFGSkF2N3d1Ni9LU21CTnpmMXN1bDUxOERiVjRUL0J0L0hUcEtURUFBQSIsInNoclRva2VuIjoiZXlKaGJHY2lPaUpTVXpJMU5pSXNJblI1Y0NJNkluQnZjQ0o5LmV5SmhkQ0k2SW1WNVNqQmxXRUZwVDJsS1MxWXhVV2xNUTBwb1lrZGphVTlwU2xOVmVra3hUbWxKYzBsdVp6RmtRMGsyU1dreFRGTlVUbEpQVnpWUFZXcGthVlZ0T1cxbFJ6RnNWMjA1V1dOWFNrbFhhMlJzWkhsSmMwbHRkSEJhUTBrMlNXa3hURk5VVGxKUFZ6VlBWV3BrYVZWdE9XMWxSekZzVjIwNVdXTlhTa2xYYTJSc1pIbEtPUzVsZVVwb1pGZFJhVTlwU21sT1JGWnNUVVJyZDFsVE1XdFpWMHB0VEZSUmVFNUVWWFJaVkVFeVQwTXdkMDlIUlRSTmFteHBUWHBDYkU5SFVXbE1RMHB3WXpOTmFVOXBTbTlrU0ZKM1kzcHZka3d6VGpCamVUVXpZVmMxYTJJelpIcE1iVFZzWkVNNWFscEhUVEZaVjFac1dWTXdlRTVYVFRGTVZGSnJXV3BaZEZscVFUTlBVekZ0V1RKR2ExcEVTVEZOUkZacldYcEpka2xwZDJsaFYwWXdTV3B2ZUU1cVp6Rk5WRVV5VGxSUmVFeERTblZaYlZscFQycEZNazlFVlhoTlZGa3hUa1JGYzBsdFZqUmpRMGsyVFZSWk5FNVVTWGROZWtrd1RWTjNhVmxYYkhaSmFtOXBVbFJLWVZveGJFZFNSMVl3V21wT01tRnBkR2xXUlhob1pXNWFlRXd6Ykd0aGJYQnlUREJLTTFGVU1HbE1RMHBvWTBoQ2NGcERTVFpKYlVWNldWUk5lbGw2U21oTVZFazFUMGRWZEU1RVJtdE5VekExVFZSTk0weFhSVEZPUkZsNVRXMVZNazlFUm1wWmVVbHpTVzFHZDJOSGJHdFpWMDU1U1dwdmFVMXBTWE5KYlU1MVdtbEpObVY1U25Ga01uTnBUMjV6YVdFelVqVkphbTlwVld4T1FrbHBkMmxpYVVrMlNXNXdOazlWUms1aFJWWk5Za1ZGTUZSRVVuWk5SbkJQVGxaQ2RrMVhNVXRNVlRsMFpGVktSbVF5TldGV1ZFNTZWakF4ZGxReGFEUlVVekZFWWtkdk1sWkZkR1poTVdNd1ZXMXdNV1JyUmpaUmJYUktZVzVXTTJSR1ZUSmFTRUV4VWtWVk1tUXpWa1JaYkZFd1dqTk9iV0o2YUd4T01IaFpWbTFzVkZGWGNITmlhMDVXVmxoR1dHRnJiekpYVmtaaFVqSmtVMVJETVhsYVZuQkdVbXBDVm1SSFpGVk5NMDV0WXpCYU5sTnVjRnBpUlZKS1pWaE5kRnBGY0UxaFZVNVNZa1ZHZGxadVRuUmtia1pJWTNwYVFsbHVValJSYW14cFQxVmtkbVZXU2tWWlZWWlJXakJvY21KcVNucE5WMnh2WkRCT2RXRklRa3hrUkVadlZqQTFOV0pyY0VWa2JUa3paRWhTWmsxNmFHMWphMW95VkZoc2VWWklWa2hoVkd4U1ZVUkdWR0pGYkUxVVYxWlBVMGMxVUZSWE9VTmtlazVIV1ZSS1VGTXlVa3hOYlU1d1RUSjBiVk5JVVhsVWJFcFNVVE5rTVZkVlVYbGxhbHBPVGxaT1pscHRNVWRXUldoUlUwWTROVk50WnpGa1JsWkZWRVYwTlZWRVFrTmtWbXhxWkd0T2NWUlhWVEJWYmxwbVVqTmFlbU5XVm5GaFZteHdaR3RzYkZSWFpETmhWWE0xV2tWdk5GTldRbkZpYldoV1VYcFNNVk16WjNkYWFrSlZXVmMxVEZGV09UQlZNbkEyVlZOSmMwbHRWV2xQYVVwQ1ZWVkdRMGxwZDJsWlYzaHVTV3B2YVZWc1RYbE9WRmxwVEVOS2NtRlhVV2xQYVVwaFVsaHdUVkZWTlVoYWJUQXpVWHBrVUZWR2JFbE1XRXBWV1ROU1ZWRXlOVzFZTTNCSFRGaHNZV1F3Ums5WFdIQm1ZekJhUjJORVpIWkpiakU1VEVOS2NGcElRV2xQYVVwdlpFaFNkMk42YjNaTU0wNHdZM2sxTTJGWE5XdGlNMlI2VEcwMWJHUkRPV3BhUjAweFdWZFdiRmxUTUhoT1YwMHhURlJTYTFscVdYUlpha0V6VDFNeGJWa3lSbXRhUkVreFRVUldhMWw2U1haSmFYZHBZakpzYTBscWIybE5iVTB6VDFkT2FVNTZaM1JOTWs1cVdWTXdNRTB5Vm1sTVYwcHNXV3BKZEZscVFUVk9iVlpwVDFSSk1FNXRSVFJKYVhkcFkyMW5hVTlwU1hkTWEwWlRVMVZGTW1OVVpFZGxiVTVXVm01U2NrMXVaR3hhYm13d1RVZDRRMXBJWkc1aU1IQlpZMnhPWmsxdGRGZFJiVGxJV2pCc2VGRXlNVFpTUnpoM1ZUQkdRbEZUTkdsTVEwcDZaRmRKYVU5cFNYbFplbU0xV1RKSk0wOURNSHBaTWs1b1RGUlJlbHBYU1hSWmJWWnBUV2t4YVUxRWF6SmFWMGsxVFdwUk1sbFVaMmxNUTBvd1lWZFJhVTlwU21wYVIwMHhXVmRXYkZsVE1IaE9WMDB4VEZSU2ExbHFXWFJaYWtFelQxTXhiVmt5Um10YVJFa3hUVVJXYTFsNlNXbE1RMG94WkVkcmFVOXBTbkZPUlZwc1lsUkdiVm96YUVaaVYyUjJWVmR3V1ZVelNsRmhhMFpDU1dsM2FXUnRWbmxKYW05cFRWTTBkMGx1TUM1U1VEVlJOVmhyU214TmVEazNPR2R6YW1VNFgyMVJlbTExWlRCM2NHMUdaa1JJTW1GeVdtMUdOelppWHpaUWNYbzBUVUl6YVdkaGQyaEpTVTVMYUdkNUxUUlVVMWxEVW1wcFEwNVZUMmRMZUc1NFVXTjZZbVpmUm5wR2NXa3pNVTFaUlRGdVVHNDBPWFYyZW5SaWEyZG5NelY0Y0RodVRHWjRSakE0TURKWFRYUXlibnBXTm5GaFZYWm1iRTFJUTNnM1IxUlhWVTg1ZFZad1IxcG1iVk5zU1V4Nk5tUjJaME5DVkRJNGQweDVaRnA0Ym5OWVUwSnFkMGw0YTNWQmRtUldORU0xYWxSQ2VDMW5abTluZDJOS00wUnpRbDlZYmpaUmFWZGllbUZQTURsclprNXFlRGh1YkdOa1NYVm1lV3BNZFdFd2JXbG1jWEJrYTA1R1NsTlZPRXh1TVRKelEwSkNSSGhxUWs1cmF6VkNTWEZZUmtoNVdtTmFWVlZIYlUxMlMyMDFjemhpWVhkVldVdGhWVXROY0dSeldWTnNOMFZmYUhKS2RISm9hek5TZUZoeGFGOHlUMnhQUld0clFrUkxTamh3ZGxFaUxDSjBjeUk2TVRZNE5URXlPVEk1Tml3aVlpSTZJbVJFWlcxS2JuWlpXRWhEV25SNWNtNHhZWGxWT1hFelQxUkdabGMxWDFWRlMzQmpRM2N0YVdkVGJ6Z2lMQ0p1YjI1alpTSTZJamxoT1dFNVlXVTBNemN3TURRNFl6RmlObUV5TVdObU1XRmpNREF3WmpVeUlpd2lZMjVtSWpwN0ltcDNheUk2ZXlKcmFXUWlPaUpaWmpCaFpXbDNlRU5wTVROaU5EUjNaMW8zUTFGUlVUTkxWVE5WY0hWSFIwTm5PVlJXZEVWSlZHRXdJaXdpWlNJNklrRlJRVUlpTENKcmRIa2lPaUpTVTBFaUxDSnVJam9pZW5vNVFVMW9SVXhzUVRSTU5HOHdXazQxVUc4eGJVb3RUMjExUWtWM2JscFZNM05YVFc5UFdIaE5MVU5zYWpaVVMxOXJWelJTYW5WMlFYcENhMGxxZFhkMFZUWmtjRFZFUlRaM2RVTmlWRFJuYzJadk9HVTNURmhXYVZOQmFteHVRMVZWY1ZkcVNqWlpVVnBIWjFKTUxYSmxXa1ZHTUZWMFoxUXpjMlp6Um5wS2VsbHNSRWw1Y3kxa1NreHBRMUZzUVc5V2MyMTJjVWR6TmtGaWRIaENPV0k1UjI5NVVrUmhSVkJuU0d0dU1uTXhhV2gzUTI1b2NFdDBNV2hYVG5sdVNrUjJiM2QwZEY4ek9HWnlSblpOZVhKVWRVZHBPVkZRTVZOc1NVeE5aVTVJYms5TmIwSjNNMFpoTWs5TFpFc3lZMmt6YTJaSWRESk9VbEZEZDNWWlJESjZOazAxVTE5bWJVWlVTRkJJWHpsS2FEVjBWVVJNUzNsUU1FSjFXV04yUTJwTlpUUlNkbDlIZG5OeFZXcHBXV2wyU1dWTlozZHBTemxrU2poSlVHcHVhRlZETkhWTGVEQm1NRlJoYmt0QlgzUlRhbnBSSW4xOWZRLlZ1NmpDSmRDY2ZJZ0VyblZ1eVhGSU13VnMtTFh0eWEwZ0Nzay1GUXVBT2xYS3NZR1RmcjVWV080UDUyQnl4T1E4elVDRVBsOWdYal9qaE9MQU5STDBCTE1hQlJKdDlhTzkxSWxkN0pEc2stRUlxbFRlNE9ILWphaDdhOHliTkxhc0V1amNsYzlGTUs4RDZVUE1ibFU2bFJNNjBtdFNQMzVJTTBzZnFFSzZVdDhFX1B4eldaRkpKeXl2X002LV8yZlBON09MX19zbDMwY0tWX00tTTRobHdBTWRmbElyRVlxdGFib2JlX1RnTmZKMldReDR4MFVEcmQ4b0JqSzFEeVdfUnl0Z2pmZFV4SXpFaFNWNV9CUWZmekZwZDhUbWtrNDhvTVFLY0oxeXRzSXhmdlQ0WTJlWHR1MThKdVBEWHl2N1p2dnFZcmhwVzU5alBrckhndGEtQSJ9.", "callRejectReason": "none" }, "StatusCode": 204, "ResponseHeaders": { - "Date": "Wed, 10 May 2023 18:27:46 GMT", - "X-Azure-Ref": "0I\u002BJbZAAAAABnR\u002BvnxZh4TbYhBATLqh9TWVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "Date": "Fri, 26 May 2023 19:28:16 GMT", + "X-Azure-Ref": "0UQhxZAAAAAAgpY1STo9rRJlkM2JVfJEkV1NURURHRTA4MTUAOWZjN2I1MTktYThjYy00Zjg5LTkzNWUtYzkxNDhhZTA5ZTgx", "X-Cache": "CONFIG_NOCACHE", - "X-Microsoft-Skype-Chain-ID": "0a043b4d-6aae-4b55-8a1d-b0fcd8bdfd88", - "x-ms-client-request-id": "d883245861d880e55283df15018a8105" + "X-Microsoft-Skype-Chain-ID": "0d0b3470-1f4b-4e3d-a289-8ea881851f64", + "x-ms-client-request-id": "6eed5be9cd5d642aa46caabe939416e9" }, "ResponseBody": null }, { - "RequestUri": "https://sanitized.skype.com/calling/callConnections/401f3500-f426-4d61-bc2b-1abdcc3c13c1?api-version=2023-01-15-preview", + "RequestUri": "https://sanitized.skype.com/calling/callConnections/411f1200-693b-4171-9cc9-9b64765d7859?api-version=2023-03-06", "RequestMethod": "GET", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "474902a46a78c9124e93f3c5ce690c9f", + "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "56dc82312fe725491ae66a02bc70a66e", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:46 GMT", + "x-ms-date": "Fri, 26 May 2023 19:28:15 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": null, - "StatusCode": 200, + "StatusCode": 404, "ResponseHeaders": { - "Content-Length": "533", + "Content-Length": "53", "Content-Type": "application/json; charset=utf-8", - "Date": "Wed, 10 May 2023 18:27:46 GMT", - "X-Azure-Ref": "0I\u002BJbZAAAAAA2vylpqSfRSJmsC6njhVf9WVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "Date": "Fri, 26 May 2023 19:28:17 GMT", + "X-Azure-Ref": "0UQhxZAAAAAAtyG59xYGHRLJg\u002B3n2JdbvV1NURURHRTA4MTUAOWZjN2I1MTktYThjYy00Zjg5LTkzNWUtYzkxNDhhZTA5ZTgx", "X-Cache": "CONFIG_NOCACHE", - "X-Microsoft-Skype-Chain-ID": "0a043b4d-6aae-4b55-8a1d-b0fcd8bdfd88", - "x-ms-client-request-id": "474902a46a78c9124e93f3c5ce690c9f" + "X-Microsoft-Skype-Chain-ID": "10b0b1e1-2c37-4a78-b73d-aa0e2519c258", + "x-ms-client-request-id": "56dc82312fe725491ae66a02bc70a66e" }, "ResponseBody": { - "callConnectionId": "401f3500-f426-4d61-bc2b-1abdcc3c13c1", - "targets": [ - { - "rawId": "Sanitized", - "kind": "communicationUser", - "communicationUser": { - "id": "Sanitized" - } - } - ], - "callConnectionState": "connecting", - "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized", - "mediaSubscriptionId": "242b248b-1725-4f4b-828c-6d3ecd5d9cac", - "sourceDisplayName": "", - "sourceIdentity": { - "rawId": "Sanitized", - "kind": "communicationUser", - "communicationUser": { - "id": "Sanitized" - } - }, - "correlationId": "0a043b4d-6aae-4b55-8a1d-b0fcd8bdfd88" + "error": { + "code": "8522", + "message": "Call not found." + } } } ], "Variables": { "COMMUNICATION_LIVETEST_STATIC_CONNECTION_STRING": "endpoint=https://acs-callautomationtestsupporter.communication.azure.com/;accesskey=Kg==", "DISPATCHER_ENDPOINT": "https://sanitized.skype.com", - "PMA_Endpoint": null, - "RandomSeed": "1605799027", + "RandomSeed": "592497933", "SERVICEBUS_STRING": "Endpoint=sb://acs-callautomationtestservicebus.servicebus.windows.net/;SharedAccessKeyName=Sanitized;SharedAccessKey=Kg==" } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecords/CallAutomationClientAutomatedLiveTests/CreateCallToACSGetCallAndHangUpCallTest.json b/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecords/CallAutomationClientAutomatedLiveTests/CreateCallToACSGetCallAndHangUpCallTest.json index 1a7f8dfcc3b5..18b902155943 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecords/CallAutomationClientAutomatedLiveTests/CreateCallToACSGetCallAndHangUpCallTest.json +++ b/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecords/CallAutomationClientAutomatedLiveTests/CreateCallToACSGetCallAndHangUpCallTest.json @@ -8,11 +8,11 @@ "Authorization": "Sanitized", "Content-Length": "2", "Content-Type": "application/json", - "traceparent": "00-95674d7dab152f3d8de12db0faa71baf-43121c38ef4436c6-00", - "User-Agent": "azsdk-net-Communication.Identity/1.3.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "64f465f60108a3f9c9672e473076cea2", + "traceparent": "00-e255b65c07e0dae9c5bf10266c7d7628-44a7b4629671feb6-00", + "User-Agent": "azsdk-net-Communication.Identity/1.3.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "57dd88f14acf00136f0f640cc4226c13", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:34 GMT", + "x-ms-date": "Fri, 26 May 2023 19:28:01 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": {}, @@ -21,14 +21,14 @@ "api-supported-versions": "2020-07-20-preview2, 2021-02-22-preview1, 2021-03-07, 2021-10-31-preview, 2021-11-01, 2022-06-01, 2022-10-01, 2023-08-01", "Content-Length": "31", "Content-Type": "application/json; charset=utf-8", - "Date": "Wed, 10 May 2023 18:27:35 GMT", - "MS-CV": "LQevzbaIQEeP7Bp2bq0Lfw.0", + "Date": "Fri, 26 May 2023 19:28:02 GMT", + "MS-CV": "66gUoPk51UawE0X7w8/Itg.0", "Request-Context": "appId=", "Strict-Transport-Security": "max-age=2592000", - "X-Azure-Ref": "0GOJbZAAAAAA7zcDwHLTBQY8iDYTnwZ2wWVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "X-Azure-Ref": "0QwhxZAAAAAAVQywf\u002B2V\u002BSY96qsrUTHqGV1NURURHRTA4MTUAOWZjN2I1MTktYThjYy00Zjg5LTkzNWUtYzkxNDhhZTA5ZTgx", "X-Cache": "CONFIG_NOCACHE", - "x-ms-client-request-id": "64f465f60108a3f9c9672e473076cea2", - "X-Processing-Time": "82ms" + "x-ms-client-request-id": "57dd88f14acf00136f0f640cc4226c13", + "X-Processing-Time": "33ms" }, "ResponseBody": { "identity": { @@ -44,11 +44,11 @@ "Authorization": "Sanitized", "Content-Length": "2", "Content-Type": "application/json", - "traceparent": "00-40e2f22ad437c13eda9b64771079f24c-73e4c11d868286ec-00", - "User-Agent": "azsdk-net-Communication.Identity/1.3.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "a993a668851468517851796153fb5d45", + "traceparent": "00-3ac34215a9d0b490c9d33595a9ee2eb2-41fabb2676447a08-00", + "User-Agent": "azsdk-net-Communication.Identity/1.3.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "0bc45ae1c20f98ec6c90103fa8c87be5", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:34 GMT", + "x-ms-date": "Fri, 26 May 2023 19:28:01 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": {}, @@ -57,14 +57,14 @@ "api-supported-versions": "2020-07-20-preview2, 2021-02-22-preview1, 2021-03-07, 2021-10-31-preview, 2021-11-01, 2022-06-01, 2022-10-01, 2023-08-01", "Content-Length": "31", "Content-Type": "application/json; charset=utf-8", - "Date": "Wed, 10 May 2023 18:27:35 GMT", - "MS-CV": "stQWcYgPkEia3dxy/iE5NA.0", + "Date": "Fri, 26 May 2023 19:28:02 GMT", + "MS-CV": "LxEKJVcXRUGC4FfPCVgYOQ.0", "Request-Context": "appId=", "Strict-Transport-Security": "max-age=2592000", - "X-Azure-Ref": "0GOJbZAAAAADQEiGwMUC1Qozfy0w04gt\u002BWVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "X-Azure-Ref": "0QwhxZAAAAACZWcO9rcOJQbVTe/hbGF8uV1NURURHRTA4MTUAOWZjN2I1MTktYThjYy00Zjg5LTkzNWUtYzkxNDhhZTA5ZTgx", "X-Cache": "CONFIG_NOCACHE", - "x-ms-client-request-id": "a993a668851468517851796153fb5d45", - "X-Processing-Time": "79ms" + "x-ms-client-request-id": "0bc45ae1c20f98ec6c90103fa8c87be5", + "X-Processing-Time": "19ms" }, "ResponseBody": { "identity": { @@ -79,37 +79,36 @@ "Accept": "application/json", "Authorization": "Sanitized", "Content-Length": "0", - "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "X-FORWARDED-HOST": "Sanitized", - "x-ms-client-request-id": "ff27293b83739dd3d394dd7c1a6156c7", + "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "96519cf0ffdf5ce95f52db20ce11102b", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:34 GMT", + "x-ms-date": "Fri, 26 May 2023 19:28:01 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { "Content-Length": "0", - "Date": "Wed, 10 May 2023 18:27:37 GMT", + "Date": "Fri, 26 May 2023 19:28:04 GMT", "Server": "Kestrel" }, "ResponseBody": null }, { - "RequestUri": "https://sanitized.skype.com/calling/callConnections?api-version=2023-01-15-preview", + "RequestUri": "https://sanitized.skype.com/calling/callConnections?api-version=2023-03-06", "RequestMethod": "POST", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "Content-Length": "205", + "Content-Length": "197", "Content-Type": "application/json", "Repeatability-First-Sent": "Sanitized", "Repeatability-Request-ID": "Sanitized", - "traceparent": "00-487952b6e8353d5b19d2b5d140036505-1375bb682a6e9352-00", - "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "0f12a9bed7f671a9138becb688974fcd", + "traceparent": "00-9c3f32d1af517dfcb863ea1f4f8c1f66-3baa773a102da760-00", + "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "5bc3de3602d82f6f9b45ea3f39d357a7", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:36 GMT", + "x-ms-date": "Fri, 26 May 2023 19:28:03 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": { @@ -121,27 +120,23 @@ } } ], - "sourceIdentity": { + "source": { "id": "Sanitized" }, - "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized", - "customContext": { - "voipHeaders": { - } - } + "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized" }, "StatusCode": 201, "ResponseHeaders": { - "Content-Length": "533", + "Content-Length": "464", "Content-Type": "application/json; charset=utf-8", - "Date": "Wed, 10 May 2023 18:27:37 GMT", - "X-Azure-Ref": "0GuJbZAAAAABVRNrNdGt4QY1E0ZP0qaFUWVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "Date": "Fri, 26 May 2023 19:28:06 GMT", + "X-Azure-Ref": "0RQhxZAAAAAAvjVRPxJ0wTpYWNWkt35hEV1NURURHRTA4MTUAOWZjN2I1MTktYThjYy00Zjg5LTkzNWUtYzkxNDhhZTA5ZTgx", "X-Cache": "CONFIG_NOCACHE", - "X-Microsoft-Skype-Chain-ID": "e8fabd46-2673-403c-9d93-44d05cd6f4e6", - "x-ms-client-request-id": "0f12a9bed7f671a9138becb688974fcd" + "X-Microsoft-Skype-Chain-ID": "b29f71d7-b778-4ee7-bce0-0f6837d462af", + "x-ms-client-request-id": "5bc3de3602d82f6f9b45ea3f39d357a7" }, "ResponseBody": { - "callConnectionId": "401f3500-0632-4aed-8aa2-e1bd0116d7e3", + "callConnectionId": "411f1200-b763-4317-b5bc-9b58fb43507f", "targets": [ { "rawId": "Sanitized", @@ -153,55 +148,54 @@ ], "callConnectionState": "connecting", "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized", - "mediaSubscriptionId": "43332089-9948-4396-a2e0-d42a1e75b1ba", "sourceDisplayName": "", - "sourceIdentity": { + "source": { "rawId": "Sanitized", "kind": "communicationUser", "communicationUser": { "id": "Sanitized" } }, - "correlationId": "e8fabd46-2673-403c-9d93-44d05cd6f4e6" + "correlationId": "b29f71d7-b778-4ee7-bce0-0f6837d462af" } }, { - "RequestUri": "https://sanitized.skype.com/calling/callConnections:answer?api-version=2023-01-15-preview", + "RequestUri": "https://sanitized.skype.com/calling/callConnections:answer?api-version=2023-03-06", "RequestMethod": "POST", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "Content-Length": "8175", + "Content-Length": "8192", "Content-Type": "application/json", "Repeatability-First-Sent": "Sanitized", "Repeatability-Request-ID": "Sanitized", - "traceparent": "00-905957add9b925ff3d7fab5516806b3c-28413a4566f65f30-00", - "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "070ce80acf4fe52ed3f5d57fa7d54e16", + "traceparent": "00-89b9488a78a6fadff8575fc389d08d80-b62a4db366dafa7e-00", + "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "271b7f93d6d1e2337067acbce6ccca5a", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:38 GMT", + "x-ms-date": "Fri, 26 May 2023 19:28:06 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": { - "incomingCallContext": "eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJjYyI6Ikg0c0lBQUFBQUFBQUNzMVlhMi9qdUJYOUs0SUw5RU4zYVBHbEZ3R2pjSnhNSnk5UDFrazJtQ0pvUUpHVXJZa3NxWlQ4U0dibnYvZFNkaEpuUFoxTjI5MWlIY0FXeWN0enpyMFV5WHZ6cGFka1VZeXJOczl5SmR1OEtudmlTeSt6MWR6OTVyb25lckdRcWhFazFWTFNORUZKZ0NQRUEwNVJtb1ljeVNpbFZHRXNZODN2Y1BjaE1aS2hVa2pUTEVWTXN3VEZoa21zTWRZa29yMTNQWjAzZFNFZnhuSnVBQjg2VEtucktpL2JZOGNYUkNiRUNZc1F5MWlJT0tNR3BRb0RuZEVtekdRY0VCWEFuRUtXMDRXY0dqZW5YQlRGdTE0dGJadXJ2Slpib0RDSk0wVWxBS1VKQUNrU29EVFRGQ21OZ3pTaERFdk1BV2lXYTIzQTdVd1dqWG5SY3ZWUU8zV05zVXRqaDNVTmxyV3RhbVBiaHdNNTNYQitmZGRycTk4aVVIRzhGeWp5cTRIYWdHQ012dkgxOUhsVG9EVFZPQ0k4UlJIUE9PSVJaU2hoUnFNMFRySlFSaUhPcE5vUGxEVk50YkNxdysyOXhldC9FOEVpTCs4YkYwVFp0bExOQUd6V3RuVWpmRi9XZVQ4cjh1bXNoWG5yaDM1ekQydlNWOVhjamZoTDZxdmFoL0F0R2lNcHdyU3YxSTZKVXY2UytGbGw3NDMyWXhYam1HVWFoVndaeEdXUW9KUW1LYUlxaVhGS2VaeW8xS2VSbnhPZjhjVGZLUGxyUG5DYTUwYm5jbGcySzJOQm0xSWdiQzQzdmt3aEJzMGZRZkNUbHExa2F6NGIxZjRSaEcyVWJHVXRkSDFsWmRuVWxYWGlvQW5TQXRvbmhQY0poOStFQ01hajJPOTkzWVo5VkpXdEtjSDRTMDl0SHJmYlV0WjFzVDJ3L0VhN3paa1dWUW9EeXdHK3RiZGxOVUFlb1p3SHpNUGU4ZGc3dnVEUWp2b1kvb2d6YUFZTnhBdW11NFlhYkUwNDdrZHhuMkF3d2gxT09oaGRDWGp1UHE2akhXQ3ZlNWdQNUVMbmxjZVRNSWk5eWRXRlAvenB3aU9ZZXdsOE00OFE0cEVZMkdNdmlhQUhXcTR6QmhuNCs1eHlZRnRWSTl2a2oyYW5uYVhpTDk0YXpVRTI3R1lQSXVBMWNCNEkzY3c4YTlUU1BXek0xNmpKcDZXRWpUWDkzcXdYYk9HY1NEYnRISloxa1ZrNUZVZVQ5N09Ydm5xbHhlaW1ZU2ZITncrVHlmbnFmaldwN1ZCOXV0TDZma2ZsZkxIZXRKUXNkYTVsYXdSNDdsMGZYbmlVTUJ6aGtEUHkydWR0Q05zSGtHYXpZdTFacWJXRmtQVXBpV0c5T1BXc2UyVTJkdnZvZEFjOVNDREMrK2pKRzlHVFg2SlQwTzdja3FvRkJncDRJWTcyR1VoQTM4UUFkdnNNOUhkbWdOZXVpeENoUVV3VFRLTEFlOXAwc2FOZ0hteTZUWVNzZ2V0bWkvNWF3YzRLZU9kWDE1UHg4YUZIZ2lTa09NQXNESU9Rd01ZTjRyM2xZZHZsNmNqakpBenAvMFNldkpCanh0elVJT1pKUkNrTEk3Ym5PZXo1THJhMWJCcDNITVFFQk9Ed3RRSU16WURoTjBrSUtFL1lQZ3Y5UDdBRU8yK2lJd25paEJIOG01UFEzNHVra0trcHhGem1KZW9PemszdlBOZUNQSjFhNmNySVlsclp2SjNOUmJwU1hpM1Z2V2xybVZ0dlpWSTRYN1o2N1VQZFZyRHpoMGVYZDZQek8wTGp1dy9udzlIZDVZY2h1WXV4bDVkdzloblJSSmFFUHhRbkkvOFREMytNVHRuSnlZOVN0cWVMTkR5MXAvUnl1UjZQYjI0ZXlwL3BQeGo1bVR3SjJjTFRYNFAvSlAzeThQTDg2bW9xUiszRjJmSVJMNnBFajIreVpWYjhjTDMrTUZWTHY5WEZXUWYvZEVUV2MxbkRoY0s5eStPelU1K0UyMnZsZVNqeC9nWnZzeC8vc3QvdGxHN0svZ2hjTkpmSGs2UHhMbG8yYnpjamFkNWFXTm5CUGhNY2xFQ1Y3QUJ1SnNXZUxFdXpUZ2RsOWNvZWV4ZWo4K3Q5L3RqMUQvZjc0ZGFiSEIxK3l4TjRrVTFoNmxsVkdtU1djS252YVFBVGpFajRlaDd6UnVOdnVSKzcvbS80UjdFYjRDOHo2amFmdzRIN3hBVFhvN0cxaFhSYU5ET0phQkI2RVJmeFNCd2Npb09oaUlhQ0RNWG9RQ1R3ZkNSd0tCZ1duRHFEVVNLU0F4RU9CU1FzNUVCRVJGQm9Ib2tvRUNIWUh3ak1SUUNkVEJ3a1loaUl3MGdjSFlwUnNDRTI2N2JUNTduc1ROekNaN1ZhOVRjdmVMK3kwOXRiczRZc0diU1diWE43Qys2Z21iWXc2L1pXcGcxeTF6ZHlucnhDWXk5b3o1bmJkNEF5MmJSM0tlejdWYTdiMlYxbWpFNWhzLzBKYWgyWEZOMng1MHlpc1FwQjBqYUZtOVlWRis3TGpUMGx4bWRtMmhVQW1lR1o1cG9oRGdjeGduc29oTHlRWWhRU1YydVpUTFBNdUFLbWdYcXpTOXMrS3JXd0VQenBjMEZSbXRYSExITlpkdGNCT1NCa2lLZm13V1YvMjJTdGEvWCtmbklXTGNmdDlCR1hKKzhmUDBmTnhYbXVwb01CNEVOZEF5Y0cyTFRzK253WWZyeGNGNS8vZWMyUGw0dkY5ZVA3SWRnQXJBWGhrREU1RlJlYmdpUTNYUVdTTjVQdDBMQW9xcFVCeDFxN01GOWhEcVNmTGphZDlPTnltYmZQeGZMdWlNdFhiVlVVWGFud0h5WGZBQUxwOThwMDJUYzBkdk52YVBycDQraW5iQ3JOd2RFTkxadEpsZVoxa3EwZ3NTWi9Ob09Rd1oxRG93Q1M2Q1FnR0s1RUNFWGVuQytLTnIrQVlnK0N0bzF4M2h6WVNtb0Z5LzhTWm0zU3hYUTMxWVovQ1hTTGF1Sk1wcHFIaUhhTGlwbENpVTdnaVVNSnJYU1ljUk82U3VpL3FTZUJkMnFyUmQzeHJvRzNLd2YvQllncG1nNlFFQUFBIiwic2hyVG9rZW4iOiJleUpoYkdjaU9pSlNVekkxTmlJc0luUjVjQ0k2SW5CdmNDSjkuZXlKaGRDSTZJbVY1U2pCbFdFRnBUMmxLUzFZeFVXbE1RMHBvWWtkamFVOXBTbE5WZWtreFRtbEpjMGx1WnpGa1EwazJTV2t4VEZOVVRsSlBWelZQVldwa2FWVnRPVzFsUnpGc1YyMDVXV05YU2tsWGEyUnNaSGxKYzBsdGRIQmFRMGsyU1dreFRGTlVUbEpQVnpWUFZXcGthVlZ0T1cxbFJ6RnNWMjA1V1dOWFNrbFhhMlJzWkhsS09TNWxlVXBvWkZkUmFVOXBTbWxPUkZac1RVUnJkMWxUTVd0WlYwcHRURlJSZUU1RVZYUlpWRUV5VDBNd2QwOUhSVFJOYW14cFRYcENiRTlIVVdsTVEwcHdZek5OYVU5cFNtOWtTRkozWTNwdmRrd3pUakJqZVRVellWYzFhMkl6WkhwTWJUVnNaRU01YWxwSFRURlpWMVpzV1ZNd2VFNVhUVEZNVkZKcldXcFpkRmxxUVROUFV6RnRXVEpHYTFwRVNURk5SRlpyV1hwSmRrbHBkMmxoVjBZd1NXcHZlRTVxWjNwT2VrRjNUMVJKTVV4RFNuVlpiVmxwVDJwRk1rOUVUVE5OUkVFMVRXcFZjMGx0VmpSalEwazJUVlJaTkUxNll6Uk9lbGw1VGxOM2FWbFhiSFpKYW05cFVsUktZVm94YkZGYU0wNTNWRWh2ZVdGNlNrNVpWV3QyV2tSS1QxcDZWbUZOUkVKWlZtdEdRbEJVTUdsTVEwcG9ZMGhDY0ZwRFNUWkpiVVY2V1ZSTmVsbDZTbWhNVkVrMVQwZFZkRTVFUm10TlV6QTFUVlJOTTB4WFJURk9SRmw1VFcxVk1rOUVSbXBaZVVselNXMUdkMk5IYkd0WlYwNTVTV3B2YVUxcFNYTkpiVTUxV21sSk5tVjVTbkZrTW5OcFQyNXphV0V6VWpWSmFtOXBWV3hPUWtscGQybGlhVWsyU1c1TmVGTnJXalZVYlhnd1pXMWpOR1ZzWkhaYWJtY3lUMFZPTldGcVZrOWlSRXBYVW10S1lWTlZkRzlYYms0MVRteEpNMXBIV20xaVJ6RjVWRU13TVZScVpETmhNa3AzVkdwc2JFOUZjRVphUmxwcFZVVm9hbGRITldwU1JHaHBZakJhVjFOc1NuUlZTRVpOVjBoa2ExcEdhSE5XVlVaNFltNUNVbFZYVFRCUmJuQmhXVmhrUjFsdVFrNU5SRTQyVVZWMGJHUnNWWGxpTWpsaFZVVlNRMVpFUm5CalZrRjNaREpPYzFwSFdtbFdWRkpZVlhwc2VtSkhVbEJNVjA1T1pGaE9NbFZJVG10amJrSllWMGROZVV4WWFGUmlWRkpIVjI1YVYxcHJNV3hhYlRRMVZqRldUR0l5Y0c1T01Vb3daRVZzWVdNeE9WaFhSVVpFWTFWSmVFOVZXazlUVm5CMldURnNRMU5JUWpGbFIyaGhZekZzTlV4VVJsbFdWMlJ5WW0xU05Gb3phSGRTUnpVMFRYcFZNMVJYY0RaT1ZGcDVVMGhrVFU5RldrSlZSV3d6VkRKNFVWVlhPVmhTYTI4MFZsVjBNMlJIZUhoa2F6UjNaRlUxYUUweWJHcGxXRkpMVm0xMGIxcFhVakpOVmtJMFZtNWthMkZGYkVWU1IyaE9ZVEZPUjFac1NtMWtSelUxWTJ3NVJrNHlVVFJSYkVJMVdXMTRiRTlYV25Oa00zQkNVakJLZUZKNlVURlZha295VVROR1YxUnJSazFTYlVwMVdUSk9jVkpITlVsa1JWWnRWVk5KYzBsdFZXbFBhVXBDVlZWR1EwbHBkMmxaVjNodVNXcHZhVlZzVFhsT1ZGbHBURU5LY21GWFVXbFBhVXBTVG14YU1rNUZSakZNV0ZWNlkwUmtVR1J1Y0hWU2EyaE5VekU1V1ZZelVuWk5TRXBRV0hwc2RscHJiRnBTYWxwcFZrVldhMVJFVGxwSmJqRTVURU5LY0ZwSVFXbFBhVXB2WkVoU2QyTjZiM1pNTTA0d1kzazFNMkZYTld0aU0yUjZURzAxYkdSRE9XcGFSMDB4V1ZkV2JGbFRNSGhPVjAweFRGUlNhMWxxV1hSWmFrRXpUMU14YlZreVJtdGFSRWt4VFVSV2ExbDZTWFpKYVhkcFlqSnNhMGxxYjJsTmJVMHpUMWRPYVU1NlozUk5NazVxV1ZNd01FMHlWbWxNVjBwc1dXcEpkRmxxUVRWT2JWWnBUMVJKTUU1dFJUUkphWGRwWTIxbmFVOXBTWGRNYTBaVFUxVkZNbU5VWkVkbGJVNVdWbTVTY2sxdVpHeGFibXd3VFVkNFExcElaRzVpTUhCWlkyeE9aazF0ZEZkUmJUbElXakJzZUZFeU1UWlNSemgzVlRCR1FsRlROR2xNUTBwNlpGZEphVTlwU1hsWmVtTTFXVEpKTTA5RE1IcFpNazVvVEZSUmVscFhTWFJaYlZacFRXa3hhVTFFYXpKYVYwazFUV3BSTWxsVVoybE1RMG93WVZkUmFVOXBTbXBhUjAweFdWZFdiRmxUTUhoT1YwMHhURlJTYTFscVdYUlpha0V6VDFNeGJWa3lSbXRhUkVreFRVUldhMWw2U1dsTVEwb3haRWRyYVU5cFNuUlViVGxYWVdwQ2FXTjVNVVprVmxsNlYwWkpOV0pVVWpOa1JVWkNTV2wzYVdSdFZubEphbTlwVFZNMGQwbHVNQzVrUVhGZmFEa3ROMUEyZVMwM2MyTjJXVVV4V1RaMExWcDVUREozVDJKa2EzUXRNbWhOVmtabk0wMWlXUzF3YlZsRE4zbElkWGRqVUZNdFJuTjVlV1Z0ZEU5eGRuSkdlVWxtVXpWVmEwSlhZbGRtY0RSaGNFdERkRGRKZUZSSFdIRnBkR3gwZEdWRmRGWktMVkpuY0cxT1NUSXhPSEkzU2paYU0wOVlTblJ2ZGxoa1RVbFpaaTFQVkRreVlsVkRZVEZMVmtWcWRYQkRiMVoyT1dneVlsVlBObTlsVlZZMVRWbDBRazl2YWtoQk1FZFNRMVp3Y0ZkNFRYTm1jVWQ1WDFSMlprOUxOVzEwY0dSbFJFWnZVWGRQWVhKcWIxTnVZMDQ0TVd4UFdUQnZiV0l4YlZreU1sUlVWbVZOTkZKak56RlpOWEZtT1VVMlpWVlBkbVI1TmpKaFdFTnJWblozU1ZWVVQwSTRVRVZ3WjBodWFWQmZWMTkzYnpWSU1tc3lUVUpsVDIxUlRuSm9NbGxyV0RWUVZUUnZZMnRoZUd0SVdWOUZhVGhOY0dWT1prbFBlakF0UWxGMVdUUnllbU5uYzBWaFJ6UnhObmNpTENKMGN5STZNVFk0TXpjME16STFPU3dpWWlJNklucE1iMkV0WmpVeU1XVTVPRFJhVTNGQ1VEQllXak5TTkZsclFURkpPV2h1TUhobWJVUTBSV2g2UjNjaUxDSnViMjVqWlNJNkltVXhOVGt3TlRWaFltTXhOelE0WkRRNU1EWTFNVE16WWpjeFkyRTJNVEV3SWl3aVkyNW1JanA3SW1wM2F5STZleUpyYVdRaU9pSmtSMFl5Tm5wTE16TXhaMDlQZDE4MGVWOVZVMlkyWmpaelVVdFNiakUzVUdsUlZYSjJhVlV4TFZSdklpd2laU0k2SWtGUlFVSWlMQ0pyZEhraU9pSlNVMEVpTENKdUlqb2ljekZLUm5sT2JIUjZaemg2VjI5bWVEWTRRM2xxTlU1c01sWkdRbHBKUzJoYWMzazJVamRrWm1ac2JYSk1MVFZPTjNkclluQk9PV1U0U2tWa1ZtSlFTR05ZYm1ORU9HSnZSbFpLVW0xUWNVeFlkMlJrV0d4VlFYRnVjRkZSWXpSQ2VscGhkMFppY0Uwd00zcEJTMlYyVlRKdmIxcFFSRUpVTVdseFVEQjNZMnhrWm1KVk5GZFRPWE5zWkU4dFkwMTFjM1pRYzJSeWNGZFlZekl0ZUZOdE5FWmFkbFptVFdWbWJqbFhWVXR2YW1jM1VuUjBTVnB6WDFkWVFVTnhRakU1Ums1SldtOWpXVUpJY0hWNGFGcHpXWGt0TVZoVloydHVaSGhuZUhCRWJuZ3pOVGROYW5vMU5uSklkMHc0UmtGUVNYZFBiRkJSYjFkR1NqaFZTM2QwYkhGMlRqQjFUbUV6YVdONWRFcFdhMmhsWkhZeFVIaFdkMlJvU1VSRWFFMXJVMFpXVW1aMGJubHlYMFUzWkRoQ1VIbGliR1U1Wm14M2VrRkhRbkZITkRWU01uWkRjVlpPUVV4R1ltNWpZMnBFYmtoMFJXWlJJbjE5ZlEuSmhJNnFuejlTMDB5S3dXODYzSkloRnQ2alU3cWQ4Yk1fWHJjMDNWZ2FLdm1nV1dtSG5DeldaOVgtdXZPLWNQNEFOQWIwam9lSTJWVjA0RkEwS25FSXBidXktM0IwbjVKaG00OG5CbERxRm50dktSdEVoNGhCc0ZGdnFpN1ZUSVlFR1MyaGYzTlFGWmlIM3luMlZQZG84cEZ3Q0pnajZrUGlfMFl6aUE3ZTQyVF91a0otbHhGaGx4MWdJVndSSHJiNV9vSzdiNVEzM2lIVW9YNGZEcFdtSHMxZnFGTU9BVlFsTVJMdkcxZHFqZk0tU0t3c1k4N3NkLWZsdmh4U04yWThHVGNwMWdyX09ucE9SblZwTGp1YVRXVWhnNFJpdFpZVE5pbFVjMFN4aG0tZGg1ZGtKc1lCY0J5akRRU0ktb0swQ29ZTk1UZjdzN3dQdHJSYm9RMjVRIn0.", + "incomingCallContext": "eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJjYyI6Ikg0c0lBQUFBQUFBQUNzMVlhMi9iT0JiOUs0SVgyQS9iMGlhcEJ4K0FzWEJzWjVKSjQ2U0oyMFVId1FZVVNjbWF5SkpHa21Pbm5mNzN2WlNkeEsyejArN3V6R0ljd0JaZjU1eDdSZkxlbTA4OXJmSjhWclpaa21uVlptWFJrNTk2U1YwdTNXOW1lckxIcGRLTkpMRlJpc1lDaVJBekZJUUJSWEVjQlVpeG1GS05zZUltdU1YZGgzQ1VpRWdnRytNRVdWOHpGQXBmWVlPeEZuSGNlOTB6V1ZQbDZtR21saGJ3b2NNV3BpcXpvajExZk1KRUprcXdSZ24xQlFwRW9wR0lLRUZKRWlZQnNSSEJBWU0xdVNyU2xVcXRXMU9zOHZ4MXIxSjFtK21zVWp1Z21HZ1RzQ2hFSktZYUJVeHpwQklkSWgzRzFtZlVXazBVQUMweVl5eVluYWk4c2M5YTVnK1ZVOWZZK3Q3V282cUNtVlZkVnJadUg0NVV1dVg4L0xyWGxyK0RvNVFKa1ltNFFwZ0huRktNNDRpRjMzVFVGZ1JqOU1MWDQrZTdIR1dFN3hNcUFzU2l4RWVCSWdFQ0l4Z3loaGxsTURjK1pvZU9xbTFUcm1yZDRmYSt4K3AvNDhFOEsrNGE1MFRWdGtvdkFHelJ0bFVqQndOVlpmMGt6OUpGQytzMkQvM21EdDVKWDVkTE56SzRwd05kRFRaSWEyUlhSWWt3Nld1OU4wZnJ3VDBaSkdWOVo4MkFZMnVEVURDVVJDSkJnU0UrRXBhRDF4bE5LSTZ0VmJFWVVEYkl5TUFQeEdBcjVlL1prSUxvcFRXWkdoWE4ydFlnVG10UXRuUWJCMFNsNElUbVQ2SDRVY3hPYzIxL3RycjlVeWpiU3RucFdwbHFYcXVpcWNyYXFZTW1hQ04rbndWOUV2bDlpbjNwQjR3UGVwOTNmaCtYUldzTG1QdXBwN2VQdTRPcHFpcmZYVm1EeHJqakdlZGxEQVAzUTN4VDN4VGxFSGswcE56RDN1bk1PNzBNUEVKWkg4TWZjY1BOc0FGdndXTFgwTVBIS1JIdlI3UlBDZWtUNGJ1aGVEaWVTN0k3VGE2akhXS3ZlMWdPMWNwa3BSZFNFbUx2YW40NUdMMi85T0IyOGdSOCt4NGh4Q09Pbm51Q1FRKzBYQ2NISGZnYnBHcFl0N3BDZFpOOXRIdnRKSlovOHpab0NjTGhQSHZnQWErQkcwR2FadUhWVnQrN2grMzBEV3F5dEZCd3ROTGZXdldNTFowVm5XUFVNTk1XclpKYXBSSmZuWncvOTFWckk2OW03eGZweFVTOWk5NWVURjd4WTFWOGJGcmZEdlpVTGxlYmJVdXJ3bVJHdFZhQzZkNjd5YVZIQ2R3a09BcDg4cFhST3llMkQ2Q3RUdktOVnl0amFuQWFUT0R3eWtLdmRqdG1PKzBRbmU2aGg4SzUrQkNkZkI4NitScWRnblpubHRJdE1GRFlDaEZtQnd5QklDSDlOa00zN1pDQi9zRU1zTzg2RHhFYWNpb3dZU0hZMmljRURoM25mUkY1Y09aRWgxMWJpRGVQMkY4SzJIc0Qzdm44M2RYc2RBSTdXakRPbzBENEVHYzVYUDNCUytUMG1aeUxLS0wvRXpsNUlnOVl5SDBodUdBTTg0ajdMM0RENGVwY1c2bW1BUUVCSjhDUG82OEVoQUVtK1BzVWdLVitlTWhDL3c4czRkNUdkQ1FoRno0QS90NGs5SThpeVZWc2M3bFVXWUc2aTNQYnU4eU0zSjI1RFlyWFZ1VnBXV2Z0WWluanRmWXFwZTlzVzZtczl0WTJodXRscDdkK3FOb1NEdjVvZW4wN1ByOGxsTitlbkkvR3Q5Y25JM0xMc1pjVmNQVloyYjZablp5Mjc4WEZ6L09USXNvLy9MaGErL1BadkJXYnlHZkI5TzVWcHM2cWJMWDZsZjdUSjcrU1J5RTdlUG90K0kyUHhmSEhFOEdyVTc2WjVWZnBxN01Oem96V3Y0UlhhdjNobUgrWXBQRUhzK2pnSDIvSWFxa3FDQ2lCZDMzNjVteEFvbDFZZVJvUzNnK01VZ2l5WC9XN2tOSXRPUnlCUUhOOWVqV2Q3YU1seTNZN0VtZHREVzkyZU1nRTl5UlFpVDNBN1NMdXFhS3dtM2hZbEYvTXg5N2wrUHpkSVQ5My9hUERmb2g2VjlQSlM1YkFScmE1clJabFlaRzloNWgrb0FHbVlFU2lMOWY1M25qMmt2bmM5YjlnSDhWdUlIaGVVYlhaRXU3YlJ5YUlqcmF1YXNpblpiTlFpSWFSRndTU01CbE81TkZJOHJFY1V6bU81REdUazBpS1VBcDRGbklzSk9WeU9uRVBJeXlqc1NSSGNud3N3eVBwajZYd0phTnlSR1RneStOaktjWnlTaVFkU1RLUmVMY0o3S2J0OUhrdU9aTTM4Rm12MS8zdEJ1K1hkWHB6WXplUUpvUFdvbTF1YnNBY3REQTFyTHE1VVhHRFhQUkd6cEl2MFB4bnRLZTg3VGVBRXRXMHR6R2MrM1ZtMnNWdFlxMko0YkQ5QllvZGx4WGQraytKUkZOckJDbGJDb0hXVlJmdXk0MDlKc1p2Yk5wVkFDcmhRU0pJaktpeUdBWGNKaWlHK3hwUnc0MzJDYmVXSnE2Q2FhRGc3TEsyQzYxWE5UZy9mYW9vQ3J1K1NCS1haWGNka0FKQ2ZuaG1IMXp5dDh2V3VsWlA0SVZPeFk4bnhjYUcvNWd2OHV6dFQrYnU3WEFJK0ZEWXdJM1JwWlpIWTNaNWZMMEs4ZnNmSHZMeGZOcEcwelhNQWRnYWhFUEM1RlJjYml1U3pIWWxTTlpjN1laR2VWNnVMUmpXMWl2N0dkWkE5dWw4MDBrL0xlNno5cWxhM2g5eDZXcGQ1bmxYS3Z5SHVUZkFQR2ZmME5qUHY2RTVhS3c2MWhjL3NhUHBSZFdjZlJ5WjZUU2FqeUN4eG4rMXc4am5GRWNoeEVUQy9JQkFKQVpuWk0zNUttK3pTNmozd0cwN0wyZk5VVjBxbzJFRFBEdmEySGlWN3VmYThGK0JiUkZOUmNLSVlTaG1qS1BBV25qUzhJSnhBaEdYbVNDaXlyM1cvNnFrQk42MExsZFZ4N3NCM3E0aS9CY3pKTDdxa3hBQUFBPT0iLCJzaHJUb2tlbiI6ImV5SmhiR2NpT2lKU1V6STFOaUlzSW5SNWNDSTZJbkJ2Y0NKOS5leUpoZENJNkltVjVTakJsV0VGcFQybEtTMVl4VVdsTVEwcG9Za2RqYVU5cFNsTlZla2t4VG1sSmMwbHVaekZrUTBrMlNXa3hURk5VVGxKUFZ6VlBWV3BrYVZWdE9XMWxSekZzVjIwNVdXTlhTa2xYYTJSc1pIbEpjMGx0ZEhCYVEwazJTV2t4VEZOVVRsSlBWelZQVldwa2FWVnRPVzFsUnpGc1YyMDVXV05YU2tsWGEyUnNaSGxLT1M1bGVVcG9aRmRSYVU5cFNtbE9SRlpzVFVScmQxbFRNV3RaVjBwdFRGUlJlRTVFVlhSWlZFRXlUME13ZDA5SFJUUk5hbXhwVFhwQ2JFOUhVV2xNUTBwd1l6Tk5hVTlwU205a1NGSjNZM3B2ZGt3elRqQmplVFV6WVZjMWEySXpaSHBNYlRWc1pFTTVhbHBIVFRGWlYxWnNXVk13ZUU1WFRURk1WRkpyV1dwWmRGbHFRVE5QVXpGdFdUSkdhMXBFU1RGTlJGWnJXWHBKZGtscGQybGhWMFl3U1dwdmVFNXFaekZOVkVVMVRsUlplVXhEU25WWmJWbHBUMnBGTWs5RVZYaE5WR3N4VG1wSmMwbHRWalJqUTBrMlRWUlpORTVVU1hkT2Fra3lUV2wzYVZsWGJIWkphbTlwVWxSS1lWb3hiRVJoV0hCclpGVmplbFZIVm1GbGFtUllZMms1ZEZaVGRFMWtNbU16WWxWR00xRlVNR2xNUTBwb1kwaENjRnBEU1RaSmJVVjZXVlJOZWxsNlNtaE1WRWsxVDBkVmRFNUVSbXROVXpBMVRWUk5NMHhYUlRGT1JGbDVUVzFWTWs5RVJtcFplVWx6U1cxR2QyTkhiR3RaVjA1NVNXcHZhVTFwU1hOSmJVNTFXbWxKTm1WNVNuRmtNbk5wVDI1emFXRXpValZKYW05cFZXeE9Ra2xwZDJsaWFVazJTVzVTUzFsdE5VdFVNMWw0VmpCNE5GcHRkekpPVldSU1RsUkthMDFYT0ROaE1ITjBaRE5HZVZOR1FuaFZNVkpTVFVad00weFZNSGxXTURWWFZFaEthMU5yVmxkWlZYQkZUa2hzYlZWdVZrVmlNV3hUVVdzMVJGUlZlRU5qYW14UVVXMXdXVk5yUm1wWmJXTjVaR3BTU0dOclZrcGFWMVYzVGxkc2QxVlVTWHBrZWxwM1RqTmFiRTE2UWt4T1YxSktVbXRzZFdOSFdubFZiRnBxWkdwV01tUlhTbkZVV0hCWlRta3dkMVl6YkhGUlYxSjVWMVJTZFU1WGVGZGlNRGwxVGtWS2NWSldiM1JPYlVaMVVXNWFhMVZ0Vm10V1JYQTBVbXQwYjFVeWNIQk1WbWh5V1ZoS2Fsb3lVWGRPVjFwcFl6TnZOVlV4YkZOVk1IaEVWbTFhZEZOdWFFNVBWRkp1VmtSb00xTnRhR2hUZWtwRlRtMU9hVlZJVFhsWlZFSlhWVVZ3VFdGc09WZFNSVkY1V1d4b2FWZHJlR3BSTTJ4NlUxaHdhRTVZYXpSWmExSTJUbFYwZDFZd1RtNVhVekZVV2pGR1dWTlVSa2RpZWxGMFZXcG9iVlF5YUROYWJYUldXbXRXYkZaSE1UTlRSMUo1Wkd3NWNsVkZjRTlWYWxaQ1lXNUpORk5xWTNkaVJVWXhaVWRuTVZGdFdraFBWbkIzVFZST2IyRlZlSFpqTTBVMFVqSTVSMUV6VWt4bGJYaHZZVWQ0ZUU1c1JYZGlWVTU1WTI1b2Jsa3dkM2hVYm1oVVZWTkpjMGx0VldsUGFVcENWVlZHUTBscGQybFpWM2h1U1dwdmFWVnNUWGxPVkZscFRFTktjbUZYVVdsUGFVcDVWV3hPY2xWRVFsZE9iWGN6Wld3NVRsUlhUbVpVZWxKelZsVmFTbHBIUmxOWk0xbDVZWHBzVTFKRlJUTmpWMVpNVmpGV1JHUXpSa1pKYmpFNVRFTktjRnBJUVdsUGFVcHZaRWhTZDJONmIzWk1NMDR3WTNrMU0yRlhOV3RpTTJSNlRHMDFiR1JET1dwYVIwMHhXVmRXYkZsVE1IaE9WMDB4VEZSU2ExbHFXWFJaYWtFelQxTXhiVmt5Um10YVJFa3hUVVJXYTFsNlNYWkphWGRwWWpKc2EwbHFiMmxOYlUwelQxZE9hVTU2WjNSTk1rNXFXVk13TUUweVZtbE1WMHBzV1dwSmRGbHFRVFZPYlZacFQxUkpNRTV0UlRSSmFYZHBZMjFuYVU5cFNYZE1hMFpUVTFWRk1tTlVaRWRsYlU1V1ZtNVNjazF1Wkd4YWJtd3dUVWQ0UTFwSVpHNWlNSEJaWTJ4T1prMXRkRmRSYlRsSVdqQnNlRkV5TVRaU1J6aDNWVEJHUWxGVE5HbE1RMHA2WkZkSmFVOXBTWGxaZW1NMVdUSkpNMDlETUhwWk1rNW9URlJSZWxwWFNYUlpiVlpwVFdreGFVMUVhekphVjBrMVRXcFJNbGxVWjJsTVEwb3dZVmRSYVU5cFNtcGFSMDB4V1ZkV2JGbFRNSGhPVjAweFRGUlNhMWxxV1hSWmFrRXpUMU14YlZreVJtdGFSRWt4VFVSV2ExbDZTV2xNUTBveFpFZHJhVTlwU2s1YWF6QTFVMVpDVlZkVlZrWmFWVkpKWkVVNGQyTldUbkJsYTBaQ1NXbDNhV1J0Vm5sSmFtOXBUVk0wZDBsdU1DNU9ObEZ4TWsxamMwdDFhVFpVZG5KTFp6QlVhWFpwZDFKNFgwdEthMUpWWW1oWE1ETkVMWGxQZVUxeVMweE1jMWxCVlc5R01XZHRSMHRrUlMxakxWTktZVGRzVEcxVU1tdFVaWGRWU2pSRFltRkZZbmxCZG1OSlZYQk1lVkpOWldWVFFTMTBhUzFvYWtkRlNFeHVTM2N6TWxONWFtWldkWE55YUdNelZHZHVWM1pYYTFCamIxODNSSFpSWWpoWWRuZzBlRGxwUWs5eFNHOVVRazEzVTJGSlpuSlVSbXQ1T0ZGRE9YcElTbVJuYzFoTFVFeDZNV3B6TWxCd1J5MXROVlZZVW1kRk5YSnRUVlpEVEVKZk1saEpiVGR3VGpsdlUyODVTbGRDYUdweU0yUmhNREZmVEVWb2VubERWMFJYU2xZM2JYWnBUbkYwU1MxUlVqRXdOMHBQTVZsWE4wVTJOeTFIUXkxaFltbDNSa3BXZWtsM1ZYaExOVTlNYzNCT04ydHBObmswTkdORlJIb3RZVXhzY1RnelNqWnhNM2ROVDJNemJsQmtka2RHT1cxT1ZVUkhkREJSVVZSZmVtMURNbEJ0TVZoVFZFRWlMQ0owY3lJNk1UWTROVEV5T1RJNE55d2lZaUk2SWs1c2NEbHRYMUZYUVc1T04xVmhjVk5TY2tKQmVYVlBkRTVSYlZWWFJtb3plSFZ1ZUZoSFlWSkxhakFpTENKdWIyNWpaU0k2SW1WalpEVXhOVEUxWmpZME1EUTBPV1ZoWmpFek5UVTBPVGcxWWpBNE9EYzBJaXdpWTI1bUlqcDdJbXAzYXlJNmV5SnJhV1FpT2lJM2RWOHljMjFFU201VE1WcGFUemhEUkZONWRVWk9XVTVZUjNNdGFXbEZhVVpITURabVJHeEtZM2hqSWl3aVpTSTZJa0ZSUVVJaUxDSnJkSGtpT2lKU1UwRWlMQ0p1SWpvaWRFcGlia3BQZGpGWFRIaG1iRFkxUjFFMU1tUXhiemRyU3kxM2NYSklVSEZUVkZFd1duY3RUVEpYVGxaTWNtUktSVlpoU2tRMGVXWlNkVVJ2V1ZKQ1RrTk5URUp5T1U5Q2FsaEtRV05pWnpKMk5FZHlSVWxsWlRBMWFYQlJNak4zTm5BM2RtVXpNRXMxWkVsR1NXNXdabkpTVm1OMk5YWjFZbXBOZWxnMkxUQlhlV3BCWkhKWk5HNDFiRlp2VDI0MFFtcEZXaTAyWVc1Q2RtUlNaV1JVU25oR1MyaFRhbWt0V0d0aGNtTm5aREExWm1KemVqbFRXVkpUVEVOV1ptMUtlRTA1TkdkVU9IZEthR0ZMTWtRMlkySlFjekpoTUZaUVNreHFYMVpFUkRKaVdHSmFUR05EZVhOSmVtRTFlVGhpUkhvMVMzQlhRMmRaTFZOblVWaEpNVVp2TkMxU09HWlBhSGRtYTFWbVJXVlViWGRJWkhKMlgydFFTazVTTlVGcWNqaEtOekJzUVhWNGFEVkNaa2M1V25BeE0yaHBURzl6Y1RoSGIwWkRkRXQ2Ykdob2JIRTJVVEJ0UTNKeWVHZGpUREZPZUZOUkluMTlmUS5zaWktaDNybUFMdkxoc2l6eDVPRWoxVnFXMjF3Z2tZOFEyelNLcTFnUlp3OTN4dVZ4U1Ytd21DYVYwZ3VZZFhvMDg0NFJUcU5KQVJ4OXRWekFQcFU1TFR4Q1dYSTFTMFFxUlZFQzFHSFRfUzBvZG9NU2lTZmxxV0hBMzJ6S2I0ZjBab2liVWJ5OWdmbnpZcVppTHFWNDNkaW1QRHlwVy1uRV9IVk5VWUZfemVlalU1OWt1ZWU2b3JoU2ptM3loc3cyWVhkWG5tZDk0OEdid1dJUlF6N0VyQUtNVEItNWgxdVNpYXdxV1lVMFc0WGhVcXdhR2NGN1ZzeWluZldYQ2cyblAyNjBERWNLTFdZZEtZb0tzUjl4YjE3bDVncWlGdHBKb0ZFMkMxOG4tc0tkYmVYUk1kZkp2UzlUb3J5dGxGcmpwZmN2SjhrbTBBNHNYWmZCUTd5S2cifQ.", "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized", - "answeredByIdentifier": { + "answeredBy": { "id": "Sanitized" } }, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "758", + "Content-Length": "679", "Content-Type": "application/json; charset=utf-8", - "Date": "Wed, 10 May 2023 18:27:39 GMT", - "X-Azure-Ref": "0HOJbZAAAAACBOb3Z1xECSJLPzntRX1/fWVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "Date": "Fri, 26 May 2023 19:28:08 GMT", + "X-Azure-Ref": "0SAhxZAAAAAAI31UtfSi1RZZV5nISZ05/V1NURURHRTA4MTUAOWZjN2I1MTktYThjYy00Zjg5LTkzNWUtYzkxNDhhZTA5ZTgx", "X-Cache": "CONFIG_NOCACHE", - "X-Microsoft-Skype-Chain-ID": "e8fabd46-2673-403c-9d93-44d05cd6f4e6", - "x-ms-client-request-id": "070ce80acf4fe52ed3f5d57fa7d54e16" + "X-Microsoft-Skype-Chain-ID": "b29f71d7-b778-4ee7-bce0-0f6837d462af", + "x-ms-client-request-id": "271b7f93d6d1e2337067acbce6ccca5a" }, "ResponseBody": { - "callConnectionId": "401f3500-c80c-4c3c-a5a7-e50fb83844fd", - "serverCallId": "aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzd2UtMDIuY29udi5za3lwZS5jb20vY29udi9iekNWZmdhZUJFVzJuc1JvYmlwOWZ3P2k9MSZlPTYzODE5Mjc1MTQyOTUxMDU4NA==", + "callConnectionId": "411f1200-aa25-44fe-83e8-24a75cdcb4fb", + "serverCallId": "aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC94LWNvbnYtZXVuby0wMS5jb252LnNreXBlLmNvbS9jb252L3NlYUZjT1o3QkVPcHNLekFkRUU2VEE/aT0wJmU9NjM4MjA2NTQ3NTE3MzQxMDc0", "targets": [ { "rawId": "Sanitized", @@ -213,47 +207,46 @@ ], "callConnectionState": "unknown", "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized", - "mediaSubscriptionId": "6224b8e7-b45d-4c40-9abe-8c1786bca7f6", "sourceDisplayName": "", - "sourceIdentity": { + "source": { "rawId": "Sanitized", "kind": "communicationUser", "communicationUser": { "id": "Sanitized" } }, - "correlationId": "e8fabd46-2673-403c-9d93-44d05cd6f4e6", - "answeredByIdentifier": { + "correlationId": "b29f71d7-b778-4ee7-bce0-0f6837d462af", + "answeredBy": { "id": "Sanitized" } } }, { - "RequestUri": "https://sanitized.skype.com/calling/callConnections/401f3500-0632-4aed-8aa2-e1bd0116d7e3?api-version=2023-01-15-preview", + "RequestUri": "https://sanitized.skype.com/calling/callConnections/411f1200-b763-4317-b5bc-9b58fb43507f?api-version=2023-03-06", "RequestMethod": "GET", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "aaa3b1fa4de9634f80b5ebe7961c153b", + "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "c909e5802005ed0c2d22fa9914aa228c", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:41 GMT", + "x-ms-date": "Fri, 26 May 2023 19:28:09 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "718", + "Content-Length": "649", "Content-Type": "application/json; charset=utf-8", - "Date": "Wed, 10 May 2023 18:27:41 GMT", - "X-Azure-Ref": "0HuJbZAAAAABVEAKQ3aIMSZ0CeESnDhv7WVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "Date": "Fri, 26 May 2023 19:28:10 GMT", + "X-Azure-Ref": "0SwhxZAAAAADudmsD4ZLbSahGFSxr0h6lV1NURURHRTA4MTUAOWZjN2I1MTktYThjYy00Zjg5LTkzNWUtYzkxNDhhZTA5ZTgx", "X-Cache": "CONFIG_NOCACHE", - "X-Microsoft-Skype-Chain-ID": "e8fabd46-2673-403c-9d93-44d05cd6f4e6", - "x-ms-client-request-id": "aaa3b1fa4de9634f80b5ebe7961c153b" + "X-Microsoft-Skype-Chain-ID": "b29f71d7-b778-4ee7-bce0-0f6837d462af", + "x-ms-client-request-id": "c909e5802005ed0c2d22fa9914aa228c" }, "ResponseBody": { - "callConnectionId": "401f3500-0632-4aed-8aa2-e1bd0116d7e3", - "serverCallId": "aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzd2UtMDIuY29udi5za3lwZS5jb20vY29udi9iekNWZmdhZUJFVzJuc1JvYmlwOWZ3P2k9MSZlPTYzODE5Mjc1MTQyOTUxMDU4NA==", + "callConnectionId": "411f1200-b763-4317-b5bc-9b58fb43507f", + "serverCallId": "aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC94LWNvbnYtZXVuby0wMS5jb252LnNreXBlLmNvbS9jb252L3NlYUZjT1o3QkVPcHNLekFkRUU2VEE/aT0wJmU9NjM4MjA2NTQ3NTE3MzQxMDc0", "targets": [ { "rawId": "Sanitized", @@ -265,20 +258,19 @@ ], "callConnectionState": "connected", "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized", - "mediaSubscriptionId": "43332089-9948-4396-a2e0-d42a1e75b1ba", "sourceDisplayName": "", - "sourceIdentity": { + "source": { "rawId": "Sanitized", "kind": "communicationUser", "communicationUser": { "id": "Sanitized" } }, - "correlationId": "e8fabd46-2673-403c-9d93-44d05cd6f4e6" + "correlationId": "b29f71d7-b778-4ee7-bce0-0f6837d462af" } }, { - "RequestUri": "https://sanitized.skype.com/calling/callConnections/401f3500-0632-4aed-8aa2-e1bd0116d7e3:terminate?api-version=2023-01-15-preview", + "RequestUri": "https://sanitized.skype.com/calling/callConnections/411f1200-b763-4317-b5bc-9b58fb43507f:terminate?api-version=2023-03-06", "RequestMethod": "POST", "RequestHeaders": { "Accept": "application/json", @@ -286,21 +278,21 @@ "Content-Length": "0", "Repeatability-First-Sent": "Sanitized", "Repeatability-Request-ID": "Sanitized", - "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "31710f444f55ee787a2d3c000229c93d", + "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "4e8d34fae8f55f59abe0ea7156b248cf", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:41 GMT", + "x-ms-date": "Fri, 26 May 2023 19:28:09 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": null, "StatusCode": 204, "ResponseHeaders": { - "Date": "Wed, 10 May 2023 18:27:41 GMT", + "Date": "Fri, 26 May 2023 19:28:11 GMT", "Repeatability-Result": "accepted", - "X-Azure-Ref": "0HuJbZAAAAACrGQzdjAi5TpgnR\u002BZ2P18KWVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "X-Azure-Ref": "0SwhxZAAAAACalSCRBCrGQ7/cVgIILD5VV1NURURHRTA4MTUAOWZjN2I1MTktYThjYy00Zjg5LTkzNWUtYzkxNDhhZTA5ZTgx", "X-Cache": "CONFIG_NOCACHE", - "X-Microsoft-Skype-Chain-ID": "e8fabd46-2673-403c-9d93-44d05cd6f4e6", - "x-ms-client-request-id": "31710f444f55ee787a2d3c000229c93d" + "X-Microsoft-Skype-Chain-ID": "b29f71d7-b778-4ee7-bce0-0f6837d462af", + "x-ms-client-request-id": "4e8d34fae8f55f59abe0ea7156b248cf" }, "ResponseBody": null } @@ -308,8 +300,7 @@ "Variables": { "COMMUNICATION_LIVETEST_STATIC_CONNECTION_STRING": "endpoint=https://acs-callautomationtestsupporter.communication.azure.com/;accesskey=Kg==", "DISPATCHER_ENDPOINT": "https://sanitized.skype.com", - "PMA_Endpoint": null, - "RandomSeed": "1370680807", + "RandomSeed": "716702864", "SERVICEBUS_STRING": "Endpoint=sb://acs-callautomationtestservicebus.servicebus.windows.net/;SharedAccessKeyName=Sanitized;SharedAccessKey=Kg==" } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecords/CallAutomationClientAutomatedLiveTests/CreateCallToACSGetCallAndHangUpCallTestAsync.json b/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecords/CallAutomationClientAutomatedLiveTests/CreateCallToACSGetCallAndHangUpCallTestAsync.json index e85c05bde498..c4c296fa396b 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecords/CallAutomationClientAutomatedLiveTests/CreateCallToACSGetCallAndHangUpCallTestAsync.json +++ b/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecords/CallAutomationClientAutomatedLiveTests/CreateCallToACSGetCallAndHangUpCallTestAsync.json @@ -8,11 +8,11 @@ "Authorization": "Sanitized", "Content-Length": "2", "Content-Type": "application/json", - "traceparent": "00-12780ec6fe2468dc996dfc67ef8be3e4-12bd0cd188054bcf-00", - "User-Agent": "azsdk-net-Communication.Identity/1.3.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "9fa532dc2068e6ef3830dece201e9b21", + "traceparent": "00-f28df24e548d20ff8e890f027af8730d-8de00bc3ee618dd1-00", + "User-Agent": "azsdk-net-Communication.Identity/1.3.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "87ce6c5f4bbcb17cec5ca30ce459824e", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:46 GMT", + "x-ms-date": "Fri, 26 May 2023 19:28:15 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": {}, @@ -21,14 +21,14 @@ "api-supported-versions": "2020-07-20-preview2, 2021-02-22-preview1, 2021-03-07, 2021-10-31-preview, 2021-11-01, 2022-06-01, 2022-10-01, 2023-08-01", "Content-Length": "31", "Content-Type": "application/json; charset=utf-8", - "Date": "Wed, 10 May 2023 18:27:47 GMT", - "MS-CV": "nobv1PsGVkqdE5Bg6fZEHg.0", + "Date": "Fri, 26 May 2023 19:28:17 GMT", + "MS-CV": "j/NMEW58GEWwOlJFX6SgUQ.0", "Request-Context": "appId=", "Strict-Transport-Security": "max-age=2592000", - "X-Azure-Ref": "0I\u002BJbZAAAAABEs/TAxyDyQZKSH61UDTMgWVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "X-Azure-Ref": "0UQhxZAAAAAAbwvsVf\u002B/XQK\u002B4iL65RFQgV1NURURHRTA4MTUAOWZjN2I1MTktYThjYy00Zjg5LTkzNWUtYzkxNDhhZTA5ZTgx", "X-Cache": "CONFIG_NOCACHE", - "x-ms-client-request-id": "9fa532dc2068e6ef3830dece201e9b21", - "X-Processing-Time": "88ms" + "x-ms-client-request-id": "87ce6c5f4bbcb17cec5ca30ce459824e", + "X-Processing-Time": "33ms" }, "ResponseBody": { "identity": { @@ -44,11 +44,11 @@ "Authorization": "Sanitized", "Content-Length": "2", "Content-Type": "application/json", - "traceparent": "00-cf15a77b414ea859ed7a5bbd8990778f-1adb5862c58b5b88-00", - "User-Agent": "azsdk-net-Communication.Identity/1.3.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "3ab40f39e3916976ea70951df4ef2eff", + "traceparent": "00-3d629a41f0255a428df4228c8c4816d4-c5979dd3a2b01528-00", + "User-Agent": "azsdk-net-Communication.Identity/1.3.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "37704a857206034eda9c4f79764162da", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:46 GMT", + "x-ms-date": "Fri, 26 May 2023 19:28:16 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": {}, @@ -57,14 +57,14 @@ "api-supported-versions": "2020-07-20-preview2, 2021-02-22-preview1, 2021-03-07, 2021-10-31-preview, 2021-11-01, 2022-06-01, 2022-10-01, 2023-08-01", "Content-Length": "31", "Content-Type": "application/json; charset=utf-8", - "Date": "Wed, 10 May 2023 18:27:47 GMT", - "MS-CV": "NosOsBvcL0GN0ysSMNzlkg.0", + "Date": "Fri, 26 May 2023 19:28:17 GMT", + "MS-CV": "07vw2wdNg06v2HBhFbcu0Q.0", "Request-Context": "appId=", "Strict-Transport-Security": "max-age=2592000", - "X-Azure-Ref": "0JOJbZAAAAACNSeXSxuYVQ69xCB36Bk/vWVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "X-Azure-Ref": "0UghxZAAAAADVBMzvnauHSZG8MsBORkfSV1NURURHRTA4MTUAOWZjN2I1MTktYThjYy00Zjg5LTkzNWUtYzkxNDhhZTA5ZTgx", "X-Cache": "CONFIG_NOCACHE", - "x-ms-client-request-id": "3ab40f39e3916976ea70951df4ef2eff", - "X-Processing-Time": "81ms" + "x-ms-client-request-id": "37704a857206034eda9c4f79764162da", + "X-Processing-Time": "18ms" }, "ResponseBody": { "identity": { @@ -79,37 +79,36 @@ "Accept": "application/json", "Authorization": "Sanitized", "Content-Length": "0", - "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "X-FORWARDED-HOST": "Sanitized", - "x-ms-client-request-id": "5365b9ab4b953a164ae2f75f45895798", + "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "56efe020bdfa66976e8f7436282ba5e0", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:46 GMT", + "x-ms-date": "Fri, 26 May 2023 19:28:16 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { "Content-Length": "0", - "Date": "Wed, 10 May 2023 18:27:49 GMT", + "Date": "Fri, 26 May 2023 19:28:19 GMT", "Server": "Kestrel" }, "ResponseBody": null }, { - "RequestUri": "https://sanitized.skype.com/calling/callConnections?api-version=2023-01-15-preview", + "RequestUri": "https://sanitized.skype.com/calling/callConnections?api-version=2023-03-06", "RequestMethod": "POST", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "Content-Length": "205", + "Content-Length": "197", "Content-Type": "application/json", "Repeatability-First-Sent": "Sanitized", "Repeatability-Request-ID": "Sanitized", - "traceparent": "00-c3e9a723f0e64945cef3619ba15b11eb-cc5edc0835d90a78-00", - "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "825fb863593af900bb3bb4f78ad1f249", + "traceparent": "00-fa45e96bb3c3f89e4f23f5755571d0d5-0bf52803957f8f42-00", + "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "7a315d289e5eed1b1ecbac20fb023baa", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:48 GMT", + "x-ms-date": "Fri, 26 May 2023 19:28:17 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": { @@ -121,27 +120,23 @@ } } ], - "sourceIdentity": { + "source": { "id": "Sanitized" }, - "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized", - "customContext": { - "voipHeaders": { - } - } + "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized" }, "StatusCode": 201, "ResponseHeaders": { - "Content-Length": "533", + "Content-Length": "464", "Content-Type": "application/json; charset=utf-8", - "Date": "Wed, 10 May 2023 18:27:49 GMT", - "X-Azure-Ref": "0JeJbZAAAAABpACpOdTu7RYb\u002B\u002BcHkNcR0WVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "Date": "Fri, 26 May 2023 19:28:19 GMT", + "X-Azure-Ref": "0UwhxZAAAAADdS4VS\u002BjRIRqFi4Hmiz/ssV1NURURHRTA4MTUAOWZjN2I1MTktYThjYy00Zjg5LTkzNWUtYzkxNDhhZTA5ZTgx", "X-Cache": "CONFIG_NOCACHE", - "X-Microsoft-Skype-Chain-ID": "5504e9f2-e88e-4751-9bca-cfdb596b468c", - "x-ms-client-request-id": "825fb863593af900bb3bb4f78ad1f249" + "X-Microsoft-Skype-Chain-ID": "33460360-6e4b-4fca-83eb-b9d17a6a05b1", + "x-ms-client-request-id": "7a315d289e5eed1b1ecbac20fb023baa" }, "ResponseBody": { - "callConnectionId": "401f3500-5c7c-4781-8adc-3e51774e8bf7", + "callConnectionId": "411f1200-98cc-4751-9ef8-3072073ef879", "targets": [ { "rawId": "Sanitized", @@ -153,20 +148,19 @@ ], "callConnectionState": "connecting", "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized", - "mediaSubscriptionId": "4b3a035d-690d-4281-9a12-fcd44dd9b899", "sourceDisplayName": "", - "sourceIdentity": { + "source": { "rawId": "Sanitized", "kind": "communicationUser", "communicationUser": { "id": "Sanitized" } }, - "correlationId": "5504e9f2-e88e-4751-9bca-cfdb596b468c" + "correlationId": "33460360-6e4b-4fca-83eb-b9d17a6a05b1" } }, { - "RequestUri": "https://sanitized.skype.com/calling/callConnections:answer?api-version=2023-01-15-preview", + "RequestUri": "https://sanitized.skype.com/calling/callConnections:answer?api-version=2023-03-06", "RequestMethod": "POST", "RequestHeaders": { "Accept": "application/json", @@ -175,33 +169,33 @@ "Content-Type": "application/json", "Repeatability-First-Sent": "Sanitized", "Repeatability-Request-ID": "Sanitized", - "traceparent": "00-27f0923e8150ec022c8ca8c3d48fcebb-e0818bd20892048f-00", - "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "6622df0148b9ed8bf879f0aeeb172361", + "traceparent": "00-868555206bdab63a42cecfcab1427c5a-1db8eb81ade59d68-00", + "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "03ebc9fa2c69c854b30ac977fe18dbae", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:50 GMT", + "x-ms-date": "Fri, 26 May 2023 19:28:20 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": { - "incomingCallContext": "eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJjYyI6Ikg0c0lBQUFBQUFBQUNzMVlhMi9iUmhiOUs0UVc2SWQxUnB3WEh6T0FzSkJsMlhFVHU0NGZTUnNZYXd5SFE0b1JSUklrOVhLYS83NTNLTm1XbzJ6cWR0dEZHWURXdk00NTkzTHV6TDM1M05NcXo4L0xOa3N5cmRxc0xIcnljeStweTVuOW04VTkyUXVsMG8wa1Vhd1VqUVFTSGc0UTl6aEZVZVJ6cElLSVVvMnhDbU4raDd1SGhFajVPa1lZeHo1aU1STW9ORXpoR05va0NIdXZlbkhXVkxsYW42dVpBWHpvTUVWY2xWblJubG8rTFNKQmZFYVFvRDVEWERHRmxDQUpvbDRRNHpERXd0Y1UxdVNxU09jcU5YWk5NYy96VjcxSzFXMm1zMHB0Z1Zoa3RGSlJnRVFzSXNSWkhDUEZxRVlpb1N4TUlrOHp4Z0Zva3NXeEFiTVRsVGZtU2N2MXVyTHFHbE12VEQyc0twaFoxV1ZsNm5aOXFOSU41NWRYdmJiOE14d0Zobjd0cU9BM0hiVUJ3UmpXNzcwZW5oYzVLdlk5N2hHQ1VSQ0EyM2xNQ1FwRFRsQmt2RVNvaEdyS2tuMUgxYVlwNTdYdWNIc3ZzZnEvZUREUGltbGpuYWphVnVrSmdFM2F0bXFrNjZvcTZ5ZDVsazVhV0xkYTk1c3BmSk8rTG1kMnhGMVFWMWV1MW1qZUxBM0N0Sy8xemd5dDNRVnhrN0tlbXRqbDFBK29GZ3laUUlFNlRRVlNDWThSVGFJNENzRTY2Z3VYQm01R1hNYUZ1eEh5cjJ4QVFQTE14SmthRnNCUjI4MnBRZGRNYlV4SndRWE4zMER2ZzVTdDR0cDhNcnI5RytqYUNObXFtc2ZWZGEyS3BpcHJxdzJhb015amZVSjRuM2lpRHlFdkdROUN0L2RsNi9SUldiU21nTW1mZTNyemN4dVRxcXJ5N1dubE5yR056Q2d2SXhoWURQQnRmVnVVQStRUTZ2a3NjTEJ6ZXU2Y1huQm9CMzBNLzRpZDBBd2FjQmNzdHcwOTJFN2h1QitFZllKeG4xSm1SNkxCNkZwQ3UzdHNSenZBVHZkak5sRHpPQ3NkajNMbU81ZlhGKzd3L1lWRE1IY0V2SmxEQ0hGSUNPeWhJd0xvZ1pidERFRUcvajZuR3RTdHJsRGRaUGRtcDUxRThwL09DczFBTm9TeUF4NXdHamdNWk54TW5Ocm9oZjJ4bWI1Q1RaWVdDcUlxL2Q2cUoyeHBqUWcyN1V3Yk5FOXFsY28wK09YNnFhOWF4akk1ZTNNelA2QjBuVSt1VC96czV1QWRTVTNwRDNkVXp1YXJUVXVySXM1aTFSb0psanMzUnhjT0pRd0gyT2VNUExkNTY4SjJEZExxSkY4NXRZcmpHbHpXcHlTRTd4VmdwN1piWmpOdkg1M3VvSHNDUEx5UEhyd1FQZmdhbllKMmE1YlNMVEJRd1BSeDhEVURGOFNqTDJEbzV1MHowTCtZQWJaZDV5R0loNUFLVEFMUGVRaTYwRkl3QjRKT2RPaTFnYnRtaS81Y3djNFhjTTZ1Ynk3UFQ0OWdlelBDT053VEFjemd6T1ArWm1zL0o2ZFA1S0h3ZmZvL2tRZVA1RFRnT01Ud3BqNWhvVThaMnpNY1FyNXpiYVdhQmdUd2tBQS85cDhMQUQxQ0VQd3lCWmdKYjUrRi9oOVl2SjJOYUVtOFVEREErN05KNkY5Rmtxdkk1SEttc2dKMTUrYW1kNWJGa2p3Y1d0SFNxRHd0NjZ5ZHpHUzAxRTZsOU5TMGxjcHFaMmtpT0Y2MmV1dDExWllRK01QeDFkM283STdROE83MTJYQjBkL1Y2U081QzdHUUZISDFHcHUvb21pOHpXdm5tZnZMUng1OE9EdHpGOHVUOTlkSEo5Q3BUczJOQ2w4SHgxUDJWL3B1Ulg4bURrQzA4L1MzNHF0U0x3K1RnVXp5ZWZ5Ukg2WGg4c0JoOVBCNmZuWnh6TWcyblUwYlc2WEd6VWgzOHd3bFp6VlFGOXdsM3JrN2Z2bkdKdjcxVkhvZUVjd0xCNUlaZjk5dEE2WmJzajhBOWMzVjZPVDdmUlV0bTdXWWt5dG9hdnV4Z253bk9TYUFTTzRDYlJhR2ppc0tzb2tGUlBwdVBuWXZSMmMwK2YyajdoL3Y5Y09sZGpvKytaUWxzWkpPYmFsSVdCcGtGM09sN0dtQUtSc1Ivdm80NW8vTnZtUi9hL20vWVI3RWQ0RThycWphYndYbjd3QVMzbzZtckdsSnAyVXdVMUJhK0EvbUhONUpIeDNJMGx2eFlIbnJTRDZVL2xtUWtENFVjQlRJY3kwTW1LWlhEUUE0UHdWbVNITWxnTEptUTNsZ2VjZWtKZVV5azhLVEFFaDlKNGx2QVl5NTlJZG4ybWpTcnR0UG4yTnhNM3NLelhDNzdtdzNlTCt2MDl0YXNJRU1HclVYYjNONkNPV2dTMTdEcTlsWkZEYkszTjdLV1BFTmpUMmlQaWR0M2dCTFZ0SGNSeFAweWk5dkpYV0pNSEVHdy9RUHFISnNUM2JISFJLS3BOWUtjTFlXTDFoWVc5bVhISHJMaXR5YnRrbjlQS2MvWHpFTStuQktJR3dWcG9RazQ0dFJFeHZnYUxuM1BGaThOMUpwZDF2YVQxdk1hbko4K0ZoT0ZXZjZVSkRiRjdqb2dCWVFFOFkxWjIrUnZtNnQxcmQ3YjRkblNWTFAycWdsV2E2aFhKcXYzTjlWeU1BQjhxR25neElBNUI0bFozZGZWcC9TWGs0Tm9Hbi80K2NmVmovd2R6QUhZR29SRHdtUlZYR3lLa2N4MDFVZldYRzZIaG5sZUxnMFkxdFp6OHdYV1FQWnBmZE5KUHkwV1dmdFlLTytPMkhTMUx2TzhxeE4rVitvTklFL0pOelIyMDI5b3VndCsveUV0ZnI0ZlRVZnZickxGNjQ4bjdmVEQwdWJWNGdjejhCbGNPbkFWK2tIZ00wRTlJc0FYV1hNMno5dnNBaW85OE5yV3lWbHpXSmNxMXZEOW4vd2NtMmllN3FiYThQOEJtNi9xWVc2Z1ZrWW1EQTNpZ1FjVmVhUVYwa2tjZWNLUHVCOXFXd2Y5a1dJU2VOTzZuRmNkN3dwNHUxcndQeFY5QTRhTkVBQUEiLCJzaHJUb2tlbiI6ImV5SmhiR2NpT2lKU1V6STFOaUlzSW5SNWNDSTZJbkJ2Y0NKOS5leUpoZENJNkltVjVTakJsV0VGcFQybEtTMVl4VVdsTVEwcG9Za2RqYVU5cFNsTlZla2t4VG1sSmMwbHVaekZrUTBrMlNXa3hURk5VVGxKUFZ6VlBWV3BrYVZWdE9XMWxSekZzVjIwNVdXTlhTa2xYYTJSc1pIbEpjMGx0ZEhCYVEwazJTV2t4VEZOVVRsSlBWelZQVldwa2FWVnRPVzFsUnpGc1YyMDVXV05YU2tsWGEyUnNaSGxLT1M1bGVVcG9aRmRSYVU5cFNtbE9SRlpzVFVScmQxbFRNV3RaVjBwdFRGUlJlRTVFVlhSWlZFRXlUME13ZDA5SFJUUk5hbXhwVFhwQ2JFOUhVV2xNUTBwd1l6Tk5hVTlwU205a1NGSjNZM3B2ZGt3elRqQmplVFV6WVZjMWEySXpaSHBNYlRWc1pFTTVhbHBIVFRGWlYxWnNXVk13ZUU1WFRURk1WRkpyV1dwWmRGbHFRVE5QVXpGdFdUSkdhMXBFU1RGTlJGWnJXWHBKZGtscGQybGhWMFl3U1dwdmVFNXFaM3BPZWswMVQxUkZlRXhEU25WWmJWbHBUMnBGTWs5RVRUTk5lbXMxVFZSRmMwbHRWalJqUTBrMlRWUlpORTE2WjNsT2FsbDRUVk4zYVZsWGJIWkphbTlwVWxSS1lWb3hiRkJhTVdNeVYwaGFUbVJGV2taaGFsRjRWVzV3VkZsV1VrdFhhemxPV1RCR1FsQlVNR2xNUTBwb1kwaENjRnBEU1RaSmJVVjZXVlJOZWxsNlNtaE1WRWsxVDBkVmRFNUVSbXROVXpBMVRWUk5NMHhYUlRGT1JGbDVUVzFWTWs5RVJtcFplVWx6U1cxR2QyTkhiR3RaVjA1NVNXcHZhVTFwU1hOSmJVNTFXbWxKTm1WNVNuRmtNbk5wVDI1emFXRXpValZKYW05cFZXeE9Ra2xwZDJsaWFVazJTV3BTUWxkSVVtOVdNMlJRV1ZVeFNHVkZOWHBqVlRsWVYyMUtaazFYYkdwU1ZWcExWVWhPWms1RVpGSmFWM2Q0VmxSV2MxWnJjRTFPYW1SNFRUTlNVVTB5V2toTlJGRjBWbE14U1dGc1dtbGxibEpoWW0xYWFXTXlOREJpYlVWNVZteHdRMUpJV2xwaWExcFJVbGhzWmxadVZucGxWV1JaVVdzNVNHRXhUbFZUUkdSV1VWVjBiR1ZIU25sTmJHeGhZak5PTlZSck1ETmpNazR4VFRKSmRHUXlUbnBTVlRVMVZrWnNTbU5xWnpKaVJYQnpZakp3YlZRd1VtRlRibVJvWVZjeGVFMUZUVFZhV0dSdlRtdGFUazVHUWtkU2JXaEVUVVpLVjFkdGNGSlZiRnBRVFVkR1FtTkhSVEZXU0ZJeVZGWlNUbUV5V21aaldGRTBVek5KTWxneFJsTlphMUl3V25wb2FWSnRaRmxTTTJoRVVXNW9VRnByTlZGa1ZGSk5VbTF3YlZkdFNsQk9hMDVNWlVkbmQweFlRbEpOUmxwbVRWYzFVMWRxVWtaV00wa3hZVlZvZFZGcVpIWlNWbVI1Vmxkc1RGWnNXa3RWYkRsMVRUSTVRMU15WkVsU2VtUlRVbmt4TmxkVk9YQlhWVnA1VkZkS1JsZFdWa3hSTWtZMlVXdHNhVlV6VGpOaWFsWldZVzVDYWxKNlRsVk5XSEJtWlcxT2QyUXdWazFZTTFwSlZHdGFiR015Y0hOWFZtaHpZMjVDZFZaVk9URmtXRXAyVkVoV1JsbFhNVEpUVlZwV1ZWTkpjMGx0VldsUGFVcENWVlZHUTBscGQybFpWM2h1U1dwdmFWVnNUWGxPVkZscFRFTktjbUZYVVdsUGFVcFhUVEU1UTJGWGFFdFdSV3d5VlRKUmVWWXpXWFJWUmxKd1V6QTFOVmR0T1dGV2JXaGFUbXRPYjJGR1dsWlJWRlpPVVd4R1lWcHVZM2RKYmpFNVRFTktjRnBJUVdsUGFVcHZaRWhTZDJONmIzWk1NMDR3WTNrMU0yRlhOV3RpTTJSNlRHMDFiR1JET1dwYVIwMHhXVmRXYkZsVE1IaE9WMDB4VEZSU2ExbHFXWFJaYWtFelQxTXhiVmt5Um10YVJFa3hUVVJXYTFsNlNYWkphWGRwWWpKc2EwbHFiMmxOYlUwelQxZE9hVTU2WjNSTk1rNXFXVk13TUUweVZtbE1WMHBzV1dwSmRGbHFRVFZPYlZacFQxUkpNRTV0UlRSSmFYZHBZMjFuYVU5cFNYZE1hMFpUVTFWRk1tTlVaRWRsYlU1V1ZtNVNjazF1Wkd4YWJtd3dUVWQ0UTFwSVpHNWlNSEJaWTJ4T1prMXRkRmRSYlRsSVdqQnNlRkV5TVRaU1J6aDNWVEJHUWxGVE5HbE1RMHA2WkZkSmFVOXBTWGxaZW1NMVdUSkpNMDlETUhwWk1rNW9URlJSZWxwWFNYUlpiVlpwVFdreGFVMUVhekphVjBrMVRXcFJNbGxVWjJsTVEwb3dZVmRSYVU5cFNtcGFSMDB4V1ZkV2JGbFRNSGhPVjAweFRGUlNhMWxxV1hSWmFrRXpUMU14YlZreVJtdGFSRWt4VFVSV2ExbDZTV2xNUTBveFpFZHJhVTlwU1ROU2EzZ3lUak5TUWxSc1ZuSlVNREZ6WkZVeGRXRlliRXRrVlVaQ1NXbDNhV1J0Vm5sSmFtOXBUVk0wZDBsdU1DNW1TMnBVVUU1ZlptWkVhMFJ1TW1oVFlXSldPWEpGUlRsMWR6UldPVW8yVVhVM2QzbFBiRzh4Y2kxbGRVczNNM1pHUld0eFgwMXpYMnRSYXpKTWJYcHlSalpaVFdGaFJERjBiMms0V0hkVFNsTnNhVGN3VWxoQ1VFcE1VMGxGVEZKNWVqTTFjalozVTJORFRIWkVMV3BaYjNCZk1GRTFjVzlaYTJGeFVIRmlVWE5rYURCUmEwbDRaMkowY1hOb2NUQkJUQzFXTWtsWGFuUkJjbWR2U210dmVtMTVVbE5UZEVndFkxWnZWekUxV21kNFUwNXBXRTV6U0RaNlYxcDZiRFJFTXpJNFMzVkxZMHhyUW0xU2NtMVpWemxNVUhCNFRVMUxMWHAyYjI5a1JWUXdWbTVLZFRZM05ubDRZbE4yYm00MlEwZEZNWHBhWkZoU1dqVkNZbWhCYmxkeFZqZ3hNbXBZVm5aUWIwVnhiR3BYYVhCb09GRkJlbkZpUjJwc1REWmllVEEzYTJOU1NESldZbkpKTkd0QlpHaE1WRFUxVm0weGJuVkdWelJzUVROWFFYVnFSamhCTTFSQlNEQmFOMGd3VUZSVVNuY2lMQ0owY3lJNk1UWTRNemMwTXpJM01Dd2lZaUk2SWs1MFJUSnlSRUpPVkZSc2RsOXphVXh2TTFkemMwdFRjMEp0TFZwcFVEQXpSMVo2UVhRMVlqZHVWamdpTENKdWIyNWpaU0k2SWpBM1pqaG1ZalkwT1dZd1pUUm1Nalk1WXpjeE1HSTBOMlU1T0dWbFpqSXdJaXdpWTI1bUlqcDdJbXAzYXlJNmV5SnJhV1FpT2lKalprTXhXVXBrU2twb2JuRmpTVzlNUTNsT01FbHhhSFI1Y1VOYVJrTTBhV1ZMT0dWNFEycFNWSGxySWl3aVpTSTZJa0ZSUVVJaUxDSnJkSGtpT2lKU1UwRWlMQ0p1SWpvaU5FRllkR2hYZDA5aFRVZDRUbk54VDFkYVlsOHhhV05GUmtwUWMxODBOMUZsYkRGVk5XeFdTa3cyTjNFemRGQXpaa2N3TkMxVkxVaHFWbUo2ZEZwdVptSnpialJ1WVRKV1drSkVkbGx1UmxCRmVWOVdkWE41UjFoQ1QwZHJVMVJJTjFWQlMyVjRZbkl5V1ZwdmMzbE9UVGR6WTNVellpMTNZM05GVG5sVVdVbHlPRFpzU214dmFtWlBSRnBLZDJGcGJYRXdRemxsZDJnMlJrMDBVRVpHYUVNd1VsWmFhbEZTVms4d1lVRndZVFZVZEhaTlZFMXJabDl4ZERoTGNqWmZVVkppUkhSbk9HSkdaMWhIZUVOQ2VFOW1UbEIxTkV4R2FtWmFZazgyUTB0NGFEQXRjRkV3Vmw4eGJsSmFORVZYY2pWcFNHNUNOMjlGVjNKVmFVdFdWa3BTWDI0emIwSkxaMGhITjFKSExYcFpUMmxaUm5KTllrVlpWVXREWVhwQ1NXSlRjM2R1TlZWcWNHTkhNMVF4ZWw5NlkzQjNSVXhmZGtoT1JtVnphbXhaV0d4eWNHNVZUM1YxY205TWRVVmhiWFpKUmxWUkluMTlmUS5HXy1jR1RlNXF1WWNtclpybEExR29XOGh2YWpnYWtiLWxTXzNuMEdxNlpxcDU0T0djZ183cXJiT1RhMW54VXpOelhsdzFlQkZYajhRdkV0RldJazVfcHlPZ2NNYk9lUE9BYWVDbnN4T2VNVTV3SGNmVFgyMG9NblFNbkpsU2VhcDc2M2dodkZqSXgwNkFhMjdwa2RyWk1DNFBtNUt3OGI0Q3BMWGx5S1hkLWRjaVdDNjNuSHIwZHExV2NzUDMtUTB3dWxFMk5tZ1FYQUFCTlhwT0VvQjlRWlZ5SmZFRnQwd1JtUkRoaEF2Q2x4c2JFNkxMUjlDV0J6LW5HVUZ5b0lVRnpMZG00aGxQVnFQblJTblR4X0RFMjEzdjlfcFhrZHJDRjA3RVFQdnhtU1RtSlpjTEtudWR6SmxMQU1DWHNXcGxVVjA0Nms2V1VNX0RtZVNzMlJ5YVEifQ.", + "incomingCallContext": "eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJjYyI6Ikg0c0lBQUFBQUFBQUNzMVlhMi9qdUJYOUs0SUw5RU14dFBqUWd5UmdGSTZUekdSbjhwakVTYlpCVUlPaUtKc1RXZEpLY3V4a2R2NTdMLzFJbkhHNms3YTd4U3FBTFBLUzV4eGV2dTdOMTQ1V2VYNVN0amF6V3JXMkxEcnlheWVyeTZuN3RXbEhkcmhVdXBFa1NaV2lpVUFpeERFS3dvQ2lKSWtDcE9LRVVvMng0bWt3d3N1SGNKU0pTQ0VheEFvWnBtTVVDcVp3aXJFV1duZmVkVkxiVkxsNk9GRlRBL2hRWVlxMEttM1JIamsrbFNpaEU2cVJNUUZHUWNRSVVta1dvREJqY1d5d0NxbWgwQ2RYeFhpbXhzYjFLV1o1L3E1VHFicTEybFpxRFlSNWxuTE9HR0k0QWFCQVlNUU55MUNtTU1PVWlsZ3BCVUFUbTZZR2hwMnB2REhQV29ZUGxWUFhtUHJlMVAycWdwWlZYVmFtYmgvMjFIakYrZTFkcHkxL0QwZXhhTWRSeVE4ZHRRTEJHTDN5Mmp4dmNoVG5SQW1oQklyQ0xBT1BKeHJ4MkFTSXBWSE1jSlNKT0dTN2pxcE5VODVxdmNUdHZHWFUvOGFEdVMzdUd1ZEUxYlpLVHdCczByWlZJMzFmVmJhYjVYWThhYUhmNHFIYjNNR2NkSFU1ZFJiL252cTY4aGRJdzBxWkZTWENwS3YxVmh1dC9YdmlaMlY5WjFLZkpZRkphYVNSU2loSFFaSXlsQWh1a0dJa2kya2FoanJLZkJyN2x2Z3NFUDVLeXQ5dHo2MjBxVW10NmhmTjNOUWdUbXRRTm5VTEIwU053UW5ObjBMeFJzeGFjMjIrR04zK0taU3RwS3gxemRKcVdLdWlxY3JhcVlNaWFDT3NHd2RkRXJFdXhVeXlJT1orNTl2YTc0T3lhRTBCYmI5MjlPcHp2VEZWVmVYckk4dHZVcmM5azd4TXdIRGZ3N2YxYlZIMmtFZERSanpzSFoxNFIyZUJSMmpjeGZCSG5MbnBOZUF0Nk93S3VyZHBFdkZ1Ukx1VWtDNFJ6Sm1TM21Bb3lYbzN1WXEyaDczbHg3U25acWt0dlVBd0Vuam53ek8vZjNYbUVSeDRBdDdNSTRSNGhBTTk5MFFNTlZCeWxSeDA0QitRcWw3ZDZnclZqWDAwVytVc2tYL3pGbWdLd21FL2UrQUJyNEVUUWFiTnhLdU52bmNmcStZTDFOaHhvV0JyalgrcjF6TzJkS01JVjJXckRacGx0UnJMK1dMdjhibXVtcWR5OFBQTjRWVjh2WDgyRnlmdmY1cmF5L0hEa2VIaXc1Yks2V3l4S21sVnBEWlZyWkV3ZE85eS84eWpoT0VZUndITXlzdEJyNTNZUG9DMk9zc1hYcTNTdEFhblFRTU9VeFo2dFZzeHEyYTc2SFFMUFJUT3hidm80ZHZRdysvUktXaDN3MUs2QlFZS1N5SEM4U3NNSktSdllZQm11d3owRDJhQWRiZjBFS0VocHdLVE9QUkMyaVVFTmgzblhSRjVzT2ZFRXJzMmNOOXNzRjhLMkpvQjczaDRlWDV5dE8vUkNDeVU4b2dFTEloQ2dmSE83TEQxN0N5NXVZZ2krajl4aDAvY2pFUUJ4NEdBTzBvUUVNRlcrM09iRy9iVzByT1ZhaG9RRUhBQy9EajZUa0NJc1FqZnJJQ0pYUmI2ZjJBSnQ5YWhJd2s1ZUFQLzdpVDBqeUxKVldKeU9WVzJRTXR6YzFVN3Rha2ttek1ybVJ1Vmo4dmF0cE9wVE9iYXE1UytNMjJsYk8zTlRRS255MXB2L1ZDMUplejcvc0hGYUhBOElwU1BQaHozQjZPTEQzMHk0dGl6Qlp4OFJzNkhOM3RYMlZ5UVQ4UGhXWmlwMDV0Q2ZZamI2djdqcElwL0tpZW5qL3pFdi9DVFgray9HZm1WYklTczRlbVA0TC9FNWZYcHJQaEhkWHlSMWJQSlFYN0g3bEwrMkFaSCt1NHEvV3o2cy8yMnNPUmdDYjg1SUt1cHF1QStDYnlMbzA4ZmZSS3RiNVVuay9EZXg1VDYvUHQ2ZDZNc3UreGE0SjY1T0RvL09ObEd5NmJ0eXBMWXRvYVo3ZTB5d1RFSlZHSUxjTldKZTZvb3pDTHBGZVdMOXRnN0d4eGY3dkp6VjkvZnJZZEw3L3hnLzdXUndFSTJ1YWttWldHUXVZY3JmVWNETk1HSVJDLzdNVzl3OHRyd3VhdC9aWHdVT3dPY0VSdEQxZG9wSExjYkpyZ2NUVjNWRUU3TFpnSlJlQmg1UVNCSkxNTjl1ZGVYZkNBSFZBNGllUmpML1VpS1VBcjRGbklnSk9YeVlOOTk5TEdNQnBMc3ljR2hEUGNrRzBqQlpFeGxuOGlBeWNOREtRYnlnRWphbDJSZjR2VWlNSXQycWM5enNabThoV2MrbjNkWEM3eGIxdVBiVzdPQUtCbTBGbTF6ZXd2RFFaTzBobDYzdHlwcGtMdThrUnZKQ3pUMmpQWVV0djBHVUthYWRwVEF2cC9idEoyTU1tUFNCRGJiWHlEWGNVSFJpRDNGRVUydEVVUnNZN2huWFhMaFhzNjJpWXMvbWZFeUFXQXh6MEk0ZzEzQ2xrQ3lGWVlvNFpEZ0NCV2JCUEtIU0tYQ0pUQU41SnZMb08xVTYxa056aDgvSlJTRm1aOW1tUXV5bHhVUUFVSjQrTkU4dU5odkhhd3RTeDFmVDZ5d29iMytaWEl6U0xMRjVlSG42OGR4cndmNGtOZkFpUUZ0UHB5ZkZzSDRRcDhPcXRsVmNUTzhIcjZmSHZlaERjRFdJQnppSmFmaWJKV1FXTFBNUUd4enZqYjE4N3ljR3hoWVc4L01OK2dEd2FmenpWTDZVWEZ2MjZka2VkdmlvdFc2elBObHB2QWZodDRBOHh4OFEyRTcvSWFpUCtyL2ZMeVhaUVcrZTU4bXhRSCtUSUl2YlIvaWF2eFgwNHNZcHpnS2d6Z2tNUXNJamwyMlpadmpXZDdhTTBqM3dHMXJMOXRtcnk1VnFtRUJQRHM2TmNsc3ZCMXF3ejhGVnRNSzF6cG1FVWFSQ1dCYU02MFFaeWFCZ0Q4bHNZb1VEaFBpVXFIL0pxTUUzbkZkenFvbDd3SjRsd25odndCMWNYdVBraEFBQUE9PSIsInNoclRva2VuIjoiZXlKaGJHY2lPaUpTVXpJMU5pSXNJblI1Y0NJNkluQnZjQ0o5LmV5SmhkQ0k2SW1WNVNqQmxXRUZwVDJsS1MxWXhVV2xNUTBwb1lrZGphVTlwU2xOVmVra3hUbWxKYzBsdVp6RmtRMGsyU1dreFRGTlVUbEpQVnpWUFZXcGthVlZ0T1cxbFJ6RnNWMjA1V1dOWFNrbFhhMlJzWkhsSmMwbHRkSEJhUTBrMlNXa3hURk5VVGxKUFZ6VlBWV3BrYVZWdE9XMWxSekZzVjIwNVdXTlhTa2xYYTJSc1pIbEtPUzVsZVVwb1pGZFJhVTlwU21sT1JGWnNUVVJyZDFsVE1XdFpWMHB0VEZSUmVFNUVWWFJaVkVFeVQwTXdkMDlIUlRSTmFteHBUWHBDYkU5SFVXbE1RMHB3WXpOTmFVOXBTbTlrU0ZKM1kzcHZka3d6VGpCamVUVXpZVmMxYTJJelpIcE1iVFZzWkVNNWFscEhUVEZaVjFac1dWTXdlRTVYVFRGTVZGSnJXV3BaZEZscVFUTlBVekZ0V1RKR2ExcEVTVEZOUkZacldYcEpka2xwZDJsaFYwWXdTV3B2ZUU1cVp6Rk5WRVUxVGxSWmVVeERTblZaYlZscFQycEZNazlFVlhoTlZHc3hUbXBKYzBsdFZqUmpRMGsyVFZSWk5FNVVTWGRPYWtreVRXbDNhVmxYYkhaSmFtOXBVbFJLWVZveGJFUmhXSEJyWkZWamVsVkhWbUZsYW1SWVkyazVkRlpUZEUxa01tTXpZbFZHTTFGVU1HbE1RMHBvWTBoQ2NGcERTVFpKYlVWNldWUk5lbGw2U21oTVZFazFUMGRWZEU1RVJtdE5VekExVFZSTk0weFhSVEZPUkZsNVRXMVZNazlFUm1wWmVVbHpTVzFHZDJOSGJHdFpWMDU1U1dwdmFVMXBTWE5KYlU1MVdtbEpObVY1U25Ga01uTnBUMjV6YVdFelVqVkphbTlwVld4T1FrbHBkMmxpYVVrMlNXNVNTMWx0TlV0VU0xbDRWakI0TkZwdGR6Sk9WV1JTVGxSS2EwMVhPRE5oTUhOMFpETkdlVk5HUW5oVk1WSlNUVVp3TTB4Vk1IbFdNRFZYVkVoS2ExTnJWbGRaVlhCRlRraHNiVlZ1VmtWaU1XeFRVV3MxUkZSVmVFTmphbXhRVVcxd1dWTnJSbXBaYldONVpHcFNTR05yVmtwYVYxVjNUbGRzZDFWVVNYcGtlbHAzVGpOYWJFMTZRa3hPVjFKS1VtdHNkV05IV25sVmJGcHFaR3BXTW1SWFNuRlVXSEJaVG1rd2QxWXpiSEZSVjFKNVYxUlNkVTVYZUZkaU1EbDFUa1ZLY1ZKV2IzUk9iVVoxVVc1YWExVnRWbXRXUlhBMFVtdDBiMVV5Y0hCTVZtaHlXVmhLYWxveVVYZE9WMXBwWXpOdk5WVXhiRk5WTUhoRVZtMWFkRk51YUU1UFZGSnVWa1JvTTFOdGFHaFRla3BGVG0xT2FWVklUWGxaVkVKWFZVVndUV0ZzT1ZkU1JWRjVXV3hvYVZkcmVHcFJNMng2VTFod2FFNVlhelJaYTFJMlRsVjBkMVl3VG01WFV6RlVXakZHV1ZOVVJrZGllbEYwVldwb2JWUXlhRE5hYlhSV1dtdFdiRlpITVROVFIxSjVaR3c1Y2xWRmNFOVZhbFpDWVc1Sk5GTnFZM2RpUlVZeFpVZG5NVkZ0V2toUFZuQjNUVlJPYjJGVmVIWmpNMFUwVWpJNVIxRXpVa3hsYlhodllVZDRlRTVzUlhkaVZVNTVZMjVvYmxrd2QzaFVibWhVVlZOSmMwbHRWV2xQYVVwQ1ZWVkdRMGxwZDJsWlYzaHVTV3B2YVZWc1RYbE9WRmxwVEVOS2NtRlhVV2xQYVVwNVZXeE9jbFZFUWxkT2JYY3paV3c1VGxSWFRtWlVlbEp6VmxWYVNscEhSbE5aTTFsNVlYcHNVMUpGUlROalYxWk1WakZXUkdRelJrWkpiakU1VEVOS2NGcElRV2xQYVVwdlpFaFNkMk42YjNaTU0wNHdZM2sxTTJGWE5XdGlNMlI2VEcwMWJHUkRPV3BhUjAweFdWZFdiRmxUTUhoT1YwMHhURlJTYTFscVdYUlpha0V6VDFNeGJWa3lSbXRhUkVreFRVUldhMWw2U1haSmFYZHBZakpzYTBscWIybE5iVTB6VDFkT2FVNTZaM1JOTWs1cVdWTXdNRTB5Vm1sTVYwcHNXV3BKZEZscVFUVk9iVlpwVDFSSk1FNXRSVFJKYVhkcFkyMW5hVTlwU1hkTWEwWlRVMVZGTW1OVVpFZGxiVTVXVm01U2NrMXVaR3hhYm13d1RVZDRRMXBJWkc1aU1IQlpZMnhPWmsxdGRGZFJiVGxJV2pCc2VGRXlNVFpTUnpoM1ZUQkdRbEZUTkdsTVEwcDZaRmRKYVU5cFNYbFplbU0xV1RKSk0wOURNSHBaTWs1b1RGUlJlbHBYU1hSWmJWWnBUV2t4YVUxRWF6SmFWMGsxVFdwUk1sbFVaMmxNUTBvd1lWZFJhVTlwU21wYVIwMHhXVmRXYkZsVE1IaE9WMDB4VEZSU2ExbHFXWFJaYWtFelQxTXhiVmt5Um10YVJFa3hUVVJXYTFsNlNXbE1RMG94WkVkcmFVOXBTazVhYXpBMVUxWkNWVmRWVmtaYVZWSkpaRVU0ZDJOV1RuQmxhMFpDU1dsM2FXUnRWbmxKYW05cFRWTTBkMGx1TUM1T05sRnhNazFqYzB0MWFUWlVkbkpMWnpCVWFYWnBkMUo0WDB0S2ExSlZZbWhYTURORUxYbFBlVTF5UzB4TWMxbEJWVzlHTVdkdFIwdGtSUzFqTFZOS1lUZHNURzFVTW10VVpYZFZTalJEWW1GRllubEJkbU5KVlhCTWVWSk5aV1ZUUVMxMGFTMW9ha2RGU0V4dVMzY3pNbE41YW1aV2RYTnlhR016VkdkdVYzWlhhMUJqYjE4M1JIWlJZamhZZG5nMGVEbHBRazl4U0c5VVFrMTNVMkZKWm5KVVJtdDVPRkZET1hwSVNtUm5jMWhMVUV4Nk1XcHpNbEJ3UnkxdE5WVllVbWRGTlhKdFRWWkRURUpmTWxoSmJUZHdUamx2VTI4NVNsZENhR3B5TTJSaE1ERmZURVZvZW5sRFYwUlhTbFkzYlhacFRuRjBTUzFSVWpFd04wcFBNVmxYTjBVMk55MUhReTFoWW1sM1JrcFdla2wzVlhoTE5VOU1jM0JPTjJ0cE5uazBOR05GUkhvdFlVeHNjVGd6U2paeE0zZE5UMk16YmxCa2RrZEdPVzFPVlVSSGREQlJVVlJmZW0xRE1sQnRNVmhUVkVFaUxDSjBjeUk2TVRZNE5URXlPVE13TUN3aVlpSTZJalJ1WTA0eFNsSklUVGczYlUwM1FrNUNUMjQ0U0ZCclZUQklNMDlWYldoalQwSkpZM1JSTUhwUlFsRWlMQ0p1YjI1alpTSTZJbVk1TkRrNE1qRm1PREpsT1RSbFl6QTROemN4TWpOaFpETm1aRGxtTldNeklpd2lZMjVtSWpwN0ltcDNheUk2ZXlKcmFXUWlPaUkzZFY4eWMyMUVTbTVUTVZwYVR6aERSRk41ZFVaT1dVNVlSM010YVdsRmFVWkhNRFptUkd4S1kzaGpJaXdpWlNJNklrRlJRVUlpTENKcmRIa2lPaUpTVTBFaUxDSnVJam9pZEVwaWJrcFBkakZYVEhobWJEWTFSMUUxTW1ReGJ6ZHJTeTEzY1hKSVVIRlRWRkV3V25jdFRUSlhUbFpNY21SS1JWWmhTa1EwZVdaU2RVUnZXVkpDVGtOTlRFSnlPVTlDYWxoS1FXTmlaekoyTkVkeVJVbGxaVEExYVhCUk1qTjNObkEzZG1Vek1FczFaRWxHU1c1d1puSlNWbU4yTlhaMVltcE5lbGcyTFRCWGVXcEJaSEpaTkc0MWJGWnZUMjQwUW1wRldpMDJZVzVDZG1SU1pXUlVTbmhHUzJoVGFta3RXR3RoY21OblpEQTFabUp6ZWpsVFdWSlRURU5XWm0xS2VFMDVOR2RVT0hkS2FHRkxNa1EyWTJKUWN6SmhNRlpRU2t4cVgxWkVSREppV0dKYVRHTkRlWE5KZW1FMWVUaGlSSG8xUzNCWFEyZFpMVk5uVVZoSk1VWnZOQzFTT0daUGFIZG1hMVZtUldWVWJYZElaSEoyWDJ0UVNrNVNOVUZxY2poS056QnNRWFY0YURWQ1prYzVXbkF4TTJocFRHOXpjVGhIYjBaRGRFdDZiR2hvYkhFMlVUQnRRM0p5ZUdkalRERk9lRk5SSW4xOWZRLlBYNVUxdURMSEcwemRfdW1yMGxBN3dfME5KNG40dEFnRHRSbDh2X0JpZmV6SUZnNHFlT0V6c0djSjRaT3NDVWdKZS12YlI3WGtsWXQxODVUSk9KYmFTUDJQWjVnYklZcUhzOGVtTEEtb193WWxYanBPSS1XWi1YcGt3czVCUjc4OTJ3OGw4ZnpySXpxZGtBRnlPZldlYWwwNVdzaE9Venh6U2lBME81U3ZSQTJGcjVCbGxLcUhiRmNDalhkcU9mdWNyTWdSUGljVzdGemdaYVhIYnljOWhXV0VuQWNhLURLYmtjX1ZmQk1LTDVHWTlSdWJYbXdLelk0ejZZMk53b1lOdUVQV2F1Y09SMU5kWG5WZ3ZYbGxTdUFDQzZ5SncyMndSX1dnc3lTUWNFSC10blJGN3dfMS1mT3dYRDJ4dVl3cUtQMjlQdUdicUU4UVl0OEZRbER6ZyJ9.", "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized", - "answeredByIdentifier": { + "answeredBy": { "id": "Sanitized" } }, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "758", + "Content-Length": "679", "Content-Type": "application/json; charset=utf-8", - "Date": "Wed, 10 May 2023 18:27:51 GMT", - "X-Azure-Ref": "0J\u002BJbZAAAAABUS7dvJEczRIdia3iNs8ygWVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "Date": "Fri, 26 May 2023 19:28:21 GMT", + "X-Azure-Ref": "0VghxZAAAAABLKF75OkCYRamEYRBI7qNrV1NURURHRTA4MTUAOWZjN2I1MTktYThjYy00Zjg5LTkzNWUtYzkxNDhhZTA5ZTgx", "X-Cache": "CONFIG_NOCACHE", - "X-Microsoft-Skype-Chain-ID": "5504e9f2-e88e-4751-9bca-cfdb596b468c", - "x-ms-client-request-id": "6622df0148b9ed8bf879f0aeeb172361" + "X-Microsoft-Skype-Chain-ID": "33460360-6e4b-4fca-83eb-b9d17a6a05b1", + "x-ms-client-request-id": "03ebc9fa2c69c854b30ac977fe18dbae" }, "ResponseBody": { - "callConnectionId": "401f3500-ead5-4f9c-b0e3-17b8197f3c8b", - "serverCallId": "aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzd2UtMDIuY29udi5za3lwZS5jb20vY29udi92NHpXZ25YekNrQ1FVaXZIWkd0a1d3P2k9MTkmZT02MzgxOTI3NDY3NzYzOTI1MTk=", + "callConnectionId": "411f1200-5b00-4fea-a57e-13bc57e0dc17", + "serverCallId": "aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC94LWNvbnYtZXVuby0wMS5jb252LnNreXBlLmNvbS9jb252L19BWE1CZmZuMGtHZGJuRTBRMTRqdEE/aT0wJmU9NjM4MjA2NTQ3NTE3MzQxMDc0", "targets": [ { "rawId": "Sanitized", @@ -213,47 +207,46 @@ ], "callConnectionState": "unknown", "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized", - "mediaSubscriptionId": "366d27ca-efca-4134-8e27-27b1fe34061f", "sourceDisplayName": "", - "sourceIdentity": { + "source": { "rawId": "Sanitized", "kind": "communicationUser", "communicationUser": { "id": "Sanitized" } }, - "correlationId": "5504e9f2-e88e-4751-9bca-cfdb596b468c", - "answeredByIdentifier": { + "correlationId": "33460360-6e4b-4fca-83eb-b9d17a6a05b1", + "answeredBy": { "id": "Sanitized" } } }, { - "RequestUri": "https://sanitized.skype.com/calling/callConnections/401f3500-5c7c-4781-8adc-3e51774e8bf7?api-version=2023-01-15-preview", + "RequestUri": "https://sanitized.skype.com/calling/callConnections/411f1200-98cc-4751-9ef8-3072073ef879?api-version=2023-03-06", "RequestMethod": "GET", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "3bb9fd19ac9052c4b96b9859961eaf78", + "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "18516ff6e710827cc402382f10766a6b", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:52 GMT", + "x-ms-date": "Fri, 26 May 2023 19:28:22 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "718", + "Content-Length": "649", "Content-Type": "application/json; charset=utf-8", - "Date": "Wed, 10 May 2023 18:27:53 GMT", - "X-Azure-Ref": "0KeJbZAAAAABTaF7Xks1qSacZK\u002BwdPqbXWVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "Date": "Fri, 26 May 2023 19:28:24 GMT", + "X-Azure-Ref": "0WAhxZAAAAAB1MHhxkcDEQoXAzfnFVHmgV1NURURHRTA4MTUAOWZjN2I1MTktYThjYy00Zjg5LTkzNWUtYzkxNDhhZTA5ZTgx", "X-Cache": "CONFIG_NOCACHE", - "X-Microsoft-Skype-Chain-ID": "5504e9f2-e88e-4751-9bca-cfdb596b468c", - "x-ms-client-request-id": "3bb9fd19ac9052c4b96b9859961eaf78" + "X-Microsoft-Skype-Chain-ID": "33460360-6e4b-4fca-83eb-b9d17a6a05b1", + "x-ms-client-request-id": "18516ff6e710827cc402382f10766a6b" }, "ResponseBody": { - "callConnectionId": "401f3500-5c7c-4781-8adc-3e51774e8bf7", - "serverCallId": "aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzd2UtMDIuY29udi5za3lwZS5jb20vY29udi92NHpXZ25YekNrQ1FVaXZIWkd0a1d3P2k9MTkmZT02MzgxOTI3NDY3NzYzOTI1MTk=", + "callConnectionId": "411f1200-98cc-4751-9ef8-3072073ef879", + "serverCallId": "aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC94LWNvbnYtZXVuby0wMS5jb252LnNreXBlLmNvbS9jb252L19BWE1CZmZuMGtHZGJuRTBRMTRqdEE/aT0wJmU9NjM4MjA2NTQ3NTE3MzQxMDc0", "targets": [ { "rawId": "Sanitized", @@ -265,20 +258,19 @@ ], "callConnectionState": "connected", "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized", - "mediaSubscriptionId": "4b3a035d-690d-4281-9a12-fcd44dd9b899", "sourceDisplayName": "", - "sourceIdentity": { + "source": { "rawId": "Sanitized", "kind": "communicationUser", "communicationUser": { "id": "Sanitized" } }, - "correlationId": "5504e9f2-e88e-4751-9bca-cfdb596b468c" + "correlationId": "33460360-6e4b-4fca-83eb-b9d17a6a05b1" } }, { - "RequestUri": "https://sanitized.skype.com/calling/callConnections/401f3500-5c7c-4781-8adc-3e51774e8bf7:terminate?api-version=2023-01-15-preview", + "RequestUri": "https://sanitized.skype.com/calling/callConnections/411f1200-98cc-4751-9ef8-3072073ef879:terminate?api-version=2023-03-06", "RequestMethod": "POST", "RequestHeaders": { "Accept": "application/json", @@ -286,21 +278,21 @@ "Content-Length": "0", "Repeatability-First-Sent": "Sanitized", "Repeatability-Request-ID": "Sanitized", - "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "665daef0f0661adf2d7189c168510ea4", + "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "5e3cc954a140fc760969c653d4a4ef05", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:52 GMT", + "x-ms-date": "Fri, 26 May 2023 19:28:23 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": null, "StatusCode": 204, "ResponseHeaders": { - "Date": "Wed, 10 May 2023 18:27:53 GMT", + "Date": "Fri, 26 May 2023 19:28:24 GMT", "Repeatability-Result": "accepted", - "X-Azure-Ref": "0KuJbZAAAAABvKvNni4UmS5V6/deL85cnWVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "X-Azure-Ref": "0WQhxZAAAAADQkG2C/l4gTZ3ss2Cf8PLPV1NURURHRTA4MTUAOWZjN2I1MTktYThjYy00Zjg5LTkzNWUtYzkxNDhhZTA5ZTgx", "X-Cache": "CONFIG_NOCACHE", - "X-Microsoft-Skype-Chain-ID": "5504e9f2-e88e-4751-9bca-cfdb596b468c", - "x-ms-client-request-id": "665daef0f0661adf2d7189c168510ea4" + "X-Microsoft-Skype-Chain-ID": "33460360-6e4b-4fca-83eb-b9d17a6a05b1", + "x-ms-client-request-id": "5e3cc954a140fc760969c653d4a4ef05" }, "ResponseBody": null } @@ -308,8 +300,7 @@ "Variables": { "COMMUNICATION_LIVETEST_STATIC_CONNECTION_STRING": "endpoint=https://acs-callautomationtestsupporter.communication.azure.com/;accesskey=Kg==", "DISPATCHER_ENDPOINT": "https://sanitized.skype.com", - "PMA_Endpoint": null, - "RandomSeed": "1136291998", + "RandomSeed": "1619087766", "SERVICEBUS_STRING": "Endpoint=sb://acs-callautomationtestservicebus.servicebus.windows.net/;SharedAccessKeyName=Sanitized;SharedAccessKey=Kg==" } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecords/CallConnectionAutomatedLiveTests/RemoveAUserCallTest.json b/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecords/CallConnectionAutomatedLiveTests/RemoveAUserCallTest.json index f5d35b27dc49..e77fe6d98aa1 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecords/CallConnectionAutomatedLiveTests/RemoveAUserCallTest.json +++ b/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecords/CallConnectionAutomatedLiveTests/RemoveAUserCallTest.json @@ -8,11 +8,11 @@ "Authorization": "Sanitized", "Content-Length": "2", "Content-Type": "application/json", - "traceparent": "00-0d933c5359b5a1d8a2d8970f77a09e96-595363f008cbe991-00", - "User-Agent": "azsdk-net-Communication.Identity/1.3.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "a2c2fc6a3a9433b7306959358ac8a19d", + "traceparent": "00-782b747f99cf679255bb9c6a6b14fc07-0b7fb54ae72c4b96-00", + "User-Agent": "azsdk-net-Communication.Identity/1.3.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "9b4d108a43af1cde2e9ba04424330d88", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:53 GMT", + "x-ms-date": "Fri, 26 May 2023 20:14:32 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": {}, @@ -21,14 +21,14 @@ "api-supported-versions": "2020-07-20-preview2, 2021-02-22-preview1, 2021-03-07, 2021-10-31-preview, 2021-11-01, 2022-06-01, 2022-10-01, 2023-08-01", "Content-Length": "31", "Content-Type": "application/json; charset=utf-8", - "Date": "Wed, 10 May 2023 18:27:54 GMT", - "MS-CV": "w9QBEl5Z0U69Vonr\u002BT/DVw.0", + "Date": "Fri, 26 May 2023 20:14:34 GMT", + "MS-CV": "A5pofCD3kEibL5reecQRJA.0", "Request-Context": "appId=", "Strict-Transport-Security": "max-age=2592000", - "X-Azure-Ref": "0K\u002BJbZAAAAADY2mx02JpERqQ5U5XkgU7pWVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "X-Azure-Ref": "0KhNxZAAAAAAQecMOatTUSa\u002B8OcNewN8GWVZSMzExMDAwMTE1MDI5ADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", "X-Cache": "CONFIG_NOCACHE", - "x-ms-client-request-id": "a2c2fc6a3a9433b7306959358ac8a19d", - "X-Processing-Time": "82ms" + "x-ms-client-request-id": "9b4d108a43af1cde2e9ba04424330d88", + "X-Processing-Time": "105ms" }, "ResponseBody": { "identity": { @@ -44,11 +44,11 @@ "Authorization": "Sanitized", "Content-Length": "2", "Content-Type": "application/json", - "traceparent": "00-7cf0f5a8d087e06eaa6bb89fae6fc955-586d38d969c2c302-00", - "User-Agent": "azsdk-net-Communication.Identity/1.3.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "4f5df11c197668dcc33e02522d57b854", + "traceparent": "00-668a2a5cd67cd3ef646885b7c5daa4f1-9ad990205ec9c923-00", + "User-Agent": "azsdk-net-Communication.Identity/1.3.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "b8c976f7de735fa1749df393f0cb9b9a", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:53 GMT", + "x-ms-date": "Fri, 26 May 2023 20:14:32 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": {}, @@ -57,14 +57,14 @@ "api-supported-versions": "2020-07-20-preview2, 2021-02-22-preview1, 2021-03-07, 2021-10-31-preview, 2021-11-01, 2022-06-01, 2022-10-01, 2023-08-01", "Content-Length": "31", "Content-Type": "application/json; charset=utf-8", - "Date": "Wed, 10 May 2023 18:27:54 GMT", - "MS-CV": "iau0ExiUxUGX\u002BsNfu9faXQ.0", + "Date": "Fri, 26 May 2023 20:14:34 GMT", + "MS-CV": "i/wGKhvVqEigOXPmAfQ0ZA.0", "Request-Context": "appId=", "Strict-Transport-Security": "max-age=2592000", - "X-Azure-Ref": "0K\u002BJbZAAAAAByagcdVdqjTaB3FY67qLpHWVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "X-Azure-Ref": "0KhNxZAAAAAAFpGWJF/QsR7YCOR52QMpMWVZSMzExMDAwMTE1MDI5ADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", "X-Cache": "CONFIG_NOCACHE", - "x-ms-client-request-id": "4f5df11c197668dcc33e02522d57b854", - "X-Processing-Time": "84ms" + "x-ms-client-request-id": "b8c976f7de735fa1749df393f0cb9b9a", + "X-Processing-Time": "101ms" }, "ResponseBody": { "identity": { @@ -79,37 +79,36 @@ "Accept": "application/json", "Authorization": "Sanitized", "Content-Length": "0", - "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "X-FORWARDED-HOST": "Sanitized", - "x-ms-client-request-id": "7340727d6a7f141f91ce693f402552ac", + "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "2183ac43918b47ec91efb82a7fe26e77", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:53 GMT", + "x-ms-date": "Fri, 26 May 2023 20:14:33 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { "Content-Length": "0", - "Date": "Wed, 10 May 2023 18:27:56 GMT", + "Date": "Fri, 26 May 2023 20:14:37 GMT", "Server": "Kestrel" }, "ResponseBody": null }, { - "RequestUri": "https://sanitized.skype.com/calling/callConnections?api-version=2023-01-15-preview", + "RequestUri": "https://sanitized.skype.com/calling/callConnections?api-version=2023-03-06", "RequestMethod": "POST", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "Content-Length": "205", + "Content-Length": "197", "Content-Type": "application/json", "Repeatability-First-Sent": "Sanitized", "Repeatability-Request-ID": "Sanitized", - "traceparent": "00-28b64607336ba70960df3a7bb89bac74-0ef816f1e761ef8a-00", - "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "f390857370ae508c1f59df56376406d9", + "traceparent": "00-734f934bcbd83540efd6306942ff921a-dc67fc413eba88fb-00", + "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "86ea2fe3b776ab866fee2611504b2c63", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:55 GMT", + "x-ms-date": "Fri, 26 May 2023 20:14:35 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": { @@ -121,27 +120,23 @@ } } ], - "sourceIdentity": { + "source": { "id": "Sanitized" }, - "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized", - "customContext": { - "voipHeaders": { - } - } + "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized" }, "StatusCode": 201, "ResponseHeaders": { - "Content-Length": "533", + "Content-Length": "464", "Content-Type": "application/json; charset=utf-8", - "Date": "Wed, 10 May 2023 18:27:56 GMT", - "X-Azure-Ref": "0LeJbZAAAAAACMmvcM1gPQKHh5dDRMmWeWVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "Date": "Fri, 26 May 2023 20:14:39 GMT", + "X-Azure-Ref": "0LRNxZAAAAABi3xQIu9GcTa5uaTyLTAnmWVZSMzExMDAwMTE1MDI5ADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", "X-Cache": "CONFIG_NOCACHE", - "X-Microsoft-Skype-Chain-ID": "5c23d0a4-95b7-46c9-a9fc-ebb0ec772d26", - "x-ms-client-request-id": "f390857370ae508c1f59df56376406d9" + "X-Microsoft-Skype-Chain-ID": "f38d4482-00cb-4c06-b3e8-e145e2f5077c", + "x-ms-client-request-id": "86ea2fe3b776ab866fee2611504b2c63" }, "ResponseBody": { - "callConnectionId": "401f3500-18a6-4ec3-8c05-415a2f0a3c09", + "callConnectionId": "421f1200-0b6d-4499-9060-01d269293aa1", "targets": [ { "rawId": "Sanitized", @@ -153,55 +148,54 @@ ], "callConnectionState": "connecting", "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized", - "mediaSubscriptionId": "9c7a35da-aaaf-4cea-9584-52328db85fba", "sourceDisplayName": "", - "sourceIdentity": { + "source": { "rawId": "Sanitized", "kind": "communicationUser", "communicationUser": { "id": "Sanitized" } }, - "correlationId": "5c23d0a4-95b7-46c9-a9fc-ebb0ec772d26" + "correlationId": "f38d4482-00cb-4c06-b3e8-e145e2f5077c" } }, { - "RequestUri": "https://sanitized.skype.com/calling/callConnections:answer?api-version=2023-01-15-preview", + "RequestUri": "https://sanitized.skype.com/calling/callConnections:answer?api-version=2023-03-06", "RequestMethod": "POST", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "Content-Length": "8196", + "Content-Length": "8186", "Content-Type": "application/json", "Repeatability-First-Sent": "Sanitized", "Repeatability-Request-ID": "Sanitized", - "traceparent": "00-fd1b62615f4c1d796b78283222fbde0a-cd60689e1e681cf2-00", - "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "18b704b02e88b21ed149bda8b09d279d", + "traceparent": "00-040423ec49943b1da42584b35830b599-013b7e3807eccfeb-00", + "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "77000500ebb066fd8a8127832676df91", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:57 GMT", + "x-ms-date": "Fri, 26 May 2023 20:14:41 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": { - "incomingCallContext": "eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJjYyI6Ikg0c0lBQUFBQUFBQUNzMVliVS9qT2hiK0sxRlgyZzk3eDYzdEpFNWlxVnFWVWk0c1E0Y3BNRHRjb1VXTzdhU0JOTWwxVWxLWU8vOTlqOU1DWmNyT1pYZnZTRGRJYWZ6MlBJK1BYODQ1Zk9sSmtlZlRzc21TVElvbUs0c2UvOUpMVExtd3Y1bnE4VjdJaGF3NWlaVVFOSTVRNU9NQWViNUhVUnd6RDRrZ3BsUmlMRUxsWGVQdUlTRVNUQ3BFWkNpUXE5d0loZG9WV0dHc1NDQjc3M29xcTZ0YzNFL0ZRZ00rVk9oQ1ZXVldORWVXVHdpUFNKWEVLQlMranp6bCtpaVd6RVhLRHdUVGhBQS9nVEc1S05LbFNMVWRVeXp6L0YydkVxYkpaRmFKRFZBaUVrL0tRQ0tsZklJODdHTVVLUm9oUHdoVmtHaWxoUllBTk0rVTBqRHRST1MxZnRaeWZsOVpkYlUyZDlxTXFncDZWcWFzdEdudTkwUzY1dno2cnRlVWY0U2hFclZqS1BXN2hscURZSXhlZVQwK2J6SlVSTDFFeWpoR09LRVllVzZVb0ppUkdERU5aa3BJeUtqM2lxR01yc3Vsa1IxdTd5MnovZzhXekxQaXRyWkdGRTBqNUJ6QTVrMVQxWHd3RUZYV1QvSXNuVGN3Ym5YZnIyOWhUZnF5WE5pV3dSMGR5R29nSlZyV1dsQ0VhVi9LclM1U0R1N0lJQ25OclZZREZTZUVDajlHd2xVSzlwVFdTUGhNb2pCMC9WZ3oxMDBvRzlCZ2tKR0I2MFdEdFpLL1owT3JlYUZWSmtaRjNXb0QycVFFWVF0ckR0Q1VnZzNxUDRQZ1J5MGJ5VWJmYU5uOEdZU3RsV3hrTFZWMWJrUlJWNld4NHFBSTBuemFKOFRyRXc5K0k4SmRMd2dIdmE4YnM0L0xvdEVGZFA3U2srdlB6YkVVVlpWdkxxeEJyZXpoalBNeWhvYTdJYjR5VjBVNVJBNmhQdk9JZzUyanFYTjA2a0U1NkdQNEk3WkRQYXpCWGpEY0Z1UncwOFhEL1NEc0U0ejdsTHEySlI2T3p6bVV1OGRXTkVQc2RCK0xvVmlxckhSOHlrTHN6TTVQQjZOUHB3N0JuaFBCMjNVSUlRNEpnVDEwb2dCcW9HUXJRNUNCdjg4cGhxYVJGVEoxOXFDM3lrbk0vK2FzMEFKa3cybDJ3QUpPRGZjQlYvWGNNVnJlMlk5MTl4V3FzN1FRY0xEUzc0MTZ4dVoyRXAxWnhEQ1RHaTBUSTFLdTNJZmd1YTVxRlQ5VG1YZjY2ZU5QaHRTWGwrNFlqKzZtMDAvekpOaFN1Vml1MWlVcENwVXAwV2dPTTNjdTlrOGRTbHdjWU9hNTVPV2NOeVpzN2tHYVNmS1ZZNFJTQmt6V3B5U0U5UXF3WSt5V1dmZmJSYWRiNkg0RUZ0NUZKMjlFSjkraVU5QnVweVZrQXd3VU1Ca092bVh3SXVMVE56QjAvWFlaNkE5bWdHM1hXUWpPUTBnalRBTGZlVHgwb2FXZ0RoeTZxRU0zR3R6TkJ2MmxncTBWY0U3T0wyYlRvMzNZM2k0T1NZU3g2NFBoV1JDeFhXcjZUQjFHak5IL2k1bzhVd2MraXdMZmkveUFobUVVWVhlWEhFNThaOWxLMURVbzhFQXFZNWk5VklBZFB5VGtqUkt3aDNkMmlMZFp2eC9MNG0vdFEwdmloNUZMOEI5T1FuOFVTUzVpbmZPRnlBclVYWnZyMmtXbStLYkRDc1d0Rm5sYW1xeVpMM2pjU3FjUzhsWTNsY2lNMCtvWWJwZU5Ybk5mTlNXYys5SGs3SHA4Y2sxb2VIMTRNaHBmbngyT3lEVnN6NnlBbTAvejRuTTdkK3VmMmwrbkh4Y0hleEY5bUFUdlI4RW5mVFA1VmYvOHo5SFp6RHY4Qi80d2MzK2ovM0xKYitSUnlBYWUvaDc4QXQ4azhTL2x4VjM5Y0tHUGo4ZHRXK1kzN2VYbE5QZlQ4eHZDem5EeHkreGpldC9CUDE2UTFVSlU0RTQ4NSt6by9mR0FzSTFUZVdxS25KOERTZ2ZodC9YV29YUkRkbHZBelp3ZHpTYlRiYlJrMGF4YjRxd3hzTExEWFNhNEpvRXEyZ0pjRHdvZFVSUjZGUStMOGtWLzdKeU9UeTUyK1VOYlA5cXRCNTgzbSt5L05oUFl5RHJYMWJ3c05OSjM0TkozTkVBWGpBaDdPYzUxeHRQWHBoL2ErbGZtUjdGdDhKNUhWRTIyZ092MmtRbWNvemFWZ1dDYTEzT0JJRlp3bU12OU1kOC80T01KOXc3NG5zOVp5Tm1Fa3pIZmkvZzQ0T0dFNzdtY1VqNEsrR2dQak1YSlBnOG0zSTI0UCtIN0h2Y2pma0I0NVBNSWM3elBDYk9BQng1bkVYZEhhMks5YWpwOWpvM04rQlU4YmR2MjF4dThYNXIwNmtxdklFWUdyVVZUWDEzQmROQmNHUmgxZFNYaUdsbm5qZXhNWHFDNXoyaFBjZHQzZ0JKUk45Y3huUHMyVTgzOE90RmF4WERZL2dLWmpnMkpydDJuT0tJMkVrSElsb0tmdGFtRmZkbTJ4N0Q0dlU2NzhKL0Z2dFMraEtBZkZnSjVURVJJRUt4UndqemhoM0JocU5qbWJMcUdiTE1MMmo1SXVUUmcvUFFwblNoMCt5RkpiSXpkVlVBRUNQSGhzYjYzc2Q4bVZPdEt2VVZHMDRQazV2WndkbklmNWVkNzhqejFacVBoRVBBaHE0RWJ3NlppUzNXNzc1MjRKNmVMbzhsbmQzYnNIOHEwaFQ0QWEwQTR4RXRXeGVrNkhjbDBsMzlrOVd6VE5NcnpzdFV3c2NZczlWY1lBOEdudFUwbi9haTR5NXFuVkhtN3hVYXJwc3p6TGxINHIwSnZBSUhndTlWZDdBMkY3ZWdiaW9OMi8vMkNYajU4SGszUThqSUtQMS9FeVhuVVFsaE44Vi8xa0xuZ2RDaDR4Q0JrYnNEZ0JiYkk2cE5sM21TbmtPdUIxVFpHenVvOVV3b2xZZjJmN2F4MHZFeTNJMjM0ajBDM3FyQ2dyc0xDZzZRdWhxU09TVmpWS0pGSXh6SFdNZ2lvb3N3bVF2OUxPZ204cVNtWFZjZTdBdDR1Ry93MzY0Rng5SThRQUFBPSIsInNoclRva2VuIjoiZXlKaGJHY2lPaUpTVXpJMU5pSXNJblI1Y0NJNkluQnZjQ0o5LmV5SmhkQ0k2SW1WNVNqQmxXRUZwVDJsS1MxWXhVV2xNUTBwb1lrZGphVTlwU2xOVmVra3hUbWxKYzBsdVp6RmtRMGsyU1dreFRGTlVUbEpQVnpWUFZXcGthVlZ0T1cxbFJ6RnNWMjA1V1dOWFNrbFhhMlJzWkhsSmMwbHRkSEJhUTBrMlNXa3hURk5VVGxKUFZ6VlBWV3BrYVZWdE9XMWxSekZzVjIwNVdXTlhTa2xYYTJSc1pIbEtPUzVsZVVwb1pGZFJhVTlwU21sT1JGWnNUVVJyZDFsVE1XdFpWMHB0VEZSUmVFNUVWWFJaVkVFeVQwTXdkMDlIUlRSTmFteHBUWHBDYkU5SFVXbE1RMHB3WXpOTmFVOXBTbTlrU0ZKM1kzcHZka3d6VGpCamVUVXpZVmMxYTJJelpIcE1iVFZzWkVNNWFscEhUVEZaVjFac1dWTXdlRTVYVFRGTVZGSnJXV3BaZEZscVFUTlBVekZ0V1RKR2ExcEVTVEZOUkZacldYcEpka2xwZDJsaFYwWXdTV3B2ZUU1cVozcE9la0YzVDFSSk1VeERTblZaYlZscFQycEZNazlFVFROTlJFRTFUV3BWYzBsdFZqUmpRMGsyVFZSWk5FMTZZelJPZWxsNVRsTjNhVmxYYkhaSmFtOXBVbFJLWVZveGJGRmFNMDUzVkVodmVXRjZTazVaVld0MldrUktUMXA2Vm1GTlJFSlpWbXRHUWxCVU1HbE1RMHBvWTBoQ2NGcERTVFpKYlVWNldWUk5lbGw2U21oTVZFazFUMGRWZEU1RVJtdE5VekExVFZSTk0weFhSVEZPUkZsNVRXMVZNazlFUm1wWmVVbHpTVzFHZDJOSGJHdFpWMDU1U1dwdmFVMXBTWE5KYlU1MVdtbEpObVY1U25Ga01uTnBUMjV6YVdFelVqVkphbTlwVld4T1FrbHBkMmxpYVVrMlNXNU5lRk5yV2pWVWJYZ3daVzFqTkdWc1pIWmFibWN5VDBWT05XRnFWazlpUkVwWFVtdEtZVk5WZEc5WGJrNDFUbXhKTTFwSFdtMWlSekY1VkVNd01WUnFaRE5oTWtwM1ZHcHNiRTlGY0VaYVJscHBWVVZvYWxkSE5XcFNSR2hwWWpCYVYxTnNTblJWU0VaTlYwaGthMXBHYUhOV1ZVWjRZbTVDVWxWWFRUQlJibkJoV1Zoa1IxbHVRazVOUkU0MlVWVjBiR1JzVlhsaU1qbGhWVVZTUTFaRVJuQmpWa0YzWkRKT2MxcEhXbWxXVkZKWVZYcHNlbUpIVWxCTVYwNU9aRmhPTWxWSVRtdGpia0pZVjBkTmVVeFlhRlJpVkZKSFYyNWFWMXByTVd4YWJUUTFWakZXVEdJeWNHNU9NVW93WkVWc1lXTXhPVmhYUlVaRVkxVkplRTlWV2s5VFZuQjJXVEZzUTFOSVFqRmxSMmhoWXpGc05VeFVSbGxXVjJSeVltMVNORm96YUhkU1J6VTBUWHBWTTFSWGNEWk9WRnA1VTBoa1RVOUZXa0pWUld3elZESjRVVlZYT1ZoU2EyODBWbFYwTTJSSGVIaGthelIzWkZVMWFFMHliR3BsV0ZKTFZtMTBiMXBYVWpKTlZrSTBWbTVrYTJGRmJFVlNSMmhPWVRGT1IxWnNTbTFrUnpVMVkydzVSazR5VVRSUmJFSTFXVzE0YkU5WFduTmtNM0JDVWpCS2VGSjZVVEZWYWtveVVUTkdWMVJyUmsxU2JVcDFXVEpPY1ZKSE5VbGtSVlp0VlZOSmMwbHRWV2xQYVVwQ1ZWVkdRMGxwZDJsWlYzaHVTV3B2YVZWc1RYbE9WRmxwVEVOS2NtRlhVV2xQYVVwU1RteGFNazVGUmpGTVdGVjZZMFJrVUdSdWNIVlNhMmhOVXpFNVdWWXpVblpOU0VwUVdIcHNkbHByYkZwU2FscHBWa1ZXYTFSRVRscEpiakU1VEVOS2NGcElRV2xQYVVwdlpFaFNkMk42YjNaTU0wNHdZM2sxTTJGWE5XdGlNMlI2VEcwMWJHUkRPV3BhUjAweFdWZFdiRmxUTUhoT1YwMHhURlJTYTFscVdYUlpha0V6VDFNeGJWa3lSbXRhUkVreFRVUldhMWw2U1haSmFYZHBZakpzYTBscWIybE5iVTB6VDFkT2FVNTZaM1JOTWs1cVdWTXdNRTB5Vm1sTVYwcHNXV3BKZEZscVFUVk9iVlpwVDFSSk1FNXRSVFJKYVhkcFkyMW5hVTlwU1hkTWEwWlRVMVZGTW1OVVpFZGxiVTVXVm01U2NrMXVaR3hhYm13d1RVZDRRMXBJWkc1aU1IQlpZMnhPWmsxdGRGZFJiVGxJV2pCc2VGRXlNVFpTUnpoM1ZUQkdRbEZUTkdsTVEwcDZaRmRKYVU5cFNYbFplbU0xV1RKSk0wOURNSHBaTWs1b1RGUlJlbHBYU1hSWmJWWnBUV2t4YVUxRWF6SmFWMGsxVFdwUk1sbFVaMmxNUTBvd1lWZFJhVTlwU21wYVIwMHhXVmRXYkZsVE1IaE9WMDB4VEZSU2ExbHFXWFJaYWtFelQxTXhiVmt5Um10YVJFa3hUVVJXYTFsNlNXbE1RMG94WkVkcmFVOXBTblJVYlRsWFlXcENhV041TVVaa1ZsbDZWMFpKTldKVVVqTmtSVVpDU1dsM2FXUnRWbmxKYW05cFRWTTBkMGx1TUM1a1FYRmZhRGt0TjFBMmVTMDNjMk4yV1VVeFdUWjBMVnA1VERKM1QySmthM1F0TW1oTlZrWm5NMDFpV1Mxd2JWbEROM2xJZFhkalVGTXRSbk41ZVdWdGRFOXhkbkpHZVVsbVV6VlZhMEpYWWxkbWNEUmhjRXREZERkSmVGUkhXSEZwZEd4MGRHVkZkRlpLTFZKbmNHMU9TVEl4T0hJM1NqWmFNMDlZU25SdmRsaGtUVWxaWmkxUFZEa3lZbFZEWVRGTFZrVnFkWEJEYjFaMk9XZ3lZbFZQTm05bFZWWTFUVmwwUWs5dmFraEJNRWRTUTFad2NGZDRUWE5tY1VkNVgxUjJaazlMTlcxMGNHUmxSRVp2VVhkUFlYSnFiMU51WTA0NE1XeFBXVEJ2YldJeGJWa3lNbFJVVm1WTk5GSmpOekZaTlhGbU9VVTJaVlZQZG1SNU5qSmhXRU5yVm5aM1NWVlVUMEk0VUVWd1owaHVhVkJmVjE5M2J6VklNbXN5VFVKbFQyMVJUbkpvTWxscldEVlFWVFJ2WTJ0aGVHdElXVjlGYVRoTmNHVk9aa2xQZWpBdFFsRjFXVFJ5ZW1ObmMwVmhSelJ4Tm5jaUxDSjBjeUk2TVRZNE16YzBNekkzT0N3aVlpSTZJazlRWDFGcmFXTmhUV1ZRZVZBMVptZHdTblY0WmtsV2QxbDVUSGsyVUVsa2RtWjJNV1o0YURsT1RHOGlMQ0p1YjI1alpTSTZJbVE1WVRsak1EazVNemN5WXpReU9HVTRZbU16TmpZeVpESmlNVFJsWlRkbElpd2lZMjVtSWpwN0ltcDNheUk2ZXlKcmFXUWlPaUprUjBZeU5ucExNek14WjA5UGQxODBlVjlWVTJZMlpqWnpVVXRTYmpFM1VHbFJWWEoyYVZVeExWUnZJaXdpWlNJNklrRlJRVUlpTENKcmRIa2lPaUpTVTBFaUxDSnVJam9pY3pGS1JubE9iSFI2WnpoNlYyOW1lRFk0UTNscU5VNXNNbFpHUWxwSlMyaGFjM2syVWpka1ptWnNiWEpNTFRWT04zZHJZbkJPT1dVNFNrVmtWbUpRU0dOWWJtTkVPR0p2UmxaS1VtMVFjVXhZZDJSa1dHeFZRWEZ1Y0ZGUll6UkNlbHBoZDBaaWNFMHdNM3BCUzJWMlZUSnZiMXBRUkVKVU1XbHhVREIzWTJ4a1ptSlZORmRUT1hOc1pFOHRZMDExYzNaUWMyUnljRmRZWXpJdGVGTnRORVphZGxabVRXVm1iamxYVlV0dmFtYzNVblIwU1ZwelgxZFlRVU54UWpFNVJrNUpXbTlqV1VKSWNIVjRhRnB6V1hrdE1WaFZaMnR1WkhobmVIQkVibmd6TlRkTmFubzFObkpJZDB3NFJrRlFTWGRQYkZCUmIxZEdTamhWUzNkMGJIRjJUakIxVG1FemFXTjVkRXBXYTJobFpIWXhVSGhXZDJSb1NVUkVhRTFyVTBaV1VtWjBibmx5WDBVM1pEaENVSGxpYkdVNVpteDNla0ZIUW5GSE5EVlNNblpEY1ZaT1FVeEdZbTVqWTJwRWJraDBSV1pSSW4xOWZRLnJjckZBX25NdlMydW9HRjNQMExZb3U0dldKVlNWTWhFUVEzM2ZERHdBVTFyTDFtaTg5Zk1oZ3FYdFFkU0NlUmNNLWdsM1ZPN29PRUlwdVQ4cjBNdmtPd09VZmRtaUlZakhDTWtIcV81YjFaZjV4TDdLXzJvU29TbUNCaV9vZHI4cElfM1l1LV9XNHJiejU2Zno1dW1RQU1TeU9HMV9DTU10T0wyS25iM002R0JCbHMtaDVCVXdMY09lQnVVeUMydzZmeEJmbWVfR1JWZ2RMYVlfdC1USGJsWVNmdVpuOGFrbGFqb0xTVHpZZXg4RVpOM0xlTjRxZTA1S3lGZnlVLWRiSGM1c1NWeTFuczdQaGVJTXYwWFRVZ3VJV1ZEZzhQSzluNElaUU1CT3VBSVdqUmc4VGprRUNiMnNUR3dBeDdaTDAxdjFFRHh2anE1dHAwWExPd0F2QSJ9.", + "incomingCallContext": "eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJjYyI6Ikg0c0lBQUFBQUFBQUNzMVliVy9iT0JMK0s0SVAyQTkzcFVWU2xFUVNNQTZPazdScG1qUk40clE0QkJkUUZDVnJJMHNxSmNkT3UvM3ZPNVNkeEttNzI5N2Q3bUVWUUJiSjRjd3p3NWQ1SnA4SFdwWGxhZDBWV2FGVlY5VFZRSDRlWkxhZXU5OGlIY2dCbDBxM2tpU3BValFSU0lRNFJpeGtGQ1ZKeEpDS0UwbzF4b3FuN0FiM0QrRW9FNEloVHRNRXhRd3JSRWlnY0lveHkxUXdlREZJaTdZcDFmMnBtaHZRRHgybVNwdTZxTG9qWnk5S2pBa05OaWloSkVETUJCd3BsV3FVSlZFWXFaU213cVF3cDFSVnZsQzVjWE9xUlZtK0dEVEtkb1V1R3JWUlJFeVVabW1Ha2NaUmlwZ2dCSEVGcnl4TjRpeElDZVdFZ2FKWmthWUczTTVVMlpvbkxKZjNqVVBYR250bjdMaHBRTEt4ZFdOc2Q3K244clhOTHk4R1hmMEhCQ3BRQWhtVkJTaGttMEJGU244M1VHc2xHS052dkI2ZUh3cFVvalZMVTBGUlNKbEdqT2dZS1pFeFJJUWdJalVKeVhTNkd5aHIybnBoZGE5MzhDTmUvMFlFeTZLNmJWMFFWZGNwUFFObHM2NXJXdW43cWltR1dWbmtzdzdtcmU2SDdTMnN5VkRYY3pmaTMxRmZOLzRLYVkzTW9xb1JKa090dDJTMDl1K0luOVgyMXFSK0ZyQkVoeVpCbk5NRVhCUVJTdUtZSTZZenczVkVJb3dUbjhaK1FmeUFDWDhONVovRmlBRG91VWtMTmE3YXBiRUFUbXRBTmxkclozSUlRdnVYUVB3QVpvUFptcCtON3Y0U3lOWlFOcmdXYVhOcFZkVTJ0WFhvb0FuWVNEQ00yWkJFd1pEaVFBWXM1djdneXlidWs3cnFUQVd5bndkNi9iazVtS3BweXMyVjViZXBPNTVKV1Njd2NEZkMxL2E2cWtmSW95RUxQZXdkblhwSFo4d2pOQjVpK0NOdXVCMjFFQzJZN0JwNjlDQVM4V0ZFaDVTUUlSR0JHMHBHazB0Sk5xZkpkWFFqN1BVZjg1RmFwRVh0aFhDT0krLzg4c3dmWDUxNUJETlB3RHZ3Q0NFZTRXQ2VleUtHSG1pNVRnNDQ4SGVNcXBIdGRJTnNXM3d5Vyswc2tYLzNWbWdPd09FOGV4QUJyNFViUWFidHpMTkczN21QdGZnS3RVVmVLVGhhK2UvTmV0SXRuUmZ4dWwxb2d4YVpWYm4wUHh6blQzM05NcFZ2N3ZDN1czMDFyaXR6TlQxVXg1Zjc3MTd5S1I1dm9ad3ZWdXVXVmxWYXBLb3pFbHozcHZ0bkhsem9PTVlSQzhoWFRtK0MyTjBETnB1Vks4K3FOTFVRTkJEZ3NHU2haOTJPV1l2dGFxZGIya1BoUXJ5clBmNHg3ZkhYMmlsZ2QyNHAzWUVGQ2xzaHd2R09CY2d1SWYyK2hWNXMxd0w5a3kzQXZ1c2pSR2pJcWNBa0RyMlFEZ21CUThmNVVFUWVuRG5SNjdZRzhzMkQ3dWNBdGxiQU83bWNucDhlN1FQY01NSWhqMElTQzhETUdkczFUWjlNY3hGRjlIOHlIVCthanVJUWxqc0drWkRGZ1dBMDJOa1ljTFQ2d0RhcWJRRUE0M0JWUlRqNkNrQ0lneWo2TVFSTUFOcGRLL1QvWUNYYzJvYk9TTWhGUVBBZmJvVCtXVVpLbFpoU3psVlJvZjdhWFBmT2kxU1NoeXNyV1JwVjVyVXR1dGxjSmt2dE5VcmZtcTVSaGZXV0pvSExaWVBYM2pkZERjZCtmSEJ4TXptNUFTSjM4K3BrUExtNWVEVW1OeHg3UlFVWG41SHZEOHV6OFhneC9kZkhLcGhoVlgwNFZjMkhsLzg0bWRXWHVqMmY1djVia3gxZFRLOStvZjhPeUMva0FjaEdQZjJlK3Vwb1BIbXR4NGRNdkpxeGVWWk8ycGY2NUZEYzU3NDJ5YUxGcTlONU9iOHYzL1hxSCs3SFpxNGFTQ2ZNdXpoNmMreTdWSW1mRFFudlpVeXB6Ny91ZHdtbG43STdBbW5tNHVqODRIUmJXemJ2MWlOSjBWbFkyZEd1SmJnbHdaVFlVcmlleEQxVlZXYVZqS3I2bVR6MnppWW4wMTM3M1BXUGQvc2g1NTBmN0gvTEU5aklwalROREhJSU1uZVEwWGN3Z0FoR0pIbytML0FtcDk5eW43ditiL2hIc1J0Z1R6T2FycGpEYmZ0Z0NYS2pzWTBGTmkzYm1VSTBqRHpHSklsbHVDLzN4cEpQNUlUS1NTUVBZN2tmU1JGS0FkOUNUb1NrWEI3c3U0OHhsdEZFa2owNU9aVGhuZ3dtVWdReXBuSk1KQXZrNGFFVUUzbEFKQjFMc2kveFpoT1lWZGZqOHh3MWs5ZndMSmZMNFhxREQydWJYMStiRlpCa3dGcDE3ZlUxdUlObXFZVloxOWNxYVpITDNjaDU4a3hiOEtUdGtiWDlqcUpNdGQxTkF1ZCtXYVRkN0NZekprM2dzUDBOU2gzSGlXNkNSeHJSV28yQXNPV1FabDF0NFY1dTdJRVd2ekg1dW9TSU5BMUV6QkNqUkNFV2NJRjRURUlFWGRpd1dCc2xIUDB6TFpTYlBXZDdxL1hDUXZEengzcWlNc3UzV2VZNGR0OEJCQkRZNGJHNWQ5UnZ3OVg2MWlENEVPYjVsTktEeWZuUG4zajdtczJxa3pmTDBRajBRMWtETndiSStORXllWGUzUEx3dDNzZWZQcFluWWZLYWZIUXlvTllDY0tCTERzWFp1aDRwVEYrQUZPMzVabWhjbHZVU3lreloyWVg1QW5PQWU3clk5TkNQcXJ1aWU2eVZ0MGNjV2JWMVdmYUZ3bi9JdkVITkUvZUd4amI3aHFiLzZ2ajF4WlMrZmMvd3BKdE5qMi9IckxqaVMwZXJmektqS09BVVIyRklJU3NLWUJBMGhtQVU3Y21pN0lvenFQWWdiSnNvRisyZXJhR2NoZzN3RkdpbzhSYjVOdE9HL3duMHk1b0ZVTGN4VHFHbTFFRDFvWkJHU1dBNE1vU0ZobVpRNjhXdVR2MnZDa3F3bTl0NjBmUjJWMkMzcndkL0JjRGt6ekNSRUFBQSIsInNoclRva2VuIjoiZXlKaGJHY2lPaUpTVXpJMU5pSXNJblI1Y0NJNkluQnZjQ0o5LmV5SmhkQ0k2SW1WNVNqQmxXRUZwVDJsS1MxWXhVV2xNUTBwb1lrZGphVTlwU2xOVmVra3hUbWxKYzBsdVp6RmtRMGsyU1dreFRGTlVUbEpQVnpWUFZXcGthVlZ0T1cxbFJ6RnNWMjA1V1dOWFNrbFhhMlJzWkhsSmMwbHRkSEJhUTBrMlNXa3hURk5VVGxKUFZ6VlBWV3BrYVZWdE9XMWxSekZzVjIwNVdXTlhTa2xYYTJSc1pIbEtPUzVsZVVwb1pGZFJhVTlwU21sT1JGWnNUVVJyZDFsVE1XdFpWMHB0VEZSUmVFNUVWWFJaVkVFeVQwTXdkMDlIUlRSTmFteHBUWHBDYkU5SFVXbE1RMHB3WXpOTmFVOXBTbTlrU0ZKM1kzcHZka3d6VGpCamVUVXpZVmMxYTJJelpIcE1iVFZzWkVNNWFscEhUVEZaVjFac1dWTXdlRTVYVFRGTVZGSnJXV3BaZEZscVFUTlBVekZ0V1RKR2ExcEVTVEZOUkZacldYcEpka2xwZDJsaFYwWXdTV3B2ZUU1cVp6Rk5WRVV6VFZSQk1FeERTblZaYlZscFQycEZNazlFVlhoTlZHTjRUVVJSYzBsdFZqUmpRMGsyVFZSWk5FNVVTWGROZW1kM1RrTjNhVmxYYkhaSmFtOXBVbFJLWVZveGJFOWhhemxRWld4Q2RscHJhR2xUZW1oNVQwWndjbVJ1VWpGT01HUXdUVlZLYmxGVU1HbE1RMHBvWTBoQ2NGcERTVFpKYlVWNldWUk5lbGw2U21oTVZFazFUMGRWZEU1RVJtdE5VekExVFZSTk0weFhSVEZPUkZsNVRXMVZNazlFUm1wWmVVbHpTVzFHZDJOSGJHdFpWMDU1U1dwdmFVMXBTWE5KYlU1MVdtbEpObVY1U25Ga01uTnBUMjV6YVdFelVqVkphbTlwVld4T1FrbHBkMmxpYVVrMlNXNW5NR1Z1VG5KU1JGWnRXbFpTWms5VlJsRllNamt3WlZjNU0xUXdkRkZrUld3MlRtMDVOVlZzYUVka1ZqbHBWRE5rZDFwVlVraGxSVW95VFRKYWQxSlZVbGxaYTBsM1pGZGFRazlFYkRCYWJHdzJVV3BrZEZWWE5EQlphM0JyVkZSR1RsWlZjSEZPYmxaM1ZVVTFXRk5XUm5wWk1sWkZVMWRrV1ZOSFpFWlJWbXgxVXpGR1NXSnNRbFJrYTA1TFpVWndkRmt5Vmtaa1NHZzBVekJ3YzFKNlRqSlhhemg2WVZWd1RGUXdXa05SV0VWM1dtMXNlVlZJUWxGTlZqa3pWa1JzYzJReE9VSldWR00wVWtaR1IxUldRblpZTVd3MllrZEtOV0pzWkZSaVZtUkNZV3huZUZKWVVsZGpha1p1WVROT1VtSjZhM1JPTURsMlRUTm9iMkZWY0cxWmJGSlFVMGRHYTFwSFNscE9SbFUwVlZoR1ZGSnNaSE5pV0ZaMFlqRkdjMUpGU25aYU1rbDNZak5qTUZwVlpFZGFSR1JxWTNwWk5FMUdUWGRYYW1SRllVVkdlVmxZVG1sWFZ6ZzFWVEprUlV4VlJuTlBWMHBxVTFkT1RsRXdaRFZoUjBaNFlrVk5kMkV5V2tWVk0wNUVWa1pPVVZWV09XMVRWV3cyVDBSU01HVkhaRlJOVlU1SFVtMDVhVk5ITVVaV2JFcE9aRmRSTUZaSGFFbFZWbVEwVFZVMWQySXpiSFprU0ZvMFZGVldlVlpFV21aWFV6Rm9UVmhHUkU1R09WcE9SWFExVlZOSmMwbHRWV2xQYVVwQ1ZWVkdRMGxwZDJsWlYzaHVTV3B2YVZWc1RYbE9WRmxwVEVOS2NtRlhVV2xQYVVreFRGUk9jMlJxYkZOa1NFa3hWMVJTUWxwRlpFdGlSWFJVWW1reE1tSkdWWFJrVld4SlQxVmFORTFXWkcxWFJFNUlWRWhLVkZwSGJGSkpiakU1VEVOS2NGcElRV2xQYVVwdlpFaFNkMk42YjNaTU0wNHdZM2sxTTJGWE5XdGlNMlI2VEcwMWJHUkRPV3BhUjAweFdWZFdiRmxUTUhoT1YwMHhURlJTYTFscVdYUlpha0V6VDFNeGJWa3lSbXRhUkVreFRVUldhMWw2U1haSmFYZHBZakpzYTBscWIybE5iVTB6VDFkT2FVNTZaM1JOTWs1cVdWTXdNRTB5Vm1sTVYwcHNXV3BKZEZscVFUVk9iVlpwVDFSSk1FNXRSVFJKYVhkcFkyMW5hVTlwU1hkTWEwWlRVMVZGTW1OVVpFZGxiVTVXVm01U2NrMXVaR3hhYm13d1RVZDRRMXBJWkc1aU1IQlpZMnhPWmsxdGRGZFJiVGxJV2pCc2VGRXlNVFpTUnpoM1ZUQkdRbEZUTkdsTVEwcDZaRmRKYVU5cFNYbFplbU0xV1RKSk0wOURNSHBaTWs1b1RGUlJlbHBYU1hSWmJWWnBUV2t4YVUxRWF6SmFWMGsxVFdwUk1sbFVaMmxNUTBvd1lWZFJhVTlwU21wYVIwMHhXVmRXYkZsVE1IaE9WMDB4VEZSU2ExbHFXWFJaYWtFelQxTXhiVmt5Um10YVJFa3hUVVJXYTFsNlNXbE1RMG94WkVkcmFVOXBTbTFsV0ZaWlVsaGtXbFpYV1hkalZYaHdaRE5vUm1KVmFIUllNRVpDU1dsM2FXUnRWbmxKYW05cFRWTTBkMGx1TUM1d1JtUklMV05IVVhkRFExcE5OREJmVjBOQldFbG1aak0xYmtZM2RFbzBabUp1YVcweVZIaFdiVXBpTkRSQmVrMWhaMjV1ZGtoTmVGUlpXVU01TjNsRU0wazBRbTFWVldKc2JrMVdOVmRKYWtSeVRVSlRabFJ3TW1zM1kxSjRaR2s1Ym5SVVEwWXdhMlZoU2taU01VUlJOVE5JVFVab1ptbHBZekpETmw4dGJGOVpRVFpLV2sxWlMwNVFhREY0VDBWb1ozQnlhbWhyVG1sbVdqQlBYMlZtU2xkaU4ycHVjbFZVY0RCVFVGZzFSMHRtVm1Ga2JqQnpiVlZ5YWs5SUxVSk1NMlpaWjBrNFdqWktSMGxWTUU1RlZuRktkVlUyVUUxdmVIRnhWMXB0TTNSNFMyUm1SV3Q1YUhRMU1GZ3RNbTVVV25aMGFETkhVVFIxYkhwak9GQXdRelZtU2xaak1IWjFSRzQxV0RjNWRYaDBXRk5tU0d0VU4wMVNZelJpTWpVeFRsbE5WRWRGYTNab05uY3dSRmt6UzBReFNGZHZka1U0ZWxNMlEwSldjMFp3Y1VGbVVGRTBhRnBZWlVnM1UwMHhUV1pYYm1jaUxDSjBjeUk2TVRZNE5URXpNakE0TWl3aVlpSTZJbVp3VTNVeU5XUmpSRVUwY1VaT1QwdE1iRFpaWDFGS1dtaERkQzFuYjNJemNsSmlka2xuT1dnM2NYTWlMQ0p1YjI1alpTSTZJamc0TURjMU9UYzVZalF4TWpReVl6YzVabVJsTlRBMk16azVNalF3TXpRNUlpd2lZMjVtSWpwN0ltcDNheUk2ZXlKcmFXUWlPaUk0VnpONGIzTkhTR0oyZUZSQlEwdENkVVI0T1c1UVlrSmlOMWRtUWtkWGNWRlhRME55TVc1bExYa3dJaXdpWlNJNklrRlJRVUlpTENKcmRIa2lPaUpTVTBFaUxDSnVJam9pZURSNmMydEVOV1psVkY4NVFWQmZiM1I1YjNkUFMxQjBTWG8yYjNsU1dFWjFYMkpQZDNCbFJFZDRRbll6Wm5CRlJGaGlRakIxWmtFNE9YUm1XWHBDTjIxUmJqUmlTbVJOTVUxVlNtbzJkWEJRVGxkSlVYTmpaVVJKWjFoSVowVkJXVzVMVVVodVVGTjJRMHA0V20xalpVVjBlSGhMU214SE0zWmFUek5wU2t0UFJrSkJjVEJtYVhKUWNGQXhYM2RVT1d4M1gwRlZOemhFVVVaTlVHOWZXWHBzWW5sdVYxTnRWMEZxV0RGRmRGWnlNV2RyYzFGdk9TMDNUMjh6ZUdocFNtWmlWRTlJWVdSa1lsazBWVGhSY1ZOR1YyeHRkVzF2VVd4RVFtOW5ZakJ2ZHpSbFIwWmtOMk56Tmpnd1V6QmFOMFJvUVhKaGMySlpiemxUWjBRdFFXdzVZbU5KWTAxRFIzbG9ZWEZzUXpCclprUlRjME5VVTFCUlgyWkpTWG80TkhSNFoxTXhRMFpHYjJKSWJVVldVazExWkRSVWFFaFJWM2d4VG5CdmVXOTBkbmhOUlhKVU5sOVpMV0V4Y1VNMFgxazBTM2xSSW4xOWZRLm5JY3pmbW5veWUtMDZZcGQ0bl90dWh0T0hJTXI2Zmdqcm1lWE95cUxiTy1BNzFjZHU3UmRxYTRacFZYTEVkVEJvb285LV8xTlhnSUpQdHBvdkEzUHhVOWE2eVNfSmhVMVI5UzJfZmFZNjYxTFRpU0M5ZURxd2ZxZHlXRGMtRzVXRUlwRFpSQnZ1c3k0YThVei03QlFfYk9iZzhxa2pvMlNTaG9IMGpUUDVULU5VUTdSMTQ5WHRMcC04TGFqMHZGQ3Q2TEhUTDlEQWt4cVpLaWpLbDlwTHhzNmJhankyNmltQU1pR2hMaDc0UjBkM2pkMWVzS1FuWk42Q2JvOWdubmhiMUwteXRkcE9PTzdFSHZHUjdGdG9JLTluSUt0VXg2UGc0RGlzWUJuWkl4OUxLX09Qdzd6b2Y4Y016My1nRzN2Ql9kdnBqOUEtUTJvUDJaRUloUlp5dyJ9.", "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized", - "answeredByIdentifier": { + "answeredBy": { "id": "Sanitized" } }, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "758", + "Content-Length": "679", "Content-Type": "application/json; charset=utf-8", - "Date": "Wed, 10 May 2023 18:27:58 GMT", - "X-Azure-Ref": "0L\u002BJbZAAAAAAbEr1ps0KlRL2Su/Cm3kg3WVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "Date": "Fri, 26 May 2023 20:14:44 GMT", + "X-Azure-Ref": "0MxNxZAAAAACaISOOtdDCTK3Er4Ib0vG6WVZSMzExMDAwMTE1MDI5ADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", "X-Cache": "CONFIG_NOCACHE", - "X-Microsoft-Skype-Chain-ID": "5c23d0a4-95b7-46c9-a9fc-ebb0ec772d26", - "x-ms-client-request-id": "18b704b02e88b21ed149bda8b09d279d" + "X-Microsoft-Skype-Chain-ID": "f38d4482-00cb-4c06-b3e8-e145e2f5077c", + "x-ms-client-request-id": "77000500ebb066fd8a8127832676df91" }, "ResponseBody": { - "callConnectionId": "401f3500-eedd-459e-b245-fecf573f8d3b", - "serverCallId": "aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzd2UtMDIuY29udi5za3lwZS5jb20vY29udi93RExtMll6WEFFLXVZOThYVWJmVDl3P2k9MjAmZT02MzgxOTI3NTY3ODYzNzY4NjM=", + "callConnectionId": "421f1200-ca93-4303-88d0-9d16b830eeef", + "serverCallId": "aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC94LWNvbnYtZXVuby0wMS5jb252LnNreXBlLmNvbS9jb252L0hLSlNVMk9XNDBDdGhVS2tBNGlWOHc/aT0xJmU9NjM4MjA2NTUyNjc1OTIxMDI3", "targets": [ { "rawId": "Sanitized", @@ -213,47 +207,46 @@ ], "callConnectionState": "unknown", "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized", - "mediaSubscriptionId": "90a404b4-f9e1-4142-9c6c-f1812eb04d78", "sourceDisplayName": "", - "sourceIdentity": { + "source": { "rawId": "Sanitized", "kind": "communicationUser", "communicationUser": { "id": "Sanitized" } }, - "correlationId": "5c23d0a4-95b7-46c9-a9fc-ebb0ec772d26", - "answeredByIdentifier": { + "correlationId": "f38d4482-00cb-4c06-b3e8-e145e2f5077c", + "answeredBy": { "id": "Sanitized" } } }, { - "RequestUri": "https://sanitized.skype.com/calling/callConnections/401f3500-18a6-4ec3-8c05-415a2f0a3c09?api-version=2023-01-15-preview", + "RequestUri": "https://sanitized.skype.com/calling/callConnections/421f1200-0b6d-4499-9060-01d269293aa1?api-version=2023-03-06", "RequestMethod": "GET", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "a7df56ebc4c60da6e5ef53258ac9dc2c", + "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "c0b07b2f15e08c2325d7b29c6adaf746", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:59 GMT", + "x-ms-date": "Fri, 26 May 2023 20:14:47 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "718", + "Content-Length": "649", "Content-Type": "application/json; charset=utf-8", - "Date": "Wed, 10 May 2023 18:28:00 GMT", - "X-Azure-Ref": "0MeJbZAAAAADzjorbF3d1Roj7mpnnakyWWVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "Date": "Fri, 26 May 2023 20:14:49 GMT", + "X-Azure-Ref": "0ORNxZAAAAAAhYoc8FMglTLtjm\u002BXYKa7xWVZSMzExMDAwMTE1MDI5ADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", "X-Cache": "CONFIG_NOCACHE", - "X-Microsoft-Skype-Chain-ID": "5c23d0a4-95b7-46c9-a9fc-ebb0ec772d26", - "x-ms-client-request-id": "a7df56ebc4c60da6e5ef53258ac9dc2c" + "X-Microsoft-Skype-Chain-ID": "f38d4482-00cb-4c06-b3e8-e145e2f5077c", + "x-ms-client-request-id": "c0b07b2f15e08c2325d7b29c6adaf746" }, "ResponseBody": { - "callConnectionId": "401f3500-18a6-4ec3-8c05-415a2f0a3c09", - "serverCallId": "aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzd2UtMDIuY29udi5za3lwZS5jb20vY29udi93RExtMll6WEFFLXVZOThYVWJmVDl3P2k9MjAmZT02MzgxOTI3NTY3ODYzNzY4NjM=", + "callConnectionId": "421f1200-0b6d-4499-9060-01d269293aa1", + "serverCallId": "aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC94LWNvbnYtZXVuby0wMS5jb252LnNreXBlLmNvbS9jb252L0hLSlNVMk9XNDBDdGhVS2tBNGlWOHc/aT0xJmU9NjM4MjA2NTUyNjc1OTIxMDI3", "targets": [ { "rawId": "Sanitized", @@ -265,20 +258,19 @@ ], "callConnectionState": "connected", "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized", - "mediaSubscriptionId": "9c7a35da-aaaf-4cea-9584-52328db85fba", "sourceDisplayName": "", - "sourceIdentity": { + "source": { "rawId": "Sanitized", "kind": "communicationUser", "communicationUser": { "id": "Sanitized" } }, - "correlationId": "5c23d0a4-95b7-46c9-a9fc-ebb0ec772d26" + "correlationId": "f38d4482-00cb-4c06-b3e8-e145e2f5077c" } }, { - "RequestUri": "https://sanitized.skype.com/calling/callConnections/401f3500-18a6-4ec3-8c05-415a2f0a3c09/participants:remove?api-version=2023-01-15-preview", + "RequestUri": "https://sanitized.skype.com/calling/callConnections/421f1200-0b6d-4499-9060-01d269293aa1/participants:remove?api-version=2023-03-06", "RequestMethod": "POST", "RequestHeaders": { "Accept": "application/json", @@ -287,10 +279,10 @@ "Content-Type": "application/json", "Repeatability-First-Sent": "Sanitized", "Repeatability-Request-ID": "Sanitized", - "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "3c8e90c73a6e452366de2165b2e39f82", + "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "792954c3f6e2f7c73183fbf5900285f8", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:27:59 GMT", + "x-ms-date": "Fri, 26 May 2023 20:14:47 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": { @@ -306,23 +298,52 @@ "ResponseHeaders": { "Content-Length": "45", "Content-Type": "application/json; charset=utf-8", - "Date": "Wed, 10 May 2023 18:28:00 GMT", + "Date": "Fri, 26 May 2023 20:14:50 GMT", "Repeatability-Result": "accepted", - "X-Azure-Ref": "0MeJbZAAAAACCGpFNwZIhT7zeG\u002BBLBqM8WVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "X-Azure-Ref": "0ORNxZAAAAADu12JKJrP0TZ/S50fVIaCUWVZSMzExMDAwMTE1MDI5ADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", "X-Cache": "CONFIG_NOCACHE", - "X-Microsoft-Skype-Chain-ID": "5c23d0a4-95b7-46c9-a9fc-ebb0ec772d26", - "x-ms-client-request-id": "3c8e90c73a6e452366de2165b2e39f82" + "X-Microsoft-Skype-Chain-ID": "f38d4482-00cb-4c06-b3e8-e145e2f5077c", + "x-ms-client-request-id": "792954c3f6e2f7c73183fbf5900285f8" }, "ResponseBody": { "operationContext": "MyTestOperationcontext" } + }, + { + "RequestUri": "https://sanitized.skype.com/calling/callConnections/421f1200-0b6d-4499-9060-01d269293aa1?api-version=2023-03-06", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "d5e2950e6b9beb82e17451d83960fcaf", + "x-ms-content-sha256": "Sanitized", + "x-ms-date": "Fri, 26 May 2023 20:14:48 GMT", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Content-Length": "53", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 26 May 2023 20:14:50 GMT", + "X-Azure-Ref": "0OxNxZAAAAACRFFAh5hD3Sr0Rl0JdwoSRWVZSMzExMDAwMTE1MDI5ADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "X-Cache": "CONFIG_NOCACHE", + "X-Microsoft-Skype-Chain-ID": "7bd2dc88-fa43-4bf4-89f7-ba82cb230152", + "x-ms-client-request-id": "d5e2950e6b9beb82e17451d83960fcaf" + }, + "ResponseBody": { + "error": { + "code": "8522", + "message": "Call not found." + } + } } ], "Variables": { "COMMUNICATION_LIVETEST_STATIC_CONNECTION_STRING": "endpoint=https://acs-callautomationtestsupporter.communication.azure.com/;accesskey=Kg==", "DISPATCHER_ENDPOINT": "https://sanitized.skype.com", - "PMA_Endpoint": null, - "RandomSeed": "1040498375", + "RandomSeed": "1763110729", "SERVICEBUS_STRING": "Endpoint=sb://acs-callautomationtestservicebus.servicebus.windows.net/;SharedAccessKeyName=Sanitized;SharedAccessKey=Kg==" } } diff --git a/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecords/CallConnectionAutomatedLiveTests/RemoveAUserCallTestAsync.json b/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecords/CallConnectionAutomatedLiveTests/RemoveAUserCallTestAsync.json index e5b182f11a01..56249c17585a 100644 --- a/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecords/CallConnectionAutomatedLiveTests/RemoveAUserCallTestAsync.json +++ b/sdk/communication/Azure.Communication.CallAutomation/tests/SessionRecords/CallConnectionAutomatedLiveTests/RemoveAUserCallTestAsync.json @@ -8,11 +8,11 @@ "Authorization": "Sanitized", "Content-Length": "2", "Content-Type": "application/json", - "traceparent": "00-9ec380680a588b424dea22b4ffc071b7-16da1ce3f729288e-00", - "User-Agent": "azsdk-net-Communication.Identity/1.3.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "f18d48251a263c3a346aedb98d0e49c4", + "traceparent": "00-bb265745f66714cd2214ede1f29fa173-7ff44b3666d9e988-00", + "User-Agent": "azsdk-net-Communication.Identity/1.3.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "2b32556db34a3d78cf59805f84908c0f", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:28:01 GMT", + "x-ms-date": "Fri, 26 May 2023 20:12:41 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": {}, @@ -21,14 +21,14 @@ "api-supported-versions": "2020-07-20-preview2, 2021-02-22-preview1, 2021-03-07, 2021-10-31-preview, 2021-11-01, 2022-06-01, 2022-10-01, 2023-08-01", "Content-Length": "31", "Content-Type": "application/json; charset=utf-8", - "Date": "Wed, 10 May 2023 18:28:01 GMT", - "MS-CV": "Ex1VtRgNJUGVZEoZaQhiLA.0", + "Date": "Fri, 26 May 2023 20:12:43 GMT", + "MS-CV": "4/z6y6CL6Ein2jzEZH3PwQ.0", "Request-Context": "appId=", "Strict-Transport-Security": "max-age=2592000", - "X-Azure-Ref": "0MuJbZAAAAAC\u002BZzOGovyhS7NG031TTp\u002B3WVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "X-Azure-Ref": "0vBJxZAAAAAB5xnbsdM6BRbbHYrYvWollV1NURURHRTA4MTIAOWZjN2I1MTktYThjYy00Zjg5LTkzNWUtYzkxNDhhZTA5ZTgx", "X-Cache": "CONFIG_NOCACHE", - "x-ms-client-request-id": "f18d48251a263c3a346aedb98d0e49c4", - "X-Processing-Time": "83ms" + "x-ms-client-request-id": "2b32556db34a3d78cf59805f84908c0f", + "X-Processing-Time": "40ms" }, "ResponseBody": { "identity": { @@ -44,11 +44,11 @@ "Authorization": "Sanitized", "Content-Length": "2", "Content-Type": "application/json", - "traceparent": "00-0b232075061002164badc560656ee211-a017fc4da15e4e76-00", - "User-Agent": "azsdk-net-Communication.Identity/1.3.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "d55700b2093312ceed2587febd9cf1e9", + "traceparent": "00-ec9f07f9a7c038dc30259658a5db05d1-b0ceb95b454436fb-00", + "User-Agent": "azsdk-net-Communication.Identity/1.3.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "47b5134580f104cbf0c9e60d341d7870", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:28:01 GMT", + "x-ms-date": "Fri, 26 May 2023 20:12:42 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": {}, @@ -57,14 +57,14 @@ "api-supported-versions": "2020-07-20-preview2, 2021-02-22-preview1, 2021-03-07, 2021-10-31-preview, 2021-11-01, 2022-06-01, 2022-10-01, 2023-08-01", "Content-Length": "31", "Content-Type": "application/json; charset=utf-8", - "Date": "Wed, 10 May 2023 18:28:02 GMT", - "MS-CV": "sMHYaVDBCkmPO0swtqae8w.0", + "Date": "Fri, 26 May 2023 20:12:43 GMT", + "MS-CV": "CeWJBfwmukGnuxQNsYNEqw.0", "Request-Context": "appId=", "Strict-Transport-Security": "max-age=2592000", - "X-Azure-Ref": "0MuJbZAAAAABlFD9/x5\u002BiQK/f6v9mWTV/WVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "X-Azure-Ref": "0vBJxZAAAAAA7EtdW2q2DS41ErTsTaRddV1NURURHRTA4MTIAOWZjN2I1MTktYThjYy00Zjg5LTkzNWUtYzkxNDhhZTA5ZTgx", "X-Cache": "CONFIG_NOCACHE", - "x-ms-client-request-id": "d55700b2093312ceed2587febd9cf1e9", - "X-Processing-Time": "83ms" + "x-ms-client-request-id": "47b5134580f104cbf0c9e60d341d7870", + "X-Processing-Time": "16ms" }, "ResponseBody": { "identity": { @@ -79,37 +79,36 @@ "Accept": "application/json", "Authorization": "Sanitized", "Content-Length": "0", - "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "X-FORWARDED-HOST": "Sanitized", - "x-ms-client-request-id": "f55cdec76acd68d9a3c7f03d95a7ca52", + "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "44d8491e102ec59f01b2f7b11fa96aa2", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:28:01 GMT", + "x-ms-date": "Fri, 26 May 2023 20:12:42 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { "Content-Length": "0", - "Date": "Wed, 10 May 2023 18:28:04 GMT", + "Date": "Fri, 26 May 2023 20:12:46 GMT", "Server": "Kestrel" }, "ResponseBody": null }, { - "RequestUri": "https://sanitized.skype.com/calling/callConnections?api-version=2023-01-15-preview", + "RequestUri": "https://sanitized.skype.com/calling/callConnections?api-version=2023-03-06", "RequestMethod": "POST", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "Content-Length": "205", + "Content-Length": "197", "Content-Type": "application/json", "Repeatability-First-Sent": "Sanitized", "Repeatability-Request-ID": "Sanitized", - "traceparent": "00-0f5e34a5de37ff0f49782157f9ede824-015689214cde8bd6-00", - "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "8e15d7de42261b2e797b0400923b7f98", + "traceparent": "00-9bd418a0b1bec509708693403adaf5b2-a9a28aa62a0cce28-00", + "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "9dbe2503b798ed368a2e3b81cc6a09b1", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:28:03 GMT", + "x-ms-date": "Fri, 26 May 2023 20:12:44 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": { @@ -121,27 +120,23 @@ } } ], - "sourceIdentity": { + "source": { "id": "Sanitized" }, - "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized", - "customContext": { - "voipHeaders": { - } - } + "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized" }, "StatusCode": 201, "ResponseHeaders": { - "Content-Length": "533", + "Content-Length": "464", "Content-Type": "application/json; charset=utf-8", - "Date": "Wed, 10 May 2023 18:28:03 GMT", - "X-Azure-Ref": "0NOJbZAAAAAD3bMpI/SIzT6E8rkQ1bVIDWVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "Date": "Fri, 26 May 2023 20:12:48 GMT", + "X-Azure-Ref": "0vhJxZAAAAAANB7KdXWu9RopNMbwkL4ZCV1NURURHRTA4MTIAOWZjN2I1MTktYThjYy00Zjg5LTkzNWUtYzkxNDhhZTA5ZTgx", "X-Cache": "CONFIG_NOCACHE", - "X-Microsoft-Skype-Chain-ID": "cadda1f9-13c6-4bcd-95b1-3133a803a141", - "x-ms-client-request-id": "8e15d7de42261b2e797b0400923b7f98" + "X-Microsoft-Skype-Chain-ID": "7df71103-abac-4898-b050-807b84bd0f80", + "x-ms-client-request-id": "9dbe2503b798ed368a2e3b81cc6a09b1" }, "ResponseBody": { - "callConnectionId": "401f3500-3e66-41b7-a9bb-2d7a775ac83b", + "callConnectionId": "441f1200-99ea-4773-9879-89c9f13fef83", "targets": [ { "rawId": "Sanitized", @@ -153,55 +148,54 @@ ], "callConnectionState": "connecting", "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized", - "mediaSubscriptionId": "e5597982-9c01-48ba-9456-330972d7321d", "sourceDisplayName": "", - "sourceIdentity": { + "source": { "rawId": "Sanitized", "kind": "communicationUser", "communicationUser": { "id": "Sanitized" } }, - "correlationId": "cadda1f9-13c6-4bcd-95b1-3133a803a141" + "correlationId": "7df71103-abac-4898-b050-807b84bd0f80" } }, { - "RequestUri": "https://sanitized.skype.com/calling/callConnections:answer?api-version=2023-01-15-preview", + "RequestUri": "https://sanitized.skype.com/calling/callConnections:answer?api-version=2023-03-06", "RequestMethod": "POST", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "Content-Length": "8212", + "Content-Length": "8170", "Content-Type": "application/json", "Repeatability-First-Sent": "Sanitized", "Repeatability-Request-ID": "Sanitized", - "traceparent": "00-d57d684d66fabf8fc0ca406ec645973c-d200f661e1ae5be2-00", - "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "aff2037953b248f727ef316c19907d45", + "traceparent": "00-1bcf87cbeb99c8401b0e08a2512b448a-51e0a4d545c7ec49-00", + "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "3b410fe047b835e074ef463e8919e446", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:28:05 GMT", + "x-ms-date": "Fri, 26 May 2023 20:12:51 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": { - "incomingCallContext": "eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJjYyI6Ikg0c0lBQUFBQUFBQUNzMVkrMi9iT0JMK1Z3UWZzRDljUzV1a0hxUUlHQWZIaVZzM2o3cDVkTGVMNEFLS29tVFZzcVNsNUZlNi9kOTNLRHVKVS9lNnZic3RzQXFpaU9Sd3ZtK0dqNW5KcDQ2U2VYNVJObG1TS2Rsa1pkRVJuenFKS2VmMmJ4WjNSSWNMcVdwQm9saEtHb1VvOURGRG51OVJGRVdCaHlTTEtGVVlTeDU3ZDdoOUNFY3lVREZ5SldQSWpkMFFjZTFLSEdNY0U2WTdMenR4VmxlNTNGekl1UWI5MEtHTHVDcXpvaGxiUEJyaWhDZGFJUytNSlBLa0JCQS9aQ2lodnArRW5tWTRjV0ZPTG90MElWTnQ1eFNMUEgvWnFhUnBNcFZWY3FkSU01VlFnaFdLWlJJaUQ4Y004VEJLa0l4WUZIbytWYkgwUWRFMGkyTU5aaWN5ci9VVGwrdE5aZG5WMml5MUdWUVZTRmFtckxScE5rY3kzV0orZnRscHlyL0NVVG82Y0ZUeXA0N2FLc0VZZmVYMThIeVhvMExpSy9CcWhFTHFCOGdqbUlPamRJS1NTQ1dNSmlya3NYdm9LS1ByY21GVXE3ZnpQVmIvQncvbVdUR3JyUk5sMDBnMUJXWFRwcWxxMGV2Skt1c21lWlpPRzVpMzNuVHJHYXhKVjVWek85SmIwcDZxZWtxaFJiM1NDQk5VeDdDMnM3cXIxSjZrVXIwbDZTV2xtZW00aDVsTHNZNEM1SU81c0NNOGduaWdDTUtlSmxwVHloSVo5eWpyWmFUbmVtRnZTK2hmV1o5Z0ZHQkVQRVJDNjlHNWpqTTVLQURXQUZ1bGdPcGNicTFMd1N2MTM4aUVCMHFIUmhqOVVhdm1iMFIxUytpUTZDS3VybzBzNnFvMGxpNDBnYXhQdTRUWVg2L3Jlc0wxR085MVB1OVdabGdXalM1QTlsTkhiVDkzWjFsV1ZiNjc1WHAxYkU5MGxKY1JEQ3o3K05iY0ZtVWZPY1RGQWZFZDdJd3ZuUEhFY3dobFhRdy94QXJVL1JwOENkTnRRL1YzSWg3dThxQkxBdEwxcVIySStzTnJRWFlIMEhZMGZleTBIL08rWE1SWjZmallEd0xuOG5yU0c3eWZPQVI3VGdodjF5R0VPSVFET0hkQ0JqM1FzcDBjV09CdlFzcSthVlNGVEozZDY3MTJFb2wvT21zMEI5SndBVGhndjFQREZTTGlldW9ZclpiMll5dStSbldXRmhMT1l2cXRXVSs2aGJXQmJkdVowbWlSR0prS0hiMllQdlZWSzVnMGE1SlIrTjRsVVQ1T1ZrVnhkcmw1ODRwY1puc3M1NHYxdHFWa0VXZXhiTFFBdzUyYjQ0bERZVGtZRGp5WFBETjU1OEJtQTh4TWtxOGRJK1BZZ01PNmxIQllySUE0eG02WHJkeWhjcnFuM0EvQnZ3ZksyWGNxWjE4cXA4RGNHaVZWQXdBUWZuQ0EyUmNBSGx5NDlEc0FXcmxEQVBwakFXREh0ZTRoMU9jUWl3bnpuZmEwZVYzQ2VaZGczNEhqRnJiYWpZYm90TlArak1DZTk1M3o2NXZMaS9HeDR4S1BrSUI3bEFRZUNSaWpubmNJVForZ2VSZ0U5UCtCWm8vUUZLeUFoZllBbkpFZ1lNRWhOSnowMXEyVnJHdkE5emdCZUJ3OHh3YzZKQWpwZHhFZ3NHa1BRZWlQQi9IM2RxREY4SG5vRXZ4WFk5QWZoSkhMU09kaUxyTUN0WGZsdG5lZXhXSW5zRWJSU3NzOExVM1dUT2NpV2ltbmttcW1tMHBteGxucENPNlVIVjJ6cVpvU2p2dmc1T3B1ZUg1SEtMOTdmVDRZM2wyOUhwQTdqcDJzZ1B0T0MvYnJ6OHZKaGJ0eGM4T09xMWdXZERBWjRRVTVHeTFuNy9sNmZobzNIK09qYXZZNy9iZExmaWNQUkhicTZaK3BmNFd2UHN5SzMyYVQwOUhaZlg1Vi96YXF5Q3YzV0wwZDk5NlY5Kzl1N3VrSFBrL2pkYXYrNFZxczVyS0NHT0k1VitPejB4NEpkcEhrY1NoMFhqRktlL3pMZmh0RjJpbUhJeEJicnNhWEp4ZjcycEo1c3gySnNzYkF3dllQa2VCMkJLaHdUK0YyRW5ka1VlaDExQy9LWi9MWW1RelBidzd4dWUwZkhQWkRvTHM4T2Y2YUpiQ05kYTZyYVZsb3BKY1F4Zzg0Z0Fna0NzSHplYTR6dlBpYStkejJmOFUraXUyQTl6U2phckk1M0xNUFNCQVN0YWtNWk4yaW5rb0VLYkl6WW1JWUNNYkZFUk00aEZBb1hDSkNDb1RFMEJlZUswWlkwSkZ3QjJMZ2lSUGZpaDI1SW9EbVFCd2ZpK0ZBOENNeFBCSHVpY0JVSElXQ2N4RlFFYmlDbllqUllBdXMxMDNMejdFSm1yaUZaN1ZhZGJjYnZGdWE5UFpXcnlHWkJxNUZVOS9lZ2psb0dodVlkWHNyb3hyWmtJMnNKYyswdVUvYUhyTzJieWhLWk4zY1JYRHNWMW5jVE84U3JlTUlEdHMvb0NTeWFkQ2QrNWc5MUVZaHlOSlNDSysyQnJFdk8vYVFMWi9wZEZ0cUpDd09Fc1VRZGFFdzgyek5FeVZTb2xEREhjMWRiak01VytmVVVKYTJpZHBicFJZR25KOCsxaDJGWHIxTkVwdDZ0eDJROVVGS2VLbzNOdC9icFdkdHE3TTZQWDRkM3I4NFMwZlQ4dzhmcjE3OGZEUCtWYWY5UHVpSDhnZHVESkRKenQvb1luUUI5UWs1OVdoMWRqS3YzbVR2UUFiVUdpQU9XWkpsTWRuV0xabHVDNVdzdnR3TkRmSzhYR2t3ckRFTC9Sbm1RTUpwZmROU0h4ZkxySG1zcWZkSGJJWnF5anh2NjRmL0t2OEdKYnNNbk1KUXNkelB2YUhaRzk2Ly9hRFBqOCtuTitnK2VQM0xOTU5YNlNhRnBOcjdTZmNERndJT1pSRC9JT3k3blBvVVhKSFY1NHU4eVNaUUU0TFRkajdPNmlOVHlsakI4ais1T2RiUkl0MVBydUUvQisyaUtyalhKWUVhbTdnSzZzY0lTdHJRandoeWlldEtqbDBKa2QrV1IvOUwyUW00cVNrWFZZdTdCdHkyYXZ3RDFKTlR5cmNRQUFBPSIsInNoclRva2VuIjoiZXlKaGJHY2lPaUpTVXpJMU5pSXNJblI1Y0NJNkluQnZjQ0o5LmV5SmhkQ0k2SW1WNVNqQmxXRUZwVDJsS1MxWXhVV2xNUTBwb1lrZGphVTlwU2xOVmVra3hUbWxKYzBsdVp6RmtRMGsyU1dreFRGTlVUbEpQVnpWUFZXcGthVlZ0T1cxbFJ6RnNWMjA1V1dOWFNrbFhhMlJzWkhsSmMwbHRkSEJhUTBrMlNXa3hURk5VVGxKUFZ6VlBWV3BrYVZWdE9XMWxSekZzVjIwNVdXTlhTa2xYYTJSc1pIbEtPUzVsZVVwb1pGZFJhVTlwU21sT1JGWnNUVVJyZDFsVE1XdFpWMHB0VEZSUmVFNUVWWFJaVkVFeVQwTXdkMDlIUlRSTmFteHBUWHBDYkU5SFVXbE1RMHB3WXpOTmFVOXBTbTlrU0ZKM1kzcHZka3d6VGpCamVUVXpZVmMxYTJJelpIcE1iVFZzWkVNNWFscEhUVEZaVjFac1dWTXdlRTVYVFRGTVZGSnJXV3BaZEZscVFUTlBVekZ0V1RKR2ExcEVTVEZOUkZacldYcEpka2xwZDJsaFYwWXdTV3B2ZUU1cVozcE9la0YzVDFSSk1VeERTblZaYlZscFQycEZNazlFVFROTlJFRTFUV3BWYzBsdFZqUmpRMGsyVFZSWk5FMTZZelJPZWxsNVRsTjNhVmxYYkhaSmFtOXBVbFJLWVZveGJGRmFNMDUzVkVodmVXRjZTazVaVld0MldrUktUMXA2Vm1GTlJFSlpWbXRHUWxCVU1HbE1RMHBvWTBoQ2NGcERTVFpKYlVWNldWUk5lbGw2U21oTVZFazFUMGRWZEU1RVJtdE5VekExVFZSTk0weFhSVEZPUkZsNVRXMVZNazlFUm1wWmVVbHpTVzFHZDJOSGJHdFpWMDU1U1dwdmFVMXBTWE5KYlU1MVdtbEpObVY1U25Ga01uTnBUMjV6YVdFelVqVkphbTlwVld4T1FrbHBkMmxpYVVrMlNXNU5lRk5yV2pWVWJYZ3daVzFqTkdWc1pIWmFibWN5VDBWT05XRnFWazlpUkVwWFVtdEtZVk5WZEc5WGJrNDFUbXhKTTFwSFdtMWlSekY1VkVNd01WUnFaRE5oTWtwM1ZHcHNiRTlGY0VaYVJscHBWVVZvYWxkSE5XcFNSR2hwWWpCYVYxTnNTblJWU0VaTlYwaGthMXBHYUhOV1ZVWjRZbTVDVWxWWFRUQlJibkJoV1Zoa1IxbHVRazVOUkU0MlVWVjBiR1JzVlhsaU1qbGhWVVZTUTFaRVJuQmpWa0YzWkRKT2MxcEhXbWxXVkZKWVZYcHNlbUpIVWxCTVYwNU9aRmhPTWxWSVRtdGpia0pZVjBkTmVVeFlhRlJpVkZKSFYyNWFWMXByTVd4YWJUUTFWakZXVEdJeWNHNU9NVW93WkVWc1lXTXhPVmhYUlVaRVkxVkplRTlWV2s5VFZuQjJXVEZzUTFOSVFqRmxSMmhoWXpGc05VeFVSbGxXVjJSeVltMVNORm96YUhkU1J6VTBUWHBWTTFSWGNEWk9WRnA1VTBoa1RVOUZXa0pWUld3elZESjRVVlZYT1ZoU2EyODBWbFYwTTJSSGVIaGthelIzWkZVMWFFMHliR3BsV0ZKTFZtMTBiMXBYVWpKTlZrSTBWbTVrYTJGRmJFVlNSMmhPWVRGT1IxWnNTbTFrUnpVMVkydzVSazR5VVRSUmJFSTFXVzE0YkU5WFduTmtNM0JDVWpCS2VGSjZVVEZWYWtveVVUTkdWMVJyUmsxU2JVcDFXVEpPY1ZKSE5VbGtSVlp0VlZOSmMwbHRWV2xQYVVwQ1ZWVkdRMGxwZDJsWlYzaHVTV3B2YVZWc1RYbE9WRmxwVEVOS2NtRlhVV2xQYVVwU1RteGFNazVGUmpGTVdGVjZZMFJrVUdSdWNIVlNhMmhOVXpFNVdWWXpVblpOU0VwUVdIcHNkbHByYkZwU2FscHBWa1ZXYTFSRVRscEpiakU1VEVOS2NGcElRV2xQYVVwdlpFaFNkMk42YjNaTU0wNHdZM2sxTTJGWE5XdGlNMlI2VEcwMWJHUkRPV3BhUjAweFdWZFdiRmxUTUhoT1YwMHhURlJTYTFscVdYUlpha0V6VDFNeGJWa3lSbXRhUkVreFRVUldhMWw2U1haSmFYZHBZakpzYTBscWIybE5iVTB6VDFkT2FVNTZaM1JOTWs1cVdWTXdNRTB5Vm1sTVYwcHNXV3BKZEZscVFUVk9iVlpwVDFSSk1FNXRSVFJKYVhkcFkyMW5hVTlwU1hkTWEwWlRVMVZGTW1OVVpFZGxiVTVXVm01U2NrMXVaR3hhYm13d1RVZDRRMXBJWkc1aU1IQlpZMnhPWmsxdGRGZFJiVGxJV2pCc2VGRXlNVFpTUnpoM1ZUQkdRbEZUTkdsTVEwcDZaRmRKYVU5cFNYbFplbU0xV1RKSk0wOURNSHBaTWs1b1RGUlJlbHBYU1hSWmJWWnBUV2t4YVUxRWF6SmFWMGsxVFdwUk1sbFVaMmxNUTBvd1lWZFJhVTlwU21wYVIwMHhXVmRXYkZsVE1IaE9WMDB4VEZSU2ExbHFXWFJaYWtFelQxTXhiVmt5Um10YVJFa3hUVVJXYTFsNlNXbE1RMG94WkVkcmFVOXBTblJVYlRsWFlXcENhV041TVVaa1ZsbDZWMFpKTldKVVVqTmtSVVpDU1dsM2FXUnRWbmxKYW05cFRWTTBkMGx1TUM1a1FYRmZhRGt0TjFBMmVTMDNjMk4yV1VVeFdUWjBMVnA1VERKM1QySmthM1F0TW1oTlZrWm5NMDFpV1Mxd2JWbEROM2xJZFhkalVGTXRSbk41ZVdWdGRFOXhkbkpHZVVsbVV6VlZhMEpYWWxkbWNEUmhjRXREZERkSmVGUkhXSEZwZEd4MGRHVkZkRlpLTFZKbmNHMU9TVEl4T0hJM1NqWmFNMDlZU25SdmRsaGtUVWxaWmkxUFZEa3lZbFZEWVRGTFZrVnFkWEJEYjFaMk9XZ3lZbFZQTm05bFZWWTFUVmwwUWs5dmFraEJNRWRTUTFad2NGZDRUWE5tY1VkNVgxUjJaazlMTlcxMGNHUmxSRVp2VVhkUFlYSnFiMU51WTA0NE1XeFBXVEJ2YldJeGJWa3lNbFJVVm1WTk5GSmpOekZaTlhGbU9VVTJaVlZQZG1SNU5qSmhXRU5yVm5aM1NWVlVUMEk0VUVWd1owaHVhVkJmVjE5M2J6VklNbXN5VFVKbFQyMVJUbkpvTWxscldEVlFWVFJ2WTJ0aGVHdElXVjlGYVRoTmNHVk9aa2xQZWpBdFFsRjFXVFJ5ZW1ObmMwVmhSelJ4Tm5jaUxDSjBjeUk2TVRZNE16YzBNekk0TlN3aVlpSTZJbE5xWWxkWmR6WTVWamh6YVdVMlFWbEtNM1pEUjJoRWRtWlBabVJRVTJ4MFJYQnpSMjFUVjAxbU56QWlMQ0p1YjI1alpTSTZJbUkyTWpsaVl6RmtZMkprTlRSbE9XTTVOVGMzTkRFNE5XUmxNakk1TVdObUlpd2lZMjVtSWpwN0ltcDNheUk2ZXlKcmFXUWlPaUprUjBZeU5ucExNek14WjA5UGQxODBlVjlWVTJZMlpqWnpVVXRTYmpFM1VHbFJWWEoyYVZVeExWUnZJaXdpWlNJNklrRlJRVUlpTENKcmRIa2lPaUpTVTBFaUxDSnVJam9pY3pGS1JubE9iSFI2WnpoNlYyOW1lRFk0UTNscU5VNXNNbFpHUWxwSlMyaGFjM2syVWpka1ptWnNiWEpNTFRWT04zZHJZbkJPT1dVNFNrVmtWbUpRU0dOWWJtTkVPR0p2UmxaS1VtMVFjVXhZZDJSa1dHeFZRWEZ1Y0ZGUll6UkNlbHBoZDBaaWNFMHdNM3BCUzJWMlZUSnZiMXBRUkVKVU1XbHhVREIzWTJ4a1ptSlZORmRUT1hOc1pFOHRZMDExYzNaUWMyUnljRmRZWXpJdGVGTnRORVphZGxabVRXVm1iamxYVlV0dmFtYzNVblIwU1ZwelgxZFlRVU54UWpFNVJrNUpXbTlqV1VKSWNIVjRhRnB6V1hrdE1WaFZaMnR1WkhobmVIQkVibmd6TlRkTmFubzFObkpJZDB3NFJrRlFTWGRQYkZCUmIxZEdTamhWUzNkMGJIRjJUakIxVG1FemFXTjVkRXBXYTJobFpIWXhVSGhXZDJSb1NVUkVhRTFyVTBaV1VtWjBibmx5WDBVM1pEaENVSGxpYkdVNVpteDNla0ZIUW5GSE5EVlNNblpEY1ZaT1FVeEdZbTVqWTJwRWJraDBSV1pSSW4xOWZRLkZLOG02S05yUXBtWkh0LVkzZF9zNlRhdDFEX0pGSkwybzdZWVFVY3NfVWdtYkZhdFQ5ZTZjNWhjNFIzUDdsOGFlZk5ha2QwWDlfNVgzUnF1Tm9CMWRHUUpSbDhrOFE0Qmxmc1lMeTdUNUp6NlpCcEQ3Z09kdkdXNzBqQlVQQXl4RHpmVGVpR0Qwck9qbThtQmJZWC1BQWFRRzJvaTRFbUNKS04xVm9iaENBOUJBN3NQMjV3NU1hc1oxbndkMVpyUGJRZkhJUDhHbW1BeHNMdndnZWhJNndXMm1IRm5JMFBMdGREdlN2a2htcU5zeXFPT3dOeUxvMTRIcnVfcDUwb0lOY3hPRktVLXNyZGVTR3FmQ2hOX2NZbm9PMGRrSi1ER0p1WVVzTndtVDkwcnlscC1YOWJ4NDJkOXBFVGtWRW5lcVE5OWExRkNJelBWUmtKamZWLXpsdyJ9.", + "incomingCallContext": "eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJjYyI6Ikg0c0lBQUFBQUFBQUNzMVlhMi9qdUJYOUs0SUw5RU4zYUpFVUtWRUVqTUp4a2gxdkVpZklZM2M2Q0JwUUZHVnJJa3RhU242a3MvUGZleWs3aVNkT2Q5SjJCMWdGa01YWE9lZGV2dTdONTU1V1JUR3AyanpMdFdyenF1ekp6NzNNVm5QM202YzkyUk5TNlVhU0pGV0tKakdLT1k0UTQ0eWlKQWtaVWxGQ3FjWllpWlRkNGU0aEFtVnhURkZLRTRyaVdJZUl4NEhDS2NhYWNOTjcxMHZ6cGk3VXcwVE5EZUJEaFNuVHVzckxkdXo0RWg0YXdTT09PSWxUeEVUR2tjQU1veWhraE9rNERCWEdNS1pRNVhTaHBzYU5LUmRGOGE1WEs5dm1PcS9WRmtpSExFNTBCSkpObUNDbXd4U3BWRE9Va01nRVNzVlVhdzVBc3p4TkRaaWRxYUl4ejFxdUgycW5yakYyYWV5d3JxRm5iYXZhMlBiaFFFMDNuRi9lOWRycWozQlVsdTA1S3Z1bW96WWdHS05YWG8vUG14d2xvb0NKV0RrMUFvT2pERWNxeVNJVWtEQWpxY2pTTU1QN2pyS21xUlpXZDdpOXQxajlIenhZNU9WOTQ1eW8ybGJwR1lETjJyWnVwTytyT3U5blJUNmR0VEJ1L2RCdjdtRk8rcnFhdXhaL1NYMWQrMnVrTlRLTHNrS1k5TFhlNmFPMXZ5UitWdGw3ay9wS1lNSkNxcEJSQ1VITWdENFZnSjFZTUJ3S0dqTXRzRThqUHlkK3dHSi9JK1h2K1lDQTZMbEpjelVzbTVXeGJsVnBVRFpYRzJPbTRJVG1UNkg0VWN4V3N6V2ZqRzcvRk1vMlVyYTZGbWw5YlZYWjFKVjE2cUFJMmtqUWoxaWZoRUdmNGtBR0xCSis3OHZXNzZPcWJFMEpmVC8zOU9aenV6RlZYUmZiSTh0dlVyYzlrNkpLb0dFNXdMZjJ0cXdHeUtNaDRSNzJ4aE52Zk1FOFFxTStoai9pbXB0QkE5NkN3YTZnQjQ5ZFF0RVBhWjhTMGlkeDRKcVN3ZWhha3UxdWNoWHRBSHZkeDN5Z0ZtbGVlU3dtSWZNdXJ5Lzg0YzhYSHNITWkrRWRlSVFRandpZ0YxNGNRUTJVWEtVQUhmZ2JwR3BnVzEwajIrVC9NanZsTEpGLzg5Wm9Ec0poUDN2Z0FhK0JFMEdtemN5elJpL2R4NmI3R2pYNXRGU3d0YWEvTitvWld6b3IrS2FjYTRNV21WVlR5YUw3eStlNmVwWEs4TU81bnJIVGoxcE1vcVBoNnY2bVZLYzNtUTUzVk00WDYwMUpxekxOVTlVYUNhWjdONGNYSGlVQmpuRElBdkxDNkswVDJ3ZlFack5pN1ZtVnBoYWNCaDBFVEJuM3JGc3htMjc3NkhRSG5jZk94ZnZvL0czby9DVTZCZTNPTEtWYllLQ3dGRUljdmNiQTZac1lPTjFub04rWkFkWmQ1eUZDT2V4UFRDTHVjZG9uQkRhZEVQMDQ5R0RQeFIyMk5YRGZQR0ovTFdCbkJyeXo2NXZMeWZqUUl6d1dFUlUwcEdGSVNjeERLdmFtSjloT1QwY3U0UDZtL3hjNWZ5Sm4wTWlFQUEyWUJoRVJYSWlYM0xDNU90ZldxbWxBQUJNRStISDRRZ0FQb1A2dENnSzJ0MFRZZGdLL0x3dmZXWWlPaElzNElQZ1BKNkhmaTZSUWlTbmtYT1VsNmc3T1RlMDhUeVY1UExTU2xWSEZ0TEo1TzV2TFpLVzlXdWw3MDlZcXQ5N0tKSEM4YlBYYWg3cXRZT01QajY3dVJtZDNoSXE3OTJmRDBkM1YreUc1RTlqTFN6ajZqTXlySTNQKzZicGQvSkJOVHZ5VGYveGdSNytjMFlQa3A2c1pQY2pHbjlvYlk4WSttLzlHL3htUTM4aWprQzA4L1JiOCtyamd4OWxpZmZtSkwwd3hPcWVqb3Y1SkxYOWVsbWVUVFA5NmNQUXhucCtlV056QlA1NlE5VnpWY0tFdzcycDhldUtUY0h1dFBEWEYzbzhScGI1NFdlK3VsRzdJZmd0Y05GZmp5NlBKTGxvMmJ6Y3RTZDVhbU5uQlBoT2NrMEFWN3dCdUJnbFBsYVZaSjRPeStxby85aTVHWnpmNy9NTFZEL2ZyNGRhN1BEcDh6UkpZeUtZdzlhd3FEVEpMdU5QM05FQVhqRWo0OWJqQUcwMWVNMSs0K2xmc285ZzFzT2NSZFp2UDRieDlaSUxiMGRqYVFqd3RtNWxDbEljZVk1SkVraC9LZzZFVUl6bWljaFRLNDBnZWhqTG1Nb2J2V0k1aVNZVThPblFmUXl6RGtTUUhjblFzK1lFTVJqSU9aRVRsa0VnV3lPTmpHWS9rRVpGMEtNbWh4TnRGWU5adHA4OXp3Wm04aFdlMVd2VTNDN3hmMmVudHJWbERtQXhheTdhNXZRVnowQ3kxTU9yMlZpVU5jcmMzY3BaOGhSWThvejNGYmI4RGxLbW12VXRnMzYveXRKM2RaY2FrQ1d5MnYwQ3k0NktpdStBcGtHaXNSaEN5VGVHaWRkbUZlN20yeDhENDFFeTdEQ0NLT01rSTVHbUNLMGdpRE9RQ0NSTVVaVG9ocVJGaGtobVgwcGdHRXM0dWFqdlhlbUhCK2RPbmpLSTBxL01zYzFGMlZ3RWhJTVNISitiQkJYL2JhSzByOVc1VzYvQ0VIZit5UGhaNGNqb2RuNFFmeWYxME1BQjhTR3pneElBK2grUk16eWRsck8wcCs2Q3kwL2JEV1pZTm9RL0FXaEFPQVpOVGNiSEpTSExUcFNCNWM3bHRHaFpGdFRKZ1dHc1g1Z3VNZ2VqVCthYVRQaTZYZWZ1VUxlKzJ1SERWVmtYUnBRci9aZXdOTU0vUk54UjI0MjhvK3ZvaG92T29YbDVqOU9QQko0VGZENU9QNzZjdXNQNnJHWVNCb0Rqa25JWVJqeUdHb0JFNEkyL09Ga1diWDBDK0IyN2Jlamx2RG13RmlUQXNnR2RIcHlaWlRIZGpiZml2d0daYTB5d2ljUFpBUnFnMFpPT3hRQW5tTU1zNFNnUkxVcHdKbHh2K1R5a2w4RTV0dGFnNzNqWHdkaG5odndIUHQ5NFBreEFBQUE9PSIsInNoclRva2VuIjoiZXlKaGJHY2lPaUpTVXpJMU5pSXNJblI1Y0NJNkluQnZjQ0o5LmV5SmhkQ0k2SW1WNVNqQmxXRUZwVDJsS1MxWXhVV2xNUTBwb1lrZGphVTlwU2xOVmVra3hUbWxKYzBsdVp6RmtRMGsyU1dreFRGTlVUbEpQVnpWUFZXcGthVlZ0T1cxbFJ6RnNWMjA1V1dOWFNrbFhhMlJzWkhsSmMwbHRkSEJhUTBrMlNXa3hURk5VVGxKUFZ6VlBWV3BrYVZWdE9XMWxSekZzVjIwNVdXTlhTa2xYYTJSc1pIbEtPUzVsZVVwb1pGZFJhVTlwU21sT1JGWnNUVVJyZDFsVE1XdFpWMHB0VEZSUmVFNUVWWFJaVkVFeVQwTXdkMDlIUlRSTmFteHBUWHBDYkU5SFVXbE1RMHB3WXpOTmFVOXBTbTlrU0ZKM1kzcHZka3d6VGpCamVUVXpZVmMxYTJJelpIcE1iVFZzWkVNNWFscEhUVEZaVjFac1dWTXdlRTVYVFRGTVZGSnJXV3BaZEZscVFUTlBVekZ0V1RKR2ExcEVTVEZOUkZacldYcEpka2xwZDJsaFYwWXdTV3B2ZUU1cVp6Rk5WRVV6VFZSQk1FeERTblZaYlZscFQycEZNazlFVlhoTlZHTjRUVVJSYzBsdFZqUmpRMGsyVFZSWk5FNVVTWGROZW1kM1RrTjNhVmxYYkhaSmFtOXBVbFJLWVZveGJFOWhhemxRWld4Q2RscHJhR2xUZW1oNVQwWndjbVJ1VWpGT01HUXdUVlZLYmxGVU1HbE1RMHBvWTBoQ2NGcERTVFpKYlVWNldWUk5lbGw2U21oTVZFazFUMGRWZEU1RVJtdE5VekExVFZSTk0weFhSVEZPUkZsNVRXMVZNazlFUm1wWmVVbHpTVzFHZDJOSGJHdFpWMDU1U1dwdmFVMXBTWE5KYlU1MVdtbEpObVY1U25Ga01uTnBUMjV6YVdFelVqVkphbTlwVld4T1FrbHBkMmxpYVVrMlNXNW5NR1Z1VG5KU1JGWnRXbFpTWms5VlJsRllNamt3WlZjNU0xUXdkRkZrUld3MlRtMDVOVlZzYUVka1ZqbHBWRE5rZDFwVlVraGxSVW95VFRKYWQxSlZVbGxaYTBsM1pGZGFRazlFYkRCYWJHdzJVV3BrZEZWWE5EQlphM0JyVkZSR1RsWlZjSEZPYmxaM1ZVVTFXRk5XUm5wWk1sWkZVMWRrV1ZOSFpFWlJWbXgxVXpGR1NXSnNRbFJrYTA1TFpVWndkRmt5Vmtaa1NHZzBVekJ3YzFKNlRqSlhhemg2WVZWd1RGUXdXa05SV0VWM1dtMXNlVlZJUWxGTlZqa3pWa1JzYzJReE9VSldWR00wVWtaR1IxUldRblpZTVd3MllrZEtOV0pzWkZSaVZtUkNZV3huZUZKWVVsZGpha1p1WVROT1VtSjZhM1JPTURsMlRUTm9iMkZWY0cxWmJGSlFVMGRHYTFwSFNscE9SbFUwVlZoR1ZGSnNaSE5pV0ZaMFlqRkdjMUpGU25aYU1rbDNZak5qTUZwVlpFZGFSR1JxWTNwWk5FMUdUWGRYYW1SRllVVkdlVmxZVG1sWFZ6ZzFWVEprUlV4VlJuTlBWMHBxVTFkT1RsRXdaRFZoUjBaNFlrVk5kMkV5V2tWVk0wNUVWa1pPVVZWV09XMVRWV3cyVDBSU01HVkhaRlJOVlU1SFVtMDVhVk5ITVVaV2JFcE9aRmRSTUZaSGFFbFZWbVEwVFZVMWQySXpiSFprU0ZvMFZGVldlVlpFV21aWFV6Rm9UVmhHUkU1R09WcE9SWFExVlZOSmMwbHRWV2xQYVVwQ1ZWVkdRMGxwZDJsWlYzaHVTV3B2YVZWc1RYbE9WRmxwVEVOS2NtRlhVV2xQYVVreFRGUk9jMlJxYkZOa1NFa3hWMVJTUWxwRlpFdGlSWFJVWW1reE1tSkdWWFJrVld4SlQxVmFORTFXWkcxWFJFNUlWRWhLVkZwSGJGSkpiakU1VEVOS2NGcElRV2xQYVVwdlpFaFNkMk42YjNaTU0wNHdZM2sxTTJGWE5XdGlNMlI2VEcwMWJHUkRPV3BhUjAweFdWZFdiRmxUTUhoT1YwMHhURlJTYTFscVdYUlpha0V6VDFNeGJWa3lSbXRhUkVreFRVUldhMWw2U1haSmFYZHBZakpzYTBscWIybE5iVTB6VDFkT2FVNTZaM1JOTWs1cVdWTXdNRTB5Vm1sTVYwcHNXV3BKZEZscVFUVk9iVlpwVDFSSk1FNXRSVFJKYVhkcFkyMW5hVTlwU1hkTWEwWlRVMVZGTW1OVVpFZGxiVTVXVm01U2NrMXVaR3hhYm13d1RVZDRRMXBJWkc1aU1IQlpZMnhPWmsxdGRGZFJiVGxJV2pCc2VGRXlNVFpTUnpoM1ZUQkdRbEZUTkdsTVEwcDZaRmRKYVU5cFNYbFplbU0xV1RKSk0wOURNSHBaTWs1b1RGUlJlbHBYU1hSWmJWWnBUV2t4YVUxRWF6SmFWMGsxVFdwUk1sbFVaMmxNUTBvd1lWZFJhVTlwU21wYVIwMHhXVmRXYkZsVE1IaE9WMDB4VEZSU2ExbHFXWFJaYWtFelQxTXhiVmt5Um10YVJFa3hUVVJXYTFsNlNXbE1RMG94WkVkcmFVOXBTbTFsV0ZaWlVsaGtXbFpYV1hkalZYaHdaRE5vUm1KVmFIUllNRVpDU1dsM2FXUnRWbmxKYW05cFRWTTBkMGx1TUM1d1JtUklMV05IVVhkRFExcE5OREJmVjBOQldFbG1aak0xYmtZM2RFbzBabUp1YVcweVZIaFdiVXBpTkRSQmVrMWhaMjV1ZGtoTmVGUlpXVU01TjNsRU0wazBRbTFWVldKc2JrMVdOVmRKYWtSeVRVSlRabFJ3TW1zM1kxSjRaR2s1Ym5SVVEwWXdhMlZoU2taU01VUlJOVE5JVFVab1ptbHBZekpETmw4dGJGOVpRVFpLV2sxWlMwNVFhREY0VDBWb1ozQnlhbWhyVG1sbVdqQlBYMlZtU2xkaU4ycHVjbFZVY0RCVFVGZzFSMHRtVm1Ga2JqQnpiVlZ5YWs5SUxVSk1NMlpaWjBrNFdqWktSMGxWTUU1RlZuRktkVlUyVUUxdmVIRnhWMXB0TTNSNFMyUm1SV3Q1YUhRMU1GZ3RNbTVVV25aMGFETkhVVFIxYkhwak9GQXdRelZtU2xaak1IWjFSRzQxV0RjNWRYaDBXRk5tU0d0VU4wMVNZelJpTWpVeFRsbE5WRWRGYTNab05uY3dSRmt6UzBReFNGZHZka1U0ZWxNMlEwSldjMFp3Y1VGbVVGRTBhRnBZWlVnM1UwMHhUV1pYYm1jaUxDSjBjeUk2TVRZNE5URXpNVGszTWl3aVlpSTZJa0YyY0hobk1ETjRNa2R3WVdGdFRGTlNNWGhXYVhoWVNqSmFlVkJvVm5aTFZERjZkRVZETlVSaFZ6Z2lMQ0p1YjI1alpTSTZJbU5pTkRBek1USm1PRGswWVRRMk5qWmhPRE0yWm1SaFpHRXlOelZoWWpVeUlpd2lZMjVtSWpwN0ltcDNheUk2ZXlKcmFXUWlPaUk0VnpONGIzTkhTR0oyZUZSQlEwdENkVVI0T1c1UVlrSmlOMWRtUWtkWGNWRlhRME55TVc1bExYa3dJaXdpWlNJNklrRlJRVUlpTENKcmRIa2lPaUpTVTBFaUxDSnVJam9pZURSNmMydEVOV1psVkY4NVFWQmZiM1I1YjNkUFMxQjBTWG8yYjNsU1dFWjFYMkpQZDNCbFJFZDRRbll6Wm5CRlJGaGlRakIxWmtFNE9YUm1XWHBDTjIxUmJqUmlTbVJOTVUxVlNtbzJkWEJRVGxkSlVYTmpaVVJKWjFoSVowVkJXVzVMVVVodVVGTjJRMHA0V20xalpVVjBlSGhMU214SE0zWmFUek5wU2t0UFJrSkJjVEJtYVhKUWNGQXhYM2RVT1d4M1gwRlZOemhFVVVaTlVHOWZXWHBzWW5sdVYxTnRWMEZxV0RGRmRGWnlNV2RyYzFGdk9TMDNUMjh6ZUdocFNtWmlWRTlJWVdSa1lsazBWVGhSY1ZOR1YyeHRkVzF2VVd4RVFtOW5ZakJ2ZHpSbFIwWmtOMk56Tmpnd1V6QmFOMFJvUVhKaGMySlpiemxUWjBRdFFXdzVZbU5KWTAxRFIzbG9ZWEZzUXpCclprUlRjME5VVTFCUlgyWkpTWG80TkhSNFoxTXhRMFpHYjJKSWJVVldVazExWkRSVWFFaFJWM2d4VG5CdmVXOTBkbmhOUlhKVU5sOVpMV0V4Y1VNMFgxazBTM2xSSW4xOWZRLkxxelVoVkMxek5nelNOMW9vZVQzazFCT1QtX3lYMVExM21xOXFHc3F2ZjlCNTlkMGplNlRBN0tXT1hocklwMUNOTkREZHVCSllqMXdYVmUyRWhxREN5VEZ4czZ3Q0d5RmNwQnNVMXpoYkVRSE1hdUZGZzI0bjI5WEUzRDh5Q1ZvX045MzJMcmVPRkZoQlpudk5vbi1kNWZuMUQ5SzJzQmMyYWFBNXFHbE5EaTFRN2VZSUxZXzdjZC1fVUxfMUVOdUR1eFJFVklMSHFEMi1fSExyTXN1c1NLUXE4VTkyOWdobGVyX2JuTlctQ1E3eFVlWS1zWjZtQlBjQkVBTkxwbVBqaUloUm5JQUlLZVQxRDhScWotcWN4TFhOWDJTeXllczR6QWszWVYxbF9TSjEzOUlyZ0pLRGZsRC1PQ051b2U2T1UwV1ZNSVV5SU1mS1piMTMwX3JLQSJ9.", "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized", - "answeredByIdentifier": { + "answeredBy": { "id": "Sanitized" } }, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "758", + "Content-Length": "679", "Content-Type": "application/json; charset=utf-8", - "Date": "Wed, 10 May 2023 18:28:05 GMT", - "X-Azure-Ref": "0NuJbZAAAAADz/HLZGSPtR4UcK/a5d5TpWVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "Date": "Fri, 26 May 2023 20:12:54 GMT", + "X-Azure-Ref": "0xRJxZAAAAACWDahdIOOKRrnDCcV3qN\u002B8V1NURURHRTA4MTIAOWZjN2I1MTktYThjYy00Zjg5LTkzNWUtYzkxNDhhZTA5ZTgx", "X-Cache": "CONFIG_NOCACHE", - "X-Microsoft-Skype-Chain-ID": "cadda1f9-13c6-4bcd-95b1-3133a803a141", - "x-ms-client-request-id": "aff2037953b248f727ef316c19907d45" + "X-Microsoft-Skype-Chain-ID": "7df71103-abac-4898-b050-807b84bd0f80", + "x-ms-client-request-id": "3b410fe047b835e074ef463e8919e446" }, "ResponseBody": { - "callConnectionId": "401f3500-b1a5-4fee-a5f3-9a109921c01d", - "serverCallId": "aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzd2UtMDIuY29udi5za3lwZS5jb20vY29udi9Dek9ZZU1ETWhVLXo2SFhoaTBTZ3lnP2k9NCZlPTYzODE5Mjc2NzYxNTIzODI1Mg==", + "callConnectionId": "441f1200-b23e-4a5d-a0c9-bb32d84e9535", + "serverCallId": "aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC94LWNvbnYtZXVuby0wMS5jb252LnNreXBlLmNvbS9jb252L2N5NzJtN3B2VDAtR0JqLTBIQWJaSGc/aT0xJmU9NjM4MjA2NTUyNjc1OTIxMDI3", "targets": [ { "rawId": "Sanitized", @@ -213,47 +207,46 @@ ], "callConnectionState": "unknown", "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized", - "mediaSubscriptionId": "3ce1ceb9-8dd8-48f1-938c-9312a7602034", "sourceDisplayName": "", - "sourceIdentity": { + "source": { "rawId": "Sanitized", "kind": "communicationUser", "communicationUser": { "id": "Sanitized" } }, - "correlationId": "cadda1f9-13c6-4bcd-95b1-3133a803a141", - "answeredByIdentifier": { + "correlationId": "7df71103-abac-4898-b050-807b84bd0f80", + "answeredBy": { "id": "Sanitized" } } }, { - "RequestUri": "https://sanitized.skype.com/calling/callConnections/401f3500-3e66-41b7-a9bb-2d7a775ac83b?api-version=2023-01-15-preview", + "RequestUri": "https://sanitized.skype.com/calling/callConnections/441f1200-99ea-4773-9879-89c9f13fef83?api-version=2023-03-06", "RequestMethod": "GET", "RequestHeaders": { "Accept": "application/json", "Authorization": "Sanitized", - "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "e61f345b638685c2b0407b5265d8d567", + "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "0e0a435fdb5f66d712eaba00d51df896", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:28:07 GMT", + "x-ms-date": "Fri, 26 May 2023 20:12:56 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": null, "StatusCode": 200, "ResponseHeaders": { - "Content-Length": "718", + "Content-Length": "649", "Content-Type": "application/json; charset=utf-8", - "Date": "Wed, 10 May 2023 18:28:07 GMT", - "X-Azure-Ref": "0OOJbZAAAAADVVLhE43JXRLGncJLxMhjYWVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "Date": "Fri, 26 May 2023 20:12:58 GMT", + "X-Azure-Ref": "0yhJxZAAAAACuuIZ4y3wyRpBNxQutxh3tV1NURURHRTA4MTIAOWZjN2I1MTktYThjYy00Zjg5LTkzNWUtYzkxNDhhZTA5ZTgx", "X-Cache": "CONFIG_NOCACHE", - "X-Microsoft-Skype-Chain-ID": "cadda1f9-13c6-4bcd-95b1-3133a803a141", - "x-ms-client-request-id": "e61f345b638685c2b0407b5265d8d567" + "X-Microsoft-Skype-Chain-ID": "7df71103-abac-4898-b050-807b84bd0f80", + "x-ms-client-request-id": "0e0a435fdb5f66d712eaba00d51df896" }, "ResponseBody": { - "callConnectionId": "401f3500-3e66-41b7-a9bb-2d7a775ac83b", - "serverCallId": "aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzd2UtMDIuY29udi5za3lwZS5jb20vY29udi9Dek9ZZU1ETWhVLXo2SFhoaTBTZ3lnP2k9NCZlPTYzODE5Mjc2NzYxNTIzODI1Mg==", + "callConnectionId": "441f1200-99ea-4773-9879-89c9f13fef83", + "serverCallId": "aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC94LWNvbnYtZXVuby0wMS5jb252LnNreXBlLmNvbS9jb252L2N5NzJtN3B2VDAtR0JqLTBIQWJaSGc/aT0xJmU9NjM4MjA2NTUyNjc1OTIxMDI3", "targets": [ { "rawId": "Sanitized", @@ -265,20 +258,19 @@ ], "callConnectionState": "connected", "callbackUri": "https://sanitized.skype.com/api/servicebuscallback/events?q=SanitizedSanitized", - "mediaSubscriptionId": "e5597982-9c01-48ba-9456-330972d7321d", "sourceDisplayName": "", - "sourceIdentity": { + "source": { "rawId": "Sanitized", "kind": "communicationUser", "communicationUser": { "id": "Sanitized" } }, - "correlationId": "cadda1f9-13c6-4bcd-95b1-3133a803a141" + "correlationId": "7df71103-abac-4898-b050-807b84bd0f80" } }, { - "RequestUri": "https://sanitized.skype.com/calling/callConnections/401f3500-3e66-41b7-a9bb-2d7a775ac83b/participants:remove?api-version=2023-01-15-preview", + "RequestUri": "https://sanitized.skype.com/calling/callConnections/441f1200-99ea-4773-9879-89c9f13fef83/participants:remove?api-version=2023-03-06", "RequestMethod": "POST", "RequestHeaders": { "Accept": "application/json", @@ -287,10 +279,10 @@ "Content-Type": "application/json", "Repeatability-First-Sent": "Sanitized", "Repeatability-Request-ID": "Sanitized", - "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230510.1 (.NET 7.0.4; Microsoft Windows 10.0.22621)", - "x-ms-client-request-id": "91c457481bb58ba0dfcc673710c102e9", + "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "0fd145a92e67bbea458929a870f86470", "x-ms-content-sha256": "Sanitized", - "x-ms-date": "Wed, 10 May 2023 18:28:07 GMT", + "x-ms-date": "Fri, 26 May 2023 20:12:57 GMT", "x-ms-return-client-request-id": "true" }, "RequestBody": { @@ -306,23 +298,52 @@ "ResponseHeaders": { "Content-Length": "45", "Content-Type": "application/json; charset=utf-8", - "Date": "Wed, 10 May 2023 18:28:08 GMT", + "Date": "Fri, 26 May 2023 20:13:00 GMT", "Repeatability-Result": "accepted", - "X-Azure-Ref": "0OOJbZAAAAACcZt/1V8KNRLv2d\u002BX58RAVWVRPMjIxMDkwODIwMDIxADlmYzdiNTE5LWE4Y2MtNGY4OS05MzVlLWM5MTQ4YWUwOWU4MQ==", + "X-Azure-Ref": "0yxJxZAAAAACY1zjRvvxiTp6EwBjmKGjKV1NURURHRTA4MTIAOWZjN2I1MTktYThjYy00Zjg5LTkzNWUtYzkxNDhhZTA5ZTgx", "X-Cache": "CONFIG_NOCACHE", - "X-Microsoft-Skype-Chain-ID": "cadda1f9-13c6-4bcd-95b1-3133a803a141", - "x-ms-client-request-id": "91c457481bb58ba0dfcc673710c102e9" + "X-Microsoft-Skype-Chain-ID": "7df71103-abac-4898-b050-807b84bd0f80", + "x-ms-client-request-id": "0fd145a92e67bbea458929a870f86470" }, "ResponseBody": { "operationContext": "MyTestOperationcontext" } + }, + { + "RequestUri": "https://sanitized.skype.com/calling/callConnections/441f1200-99ea-4773-9879-89c9f13fef83?api-version=2023-03-06", + "RequestMethod": "GET", + "RequestHeaders": { + "Accept": "application/json", + "Authorization": "Sanitized", + "User-Agent": "azsdk-net-Communication.CallAutomation/1.0.0-alpha.20230526.1 (.NET 7.0.5; Microsoft Windows 10.0.22621)", + "x-ms-client-request-id": "8922f449fa60045237da29cd8ce06056", + "x-ms-content-sha256": "Sanitized", + "x-ms-date": "Fri, 26 May 2023 20:12:58 GMT", + "x-ms-return-client-request-id": "true" + }, + "RequestBody": null, + "StatusCode": 404, + "ResponseHeaders": { + "Content-Length": "53", + "Content-Type": "application/json; charset=utf-8", + "Date": "Fri, 26 May 2023 20:13:00 GMT", + "X-Azure-Ref": "0zBJxZAAAAADGbG7WakAEQrNqghKzbYbMV1NURURHRTA4MTIAOWZjN2I1MTktYThjYy00Zjg5LTkzNWUtYzkxNDhhZTA5ZTgx", + "X-Cache": "CONFIG_NOCACHE", + "X-Microsoft-Skype-Chain-ID": "01ed1dac-fd2e-45ee-a7be-06ab6f18c8e4", + "x-ms-client-request-id": "8922f449fa60045237da29cd8ce06056" + }, + "ResponseBody": { + "error": { + "code": "8522", + "message": "Call not found." + } + } } ], "Variables": { "COMMUNICATION_LIVETEST_STATIC_CONNECTION_STRING": "endpoint=https://acs-callautomationtestsupporter.communication.azure.com/;accesskey=Kg==", "DISPATCHER_ENDPOINT": "https://sanitized.skype.com", - "PMA_Endpoint": null, - "RandomSeed": "1846124771", + "RandomSeed": "2060117653", "SERVICEBUS_STRING": "Endpoint=sb://acs-callautomationtestservicebus.servicebus.windows.net/;SharedAccessKeyName=Sanitized;SharedAccessKey=Kg==" } }