From 9578f29a1a3c8ef70309896b1d21269396dd76b1 Mon Sep 17 00:00:00 2001 From: Vinothini Dharmaraj Date: Tue, 25 Jun 2024 16:21:14 -0700 Subject: [PATCH 1/7] updating alpha version --- eng/versioning/version_client.txt | 2 +- .../azure-communication-callautomation/CHANGELOG.md | 5 +---- sdk/communication/azure-communication-callautomation/pom.xml | 2 +- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/eng/versioning/version_client.txt b/eng/versioning/version_client.txt index ce6ba168a957..d0ac81916909 100644 --- a/eng/versioning/version_client.txt +++ b/eng/versioning/version_client.txt @@ -67,7 +67,7 @@ com.azure:azure-aot-graalvm-support-netty;1.0.0-beta.3;1.0.0-beta.4 com.azure:azure-aot-graalvm-samples;1.0.0-beta.1;1.0.0-beta.1 com.azure:azure-aot-graalvm-perf;1.0.0-beta.1;1.0.0-beta.1 com.azure:azure-code-customization-parent;1.0.0-beta.1;1.0.0-beta.1 -com.azure:azure-communication-callautomation;1.2.1;1.2.0-beta.1 +com.azure:azure-communication-callautomation;1.2.1;1.3.0-beta.1 com.azure:azure-communication-callingserver;1.0.0-beta.4;1.0.0-beta.5 com.azure:azure-communication-chat;1.5.1;1.6.0-beta.1 com.azure:azure-communication-common;1.3.3;1.4.0-beta.1 diff --git a/sdk/communication/azure-communication-callautomation/CHANGELOG.md b/sdk/communication/azure-communication-callautomation/CHANGELOG.md index f81e5da48f76..ca5f6342832b 100644 --- a/sdk/communication/azure-communication-callautomation/CHANGELOG.md +++ b/sdk/communication/azure-communication-callautomation/CHANGELOG.md @@ -1,8 +1,6 @@ # Release History -## 1.2.0-beta.1 (Unreleased) - -- Introduced `TeamsRecordingStateChanged` and `TeamsComplianceRecordingStateChanged` events. +## 1.3.0-beta.1 (Unreleased) ### Features Added @@ -12,7 +10,6 @@ ### Other Changes - ## 1.1.4 (2024-04-23) ### Other Changes diff --git a/sdk/communication/azure-communication-callautomation/pom.xml b/sdk/communication/azure-communication-callautomation/pom.xml index c7935a860acf..e93bf2cafb53 100644 --- a/sdk/communication/azure-communication-callautomation/pom.xml +++ b/sdk/communication/azure-communication-callautomation/pom.xml @@ -15,7 +15,7 @@ com.azure azure-communication-callautomation jar - 1.2.0-beta.1 + 1.3.0-beta.1 Microsoft Azure client library for Call Automation service From 0e8c5f0c099afdcdbfc1f0fe80096fa09b5a0cff Mon Sep 17 00:00:00 2001 From: Vinothini Dharmaraj Date: Wed, 26 Jun 2024 11:53:50 -0700 Subject: [PATCH 2/7] updating the change log with ga release change --- .../azure-communication-callautomation/CHANGELOG.md | 12 ++++++++++++ .../azure-communication-callautomation/README.md | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/sdk/communication/azure-communication-callautomation/CHANGELOG.md b/sdk/communication/azure-communication-callautomation/CHANGELOG.md index ca5f6342832b..c27769d46aa4 100644 --- a/sdk/communication/azure-communication-callautomation/CHANGELOG.md +++ b/sdk/communication/azure-communication-callautomation/CHANGELOG.md @@ -10,6 +10,18 @@ ### Other Changes +## 1.2.0 (2024-04-15) + +### Features Added + +- Support for Bring Your Own Storage recording option +- Support for PauseOnStart recording option +- Support for Recording state change with new recording kind's + +### Other Changes + +- Support for MicrosoftTeamsAppIdentifier CommunicationIdentifier + ## 1.1.4 (2024-04-23) ### Other Changes diff --git a/sdk/communication/azure-communication-callautomation/README.md b/sdk/communication/azure-communication-callautomation/README.md index 423261a65673..76ecb511da6d 100644 --- a/sdk/communication/azure-communication-callautomation/README.md +++ b/sdk/communication/azure-communication-callautomation/README.md @@ -21,7 +21,7 @@ This package contains a Java SDK for Azure Communication Call Automation Service com.azure azure-communication-callautomation - 1.1.0 + 1.2.0 ``` [//]: # ({x-version-update-end}) From d4e3fdb4196b662b5c29986b96d8651b091d51e7 Mon Sep 17 00:00:00 2001 From: Vinothini Dharmaraj Date: Thu, 27 Jun 2024 14:17:35 -0700 Subject: [PATCH 3/7] fixing the lint errors --- .../azure-communication-callautomation/README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sdk/communication/azure-communication-callautomation/README.md b/sdk/communication/azure-communication-callautomation/README.md index 76ecb511da6d..e04978744833 100644 --- a/sdk/communication/azure-communication-callautomation/README.md +++ b/sdk/communication/azure-communication-callautomation/README.md @@ -17,6 +17,7 @@ This package contains a Java SDK for Azure Communication Call Automation Service ### Include the package [//]: # ({x-version-update-start;com.azure:azure-communication-callautomation;current}) + ```xml com.azure @@ -24,6 +25,7 @@ This package contains a Java SDK for Azure Communication Call Automation Service 1.2.0 ``` + [//]: # ({x-version-update-end}) ## Key concepts @@ -42,8 +44,10 @@ This is the restart of Call Automation Service. It is renamed to Call Automation ## Examples ### Handle Mid-Connection events with CallAutomation's EventProcessor + To easily handle mid-connection events, Call Automation's SDK provides easier way to handle these events. Take a look at `CallAutomationEventProcessor`. This will ensure correlation between call and events more easily. + ```Java @RestController public class ActionController { @@ -62,6 +66,7 @@ public class ActionController { } } ``` + `processEvents` is required for EventProcessor to work. After event is being consumed by EventProcessor, you can start using its feature. @@ -88,6 +93,7 @@ public class commandClass { } } ``` + If timeout was not set when calling "waitForEventProcessorAsync", the default timeout is 4 minutes. ## Troubleshooting @@ -135,4 +141,4 @@ This project has adopted the [Microsoft Open Source Code of Conduct][coc]. For m [build4]: https://learn.microsoft.com/azure/communication-services/quickstarts/voice-video-calling/recognize-action?pivots=programming-language-java [recording1]: https://learn.microsoft.com/azure/communication-services/concepts/voice-video-calling/call-recording [recording2]: https://learn.microsoft.com/azure/communication-services/quickstarts/voice-video-calling/get-started-call-recording?pivots=programming-language-java -[cognitive_integration]: https://learn.microsoft.com/azure/communication-services/concepts/call-automation/azure-communication-services-azure-cognitive-services-integration \ No newline at end of file +[cognitive_integration]: https://learn.microsoft.com/azure/communication-services/concepts/call-automation/azure-communication-services-azure-cognitive-services-integration From d9c2ae2f806d32afab8c18acbb26065b9e2fe4a3 Mon Sep 17 00:00:00 2001 From: Vinothini Dharmaraj Date: Thu, 27 Jun 2024 14:37:03 -0700 Subject: [PATCH 4/7] udpating the sample version --- sdk/communication/azure-communication-callautomation/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/communication/azure-communication-callautomation/README.md b/sdk/communication/azure-communication-callautomation/README.md index e04978744833..89f0944557d7 100644 --- a/sdk/communication/azure-communication-callautomation/README.md +++ b/sdk/communication/azure-communication-callautomation/README.md @@ -22,7 +22,7 @@ This package contains a Java SDK for Azure Communication Call Automation Service com.azure azure-communication-callautomation - 1.2.0 + 1.1.0 ``` From f77d4b58d57dea04fdcede3b8a2e75ad52a7e739 Mon Sep 17 00:00:00 2001 From: Vinothini Dharmaraj Date: Fri, 28 Jun 2024 15:02:50 -0700 Subject: [PATCH 5/7] updating the api version number --- .../callautomation/CallAutomationServiceVersion.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sdk/communication/azure-communication-callautomation/src/main/java/com/azure/communication/callautomation/CallAutomationServiceVersion.java b/sdk/communication/azure-communication-callautomation/src/main/java/com/azure/communication/callautomation/CallAutomationServiceVersion.java index cae499022b2f..2ae4c5b376e0 100644 --- a/sdk/communication/azure-communication-callautomation/src/main/java/com/azure/communication/callautomation/CallAutomationServiceVersion.java +++ b/sdk/communication/azure-communication-callautomation/src/main/java/com/azure/communication/callautomation/CallAutomationServiceVersion.java @@ -20,6 +20,11 @@ public enum CallAutomationServiceVersion implements ServiceVersion { */ V2023_10_15("2023-10-15"), + /** + * Service version {@code 2024-04-15}. + */ + V2024_04_15("2024-04-15"), + /** * Service version {@code 2023-10-03-preview}. */ From 7f506074a1c46845ce798856f1c22927a0b44227 Mon Sep 17 00:00:00 2001 From: Vinothini Dharmaraj Date: Mon, 1 Jul 2024 12:01:41 -0700 Subject: [PATCH 6/7] Adding recording kind to the recording state which is missed in the ga3 checkin --- .../callautomation/models/RecordingStateResult.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/sdk/communication/azure-communication-callautomation/src/main/java/com/azure/communication/callautomation/models/RecordingStateResult.java b/sdk/communication/azure-communication-callautomation/src/main/java/com/azure/communication/callautomation/models/RecordingStateResult.java index 0f6da16fb54b..47c00da940bb 100644 --- a/sdk/communication/azure-communication-callautomation/src/main/java/com/azure/communication/callautomation/models/RecordingStateResult.java +++ b/sdk/communication/azure-communication-callautomation/src/main/java/com/azure/communication/callautomation/models/RecordingStateResult.java @@ -18,6 +18,8 @@ public final class RecordingStateResult { */ private final String recordingId; + private final RecordingKind recordingKind; + private final RecordingState recordingState; /** @@ -29,6 +31,15 @@ public String getRecordingId() { return this.recordingId; } + /** + * Get the RecordingState property: The recording kind status of the recording. + * + * @return the recordingKind value. + */ + public RecordingKind getRecordingKind() { + return this.recordingKind; + } + /** * Get the RecordingState property: The recording status of the recording. * @@ -44,6 +55,7 @@ public RecordingState getRecordingState() { */ public RecordingStateResult() { this.recordingId = null; + this.recordingKind = null; this.recordingState = null; } @@ -54,6 +66,7 @@ public RecordingStateResult() { */ RecordingStateResult(RecordingStateResponseInternal recordingStateResponseInternal) { this.recordingId = recordingStateResponseInternal.getRecordingId(); + this.recordingKind = RecordingKind.fromString(recordingStateResponseInternal.getRecordingKind().toString()); this.recordingState = RecordingState.fromString(recordingStateResponseInternal.getRecordingState().toString()); } } From 738a7944860930a907d4225be105be8a91f16c13 Mon Sep 17 00:00:00 2001 From: amariwest-msft <139818906+amariwest-msft@users.noreply.github.com> Date: Mon, 8 Jul 2024 09:05:51 -0500 Subject: [PATCH 7/7] Small Change to isPauseOnStart (#40977) * init commit * added recordingKind * fixed typo * added recordingKind * changed tests for recordingKind --- .../callautomation/CallRecordingAsync.java | 4 ++-- .../models/RecordingStateResult.java | 2 +- .../models/StartRecordingOptions.java | 2 +- .../CallRecordingUnitTestBase.java | 19 ++++++++++++++++--- 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/sdk/communication/azure-communication-callautomation/src/main/java/com/azure/communication/callautomation/CallRecordingAsync.java b/sdk/communication/azure-communication-callautomation/src/main/java/com/azure/communication/callautomation/CallRecordingAsync.java index f2c87037b337..515fcc43c983 100644 --- a/sdk/communication/azure-communication-callautomation/src/main/java/com/azure/communication/callautomation/CallRecordingAsync.java +++ b/sdk/communication/azure-communication-callautomation/src/main/java/com/azure/communication/callautomation/CallRecordingAsync.java @@ -178,8 +178,8 @@ private StartCallRecordingRequestInternal getStartCallRecordingRequest(StartReco request.setExternalStorage(recordingStorageInternal); } } - if (options.getPauseOnStart() != null) { - request.setPauseOnStart(options.getPauseOnStart()); + if (options.isPauseOnStart() != null) { + request.setPauseOnStart(options.isPauseOnStart()); } return request; diff --git a/sdk/communication/azure-communication-callautomation/src/main/java/com/azure/communication/callautomation/models/RecordingStateResult.java b/sdk/communication/azure-communication-callautomation/src/main/java/com/azure/communication/callautomation/models/RecordingStateResult.java index 47c00da940bb..55467ee72121 100644 --- a/sdk/communication/azure-communication-callautomation/src/main/java/com/azure/communication/callautomation/models/RecordingStateResult.java +++ b/sdk/communication/azure-communication-callautomation/src/main/java/com/azure/communication/callautomation/models/RecordingStateResult.java @@ -32,7 +32,7 @@ public String getRecordingId() { } /** - * Get the RecordingState property: The recording kind status of the recording. + * Get the RecordingKind property: The recording kind status of the recording. * * @return the recordingKind value. */ diff --git a/sdk/communication/azure-communication-callautomation/src/main/java/com/azure/communication/callautomation/models/StartRecordingOptions.java b/sdk/communication/azure-communication-callautomation/src/main/java/com/azure/communication/callautomation/models/StartRecordingOptions.java index ee2e83c488f1..7b7f758f2c03 100644 --- a/sdk/communication/azure-communication-callautomation/src/main/java/com/azure/communication/callautomation/models/StartRecordingOptions.java +++ b/sdk/communication/azure-communication-callautomation/src/main/java/com/azure/communication/callautomation/models/StartRecordingOptions.java @@ -139,7 +139,7 @@ public StartRecordingOptions setRecordingFormat(RecordingFormat recordingFormat) * * @return pause on start. */ - public Boolean getPauseOnStart() { + public Boolean isPauseOnStart() { return pauseOnStart; } diff --git a/sdk/communication/azure-communication-callautomation/src/test/java/com/azure/communication/callautomation/CallRecordingUnitTestBase.java b/sdk/communication/azure-communication-callautomation/src/test/java/com/azure/communication/callautomation/CallRecordingUnitTestBase.java index 82359566df32..f3b1048ba907 100644 --- a/sdk/communication/azure-communication-callautomation/src/test/java/com/azure/communication/callautomation/CallRecordingUnitTestBase.java +++ b/sdk/communication/azure-communication-callautomation/src/test/java/com/azure/communication/callautomation/CallRecordingUnitTestBase.java @@ -4,10 +4,11 @@ package com.azure.communication.callautomation; import com.azure.communication.callautomation.implementation.models.RecordingStateInternal; +import com.azure.communication.callautomation.implementation.models.RecordingKind; import com.azure.communication.callautomation.implementation.models.RecordingStateResponseInternal; + import com.azure.json.JsonProviders; import com.azure.json.JsonWriter; - import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.AbstractMap; @@ -18,9 +19,11 @@ public class CallRecordingUnitTestBase { static final String SERVER_CALL_ID = "aHR0cHM6Ly9jb252LXVzd2UtMDguY29udi5za3lwZS5jb20vY29udi8tby1FWjVpMHJrS3RFTDBNd0FST1J3P2k9ODgmZT02Mzc1Nzc0MTY4MDc4MjQyOTM"; static final String RECORDING_ID = "recordingId"; + private final RecordingStateResponseInternal recordingState = new RecordingStateResponseInternal().setRecordingId(RECORDING_ID); - private final String recordingActive = serializeObject(recordingState.setRecordingState(RecordingStateInternal.ACTIVE)); - private final String recordingInactive = serializeObject(recordingState.setRecordingState(RecordingStateInternal.INACTIVE)); + + private final String recordingActive = generateGetParticipantResponse(RecordingStateInternal.ACTIVE, RecordingKind.TEAMS); + private final String recordingInactive = generateGetParticipantResponse(RecordingStateInternal.INACTIVE, RecordingKind.TEAMS); ArrayList> recordingOperationsResponses = new ArrayList<>(Arrays.asList( new AbstractMap.SimpleEntry<>(recordingActive, 200), //startRecording @@ -42,4 +45,14 @@ private String serializeObject(RecordingStateResponseInternal o) { throw new RuntimeException(e); } } + + private String generateGetParticipantResponse(RecordingStateInternal recordingState, RecordingKind recordingKind) { + + RecordingStateResponseInternal response = new RecordingStateResponseInternal(); + response.setRecordingState(recordingState); + response.setRecordingKind(recordingKind); + response.setRecordingId(RECORDING_ID); + + return serializeObject(response); + } }