From 633e9b616e3ad9a16d5fc285bf510fc06c5e728f Mon Sep 17 00:00:00 2001 From: Pilli Vamshi Date: Wed, 29 Oct 2025 16:21:55 +0530 Subject: [PATCH 01/21] Created GCCH test sample. --- Call_Automation_GCCH/README.md | 61 + Call_Automation_GCCH/pom.xml | 195 +++ .../callautomation/AppConfig.java | 40 + .../communication/callautomation/Main.java | 13 + .../callautomation/ProgramSample.java | 1454 +++++++++++++++++ .../src/main/resources/application.yml | 14 + .../static/OutboundCallDesign.png | Bin 0 -> 144697 bytes 7 files changed, 1777 insertions(+) create mode 100644 Call_Automation_GCCH/README.md create mode 100644 Call_Automation_GCCH/pom.xml create mode 100644 Call_Automation_GCCH/src/main/java/com/communication/callautomation/AppConfig.java create mode 100644 Call_Automation_GCCH/src/main/java/com/communication/callautomation/Main.java create mode 100644 Call_Automation_GCCH/src/main/java/com/communication/callautomation/ProgramSample.java create mode 100644 Call_Automation_GCCH/src/main/resources/application.yml create mode 100644 Call_Automation_GCCH/static/OutboundCallDesign.png diff --git a/Call_Automation_GCCH/README.md b/Call_Automation_GCCH/README.md new file mode 100644 index 00000000..564fa6f5 --- /dev/null +++ b/Call_Automation_GCCH/README.md @@ -0,0 +1,61 @@ +|page_type| languages |products +|---|---------------------------------------|---| +|sample|
Java
|
azureazure-communication-services
| + +# Call Automation - Quick Start Sample + +In this quickstart, we cover how you can use Call Automation SDK to make an outbound call to a phone number and use the newly announced integration with Azure AI services to play dynamic prompts to participants using Text-to-Speech and recognize user voice input through Speech-to-Text to drive business logic in your application. + +# Design + +![design](./static/OutboundCallDesign.png) + +## Prerequisites + +- An Azure account with an active subscription. [Create an account for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F). +- A deployed Communication Services resource. [Create a Communication Services resource](https://docs.microsoft.com/azure/communication-services/quickstarts/create-communication-resource). +- A [phone number](https://learn.microsoft.com/en-us/azure/communication-services/quickstarts/telephony/get-phone-number) in your Azure Communication Services resource that can make outbound calls. NB: phone numbers are not available in free subscriptions. +- Create Azure AI Multi Service resource. For details, see [Create an Azure AI Multi service](https://learn.microsoft.com/en-us/azure/cognitive-services/cognitive-services-apis-create-account). +- [Java Development Kit (JDK) Microsoft.OpenJDK.17](https://learn.microsoft.com/en-us/java/openjdk/download) +- [Apache Maven](https://maven.apache.org/download.cgi) +- Create and host a Azure Dev Tunnel. Instructions [here](https://learn.microsoft.com/en-us/azure/developer/dev-tunnels/get-started) +- (Optional) A Microsoft Teams user with a phone license that is `voice` enabled. Teams phone license is required to add Teams users to the call. Learn more about Teams licenses [here](https://www.microsoft.com/microsoft-teams/compare-microsoft-teams-bundle-options). Learn about enabling phone system with `voice` [here](https://learn.microsoft.com/microsoftteams/setting-up-your-phone-system). You also need to complete the prerequisite step [Authorization for your Azure Communication Services Resource](https://learn.microsoft.com/azure/communication-services/how-tos/call-automation/teams-interop-call-automation?pivots=programming-language-javascript#step-1-authorization-for-your-azure-communication-services-resource-to-enable-calling-to-microsoft-teams-users) to enable calling to Microsoft Teams users. + +## Before running the sample for the first time + +- Open the application.yml file in the resources folder to configure the following settings + + - `connectionstring`: Azure Communication Service resource's connection string. + - `callerphonenumber`: Phone number associated with the Azure Communication Service resource. + - `targetphonenumber`: Target Phone number. + + Format: "OutboundTarget(Phone Number)". + + For e.g. "+1425XXXAAAA" + - `basecallbackuri`: Base url of the app. For local development use dev tunnel url. + - `cognitiveServiceEndpoint`: Cognitive Service Endpoint. + - `targetTeamsUserId`: (Optional) update field with the Microsoft Teams user Id you would like to add to the call. See [Use Graph API to get Teams user Id](../../../how-tos/call-automation/teams-interop-call-automation.md#step-2-use-the-graph-api-to-get-microsoft-entra-object-id-for-teams-users-and-optionally-check-their-presence). Uncomment the below snippet in ProgramSample.java to enable Teams Interop scenario. + ``` + client.getCallConnection(callConnectionId).addParticipant( + new CallInvite(new MicrosoftTeamsUserIdentifier(appConfig.getTargetTeamsUserId())) + .setSourceDisplayName("Jack (Contoso Tech Support)")); + ``` + +### Setup and host your Azure DevTunnel + +[Azure DevTunnels](https://learn.microsoft.com/en-us/azure/developer/dev-tunnels/overview) is an Azure service that enables you to share local web services hosted on the internet. Use the commands below to connect your local development environment to the public internet. This creates a tunnel with a persistent endpoint URL and which allows anonymous access. We will then use this endpoint to notify your application of calling events from the ACS Call Automation service. + +```bash +devtunnel create --allow-anonymous +devtunnel port create -p 8080 +devtunnel host +``` + +### Run the application + +- Navigate to the directory containing the pom.xml file and use the following mvn commands: + - Compile the application: mvn compile + - Build the package: mvn package + - Execute the app: mvn exec:java +- Access the Swagger UI at http://localhost:8080/swagger-ui.html + - Try the GET /outboundCall to run the Sample Application diff --git a/Call_Automation_GCCH/pom.xml b/Call_Automation_GCCH/pom.xml new file mode 100644 index 00000000..a4225a28 --- /dev/null +++ b/Call_Automation_GCCH/pom.xml @@ -0,0 +1,195 @@ + + + 4.0.0 + + + org.springframework.boot + spring-boot-starter-parent + 3.0.6 + + + + com.communication.callautomation + Call_Automation_GCCH + 1.0-SNAPSHOT + + Call_Automation_GCCH + Call_Automation_GCCH Sample application for instructional usage + + + 17 + 17 + UTF-8 + 1.18.26 + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-test + test + + + com.vaadin.external.google + android-json + + + + + com.microsoft.azure + applicationinsights-spring-boot-starter + 2.6.4 + + + junit + junit + 4.13.2 + test + + + com.azure + azure-core + 1.42.0 + + + com.azure + azure-identity + 1.10.4 + + + com.azure + azure-communication-identity + 1.5.0 + + + com.azure + azure-communication-callautomation + 1.5.0 + + + com.azure + azure-messaging-eventgrid + 4.16.0 + + + com.azure + azure-communication-common + 1.5.0-beta.1 + + + org.projectlombok + lombok + provided + ${lombok.version} + + + org.springframework.boot + spring-boot-configuration-processor + true + + + org.springframework.boot + spring-boot-autoconfigure-processor + true + + + org.springdoc + springdoc-openapi-starter-webmvc-ui + 2.0.0 + + + org.json + json + 20210307 + + + + + azure-sdk-for-java + https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-java/maven/v1 + + true + + + true + + + + + + + + maven-clean-plugin + 3.2.0 + + + maven-resources-plugin + 3.3.1 + + + maven-compiler-plugin + 3.11.0 + + + maven-surefire-plugin + 3.1.0 + + + maven-jar-plugin + 3.3.0 + + + maven-deploy-plugin + 3.1.1 + + + maven-site-plugin + 3.12.1 + + + maven-project-info-reports-plugin + 3.4.3 + + + org.codehaus.mojo + exec-maven-plugin + 3.1.0 + + + + java + + + + + com.communication.callautomation.Main + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 3.2.5 + + + + repackage + + + + + + + \ No newline at end of file diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/AppConfig.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/AppConfig.java new file mode 100644 index 00000000..5c89a7d1 --- /dev/null +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/AppConfig.java @@ -0,0 +1,40 @@ +package com.communication.callautomation; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.context.properties.bind.ConstructorBinding; + +import lombok.Getter; + +@ConfigurationProperties(prefix = "acs") +@Getter +public class AppConfig { + private final String connectionString; + private final String callbackUriHost; + private final String acsPhoneNumber; + private final String targetPhoneNumber; + private final String cognitiveServiceEndpoint; + private final String targetTeamsUserId; + + @ConstructorBinding + AppConfig(final String connectionString, + final String callbackUriHost, + final String acsPhoneNumber, + final String targetPhoneNumber, + final String cognitiveServiceEndpoint, + final String targetTeamsUserId) { + this.connectionString = connectionString; + this.callbackUriHost = callbackUriHost; + this.acsPhoneNumber = acsPhoneNumber; + this.targetPhoneNumber = targetPhoneNumber; + this.cognitiveServiceEndpoint = cognitiveServiceEndpoint; + this.targetTeamsUserId = targetTeamsUserId; + } + + public String getCallBackUri() { + return callbackUriHost + "/api/callback"; + } + + public String getCallBackUriForRecordingApis() { + return callbackUriHost + "/api/recordingcallback"; + } +} diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/Main.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/Main.java new file mode 100644 index 00000000..d1ad1c14 --- /dev/null +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/Main.java @@ -0,0 +1,13 @@ +package com.communication.callautomation; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.context.properties.EnableConfigurationProperties; + +@SpringBootApplication +@EnableConfigurationProperties(value = AppConfig.class) +public class Main { + public static void main(String[] args) { + SpringApplication.run(Main.class, args); + } +} \ No newline at end of file diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/ProgramSample.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/ProgramSample.java new file mode 100644 index 00000000..39a5562c --- /dev/null +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/ProgramSample.java @@ -0,0 +1,1454 @@ +package com.communication.callautomation; + +// import com.azure.communication.callautomation.CallAutomationAsyncClient; +import com.azure.communication.callautomation.CallAutomationClient; +import com.azure.communication.callautomation.CallAutomationClientBuilder; +import com.azure.communication.callautomation.CallAutomationEventParser; +import com.azure.communication.callautomation.CallConnection; +import com.azure.communication.callautomation.CallMedia; +import com.azure.communication.callautomation.models.*; +import com.azure.communication.callautomation.models.events.*; +import com.azure.communication.common.CommunicationIdentifier; +import com.azure.communication.common.CommunicationUserIdentifier; +import com.azure.communication.common.PhoneNumberIdentifier; +import com.azure.core.http.rest.PagedIterable; +import com.azure.core.http.rest.Response; +import com.azure.core.util.Context; + +import io.swagger.v3.oas.annotations.tags.Tag; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.springframework.web.bind.annotation.*; +import org.springframework.http.*; + +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.net.URI; +import java.time.Duration; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.concurrent.CompletableFuture; +import org.json.JSONObject; +import com.azure.messaging.eventgrid.EventGridEvent; +import com.azure.messaging.eventgrid.systemevents.SubscriptionValidationResponse; +import com.azure.messaging.eventgrid.systemevents.AcsRecordingFileStatusUpdatedEventData; +import com.azure.messaging.eventgrid.systemevents.SubscriptionValidationEventData; +import com.azure.core.util.BinaryData; +import com.azure.messaging.eventgrid.SystemEventNames; + +@RestController +public class ProgramSample { + + private static final Logger log = LoggerFactory.getLogger(ProgramSample.class); + private CallAutomationClient client; + // private final CallAutomationAsyncClient asyncClient; + + // Configuration state variables + private AppConfig appConfig; + private String acsConnectionString = ""; + private String cognitiveServicesEndpoint = ""; + private String acsPhoneNumber = ""; + private String targetPhoneNumber = ""; + private String targetAcsUserId = ""; + private String callbackUriHost = ""; + private String websocketUriHost = ""; + + private String callConnectionId = ""; + private String recordingId = ""; + private String recordingLocation = ""; + private String recordingFileFormat = ""; + + private String confirmLabel = "Confirm"; + private String cancelLabel = "Cancel"; + + public ProgramSample(final AppConfig appConfig) { + this.appConfig = appConfig; + + // Initialize configuration values from AppConfig + this.acsConnectionString = appConfig.getConnectionString(); + this.callbackUriHost = appConfig.getCallbackUriHost(); + this.acsPhoneNumber = appConfig.getAcsPhoneNumber(); + this.targetPhoneNumber = appConfig.getTargetPhoneNumber(); + this.cognitiveServicesEndpoint = appConfig.getCognitiveServiceEndpoint(); + this.targetAcsUserId = appConfig.getTargetTeamsUserId(); + + // Set websocketUriHost to same as callbackUriHost for now + this.websocketUriHost = appConfig.getCallbackUriHost(); + + client = initClient(); + } + @Tag(name = "02. Call Automation Events", description = "CallAutomation Events") + @PostMapping(path = "/api/callbacks") + public ResponseEntity callbackEvents(@RequestBody final String reqBody) { + try { + List events = CallAutomationEventParser.parseEvents(reqBody); + for (CallAutomationEventBase event : events) { + callConnectionId = event.getCallConnectionId(); + log.info( + "Received call event callConnectionID: {}, serverCallId: {}, CorrelationId: {}, eventType: {}", + callConnectionId, + event.getServerCallId(), + event.getCorrelationId(), + event.getClass().getSimpleName()); + + if (event instanceof CallConnected) { + log.info("****************************************"); + log.info("CORRELATION ID: {}", event.getCorrelationId()); + log.info("****************************************"); + log.info("CALL CONNECTION ID: {}", event.getCallConnectionId()); + log.info("****************************************"); + var mediaStreamingSubscription = client.getCallConnection(callConnectionId).getCallProperties() + .getMediaStreamingSubscription(); + var transcriptionSubscription = client.getCallConnection(callConnectionId).getCallProperties() + .getTranscriptionSubscription(); + log.info("MediaStreaming State: {}", mediaStreamingSubscription.getState()); + log.info("Transcription State: {}", transcriptionSubscription.getState()); + } else if (event instanceof MediaStreamingStarted) { + MediaStreamingStarted acsEvent = (MediaStreamingStarted) event; + log.info("Operation Context: {}", acsEvent.getOperationContext()); + log.info("MediaSteaming Status: {}", + acsEvent.getMediaStreamingUpdateResult().getMediaStreamingStatus()); + + } else if (event instanceof MediaStreamingStopped) { + MediaStreamingStopped acsEvent = (MediaStreamingStopped) event; + log.info("Operation Context: {}", acsEvent.getOperationContext()); + log.info("MediaSteaming Status: {}", + acsEvent.getMediaStreamingUpdateResult().getMediaStreamingStatus()); + + } else if (event instanceof MediaStreamingFailed) { + MediaStreamingFailed acsEvent = (MediaStreamingFailed) event; + log.info("Operation Context: {}", acsEvent.getOperationContext()); + log.info("MediaSteaming Status: {}", + acsEvent.getMediaStreamingUpdateResult().getMediaStreamingStatus()); + log.error("Received failed event: {}", acsEvent + .getResultInformation().getMessage()); + } else if (event instanceof TranscriptionStarted) { + TranscriptionStarted acsEvent = (TranscriptionStarted) event; + log.info("Operation Context: {}", acsEvent.getOperationContext()); + log.info("Transcription Status: {}", + acsEvent.getTranscriptionUpdateResult().getTranscriptionStatus()); + + } else if (event instanceof TranscriptionUpdated) { + TranscriptionUpdated acsEvent = (TranscriptionUpdated) event; + log.info("Operation Context: {}", acsEvent.getOperationContext()); + log.info("Transcription Status: {}", + acsEvent.getTranscriptionUpdateResult().getTranscriptionStatus()); + + } else if (event instanceof TranscriptionStopped) { + TranscriptionStopped acsEvent = (TranscriptionStopped) event; + log.info("Operation Context: {}", acsEvent.getOperationContext()); + log.info("Transcription Status: {}", + acsEvent.getTranscriptionUpdateResult().getTranscriptionStatus()); + + } else if (event instanceof TranscriptionFailed) { + TranscriptionFailed acsEvent = (TranscriptionFailed) event; + log.info("Operation Context: {}", acsEvent.getOperationContext()); + log.info("Transcription Status: {}", + acsEvent.getTranscriptionUpdateResult().getTranscriptionStatus()); + log.error("Received failed event: {}", acsEvent + .getResultInformation().getMessage()); + } else if (event instanceof RecognizeCompleted) { + RecognizeCompleted acsEvent = (RecognizeCompleted) event; + RecognizeResult recognizeResult = acsEvent.getRecognizeResult().get(); + if (recognizeResult instanceof DtmfResult) { + // Take action on collect tones + DtmfResult dtmfResult = (DtmfResult) recognizeResult; + List tones = dtmfResult.getTones(); + log.info("Recognition completed, tones=" + tones + ", context=" + + acsEvent.getOperationContext()); + } else if (recognizeResult instanceof ChoiceResult) { + ChoiceResult collectChoiceResult = (ChoiceResult) recognizeResult; + String labelDetected = collectChoiceResult.getLabel(); + String phraseDetected = collectChoiceResult.getRecognizedPhrase(); + } else if (recognizeResult instanceof SpeechResult) { + SpeechResult speechResult = (SpeechResult) recognizeResult; + String text = speechResult.getSpeech(); + log.info("Recognition completed, text=" + text + ", context=" + acsEvent.getOperationContext()); + } else { + log.info("Recognition completed, result=" + recognizeResult + ", context=" + + acsEvent.getOperationContext()); + } + } else if (event instanceof RecognizeFailed) { + + RecognizeFailed acsEvent = (RecognizeFailed) event; + log.info("Operation Context: {}", acsEvent.getOperationContext()); + log.info("FailedPlaySourceIndex: {}", + acsEvent.getFailedPlaySourceIndex()); + log.error("Received failed event: {}", acsEvent + .getResultInformation().getMessage()); + + } else if (event instanceof PlayCompleted) { + PlayCompleted acsEvent = (PlayCompleted) event; + log.info("Operation Context: {}", acsEvent.getOperationContext()); + } else if (event instanceof PlayFailed) { + + PlayFailed acsEvent = (PlayFailed) event; + log.info("Operation Context: {}", acsEvent.getOperationContext()); + log.info("FailedPlaySourceIndex: {}", + acsEvent.getFailedPlaySourceIndex()); + log.error("Received failed event: {}", acsEvent + .getResultInformation().getMessage()); + + } else if (event instanceof RecordingStateChanged) { + RecordingStateChanged acsEvent = (RecordingStateChanged) event; + log.info("Recording State Changed event received: {}", + event.getCallConnectionId()); + log.info("Recording State: {}", acsEvent.getRecordingState()); + } else if (event instanceof CallTransferAccepted) { + CallTransferAccepted acsEvent = (CallTransferAccepted) event; + log.info("Operation Context: {}", acsEvent.getOperationContext()); + } else if (event instanceof CallTransferFailed) { + + CallTransferFailed acsEvent = (CallTransferFailed) event; + log.info("Operation Context: {}", acsEvent.getOperationContext()); + log.error("Received failed event: {}", acsEvent + .getResultInformation().getMessage()); + } + } + return ResponseEntity.ok().body(""); + } catch (Exception e) { + log.error("Error processing callback events: {}", e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to process callback events."); + } + } + + private void handleIncomingCall(final BinaryData eventData) { + JSONObject data = new JSONObject(eventData.toString()); + String callbackUri; + AnswerCallOptions options; + String cognitiveServicesUrl; + String websocketUrl; + + try { + callbackUri = callbackUriHost + "/api/callbacks"; + // Replace "https://" with "wss://" for WebSocket protocol + websocketUrl = websocketUriHost; + System.out.println("WebSocket URL: " + websocketUrl); + MediaStreamingOptions mediaStreamingOptions = new MediaStreamingOptions(MediaStreamingAudioChannel.UNMIXED); + mediaStreamingOptions.setTransportUrl(websocketUrl); + mediaStreamingOptions.setStartMediaStreaming(false); + mediaStreamingOptions.setEnableDtmfTones(false); + mediaStreamingOptions.setEnableBidirectional(false); + mediaStreamingOptions.setAudioFormat(AudioFormat.PCM_16K_MONO); + + TranscriptionOptions transcriptionOptions = new TranscriptionOptions("en-ES"); + transcriptionOptions.setTransportUrl(websocketUriHost); + transcriptionOptions.setStartTranscription(false); + + options = new AnswerCallOptions(data.getString("incomingCallContext"), + callbackUri); + options.setMediaStreamingOptions(mediaStreamingOptions); + options.setTranscriptionOptions(transcriptionOptions); + + Response answerCallResponse = client.answerCallWithResponse(options, Context.NONE); + + log.info("Incoming call answered. Cognitive Services Url: {}\nCallbackUri: {}\nCallConnectionId: {}", + cognitiveServicesEndpoint, + callbackUri, + answerCallResponse.getValue().getCallConnectionProperties().getCallConnectionId()); + } catch (Exception e) { + log.error("Error getting recording location info {} {}", + e.getMessage(), + e.getCause()); + } + } + + private ResponseEntity handleSubscriptionValidation(final BinaryData eventData) { + try { + log.info("Received Subscription Validation Event from Incoming Call API endpoint"); + SubscriptionValidationEventData subscriptioneventData = eventData + .toObject(SubscriptionValidationEventData.class); + SubscriptionValidationResponse responseData = new SubscriptionValidationResponse(); + responseData.setValidationResponse(subscriptioneventData.getValidationCode()); + return ResponseEntity.ok().body(responseData); + } catch (Exception e) { + log.error("Error at subscription validation event {} {}", + e.getMessage(), + e.getCause()); + return ResponseEntity.internalServerError().body(null); + } + } + + @Tag(name = "02. Call Automation Events", description = "CallAutomation Events") + @PostMapping(path = "/api/incomingCall") + public ResponseEntity recordinApiEventGridEvents( + @RequestBody final String reqBody) { + List events = EventGridEvent.fromString(reqBody); + for (EventGridEvent eventGridEvent : events) { + if (eventGridEvent.getEventType().equals(SystemEventNames.EVENT_GRID_SUBSCRIPTION_VALIDATION)) { + return handleSubscriptionValidation(eventGridEvent.getData()); + } else if (eventGridEvent.getEventType().equals(SystemEventNames.COMMUNICATION_INCOMING_CALL)) { + handleIncomingCall(eventGridEvent.getData()); + } + } + return ResponseEntity.ok().body(null); + } + + @Tag(name = "02. Call Automation Events", description = "CallAutomation Events") + @PostMapping("/api/recordingFileStatus") + public ResponseEntity handleRecordingFileStatus(@RequestBody String reqBody) { + List events = EventGridEvent.fromString(reqBody); + log.info("RECORDING FILE STATUS UPDATED EVENT GRID EVENT RECEIVED."); + for (EventGridEvent eventGridEvent : events) { + if (eventGridEvent.getEventType().equals(SystemEventNames.EVENT_GRID_SUBSCRIPTION_VALIDATION)) { + return handleSubscriptionValidation(eventGridEvent.getData()); + } else if (eventGridEvent.getEventType() + .equals(SystemEventNames.COMMUNICATION_RECORDING_FILE_STATUS_UPDATED)) { + log.info("The event received for recording file status update"); + AcsRecordingFileStatusUpdatedEventData recordingFileStatusUpdatedEventData = eventGridEvent.getData() + .toObject(AcsRecordingFileStatusUpdatedEventData.class); + recordingLocation = recordingFileStatusUpdatedEventData.getRecordingStorageInfo().getRecordingChunks() + .get(0).getContentLocation(); + String recordingMetadataLocation = recordingFileStatusUpdatedEventData.getRecordingStorageInfo() + .getRecordingChunks() + .get(0).getMetadataLocation(); + String recordingDeleteLocation = recordingFileStatusUpdatedEventData.getRecordingStorageInfo() + .getRecordingChunks() + .get(0).getDeleteLocation(); + log.info("The recording location is : {}", recordingLocation); + log.info("The recording metadata location is : {}", recordingMetadataLocation); + log.info("The recording delete location is : {}", recordingDeleteLocation); + + } else { + log.debug("Unhandled event."); + } + } + + return ResponseEntity.ok().build(); + } + + // POST: /outboundCallAsync + @Tag(name = "03. Outbound Call APIs", description = "Outbound Call APIs") + @PostMapping("/outboundCallAsync") + public ResponseEntity outboundCallAsync(@RequestParam String target, + @RequestParam boolean isPSTN) { + + try { + String callbackUri = callbackUriHost + "/api/callbacks"; + if (isPSTN) { + PhoneNumberIdentifier targetParticipant = new PhoneNumberIdentifier(target); + PhoneNumberIdentifier caller = new PhoneNumberIdentifier(acsPhoneNumber); + CallInvite callInvite = new CallInvite(targetParticipant, caller); + CreateCallOptions createCallOptions = new CreateCallOptions(callInvite, callbackUri); + CallIntelligenceOptions callIntelligenceOptions = new CallIntelligenceOptions(); + createCallOptions.setCallIntelligenceOptions(callIntelligenceOptions); + + log.info("Creating async call to PSTN with target: {}, caller: {}, callbackUri: {}", + targetParticipant.getRawId(), caller.getRawId(), callbackUri); + // Make async call and block to get the result + Response response = client.createCallWithResponse(createCallOptions, Context.NONE); + + if (response != null && response.getValue() != null) { + callConnectionId = response.getValue().getCallConnectionProperties().getCallConnectionId(); + log.info("Created async pstn call with connection id: " + callConnectionId); + } else { + log.error("Failed to create call. Response or value was null."); + } + return ResponseEntity.ok("Created async call with connection id: " + callConnectionId); + } else { + CommunicationUserIdentifier targetParticipant = new CommunicationUserIdentifier(target); + CallInvite callInvite = new CallInvite(targetParticipant); + + CreateCallOptions createCallOptions = new CreateCallOptions(callInvite, callbackUri.toString()); + CallIntelligenceOptions callIntelligenceOptions = new CallIntelligenceOptions(); + createCallOptions.setCallIntelligenceOptions(callIntelligenceOptions); + + Response result = client.createCallWithResponse(createCallOptions, Context.NONE); + callConnectionId = result.getValue().getCallConnectionProperties().getCallConnectionId(); + log.info("Created async call with connection id: " + callConnectionId); + return ResponseEntity.ok("Created async call with connection id: " + callConnectionId); + } + } catch (Exception e) { + log.error("Error creating call : {}", e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to create call."); + } + } + + @Tag(name = "03. Outbound Call APIs", description = "Outbound Call APIs") + @PostMapping("/outboundCall") + public ResponseEntity outboundCallToPstn(@RequestParam String target, + @RequestParam boolean isPSTN) { + try { + if (isPSTN) { + PhoneNumberIdentifier targetParticipant = new PhoneNumberIdentifier(target); + PhoneNumberIdentifier caller = new PhoneNumberIdentifier(acsPhoneNumber); + + URI callbackUri = URI.create(callbackUriHost + "/api/callbacks"); + CallInvite callInvite = new CallInvite(targetParticipant, caller); + + // ✅ Convert URI to String + CreateCallResult result = client.createCall(callInvite, callbackUri.toString()); + callConnectionId = result.getCallConnectionProperties().getCallConnectionId(); + log.info("Created call with connection id: " + callConnectionId); + return ResponseEntity.ok("Created async call with connection id: " + callConnectionId); + } else { + CommunicationUserIdentifier targetParticipant = new CommunicationUserIdentifier(target); + CallInvite callInvite = new CallInvite(targetParticipant); + URI callbackUri = URI.create(callbackUriHost + "/api/callbacks"); + + CreateCallResult result = client.createCall(callInvite, callbackUri.toString()); + callConnectionId = result.getCallConnectionProperties().getCallConnectionId(); + log.info("Created call with connection id: " + callConnectionId); + return ResponseEntity.ok("Created call with connection id: " + callConnectionId); + } + } catch (Exception e) { + log.error("Error creating call : {}", e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to create call."); + } + } + + @Tag(name = "04. Disconnect Call APIs", description = "Disconnect call APIs") + @PostMapping("/hangupAsync") + public ResponseEntity hangupAsync(@RequestParam String callConnectionId, @RequestParam boolean isForEveryOne) { + try { + CallConnection callConnection = getConnection(callConnectionId); + + callConnection.hangUpWithResponse(isForEveryOne, Context.NONE); + log.info("Call hangup requested (async) forEveryone={}", isForEveryOne); + + return ResponseEntity.ok("Call hangup requested (async)."); + } catch (Exception e) { + log.error("Error hanging up call: {}", e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to hang up call."); + } + } + + @Tag(name = "04. Disconnect Call APIs", description = "Disconnect call APIs") + @PostMapping("/hangup") + public ResponseEntity hangup(@RequestParam String callConnectionId, @RequestParam boolean isForEveryOne) { + try { + CallConnection callConnection = getConnection(callConnectionId); + + callConnection.hangUp(isForEveryOne); + log.info("Call hangup requested (sync) forEveryone={}", isForEveryOne); + + return ResponseEntity.ok("Call hangup requested."); + } catch (Exception e) { + log.error("Error hanging up call: {}", e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to hang up call."); + } + } + + @Tag(name = "05. Hold Participant APIs", description = "Hold Participant APIs") + @PostMapping("/holdParticipantAsync") + public ResponseEntity holdParticipantAsync(@RequestParam String callConnectionId, @RequestParam String targetParticipant, + @RequestParam boolean isPSTN, @RequestParam boolean isPlaySource) { + try { + CommunicationIdentifier target; + if (isPSTN) { + target = new PhoneNumberIdentifier(targetParticipant); + } else { + target = new CommunicationUserIdentifier(targetParticipant); + } + HoldOptions holdOptions = new HoldOptions(target).setOperationContext("holdUserContext"); + CallMedia callMediaService = getCallMedia(callConnectionId); + + if (isPlaySource) { + TextSource textSource = new TextSource() + .setText("You are on hold. Please wait...") + .setVoiceName("en-US-NancyNeural") + .setSourceLocale("en-US") + .setVoiceKind(VoiceKind.MALE); + holdOptions.setPlaySource(textSource); + } + + callMediaService.holdWithResponse(holdOptions, Context.NONE); + log.info("Held participant asynchronously with playSource = {}", isPlaySource); + return ResponseEntity.ok("Participant held (async)."); + } catch (Exception e) { + log.error("Error holding participant asynchronously: {}", e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to hold participant asynchronously."); + } + } + + @Tag(name = "05. Hold Participant APIs", description = "Hold Participant APIs") + @PostMapping("/holdParticipant") + public ResponseEntity holdParticipant(@RequestParam String callConnectionId, @RequestParam String targetParticipant, + @RequestParam boolean isPSTN, @RequestParam boolean isPlaySource) { + try { + CommunicationIdentifier target; + if (isPSTN) { + target = new PhoneNumberIdentifier(targetParticipant); + } else { + target = new CommunicationUserIdentifier(targetParticipant); + } + TextSource textSource = null; + CallMedia callMediaService = getCallMedia(callConnectionId); + + if (isPlaySource) { + textSource = new TextSource() + .setText("You are on hold. Please wait...") + .setVoiceName("en-US-NancyNeural") + .setSourceLocale("en-US") + .setVoiceKind(VoiceKind.MALE); + } + + callMediaService.hold(target, textSource); + log.info("Held participant synchronously with playSource = {}", isPlaySource); + return ResponseEntity.ok("Participant held."); + } catch (Exception e) { + log.error("Error holding participant: {}", e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to hold participant."); + } + } + + @Tag(name = "05. Hold Participant APIs", description = "Hold Participant APIs") + @PostMapping("/unholdParticipantAsync") + public ResponseEntity unholdParticipantAsync(@RequestParam String callConnectionId, @RequestParam String targetParticipant, + @RequestParam boolean isPSTN) { + try { + CommunicationIdentifier target; + if (isPSTN) { + target = new PhoneNumberIdentifier(targetParticipant); + } else { + target = new CommunicationUserIdentifier(targetParticipant); + } + UnholdOptions unholdOptions = new UnholdOptions(target).setOperationContext("unholdUserContext"); + CallMedia callMediaService = getCallMedia(callConnectionId); + + log.info("Unhold participant asynchronously {}", targetParticipant); + return ResponseEntity.ok("Participant unheld (async)."); + } catch (Exception e) { + log.error("Error unholding participant asynchronously: {}", e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to unhold participant asynchronously."); + } + } + + @Tag(name = "05. Hold Participant APIs", description = "Hold Participant APIs") + @PostMapping("/unholdParticipant") + public ResponseEntity unholdParticipant(@RequestParam String callConnectionId, @RequestParam String targetParticipant, + @RequestParam boolean isPSTN) { + try { + CommunicationIdentifier target; + if (isPSTN) { + target = new PhoneNumberIdentifier(targetParticipant); + } else { + target = new CommunicationUserIdentifier(targetParticipant); + } + CallMedia callMediaService = getCallMedia(callConnectionId); + + callMediaService.unhold(target); + log.info("Unhold participant synchronously {}", targetParticipant); + return ResponseEntity.ok("Participant unheld."); + } catch (Exception e) { + log.error("Error unholding participant: {}", e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to unhold participant."); + } + } + + @Tag(name = "06. Get Participant APIs", description = "Get Participant APIs") + @PostMapping("/getParticipantAsync") + public ResponseEntity getParticipantAsync(@RequestParam String callConnectionId, @RequestParam String targetParticipant, + @RequestParam boolean isPSTN) { + try { + CallConnection callConnection = getConnection(callConnectionId); + + CommunicationIdentifier target; + if (isPSTN) { + target = new PhoneNumberIdentifier(targetParticipant); + } else { + target = new CommunicationUserIdentifier(targetParticipant); + } + Response response = callConnection.getParticipantWithResponse( + target, + Context.NONE + ); + + CallParticipant participant = response.getValue(); + + if (participant != null) { + log.info("Participant: --> {}", participant.getIdentifier().getRawId()); + log.info("Is Participant on hold: --> {}", participant.isOnHold()); + } else { + log.warn("No participant found for identifier: {}", targetParticipant); + } + return ResponseEntity.ok("Participant found"); + } catch (Exception e) { + log.error("Error getting participant asynchronously: {}", e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to get participant asynchronously."); + } + } + + @Tag(name = "06. Get Participant APIs", description = "Get Participant APIs") + @PostMapping("/getParticipant") + public ResponseEntity getParticipant(@RequestParam String callConnectionId, @RequestParam String targetParticipant, + @RequestParam boolean isPSTN) { + try { + CallConnection callConnection = getConnection(callConnectionId); + CommunicationIdentifier target; + if (isPSTN) { + target = new PhoneNumberIdentifier(targetParticipant); + } else { + target = new CommunicationUserIdentifier(targetParticipant); + } + CallParticipant participant = callConnection.getParticipant(target); + + if (participant != null) { + log.info("Participant: --> {}", participant.getIdentifier().getRawId()); + log.info("Is Participant on hold: --> {}", participant.isOnHold()); + } + return ResponseEntity.ok("Participant found"); + } catch (Exception e) { + log.error("Error getting participant: {}", e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to get participant."); + } + } + + @Tag(name = "06. Get Participant APIs", description = "Get Participant APIs") + @PostMapping("/getParticipantListAsync") + public ResponseEntity getParticipantListAsync(@RequestParam String callConnectionId) { + try { + CallConnection callConnection = getConnection(callConnectionId); + + PagedIterable participants = callConnection.listParticipants(Context.NONE); + + if (participants != null) { + StringBuilder participantList = new StringBuilder(); + for (CallParticipant participant : participants) { + participantList.append("----------------------------------------------------------------------\n"); + participantList.append("Participant: --> ").append(participant.getIdentifier().getRawId()).append("\n"); + participantList.append("Is Participant on hold: --> ").append(participant.isOnHold()).append("\n"); + participantList.append("----------------------------------------------------------------------\n"); + } + return ResponseEntity.ok(participantList.toString()); + } else { + log.warn("No participants returned in the response."); + return ResponseEntity.ok("No participants found"); + } + } catch (Exception e) { + log.error("Error getting participant list asynchronously: {}", e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to get participant list asynchronously."); + } + } + + @Tag(name = "06. Get Participant APIs", description = "Get Participant APIs") + @PostMapping("/getParticipantList") + public ResponseEntity getParticipantList(@RequestParam String callConnectionId) { + try { + CallConnection callConnection = getConnection(callConnectionId); + + PagedIterable participants = callConnection.listParticipants(); + + if (participants != null) { + for (CallParticipant participant : participants) { + log.info("----------------------------------------------------------------------"); + log.info("Participant: --> {}", participant.getIdentifier().getRawId()); + log.info("Is Participant on hold: --> {}", participant.isOnHold()); + log.info("----------------------------------------------------------------------"); + } + return ResponseEntity.ok("Participant list retrieved"); + } else { + log.warn("No participants returned in the response."); + return ResponseEntity.ok("No participants found"); + } + } catch (Exception e) { + log.error("Error getting participant list: {}", e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build(); + } + } + + @Tag(name = "07. Mute Participant APIs", description = "Mute Participant APIs") + @PostMapping("/muteParticipantAsync") + public ResponseEntity muteParticipantAsync(@RequestParam String callConnectionId, @RequestParam String targetAcsUserId) { + try { + CommunicationIdentifier target = new CommunicationUserIdentifier(targetAcsUserId); + CallConnection callConnection = getConnection(callConnectionId); + + MuteParticipantOptions options = new MuteParticipantOptions(target) + .setOperationContext("muteContext"); + + // Assuming you're calling a method like muteParticipantWithResponse(options, context) + callConnection.muteParticipantWithResponse(options, Context.NONE); + + log.info("Muted participant asynchronously: {}", targetAcsUserId); + return ResponseEntity.ok("Muted participant (async)."); + } catch (Exception e) { + log.error("Error muting participant asynchronously: {}", e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to mute participant asynchronously."); + } + } + + @Tag(name = "07. Mute Participant APIs", description = "Mute Participant APIs") + @PostMapping("/muteParticipant") + public ResponseEntity muteParticipant(@RequestParam String callConnectionId, @RequestParam String targetAcsUserId) { + try { + CommunicationIdentifier target = new CommunicationUserIdentifier(targetAcsUserId); + CallConnection callConnection = getConnection(callConnectionId); + + callConnection.muteParticipant(target); // Synchronous mute using options if method is available + log.info("Muted participant synchronously: {}", targetAcsUserId); + return ResponseEntity.ok("Muted participant."); + } catch (Exception e) { + log.error("Error muting participant: {}", e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to mute participant."); + } + } + + @Tag(name = "08. Add/Remove Participant APIs", description = "Add/Remove Participant APIs") + @PostMapping("/addParticipantAsync") + public ResponseEntity addParticipantAsync(@RequestParam String callConnectionId, @RequestParam String participant, @RequestParam boolean isPSTN) { + CallConnection callConnectionService = getConnection(callConnectionId); + CommunicationIdentifier target; + CallInvite callInvite; + if (isPSTN) { + PhoneNumberIdentifier phoneTarget = new PhoneNumberIdentifier(participant); + PhoneNumberIdentifier caller = new PhoneNumberIdentifier(acsPhoneNumber); + callInvite = new CallInvite(phoneTarget, caller); + } else { + CommunicationUserIdentifier userTarget = new CommunicationUserIdentifier(participant); + callInvite = new CallInvite(userTarget); + } + AddParticipantOptions options = new AddParticipantOptions(callInvite); + options.setOperationContext("addPstnUserContext"); + options.setInvitationTimeout(Duration.ofSeconds(15)); + Response result = callConnectionService.addParticipantWithResponse(options, Context.NONE); + return ResponseEntity.ok("Invitation Id: " + result.getValue().getInvitationId()); + } + + @Tag(name = "08. Add/Remove Participant APIs", description = "Add/Remove Participant APIs") + @PostMapping("/addParticipant") + public ResponseEntity addParticipant(@RequestParam String callConnectionId, @RequestParam String participant, @RequestParam boolean isPSTN) { + CallConnection callConnectionService = getConnection(callConnectionId); + CommunicationIdentifier target; + CallInvite callInvite; + if (isPSTN) { + PhoneNumberIdentifier phoneTarget = new PhoneNumberIdentifier(participant); + PhoneNumberIdentifier caller = new PhoneNumberIdentifier(acsPhoneNumber); + callInvite = new CallInvite(phoneTarget, caller); + } else { + CommunicationUserIdentifier userTarget = new CommunicationUserIdentifier(participant); + callInvite = new CallInvite(userTarget); + }// Replace with actual ACS number + AddParticipantResult result = callConnectionService.addParticipant(callInvite); + return ResponseEntity.ok("Invitation Id: " + result.getInvitationId()); + } + + @Tag(name = "08. Add/Remove Participant APIs", description = "Add/Remove Participant APIs") + @PostMapping("/removeParticipantAsync") + public ResponseEntity removeParticipantAsync(@RequestParam String callConnectionId, @RequestParam String participant, @RequestParam boolean isPSTN) { + try { + RemoveParticipantOptions options; + if (isPSTN) { + options = new RemoveParticipantOptions(new PhoneNumberIdentifier(participant)); + } else { + options = new RemoveParticipantOptions(new CommunicationUserIdentifier(participant)); + } + options.setOperationContext("removeParticipantContext"); + CallConnection callConnectionService = getConnection(callConnectionId); + callConnectionService.removeParticipantWithResponse(options, Context.NONE); + return ResponseEntity.ok().build(); + } catch (Exception e) { + log.error("Error removing participant asynchronously: {}", e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build(); + } + } + + @Tag(name = "08. Add/Remove Participant APIs", description = "Add/Remove Participant APIs") + @PostMapping("/removeParticipant") + public ResponseEntity removeParticipant(@RequestParam String callConnectionId, @RequestParam String participant, @RequestParam boolean isPSTN) { + try { + CallConnection callConnectionService = getConnection(callConnectionId); + RemoveParticipantOptions options; + if (isPSTN) { + options = new RemoveParticipantOptions(new PhoneNumberIdentifier(participant)); + } else { + options = new RemoveParticipantOptions(new CommunicationUserIdentifier(participant)); + } + callConnectionService.removeParticipantWithResponse(options, Context.NONE); + return ResponseEntity.ok().build(); + } catch (Exception e) { + log.error("Error removing participant: {}", e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to remove participant."); + } + } + + @Tag(name = "09. Transfer Call APIs", description = "APIs for transferring calls to participants") + @PostMapping("/transferCallToParticipantAsync") + public ResponseEntity transferCallToParticipantAsync(@RequestParam String callConnectionId, @RequestParam String transferTarget, @RequestParam String transferee, @RequestParam boolean isPSTN) { + try { + CommunicationIdentifier target; + if (isPSTN) { + target = new PhoneNumberIdentifier(transferTarget); + TransferCallToParticipantOptions options = new TransferCallToParticipantOptions(target) + .setOperationContext("TransferCallContext") + .setSourceCallerIdNumber(new PhoneNumberIdentifier(transferee)); + client.getCallConnection(callConnectionId) + .transferCallToParticipantWithResponse(options, Context.NONE); + log.info("Call transferred asynchronously to participant: {}", transferTarget); + return ResponseEntity.ok("Transfer call request sent asynchronously."); + } else { + target = new CommunicationUserIdentifier(transferTarget); + TransferCallToParticipantOptions options = new TransferCallToParticipantOptions(target) + .setOperationContext("TransferCallContext"); + client.getCallConnection(callConnectionId) + .transferCallToParticipantWithResponse(options, Context.NONE); + log.info("Call transferred asynchronously to participant: {}", transferTarget); + return ResponseEntity.ok("Transfer call request sent asynchronously."); + } + } catch (Exception e) { + log.error("Error transferring call asynchronously: {}", e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to transfer call asynchronously."); + } + } + + @Tag(name = "09. Transfer Call APIs", description = "APIs for transferring calls to participants") + @PostMapping("/transferCallToParticipant") + public ResponseEntity transferCallToParticipant(@RequestParam String callConnectionId, @RequestParam String transferTarget, @RequestParam String transferee, @RequestParam boolean isPSTN) { + try { + CommunicationIdentifier targetParticipant; + if (isPSTN) { + targetParticipant = new PhoneNumberIdentifier(transferTarget); + TransferCallToParticipantOptions options = new TransferCallToParticipantOptions(targetParticipant) + .setOperationContext("TransferCallContext") + .setSourceCallerIdNumber(new PhoneNumberIdentifier(transferee)); + + // Transfer the call + client.getCallConnection(callConnectionId) + .transferCallToParticipantWithResponse(options, Context.NONE); + + + log.info("Call transferred to participant: {}", targetParticipant); + return ResponseEntity.ok("Transfer call request sent."); + } else { + targetParticipant = new CommunicationUserIdentifier(transferTarget); + // Synchronous transfer using CommunicationIdentifier + client.getCallConnection(callConnectionId) + .transferCallToParticipant(targetParticipant); + log.info("Call transferred to participant: {}", transferTarget); + return ResponseEntity.ok("Transfer call request sent."); + } + } catch (Exception e) { + log.error("Error transferring call : {}", e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to transfer call."); + } + } + + @Tag(name = "10. Play Media APIs", description = "Play Media APIs") + @PostMapping("/playFileSourceToTargetAsync") + public ResponseEntity playFileSourceToTargetAsync(@RequestParam String callConnectionId, + @RequestParam String participant, + @RequestParam boolean isPSTN) { + return playFile(callConnectionId, participant, isPSTN, true, false, false); + } + + // 4. - Sync + @Tag(name = "10. Play Media APIs", description = "Play Media APIs") + @PostMapping("/playFileSourceToTarget") + public ResponseEntity playFileSourceToTarget(@RequestParam String callConnectionId, @RequestParam String participant, @RequestParam boolean isPSTN) { + // Use the correct argument list for playFile: (callConnectionId, target, isPSTN, async, isPlayToAll) + return playFile(callConnectionId, participant, isPSTN, false, false, false); + } + + @Tag(name = "10. Play Media APIs", description = "Play Media APIs") + @PostMapping("/playFileSourceToAllAsync") + public ResponseEntity playFileSourceToAllAsync(@RequestParam String callConnectionId) { + return playFile(callConnectionId, null, false, true, false, true); + } + + // 8. All - Sync + @Tag(name = "10. Play Media APIs", description = "Play Media APIs") + @PostMapping("/playFileSourceToAll") + public ResponseEntity playFileSourceToAll(@RequestParam String callConnectionId) { + return playFile(callConnectionId, null, false, false, false, true); + } + + // 9. Barge-In - Async + @Tag(name = "10. Play Media APIs", description = "Play Media APIs") + @PostMapping("/playFileSourceBargeInAsync") + public ResponseEntity playFileSourceBargeInAsync(@RequestParam String callConnectionId) { + return playFile(callConnectionId, null, false, true, true, true); + } + + @Tag(name = "11. Start Recognition APIs", description = "Start Recognition APIs") + @PostMapping("/recognizeDTMFAsync") + public ResponseEntity recognizeDTMFAsync(@RequestParam String callConnectionId, @RequestParam String participant, @RequestParam boolean isPSTN) { + return startDtmfRecognition(callConnectionId, participant, isPSTN, true); + } + + @Tag(name = "11. Start Recognition APIs", description = "Start Recognition APIs") + @PostMapping("/recognizeDTMF") + public ResponseEntity recognizeDTMF(@RequestParam String callConnectionId, @RequestParam String participant, @RequestParam boolean isPSTN) { + return startDtmfRecognition(callConnectionId, participant, isPSTN, false); + } + + // Async Equivalent: /sendDTMFTonesAsync (C#) + @Tag(name = "12. Send or Start DTMF APIs", description = "Send or Start DTMF APIs") + @PostMapping("/sendDTMFTonesAsync") + public ResponseEntity sendDTMFTonesAsync(@RequestParam String callConnectionId, @RequestParam String participant, @RequestParam boolean isPSTN) { + try { + CommunicationIdentifier target; + if(isPSTN) { + target = new PhoneNumberIdentifier(participant); + } else { + target = new CommunicationUserIdentifier(participant); + } + List tones = Arrays.asList(DtmfTone.ZERO, DtmfTone.ONE); + CallMedia callMediaService = getCallMedia(callConnectionId); + callMediaService.sendDtmfTones(tones, target); // .block() internally + + log.info("Async DTMF tones sent to {}", targetAcsUserId); + return ResponseEntity.ok("DTMF tones sent (async simulation)."); + } catch (Exception e) { + log.error("Error sending DTMF tones to {}: {}", targetAcsUserId, e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error sending DTMF tones"); + } + } + + // Sync Equivalent: /sendDTMFTones (C#) + @Tag(name = "12. Send or Start DTMF APIs", description = "Send or Start DTMF APIs") + @PostMapping("/sendDTMFTones") + public ResponseEntity sendDTMFTones(@RequestParam String callConnectionId, @RequestParam String participant, @RequestParam boolean isPSTN) { + try { + CommunicationIdentifier target; + if(isPSTN) { + target = new PhoneNumberIdentifier(participant); + } else { + target = new CommunicationUserIdentifier(participant); + } + List tones = Arrays.asList(DtmfTone.ZERO, DtmfTone.ONE); + CallMedia callMediaService = getCallMedia(callConnectionId); + callMediaService.sendDtmfTones(tones, target); + + log.info("DTMF tones sent to {}", targetAcsUserId); + return ResponseEntity.ok("DTMF tones sent."); + } catch (Exception e) { + log.error("Error sending DTMF tones to {}: {}", targetAcsUserId, e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error sending DTMF tones"); + } + } + + // Async Equivalent: /startContinuousDTMFTonesAsync (C#) + @Tag(name = "12. Send or Start DTMF APIs", description = "Send or Start DTMF APIs") + @PostMapping("/startContinuousDTMFTonesAsync") + public ResponseEntity startContinuousDTMFTonesAsync(@RequestParam String callConnectionId, @RequestParam String participant, @RequestParam boolean isPSTN) { + try { + CommunicationIdentifier target; + if(isPSTN) { + target = new PhoneNumberIdentifier(participant); + } else { + target = new CommunicationUserIdentifier(participant); + } + CallMedia callMediaService = getCallMedia(callConnectionId); + callMediaService.startContinuousDtmfRecognition(target); // .block() internally + + log.info("Async continuous DTMF started for {}", participant); + return ResponseEntity.ok("Started continuous DTMF recognition (async simulation)."); + } catch (Exception e) { + log.error("Error starting continuous DTMF recognition for {}: {}", participant, e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error starting continuous DTMF recognition"); + } + } + + // Sync Equivalent: /startContinuousDTMFTones (C#) + @Tag(name = "12. Send or Start DTMF APIs", description = "Send or Start DTMF APIs") + @PostMapping("/startContinuousDTMFTones") + public ResponseEntity startContinuousDTMFTones(@RequestParam String callConnectionId, @RequestParam String participant, @RequestParam boolean isPSTN) { + try { + CommunicationIdentifier target; + if(isPSTN) { + target = new PhoneNumberIdentifier(participant); + } else { + target = new CommunicationUserIdentifier(participant); + } + CallMedia callMediaService = getCallMedia(callConnectionId); + callMediaService.startContinuousDtmfRecognition(target); + + log.info("Started continuous DTMF for {}", participant); + return ResponseEntity.ok("Started continuous DTMF recognition."); + } catch (Exception e) { + log.error("Error starting continuous DTMF recognition for {}: {}", participant, e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error starting continuous DTMF recognition"); + } + } + + // Async Equivalent: /stopContinuousDTMFTonesAsync (C#) + @Tag(name = "12. Send or Start DTMF APIs", description = "Send or Start DTMF APIs") + @PostMapping("/stopContinuousDTMFTonesAsync") + public ResponseEntity stopContinuousDTMFTonesAsync(@RequestParam String callConnectionId, @RequestParam String participant, @RequestParam boolean isPSTN) { + try { + CommunicationIdentifier target; + if(isPSTN) { + target = new PhoneNumberIdentifier(participant); + } else { + target = new CommunicationUserIdentifier(participant); + } + CallMedia callMediaService = getCallMedia(callConnectionId); + callMediaService.stopContinuousDtmfRecognition(target); // .block() internally + + log.info("Async stop continuous DTMF for {}", participant); + return ResponseEntity.ok("Stopped continuous DTMF recognition (async simulation)."); + } catch (Exception e) { + log.error("Error stopping continuous DTMF recognition for {}: {}", participant, e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error stopping continuous DTMF recognition"); + } + } + + // Sync Equivalent: /stopContinuousDTMFTones (C#) + @Tag(name = "12. Send or Start DTMF APIs", description = "Send or Start DTMF APIs") + @PostMapping("/stopContinuousDTMFTones") + public ResponseEntity stopContinuousDTMFTones(@RequestParam String callConnectionId, @RequestParam String participant, @RequestParam boolean isPSTN) { + try { + CommunicationIdentifier target; + if(isPSTN) { + target = new PhoneNumberIdentifier(participant); + } else { + target = new CommunicationUserIdentifier(participant); + } + CallMedia callMediaService = getCallMedia(callConnectionId); + callMediaService.stopContinuousDtmfRecognition(target); + + log.info("Stopped continuous DTMF for {}", participant); + return ResponseEntity.ok("Stopped continuous DTMF recognition."); + } catch (Exception e) { + log.error("Error stopping continuous DTMF recognition for {}: {}", participant, e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error stopping continuous DTMF recognition"); + } + } + + @Tag(name = "13. Recording APIs", description = "Recording APIs") + @PostMapping("/startRecordingAsync") + public ResponseEntity startRecordingAsync(@RequestParam String callConnectionId, @RequestParam boolean isAudioVideo, + @RequestParam String recordingFormat, @RequestParam boolean isMixed, + @RequestParam boolean isRecordingWithCallConnectionId, @RequestParam boolean isPauseOnStart) { + return startRecording(callConnectionId, isAudioVideo, recordingFormat, isMixed, isRecordingWithCallConnectionId, isPauseOnStart, true); + } + + @Tag(name = "13. Recording APIs", description = "Recording APIs") + @PostMapping("/startRecording") + public ResponseEntity startRecording(@RequestParam String callConnectionId, @RequestParam boolean isAudioVideo, + @RequestParam String recordingFormat, @RequestParam boolean isMixed, + @RequestParam boolean isRecordingWithCallConnectionId, @RequestParam boolean isPauseOnStart) { + return startRecording(callConnectionId, isAudioVideo, recordingFormat, isMixed, isRecordingWithCallConnectionId, isPauseOnStart, false); + } + + @Tag(name = "13. Recording APIs", description = "Recording APIs") + @PostMapping("/pauseRecordingAsync") + public ResponseEntity pauseRecordingAsync(@RequestParam String recordingId) { + try { + client.getCallRecording().pauseWithResponse(recordingId, null); + log.info("Paused recording for {}", recordingId); + return ResponseEntity.ok("Recording paused successfully."); + } catch (Exception e) { + log.error("Error pausing recording for {}: {}", recordingId, e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error pausing recording"); + } + } + + @Tag(name = "13. Recording APIs", description = "Recording APIs") + @PostMapping("/pauseRecording") + public ResponseEntity pauseRecording(@RequestParam String recordingId ) { + try { + client.getCallRecording().pause(recordingId); + log.info("Paused recording for {}", recordingId); + return ResponseEntity.ok("Recording paused successfully."); + } catch (Exception e) { + log.error("Error pausing recording for {}: {}", recordingId, e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error pausing recording"); + } + } + + @Tag(name = "13. Recording APIs", description = "Recording APIs") + @PostMapping("/resumeRecordingAsync") + public ResponseEntity resumeRecordingAsync(@RequestParam String recordingId) { + try { + client.getCallRecording().resumeWithResponse(recordingId, null); + log.info("Resumed recording for {}", recordingId); + return ResponseEntity.ok("Recording resumed successfully."); + } catch (Exception e) { + log.error("Error resuming recording for {}: {}", recordingId, e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error resuming recording"); + } + } + + @Tag(name = "13. Recording APIs", description = "Recording APIs") + @PostMapping("/resumeRecording") + public ResponseEntity resumeRecording(@RequestParam String recordingId) { + try { + client.getCallRecording().resume(recordingId); + log.info("Resumed recording for {}", recordingId); + return ResponseEntity.ok("Recording resumed successfully."); + } catch (Exception e) { + log.error("Error resuming recording for {}: {}", recordingId, e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error resuming recording"); + } + } + + @Tag(name = "13. Recording APIs", description = "Recording APIs") + @PostMapping("/stopRecordingAsync") + public ResponseEntity stopRecordingAsync(@RequestParam String recordingId) { + try { + client.getCallRecording().stopWithResponse(recordingId, null); + log.info("Stopped recording for {}", recordingId); + return ResponseEntity.ok("Recording stopped successfully."); + } catch (Exception e) { + log.error("Error stopping recording for {}: {}", recordingId, e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error stopping recording"); + } + } + + @Tag(name = "13. Recording APIs", description = "Recording APIs") + @PostMapping("/stopRecording") + public ResponseEntity stopRecording(@RequestParam String recordingId) { + try { + client.getCallRecording().stop(recordingId); + log.info("Stopped recording for {}", recordingId); + return ResponseEntity.ok("Recording stopped successfully."); + } catch (Exception e) { + log.error("Error stopping recording for {}: {}", recordingId, e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error stopping recording"); + } + } + + @Tag(name = "13. Recording APIs", description = "Recording APIs") + @GetMapping("/downloadRecording") + public ResponseEntity downloadRecording() { + try { + if (recordingLocation != null && !recordingLocation.isEmpty()) { + String downloadsPath = System.getProperty("user.home") + "/Downloads"; + String timestamp = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd_HHmmss")); + String fileName = "Recording_" + timestamp + "." + recordingFileFormat; + String filePath = downloadsPath + "/" + fileName; + + try (OutputStream outputStream = new FileOutputStream(filePath)) { + client.getCallRecording().downloadTo(recordingLocation, outputStream); + log.info("Recording downloaded to: {}", filePath); + } catch (IOException e) { + log.error("Error while downloading recording", e); + } + } else { + log.error("Recording is not available"); + } + return ResponseEntity.ok("Recording downloaded successfully."); + } catch (Exception e) { + log.error("Error while downloading recording", e); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error downloading recording"); + } + } + + @Tag(name = "14. Cancel All Media Operation APIs", description = "Cancel All Media Operation APIs") + @PostMapping("/cancelAllMediaOperationAsync") + public ResponseEntity cancelAllMediaOperationAsync(@RequestParam String callConnectionId) { + try { + CallMedia callMedia = getCallMedia(callConnectionId); + // Simulate async operation in Java (can use CompletableFuture or similar if truly async) + CompletableFuture.runAsync(() -> { + try { + callMedia.cancelAllMediaOperationsWithResponse(Context.NONE); // If reactive + } catch (Exception e) { + log.error("Failed to cancel media operations asynchronously", e); + } + }); + + return ResponseEntity.ok().build(); + } catch (Exception ex) { + log.error("Error during async cancel", ex); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build(); + } + } + + @Tag(name = "14. Cancel All Media Operation APIs", description = "Cancel All Media Operation APIs") + @PostMapping("/cancelAllMediaOperation") + public ResponseEntity cancelAllMediaOperation(@RequestParam String callConnectionId) { + try { + CallMedia callMedia = getCallMedia(callConnectionId); + callMedia.cancelAllMediaOperations(); // synchronous method + return ResponseEntity.ok().build(); + } catch (Exception ex) { + log.error("Error during cancel", ex); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build(); + } + } + + @Tag(name = "15. Media Streaming APIs", description = "Media Streaming APIs") + @PostMapping("/createCallWithMediaStreamingAsync") + public ResponseEntity createCallWithMediaStreamingAsync(@RequestParam String targetParticipant, @RequestParam boolean isPSTN) { + try { + CallInvite callInvite; + if(isPSTN) { + PhoneNumberIdentifier target = new PhoneNumberIdentifier(targetParticipant); + callInvite = new CallInvite(target, new PhoneNumberIdentifier(acsPhoneNumber)); + } else { + CommunicationUserIdentifier target = new CommunicationUserIdentifier(targetParticipant); + callInvite = new CallInvite(target); + } + + URI callbackUri = URI.create(callbackUriHost + "/api/callbacks"); + String websocketUri = websocketUriHost.replace("https", "wss") + "/ws"; + + CreateCallOptions createCallOptions = new CreateCallOptions(callInvite, callbackUri.toString()); + CallIntelligenceOptions callIntelligenceOptions = new CallIntelligenceOptions(); + + MediaStreamingOptions mediaStreamingOptions = new MediaStreamingOptions(MediaStreamingAudioChannel.UNMIXED, StreamingTransport.WEBSOCKET); + createCallOptions.setCallIntelligenceOptions(callIntelligenceOptions); + createCallOptions.setMediaStreamingOptions(mediaStreamingOptions); + + Response result = client.createCallWithResponse(createCallOptions, Context.NONE); + callConnectionId = result.getValue().getCallConnectionProperties().getCallConnectionId(); + log.info("Created async call with connection id: " + callConnectionId); + return ResponseEntity.ok("Created async call with connection id: " + callConnectionId); + } catch (Exception e) { + log.error("Error creating call : {}", e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to create call."); + } + } + + @Tag(name = "15. Media Streaming APIs", description = "Media Streaming APIs") + @PostMapping("/startMediaStreamingAsync") + public ResponseEntity startMediaStreamingAsync(@RequestParam String callConnectionId) { + try { + StartMediaStreamingOptions mediaStreamingOptions = new StartMediaStreamingOptions(); + + CallMedia callMedia = getCallMedia(callConnectionId); + callMedia.startMediaStreamingWithResponse(mediaStreamingOptions, Context.NONE); + + log.info("Started media streaming asynchronously for call: {}", callConnectionId); + return ResponseEntity.ok("Media streaming started successfully."); + } catch (Exception e) { + log.error("Error starting media streaming asynchronously: {}", e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to start media streaming."); + } + } + + @Tag(name = "15. Media Streaming APIs", description = "Media Streaming APIs") + @PostMapping("/startMediaStreaming") + public ResponseEntity startMediaStreaming(@RequestParam String callConnectionId) { + try { + CallMedia callMedia = getCallMedia(callConnectionId); + callMedia.startMediaStreaming(); + + log.info("Started media streaming asynchronously for call: {}", callConnectionId); + return ResponseEntity.ok("Media streaming started successfully."); + } catch (Exception e) { + log.error("Error starting media streaming asynchronously: {}", e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to start media streaming."); + } + } + + @Tag(name = "15. Media Streaming APIs", description = "Media Streaming APIs") + @PostMapping("/stopMediaStreamingAsync") + public ResponseEntity stopMediaStreamingAsync(@RequestParam String callConnectionId) { + try { + StopMediaStreamingOptions stopOptions = new StopMediaStreamingOptions(); + CallMedia callMedia = getCallMedia(callConnectionId); + callMedia.stopMediaStreamingWithResponse(stopOptions, Context.NONE); + + log.info("Stopped media streaming asynchronously for call: {}", callConnectionId); + return ResponseEntity.ok("Media streaming stopped successfully."); + } catch (Exception e) { + log.error("Error stopping media streaming asynchronously: {}", e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to stop media streaming."); + } + } + + @Tag(name = "15. Media Streaming APIs", description = "Media Streaming APIs") + @PostMapping("/stopMediaStreaming") + public ResponseEntity stopMediaStreaming(@RequestParam String callConnectionId) { + try { + CallMedia callMedia = getCallMedia(callConnectionId); + callMedia.stopMediaStreaming(); + + log.info("Stopped media streaming for call: {}", callConnectionId); + return ResponseEntity.ok("Media streaming stopped successfully."); + } catch (Exception e) { + log.error("Error stopping media streaming: {}", e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to stop media streaming."); + } + } + + // 🔄 Shared Method + private CallMedia getCallMedia(String callConnectionId) { + if (callConnectionId == null || callConnectionId.isEmpty()) { + throw new IllegalArgumentException("Call connection id is empty"); + } + return client.getCallConnection(callConnectionId).getCallMedia(); + } + + private CallConnection getConnection(String callConnectionId) { + if (callConnectionId == null || callConnectionId.isEmpty()) { + throw new IllegalArgumentException("Call connection id is empty"); + } + return client.getCallConnection(callConnectionId); + } + + private CallConnectionProperties getCallConnectionProperties(String callConnectionId) { + if (callConnectionId == null || callConnectionId.isEmpty()) { + throw new IllegalArgumentException("Call connection id is empty"); + } + return client.getCallConnection(callConnectionId).getCallProperties(); + } + + private static final String FILE_SOURCE_URI = "https://sample-videos.com/audio/mp3/crowd-cheering.mp3"; // replace with actual URI + + private ResponseEntity playFile(String callConnectionId, String target, boolean isPSTN, boolean async, boolean bargeIn, boolean isPlayToAll) { + try { + FileSource fileSource = new FileSource().setUrl(FILE_SOURCE_URI); + String context = bargeIn ? "playBargeInContext" : "playContext"; + CallMedia mediaService = getCallMedia(callConnectionId); + + if (isPlayToAll) { + PlayToAllOptions options = new PlayToAllOptions(fileSource); + options.setOperationContext(context); + options.setInterruptCallMediaOperation(bargeIn); + + if (async) { + mediaService.playToAll(Collections.singletonList(fileSource)); + } else { + mediaService.playToAllWithResponse(options, Context.NONE); + } + } else { + List playTo; + if(isPSTN){ + playTo = List.of(new PhoneNumberIdentifier(target)); + } else { + playTo = List.of(new CommunicationUserIdentifier(target)); + } + + PlayOptions options = new PlayOptions(fileSource, playTo); + options.setOperationContext(context); + + if (async) { + mediaService.play(fileSource, playTo); + } else { + mediaService.playWithResponse(options, Context.NONE); + } + } + log.info("Successfully played file source to target: {}", target); + return ResponseEntity.ok("Successfully played file source."); + } catch (Exception ex) { + log.error("Error playing file source: {}", ex.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build(); + } + } + + private ResponseEntity startDtmfRecognition(String callConnectionId, String target, boolean isPSTN, boolean async) { + try { + CallMedia callMedia = getCallMedia(callConnectionId); + TextSource prompt = new TextSource() + .setText("Hi, this is recognize test. Please provide input. Thanks!") + .setVoiceName("en-US-NancyNeural") + .setSourceLocale("en-US") + .setVoiceKind(VoiceKind.MALE); // Optional: if enum NEURAL is available + + CommunicationIdentifier participant; + if (isPSTN) { + participant = new PhoneNumberIdentifier(target); + } else { + participant = new CommunicationUserIdentifier(target); + } + + CallMediaRecognizeDtmfOptions options = new CallMediaRecognizeDtmfOptions(participant, 4) + .setInterruptPrompt(false) + .setInterToneTimeout(Duration.ofSeconds(5)) + .setInitialSilenceTimeout(Duration.ofSeconds(15)) + .setPlayPrompt(prompt) + .setOperationContext("DtmfContext"); + + if (async) { + callMedia.startRecognizingWithResponse(options, Context.NONE); // async version + } else { + callMedia.startRecognizing(options); // sync version + } + log.info("Started DTMF recognition for target: {}", target); + return ResponseEntity.ok("Started DTMF recognition."); + } catch (Exception ex) { + log.error("Error starting DTMF recognition: {}", ex.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build(); + } + } + + private ResponseEntity startRecording(String callConnectionId, boolean isAudioVideo, + String recordingFormat, boolean isMixed, + boolean isRecordingWithCallConnectionId, boolean isPauseOnStart, boolean async) { + try { + CallConnectionProperties properties = getCallConnectionProperties(callConnectionId); + CallLocator locator = new ServerCallLocator(properties.getServerCallId()); + String eventCallbackUri = callbackUriHost + "/api/callbacks"; + if(isRecordingWithCallConnectionId){ + StartRecordingOptions options = new StartRecordingOptions(callConnectionId); + + options.setRecordingContent(isAudioVideo?RecordingContent.AUDIO_VIDEO:RecordingContent.AUDIO); + if(recordingFormat.equalsIgnoreCase("mp3")){ + options.setRecordingFormat(RecordingFormat.MP3); + } else if(recordingFormat.equalsIgnoreCase("wav")){ + options.setRecordingFormat(RecordingFormat.WAV); + } else { + options.setRecordingFormat(RecordingFormat.MP4); + } + options.setRecordingFormat(RecordingFormat.MP4); + if(isMixed){ + options.setRecordingChannel(RecordingChannel.MIXED); + } else { + options.setRecordingChannel(RecordingChannel.UNMIXED); + } + options.setRecordingStateCallbackUrl(eventCallbackUri); + options.setPauseOnStart(isPauseOnStart); + recordingFileFormat = recordingFormat.toLowerCase(); + + if(async){ + Response response = client.getCallRecording() + .startWithResponse(options, Context.NONE); + recordingId = response.getValue().getRecordingId(); + } else { + recordingId = client.getCallRecording().start(options).getRecordingId(); + } + log.info("Recording started. RecordingId: {}", recordingId); + return ResponseEntity.ok("Recording started successfully."); + } else { + StartRecordingOptions options = new StartRecordingOptions(locator); + + options.setRecordingContent(isAudioVideo?RecordingContent.AUDIO_VIDEO:RecordingContent.AUDIO); + if(recordingFormat.equalsIgnoreCase("mp3")){ + options.setRecordingFormat(RecordingFormat.MP3); + } else if(recordingFormat.equalsIgnoreCase("wav")){ + options.setRecordingFormat(RecordingFormat.WAV); + } else { + options.setRecordingFormat(RecordingFormat.MP4); + } + options.setRecordingFormat(RecordingFormat.MP4); + if(isMixed){ + options.setRecordingChannel(RecordingChannel.MIXED); + } else { + options.setRecordingChannel(RecordingChannel.UNMIXED); + } + options.setRecordingStateCallbackUrl(eventCallbackUri); + options.setPauseOnStart(isPauseOnStart); + recordingFileFormat = recordingFormat.toLowerCase(); + + if(async){ + Response response = client.getCallRecording() + .startWithResponse(options, Context.NONE); + recordingId = response.getValue().getRecordingId(); + } else { + recordingId = client.getCallRecording().start(options).getRecordingId(); + } + log.info("Recording started. RecordingId: {}", recordingId); + return ResponseEntity.ok("Recording started successfully."); + } + } catch (Exception e) { + log.error("Error starting recording for {}: {}", targetAcsUserId, e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error starting recording"); + } + } + + private CallAutomationClient initClient() { + try { + var client = new CallAutomationClientBuilder() + .connectionString(appConfig.getConnectionString()) + .buildClient(); + log.info("Call Automation Client initialized successfully."); + return client; + } catch (NullPointerException e) { + log.error("Please verify if Application config is properly set up"); + return null; + } catch (Exception e) { + log.error("Error occurred when initializing Call Automation Client: {} {}", e.getMessage(), e.getCause()); + return null; + } + } +} diff --git a/Call_Automation_GCCH/src/main/resources/application.yml b/Call_Automation_GCCH/src/main/resources/application.yml new file mode 100644 index 00000000..bbee0404 --- /dev/null +++ b/Call_Automation_GCCH/src/main/resources/application.yml @@ -0,0 +1,14 @@ +spring: + application: + name: CallAutomation_OutboundCalling + +server: + port: 8080 + +acs: + connectionstring: + callbackUriHost: + acsPhoneNumber: + targetphonenumber: + cognitiveServiceEndpoint: + targetTeamsUserId: <(OPTIONAL) YOUR TARGET TEAMS USER ID ex. "ab01bc12-d457-4995-a27b-c405ecfe4870"> diff --git a/Call_Automation_GCCH/static/OutboundCallDesign.png b/Call_Automation_GCCH/static/OutboundCallDesign.png new file mode 100644 index 0000000000000000000000000000000000000000..c750ab72b8c287f7ad24d09161230559b2f830a1 GIT binary patch literal 144697 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 H$Kn4EcBp06 literal 0 HcmV?d00001 From ef8f57a99c4e1bf843ce601a4d2d316e2aff13ef Mon Sep 17 00:00:00 2001 From: Pilli Vamshi Date: Wed, 29 Oct 2025 22:05:42 +0530 Subject: [PATCH 02/21] make changes for recording --- .../java/com/communication/callautomation/ProgramSample.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/ProgramSample.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/ProgramSample.java index 39a5562c..587730fd 100644 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/ProgramSample.java +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/ProgramSample.java @@ -1380,7 +1380,6 @@ private ResponseEntity startRecording(String callConnectionId, boolean i } else { options.setRecordingFormat(RecordingFormat.MP4); } - options.setRecordingFormat(RecordingFormat.MP4); if(isMixed){ options.setRecordingChannel(RecordingChannel.MIXED); } else { @@ -1410,7 +1409,6 @@ private ResponseEntity startRecording(String callConnectionId, boolean i } else { options.setRecordingFormat(RecordingFormat.MP4); } - options.setRecordingFormat(RecordingFormat.MP4); if(isMixed){ options.setRecordingChannel(RecordingChannel.MIXED); } else { @@ -1431,7 +1429,7 @@ private ResponseEntity startRecording(String callConnectionId, boolean i return ResponseEntity.ok("Recording started successfully."); } } catch (Exception e) { - log.error("Error starting recording for {}: {}", targetAcsUserId, e.getMessage()); + log.error("Error starting recording for {}: {}", recordingId, e.getMessage()); return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error starting recording"); } } From b191839d89817899ad710bbbeff75daccc06996b Mon Sep 17 00:00:00 2001 From: Pilli Vamshi Date: Thu, 30 Oct 2025 16:14:13 +0530 Subject: [PATCH 03/21] added live console logs. --- .../callautomation/ProgramSample.java | 67 ++++- .../callautomation/config/LoggingConfig.java | 45 ++++ .../config/WebSocketConfig.java | 22 ++ .../controller/LogsController.java | 239 ++++++++++++++++++ .../logging/WebSocketLogAppender.java | 73 ++++++ .../websocket/LogWebSocketHandler.java | 53 ++++ Call_Automation_GCCH/static/prompt.wav | Bin 0 -> 137246 bytes 7 files changed, 486 insertions(+), 13 deletions(-) create mode 100644 Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/LoggingConfig.java create mode 100644 Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java create mode 100644 Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/LogsController.java create mode 100644 Call_Automation_GCCH/src/main/java/com/communication/callautomation/logging/WebSocketLogAppender.java create mode 100644 Call_Automation_GCCH/src/main/java/com/communication/callautomation/websocket/LogWebSocketHandler.java create mode 100644 Call_Automation_GCCH/static/prompt.wav diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/ProgramSample.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/ProgramSample.java index 587730fd..ebcfe044 100644 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/ProgramSample.java +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/ProgramSample.java @@ -153,7 +153,9 @@ public ResponseEntity callbackEvents(@RequestBody final String reqBody) acsEvent.getTranscriptionUpdateResult().getTranscriptionStatus()); log.error("Received failed event: {}", acsEvent .getResultInformation().getMessage()); - } else if (event instanceof RecognizeCompleted) { + } else { + log.debug("Received unhandled event: {}", event.getClass().getSimpleName()); + } if (event instanceof RecognizeCompleted) { RecognizeCompleted acsEvent = (RecognizeCompleted) event; RecognizeResult recognizeResult = acsEvent.getRecognizeResult().get(); if (recognizeResult instanceof DtmfResult) { @@ -609,21 +611,20 @@ public ResponseEntity getParticipantListAsync(@RequestParam String callC PagedIterable participants = callConnection.listParticipants(Context.NONE); if (participants != null) { - StringBuilder participantList = new StringBuilder(); for (CallParticipant participant : participants) { - participantList.append("----------------------------------------------------------------------\n"); - participantList.append("Participant: --> ").append(participant.getIdentifier().getRawId()).append("\n"); - participantList.append("Is Participant on hold: --> ").append(participant.isOnHold()).append("\n"); - participantList.append("----------------------------------------------------------------------\n"); + log.info("----------------------------------------------------------------------"); + log.info("Participant: --> {}", participant.getIdentifier().getRawId()); + log.info("Is Participant on hold: --> {}", participant.isOnHold()); + log.info("----------------------------------------------------------------------"); } - return ResponseEntity.ok(participantList.toString()); + return ResponseEntity.ok("Participant list retrieved"); } else { log.warn("No participants returned in the response."); return ResponseEntity.ok("No participants found"); } } catch (Exception e) { - log.error("Error getting participant list asynchronously: {}", e.getMessage()); - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to get participant list asynchronously."); + log.error("Error getting participant list: {}", e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build(); } } @@ -1283,11 +1284,10 @@ private CallConnectionProperties getCallConnectionProperties(String callConnecti return client.getCallConnection(callConnectionId).getCallProperties(); } - private static final String FILE_SOURCE_URI = "https://sample-videos.com/audio/mp3/crowd-cheering.mp3"; // replace with actual URI - private ResponseEntity playFile(String callConnectionId, String target, boolean isPSTN, boolean async, boolean bargeIn, boolean isPlayToAll) { try { - FileSource fileSource = new FileSource().setUrl(FILE_SOURCE_URI); + log.info(callbackUriHost); + PlaySource fileSource = new FileSource().setUrl(callbackUriHost + "/prompt.wav").setPlaySourceCacheId("prompt.wav"); String context = bargeIn ? "playBargeInContext" : "playContext"; CallMedia mediaService = getCallMedia(callConnectionId); @@ -1426,7 +1426,7 @@ private ResponseEntity startRecording(String callConnectionId, boolean i recordingId = client.getCallRecording().start(options).getRecordingId(); } log.info("Recording started. RecordingId: {}", recordingId); - return ResponseEntity.ok("Recording started successfully."); + return ResponseEntity.ok("Recording started successfully. RecordingId: " + recordingId); } } catch (Exception e) { log.error("Error starting recording for {}: {}", recordingId, e.getMessage()); @@ -1449,4 +1449,45 @@ private CallAutomationClient initClient() { return null; } } + + // Test endpoint to generate log messages for WebSocket demonstration + @Tag(name = "00. Test Live Logs", description = "Test endpoint to generate logs for live console") + @PostMapping("/api/test-logs") + public ResponseEntity generateTestLogs(@RequestParam(defaultValue = "5") int count, + @RequestParam(defaultValue = "info") String level) { + try { + log.info("Starting log generation test - Count: {}, Level: {}", count, level); + + for (int i = 1; i <= count; i++) { + Thread.sleep(500); // Small delay between logs + + switch (level.toLowerCase()) { + case "error": + log.error("Test ERROR log message #{} - This is a sample error for WebSocket demonstration", i); + break; + case "warn": + log.warn("Test WARN log message #{} - This is a sample warning for WebSocket demonstration", i); + break; + case "debug": + log.debug("Test DEBUG log message #{} - This is a sample debug for WebSocket demonstration", i); + break; + case "info": + default: + log.info("Test INFO log message #{} - This is a sample info for WebSocket demonstration", i); + break; + } + } + + log.info("Log generation test completed successfully. Generated {} {} level messages", count, level); + return ResponseEntity.ok("Successfully generated " + count + " " + level + " level log messages"); + + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + log.error("Log generation test was interrupted: {}", e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Log generation was interrupted"); + } catch (Exception e) { + log.error("Error during log generation test: {}", e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to generate log messages"); + } + } } diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/LoggingConfig.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/LoggingConfig.java new file mode 100644 index 00000000..b21a41dd --- /dev/null +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/LoggingConfig.java @@ -0,0 +1,45 @@ +package com.communication.callautomation.config; + +import ch.qos.logback.classic.Level; +import ch.qos.logback.classic.Logger; +import ch.qos.logback.classic.LoggerContext; +import ch.qos.logback.classic.encoder.PatternLayoutEncoder; +import com.communication.callautomation.logging.WebSocketLogAppender; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; + +import jakarta.annotation.PostConstruct; + +@Configuration +public class LoggingConfig { + + @Autowired + private WebSocketLogAppender webSocketLogAppender; + + @PostConstruct + public void configureLogging() { + LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory(); + + // Create encoder + PatternLayoutEncoder encoder = new PatternLayoutEncoder(); + encoder.setContext(context); + encoder.setPattern("%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"); + encoder.start(); + + // Set encoder to appender + webSocketLogAppender.setEncoder(encoder); + webSocketLogAppender.setContext(context); + webSocketLogAppender.start(); + + // Get root logger and add our appender + Logger rootLogger = context.getLogger(Logger.ROOT_LOGGER_NAME); + rootLogger.addAppender(webSocketLogAppender); + rootLogger.setLevel(Level.INFO); + + // Also add to our specific package logger + Logger packageLogger = context.getLogger("com.communication.callautomation"); + packageLogger.addAppender(webSocketLogAppender); + packageLogger.setLevel(Level.INFO); + } +} \ No newline at end of file diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java new file mode 100644 index 00000000..d4413804 --- /dev/null +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java @@ -0,0 +1,22 @@ +package com.communication.callautomation.config; + +import com.communication.callautomation.websocket.LogWebSocketHandler; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.socket.config.annotation.EnableWebSocket; +import org.springframework.web.socket.config.annotation.WebSocketConfigurer; +import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry; + +@Configuration +@EnableWebSocket +public class WebSocketConfig implements WebSocketConfigurer { + + @Autowired + private LogWebSocketHandler logWebSocketHandler; + + @Override + public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { + registry.addHandler(logWebSocketHandler, "/ws/logs") + .setAllowedOrigins("*"); // In production, specify allowed origins + } +} \ No newline at end of file diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/LogsController.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/LogsController.java new file mode 100644 index 00000000..a275f42c --- /dev/null +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/LogsController.java @@ -0,0 +1,239 @@ +package com.communication.callautomation.controller; + +import org.springframework.http.MediaType; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; + +@Controller +@Tag(name = "01. Live Console Logs", description = "Real-time console logs viewer") +public class LogsController { + + @GetMapping(value = "/api/logs", produces = MediaType.TEXT_HTML_VALUE) + @Operation(summary = "Live Console Logs", description = "View real-time console logs") + @ResponseBody + public String getLiveLogsPage() { + return """ + + + + Live Console Logs + + + +
+

🔴 Live Console Logs

+

Real-time streaming of application logs via WebSocket

+
+ +
+ Connecting to WebSocket... +
+ +
+ + + + +
+ +
+
Initializing WebSocket connection...
+
+ + + + + """; + } +} \ No newline at end of file diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/logging/WebSocketLogAppender.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/logging/WebSocketLogAppender.java new file mode 100644 index 00000000..9224d997 --- /dev/null +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/logging/WebSocketLogAppender.java @@ -0,0 +1,73 @@ +package com.communication.callautomation.logging; + +import ch.qos.logback.classic.encoder.PatternLayoutEncoder; +import ch.qos.logback.classic.spi.ILoggingEvent; +import ch.qos.logback.core.AppenderBase; +import com.communication.callautomation.websocket.LogWebSocketHandler; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +@Component +public class WebSocketLogAppender extends AppenderBase { + + private static LogWebSocketHandler logWebSocketHandler; + private PatternLayoutEncoder encoder; + private final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"); + + @Autowired + public void setLogWebSocketHandler(LogWebSocketHandler handler) { + WebSocketLogAppender.logWebSocketHandler = handler; + } + + @Override + protected void append(ILoggingEvent event) { + if (logWebSocketHandler != null) { + try { + String formattedMessage = formatLogMessage(event); + logWebSocketHandler.broadcastLogMessage(formattedMessage); + } catch (Exception e) { + System.err.println("Error broadcasting log message: " + e.getMessage()); + } + } + } + + private String formatLogMessage(ILoggingEvent event) { + StringBuilder sb = new StringBuilder(); + sb.append("[").append(LocalDateTime.now().format(formatter)).append("] "); + sb.append("[").append(event.getLevel()).append("] "); + sb.append("[").append(event.getLoggerName()).append("] "); + sb.append(event.getFormattedMessage()); + + if (event.getThrowableProxy() != null) { + sb.append(" - ").append(event.getThrowableProxy().getMessage()); + } + + return sb.toString(); + } + + @Override + public void start() { + if (this.encoder == null) { + addError("No encoder set for the appender named [" + name + "]."); + return; + } + + this.encoder.start(); + super.start(); + } + + @Override + public void stop() { + if (this.encoder != null) { + this.encoder.stop(); + } + super.stop(); + } + + public void setEncoder(PatternLayoutEncoder encoder) { + this.encoder = encoder; + } +} \ No newline at end of file diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/websocket/LogWebSocketHandler.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/websocket/LogWebSocketHandler.java new file mode 100644 index 00000000..884e220a --- /dev/null +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/websocket/LogWebSocketHandler.java @@ -0,0 +1,53 @@ +package com.communication.callautomation.websocket; + +import java.io.IOException; +import java.util.Set; +import java.util.concurrent.CopyOnWriteArraySet; + +import org.springframework.stereotype.Component; +import org.springframework.web.socket.CloseStatus; +import org.springframework.web.socket.TextMessage; +import org.springframework.web.socket.WebSocketSession; +import org.springframework.web.socket.handler.TextWebSocketHandler; + +@Component +public class LogWebSocketHandler extends TextWebSocketHandler { + + private final Set sessions = new CopyOnWriteArraySet<>(); + + @Override + public void afterConnectionEstablished(WebSocketSession session) throws Exception { + sessions.add(session); + System.out.println("WebSocket connection established: " + session.getId()); + } + + @Override + public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception { + sessions.remove(session); + System.out.println("WebSocket connection closed: " + session.getId()); + } + + @Override + public void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception { + // Handle incoming messages from clients if needed + System.out.println("Received message: " + message.getPayload()); + } + + public void broadcastLogMessage(String logMessage) { + for (WebSocketSession session : sessions) { + if (session.isOpen()) { + try { + session.sendMessage(new TextMessage(logMessage)); + } catch (IOException e) { + System.err.println("Error sending message to WebSocket session: " + e.getMessage()); + } + } + } + } + + @Override + public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception { + System.err.println("WebSocket transport error: " + exception.getMessage()); + sessions.remove(session); + } +} \ No newline at end of file diff --git a/Call_Automation_GCCH/static/prompt.wav b/Call_Automation_GCCH/static/prompt.wav new file mode 100644 index 0000000000000000000000000000000000000000..f7642f78f4b57299fd81dde937eb003eff95104e GIT binary patch literal 137246 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 X&;*)56KDcWpb0dACeQ@_?*#q@2khy` literal 0 HcmV?d00001 From 0897938540b551e26880c8f45c2596c367a2532b Mon Sep 17 00:00:00 2001 From: Pilli Vamshi Date: Tue, 4 Nov 2025 12:05:32 +0530 Subject: [PATCH 04/21] resolved the build issues. --- .../callautomation/AppConfig.java | 24 +++++++++++++++++++ .../callautomation/ProgramSample.java | 1 - .../src/main/resources/application.yml | 10 ++++---- 3 files changed, 29 insertions(+), 6 deletions(-) diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/AppConfig.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/AppConfig.java index 5c89a7d1..3ae8cb66 100644 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/AppConfig.java +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/AppConfig.java @@ -37,4 +37,28 @@ public String getCallBackUri() { public String getCallBackUriForRecordingApis() { return callbackUriHost + "/api/recordingcallback"; } + + public String getCallbackUriHost() { + return this.callbackUriHost; + } + + public String getAcsPhoneNumber() { + return this.acsPhoneNumber; + } + + public String getTargetPhoneNumber() { + return this.targetPhoneNumber; + } + + public String getCognitiveServiceEndpoint() { + return this.cognitiveServiceEndpoint; + } + + public String getConnectionString() { + return this.connectionString; + } + + public String getTargetTeamsUserId() { + return this.targetTeamsUserId; + } } diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/ProgramSample.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/ProgramSample.java index ebcfe044..111567a8 100644 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/ProgramSample.java +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/ProgramSample.java @@ -1,6 +1,5 @@ package com.communication.callautomation; -// import com.azure.communication.callautomation.CallAutomationAsyncClient; import com.azure.communication.callautomation.CallAutomationClient; import com.azure.communication.callautomation.CallAutomationClientBuilder; import com.azure.communication.callautomation.CallAutomationEventParser; diff --git a/Call_Automation_GCCH/src/main/resources/application.yml b/Call_Automation_GCCH/src/main/resources/application.yml index bbee0404..46a84f1b 100644 --- a/Call_Automation_GCCH/src/main/resources/application.yml +++ b/Call_Automation_GCCH/src/main/resources/application.yml @@ -6,9 +6,9 @@ server: port: 8080 acs: - connectionstring: - callbackUriHost: - acsPhoneNumber: - targetphonenumber: - cognitiveServiceEndpoint: + connectionstring: endpoint=https://dacsrecordingtest.unitedstates.communication.azure.com/;accesskey=9lMdkVL4KcqJ3YXGgWS9Fxa1CjPwXs63rEMczJ7DsC9mbWR3hlbtJQQJ99BEACULyCpAArohAAAAAZCS58G3 + callbackUriHost: https://rtqh72c0.inc1.devtunnels.ms:8080 + acsPhoneNumber: "+18772119545" + targetphonenumber: "+918712321814" + cognitiveServiceEndpoint: https://cognitive-service-waferwire.cognitiveservices.azure.com/ targetTeamsUserId: <(OPTIONAL) YOUR TARGET TEAMS USER ID ex. "ab01bc12-d457-4995-a27b-c405ecfe4870"> From 359b30a33d6bb75459c40715f16321dac43bec08 Mon Sep 17 00:00:00 2001 From: Pilli Vamshi Date: Tue, 4 Nov 2025 12:15:26 +0530 Subject: [PATCH 05/21] removed credentials. --- .../src/main/resources/application.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Call_Automation_GCCH/src/main/resources/application.yml b/Call_Automation_GCCH/src/main/resources/application.yml index 46a84f1b..b2b8685e 100644 --- a/Call_Automation_GCCH/src/main/resources/application.yml +++ b/Call_Automation_GCCH/src/main/resources/application.yml @@ -6,9 +6,9 @@ server: port: 8080 acs: - connectionstring: endpoint=https://dacsrecordingtest.unitedstates.communication.azure.com/;accesskey=9lMdkVL4KcqJ3YXGgWS9Fxa1CjPwXs63rEMczJ7DsC9mbWR3hlbtJQQJ99BEACULyCpAArohAAAAAZCS58G3 - callbackUriHost: https://rtqh72c0.inc1.devtunnels.ms:8080 - acsPhoneNumber: "+18772119545" - targetphonenumber: "+918712321814" - cognitiveServiceEndpoint: https://cognitive-service-waferwire.cognitiveservices.azure.com/ + connectionstring: "" + callbackUriHost: "" + acsPhoneNumber: "" + targetphonenumber: "" + cognitiveServiceEndpoint: "" targetTeamsUserId: <(OPTIONAL) YOUR TARGET TEAMS USER ID ex. "ab01bc12-d457-4995-a27b-c405ecfe4870"> From 1729ce64fdfbdfb1d4fa7da77ee5f4f650155836 Mon Sep 17 00:00:00 2001 From: Pilli Vamshi Date: Tue, 4 Nov 2025 17:09:06 +0530 Subject: [PATCH 06/21] resolved the live log issue. --- Call_Automation_GCCH/pom.xml | 2 +- .../callautomation/ProgramSample.java | 1 + .../config/WebSocketConfig.java | 3 +- .../controller/LogsController.java | 85 +++++++++++++------ 4 files changed, 65 insertions(+), 26 deletions(-) diff --git a/Call_Automation_GCCH/pom.xml b/Call_Automation_GCCH/pom.xml index a4225a28..a5034a0a 100644 --- a/Call_Automation_GCCH/pom.xml +++ b/Call_Automation_GCCH/pom.xml @@ -84,7 +84,7 @@ com.azure azure-communication-common - 1.5.0-beta.1 + 1.4.0 org.projectlombok diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/ProgramSample.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/ProgramSample.java index 111567a8..25c07df0 100644 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/ProgramSample.java +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/ProgramSample.java @@ -332,6 +332,7 @@ public ResponseEntity outboundCallAsync(@RequestParam String target, try { String callbackUri = callbackUriHost + "/api/callbacks"; + log.info("Creating async call with callbackUri: {}", callbackUri); if (isPSTN) { PhoneNumberIdentifier targetParticipant = new PhoneNumberIdentifier(target); PhoneNumberIdentifier caller = new PhoneNumberIdentifier(acsPhoneNumber); diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java index d4413804..d08452ac 100644 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java @@ -17,6 +17,7 @@ public class WebSocketConfig implements WebSocketConfigurer { @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { registry.addHandler(logWebSocketHandler, "/ws/logs") - .setAllowedOrigins("*"); // In production, specify allowed origins + .setAllowedOrigins("*") // Allow all origins for testing + .withSockJS(); // Enable SockJS fallback for better compatibility } } \ No newline at end of file diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/LogsController.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/LogsController.java index a275f42c..10de844a 100644 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/LogsController.java +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/LogsController.java @@ -127,35 +127,72 @@ public String getLiveLogsPage() { const maxLogEntries = 1000; function connectWebSocket() { + // Enhanced WebSocket connection with fallback support const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:'; const host = window.location.host; const wsUrl = `${protocol}//${host}/ws/logs`; - socket = new WebSocket(wsUrl); + addLogEntry(`Attempting WebSocket connection to: ${wsUrl}`, 'info'); - socket.onopen = function(event) { - updateConnectionStatus(true); - addLogEntry('WebSocket connected successfully', 'info'); - }; - - socket.onmessage = function(event) { - if (!isPaused) { - processLogMessage(event.data); - } else { - logQueue.push(event.data); - } - }; - - socket.onclose = function(event) { - updateConnectionStatus(false); - addLogEntry('WebSocket connection closed', 'warn'); - setTimeout(connectWebSocket, 3000); - }; - - socket.onerror = function(error) { - updateConnectionStatus(false); - addLogEntry('WebSocket error: ' + error, 'error'); - }; + try { + socket = new WebSocket(wsUrl); + + // Set a connection timeout + const connectionTimeout = setTimeout(() => { + if (socket.readyState === WebSocket.CONNECTING) { + socket.close(); + addLogEntry('WebSocket connection timeout - trying fallback', 'warn'); + connectWithFallback(); + } + }, 10000); // 10 second timeout + + socket.onopen = function(event) { + clearTimeout(connectionTimeout); + updateConnectionStatus(true); + addLogEntry('WebSocket connected successfully', 'info'); + }; + + socket.onmessage = function(event) { + if (!isPaused) { + processLogMessage(event.data); + } else { + logQueue.push(event.data); + } + }; + + socket.onclose = function(event) { + clearTimeout(connectionTimeout); + updateConnectionStatus(false); + addLogEntry(`WebSocket connection closed. Code: ${event.code}, Reason: ${event.reason}`, 'warn'); + + // Retry connection after delay + if (event.code !== 1000) { // Not a normal closure + setTimeout(() => { + addLogEntry('Attempting to reconnect...', 'info'); + connectWebSocket(); + }, 5000); + } + }; + + socket.onerror = function(error) { + clearTimeout(connectionTimeout); + updateConnectionStatus(false); + addLogEntry('WebSocket error occurred - check browser console for details', 'error'); + console.error('WebSocket error:', error); + }; + + } catch (error) { + addLogEntry('Failed to create WebSocket connection: ' + error.message, 'error'); + connectWithFallback(); + } + } + + // Fallback connection method for environments with WebSocket issues + function connectWithFallback() { + addLogEntry('Attempting fallback connection method...', 'info'); + // For now, just show a message. In production, you might use Server-Sent Events + addLogEntry('WebSocket unavailable. Please check Azure VM configuration.', 'error'); + addLogEntry('Ensure port 8080 is open and WebSocket proxy is configured.', 'warn'); } function updateConnectionStatus(connected) { From 84882af1b0aea1b55b67e1c2d59bcf67f65325c7 Mon Sep 17 00:00:00 2001 From: Pilli Vamshi Date: Tue, 11 Nov 2025 14:53:31 +0530 Subject: [PATCH 07/21] set allow origin changed --- .../communication/callautomation/config/WebSocketConfig.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java index d08452ac..d1522854 100644 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java @@ -17,7 +17,7 @@ public class WebSocketConfig implements WebSocketConfigurer { @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { registry.addHandler(logWebSocketHandler, "/ws/logs") - .setAllowedOrigins("*") // Allow all origins for testing + .setAllowedOriginPatterns("*") // Allow all origins for testing (compatible with credentials) .withSockJS(); // Enable SockJS fallback for better compatibility } } \ No newline at end of file From 7e3650d419ba3f137cf84d81bcac1e9404181022 Mon Sep 17 00:00:00 2001 From: Pilli Vamshi Date: Tue, 11 Nov 2025 15:05:56 +0530 Subject: [PATCH 08/21] modified websocket handler --- .../websocket/LogWebSocketHandler.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/websocket/LogWebSocketHandler.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/websocket/LogWebSocketHandler.java index 884e220a..c05cb3ec 100644 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/websocket/LogWebSocketHandler.java +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/websocket/LogWebSocketHandler.java @@ -18,13 +18,22 @@ public class LogWebSocketHandler extends TextWebSocketHandler { @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { sessions.add(session); - System.out.println("WebSocket connection established: " + session.getId()); + System.out.println("WebSocket connection established: " + session.getId() + + " from " + session.getRemoteAddress()); + + // Send a welcome message to confirm connection + try { + session.sendMessage(new TextMessage("WebSocket connection established successfully")); + } catch (IOException e) { + System.err.println("Error sending welcome message: " + e.getMessage()); + } } @Override public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception { sessions.remove(session); - System.out.println("WebSocket connection closed: " + session.getId()); + System.out.println("WebSocket connection closed: " + session.getId() + + ", Status: " + status.getCode() + " - " + status.getReason()); } @Override @@ -47,7 +56,8 @@ public void broadcastLogMessage(String logMessage) { @Override public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception { - System.err.println("WebSocket transport error: " + exception.getMessage()); + System.err.println("WebSocket transport error for session " + session.getId() + ": " + exception.getMessage()); + exception.printStackTrace(); sessions.remove(session); } } \ No newline at end of file From 1444233a56b17d5044abfea285e738ad18ba3eed Mon Sep 17 00:00:00 2001 From: Pilli Vamshi Date: Tue, 11 Nov 2025 15:35:15 +0530 Subject: [PATCH 09/21] resolved the websocket issue. --- .../config/WebSocketConfig.java | 7 ++- .../controller/LogsController.java | 48 +++++++++++++++++-- .../ServerSentEventsController.java | 48 +++++++++++++++++++ .../websocket/LogWebSocketHandler.java | 5 ++ 4 files changed, 103 insertions(+), 5 deletions(-) create mode 100644 Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/ServerSentEventsController.java diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java index d1522854..e5894caa 100644 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java @@ -18,6 +18,11 @@ public class WebSocketConfig implements WebSocketConfigurer { public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { registry.addHandler(logWebSocketHandler, "/ws/logs") .setAllowedOriginPatterns("*") // Allow all origins for testing (compatible with credentials) - .withSockJS(); // Enable SockJS fallback for better compatibility + .setAllowedOrigins("*"); // Also add this for broader compatibility + + // Also register without SockJS for direct WebSocket connections + registry.addHandler(logWebSocketHandler, "/websocket/logs") + .setAllowedOriginPatterns("*") + .setAllowedOrigins("*"); } } \ No newline at end of file diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/LogsController.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/LogsController.java index 10de844a..b714541d 100644 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/LogsController.java +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/LogsController.java @@ -130,7 +130,9 @@ function connectWebSocket() { // Enhanced WebSocket connection with fallback support const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:'; const host = window.location.host; - const wsUrl = `${protocol}//${host}/ws/logs`; + + // Try direct WebSocket connection first + const wsUrl = `${protocol}//${host}/websocket/logs`; addLogEntry(`Attempting WebSocket connection to: ${wsUrl}`, 'info'); @@ -190,9 +192,47 @@ function connectWebSocket() { // Fallback connection method for environments with WebSocket issues function connectWithFallback() { addLogEntry('Attempting fallback connection method...', 'info'); - // For now, just show a message. In production, you might use Server-Sent Events - addLogEntry('WebSocket unavailable. Please check Azure VM configuration.', 'error'); - addLogEntry('Ensure port 8080 is open and WebSocket proxy is configured.', 'warn'); + + // Try SockJS endpoint as fallback + const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:'; + const host = window.location.host; + const fallbackUrl = `${protocol}//${host}/ws/logs`; + + addLogEntry(`Trying SockJS fallback: ${fallbackUrl}`, 'info'); + + try { + socket = new WebSocket(fallbackUrl); + + socket.onopen = function(event) { + updateConnectionStatus(true); + addLogEntry('WebSocket connected via SockJS fallback', 'info'); + }; + + socket.onmessage = function(event) { + if (!isPaused) { + processLogMessage(event.data); + } else { + logQueue.push(event.data); + } + }; + + socket.onclose = function(event) { + updateConnectionStatus(false); + addLogEntry(`Fallback WebSocket connection closed. Code: ${event.code}, Reason: ${event.reason}`, 'warn'); + }; + + socket.onerror = function(error) { + updateConnectionStatus(false); + addLogEntry('Fallback WebSocket error occurred', 'error'); + addLogEntry('WebSocket unavailable. Please check dev tunnel configuration.', 'error'); + addLogEntry('For dev tunnels, WebSocket connections may require additional configuration.', 'warn'); + }; + + } catch (error) { + addLogEntry('Failed to create fallback WebSocket connection: ' + error.message, 'error'); + addLogEntry('WebSocket unavailable. Please check Azure VM configuration.', 'error'); + addLogEntry('Ensure port 8080 is open and WebSocket proxy is configured.', 'warn'); + } } function updateConnectionStatus(connected) { diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/ServerSentEventsController.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/ServerSentEventsController.java new file mode 100644 index 00000000..3921f073 --- /dev/null +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/ServerSentEventsController.java @@ -0,0 +1,48 @@ +package com.communication.callautomation.controller; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; +import java.util.concurrent.CopyOnWriteArraySet; +import java.util.Set; +import java.io.IOException; + +@RestController +public class ServerSentEventsController { + + private final Set emitters = new CopyOnWriteArraySet<>(); + + @GetMapping("/api/logs/stream") + public SseEmitter streamLogs() { + SseEmitter emitter = new SseEmitter(Long.MAX_VALUE); + + emitter.onCompletion(() -> emitters.remove(emitter)); + emitter.onTimeout(() -> emitters.remove(emitter)); + emitter.onError((ex) -> emitters.remove(emitter)); + + emitters.add(emitter); + + try { + emitter.send(SseEmitter.event() + .name("connection") + .data("Server-Sent Events connection established")); + } catch (IOException e) { + emitters.remove(emitter); + } + + return emitter; + } + + public void broadcastLog(String logMessage) { + emitters.removeIf(emitter -> { + try { + emitter.send(SseEmitter.event() + .name("log") + .data(logMessage)); + return false; + } catch (IOException e) { + return true; + } + }); + } +} \ No newline at end of file diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/websocket/LogWebSocketHandler.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/websocket/LogWebSocketHandler.java index c05cb3ec..99013f1b 100644 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/websocket/LogWebSocketHandler.java +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/websocket/LogWebSocketHandler.java @@ -20,6 +20,9 @@ public void afterConnectionEstablished(WebSocketSession session) throws Exceptio sessions.add(session); System.out.println("WebSocket connection established: " + session.getId() + " from " + session.getRemoteAddress()); + System.out.println("Session URI: " + session.getUri()); + System.out.println("Session protocol: " + session.getAcceptedProtocol()); + System.out.println("Total active sessions: " + sessions.size()); // Send a welcome message to confirm connection try { @@ -57,6 +60,8 @@ public void broadcastLogMessage(String logMessage) { @Override public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception { System.err.println("WebSocket transport error for session " + session.getId() + ": " + exception.getMessage()); + System.err.println("Session state: " + (session.isOpen() ? "OPEN" : "CLOSED")); + System.err.println("Remote address: " + session.getRemoteAddress()); exception.printStackTrace(); sessions.remove(session); } From d601764b8e3ab7411ffd790fd50d3e717f04dec1 Mon Sep 17 00:00:00 2001 From: Pilli Vamshi Date: Tue, 11 Nov 2025 15:54:12 +0530 Subject: [PATCH 10/21] resolved the websocket issue. --- .../config/WebSocketConfig.java | 8 +--- .../controller/LogsController.java | 48 ++----------------- .../ServerSentEventsController.java | 48 ------------------- .../websocket/LogWebSocketHandler.java | 21 ++------ 4 files changed, 8 insertions(+), 117 deletions(-) delete mode 100644 Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/ServerSentEventsController.java diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java index e5894caa..bf7bedf8 100644 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java @@ -17,12 +17,6 @@ public class WebSocketConfig implements WebSocketConfigurer { @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { registry.addHandler(logWebSocketHandler, "/ws/logs") - .setAllowedOriginPatterns("*") // Allow all origins for testing (compatible with credentials) - .setAllowedOrigins("*"); // Also add this for broader compatibility - - // Also register without SockJS for direct WebSocket connections - registry.addHandler(logWebSocketHandler, "/websocket/logs") - .setAllowedOriginPatterns("*") - .setAllowedOrigins("*"); + .setAllowedOrigins("*"); // Allow all origins for testing } } \ No newline at end of file diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/LogsController.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/LogsController.java index b714541d..10de844a 100644 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/LogsController.java +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/LogsController.java @@ -130,9 +130,7 @@ function connectWebSocket() { // Enhanced WebSocket connection with fallback support const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:'; const host = window.location.host; - - // Try direct WebSocket connection first - const wsUrl = `${protocol}//${host}/websocket/logs`; + const wsUrl = `${protocol}//${host}/ws/logs`; addLogEntry(`Attempting WebSocket connection to: ${wsUrl}`, 'info'); @@ -192,47 +190,9 @@ function connectWebSocket() { // Fallback connection method for environments with WebSocket issues function connectWithFallback() { addLogEntry('Attempting fallback connection method...', 'info'); - - // Try SockJS endpoint as fallback - const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:'; - const host = window.location.host; - const fallbackUrl = `${protocol}//${host}/ws/logs`; - - addLogEntry(`Trying SockJS fallback: ${fallbackUrl}`, 'info'); - - try { - socket = new WebSocket(fallbackUrl); - - socket.onopen = function(event) { - updateConnectionStatus(true); - addLogEntry('WebSocket connected via SockJS fallback', 'info'); - }; - - socket.onmessage = function(event) { - if (!isPaused) { - processLogMessage(event.data); - } else { - logQueue.push(event.data); - } - }; - - socket.onclose = function(event) { - updateConnectionStatus(false); - addLogEntry(`Fallback WebSocket connection closed. Code: ${event.code}, Reason: ${event.reason}`, 'warn'); - }; - - socket.onerror = function(error) { - updateConnectionStatus(false); - addLogEntry('Fallback WebSocket error occurred', 'error'); - addLogEntry('WebSocket unavailable. Please check dev tunnel configuration.', 'error'); - addLogEntry('For dev tunnels, WebSocket connections may require additional configuration.', 'warn'); - }; - - } catch (error) { - addLogEntry('Failed to create fallback WebSocket connection: ' + error.message, 'error'); - addLogEntry('WebSocket unavailable. Please check Azure VM configuration.', 'error'); - addLogEntry('Ensure port 8080 is open and WebSocket proxy is configured.', 'warn'); - } + // For now, just show a message. In production, you might use Server-Sent Events + addLogEntry('WebSocket unavailable. Please check Azure VM configuration.', 'error'); + addLogEntry('Ensure port 8080 is open and WebSocket proxy is configured.', 'warn'); } function updateConnectionStatus(connected) { diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/ServerSentEventsController.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/ServerSentEventsController.java deleted file mode 100644 index 3921f073..00000000 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/ServerSentEventsController.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.communication.callautomation.controller; - -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; -import java.util.concurrent.CopyOnWriteArraySet; -import java.util.Set; -import java.io.IOException; - -@RestController -public class ServerSentEventsController { - - private final Set emitters = new CopyOnWriteArraySet<>(); - - @GetMapping("/api/logs/stream") - public SseEmitter streamLogs() { - SseEmitter emitter = new SseEmitter(Long.MAX_VALUE); - - emitter.onCompletion(() -> emitters.remove(emitter)); - emitter.onTimeout(() -> emitters.remove(emitter)); - emitter.onError((ex) -> emitters.remove(emitter)); - - emitters.add(emitter); - - try { - emitter.send(SseEmitter.event() - .name("connection") - .data("Server-Sent Events connection established")); - } catch (IOException e) { - emitters.remove(emitter); - } - - return emitter; - } - - public void broadcastLog(String logMessage) { - emitters.removeIf(emitter -> { - try { - emitter.send(SseEmitter.event() - .name("log") - .data(logMessage)); - return false; - } catch (IOException e) { - return true; - } - }); - } -} \ No newline at end of file diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/websocket/LogWebSocketHandler.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/websocket/LogWebSocketHandler.java index 99013f1b..884e220a 100644 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/websocket/LogWebSocketHandler.java +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/websocket/LogWebSocketHandler.java @@ -18,25 +18,13 @@ public class LogWebSocketHandler extends TextWebSocketHandler { @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { sessions.add(session); - System.out.println("WebSocket connection established: " + session.getId() + - " from " + session.getRemoteAddress()); - System.out.println("Session URI: " + session.getUri()); - System.out.println("Session protocol: " + session.getAcceptedProtocol()); - System.out.println("Total active sessions: " + sessions.size()); - - // Send a welcome message to confirm connection - try { - session.sendMessage(new TextMessage("WebSocket connection established successfully")); - } catch (IOException e) { - System.err.println("Error sending welcome message: " + e.getMessage()); - } + System.out.println("WebSocket connection established: " + session.getId()); } @Override public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception { sessions.remove(session); - System.out.println("WebSocket connection closed: " + session.getId() + - ", Status: " + status.getCode() + " - " + status.getReason()); + System.out.println("WebSocket connection closed: " + session.getId()); } @Override @@ -59,10 +47,7 @@ public void broadcastLogMessage(String logMessage) { @Override public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception { - System.err.println("WebSocket transport error for session " + session.getId() + ": " + exception.getMessage()); - System.err.println("Session state: " + (session.isOpen() ? "OPEN" : "CLOSED")); - System.err.println("Remote address: " + session.getRemoteAddress()); - exception.printStackTrace(); + System.err.println("WebSocket transport error: " + exception.getMessage()); sessions.remove(session); } } \ No newline at end of file From afadf87e30f2e2904b84818bb35e0b17ff31c1c6 Mon Sep 17 00:00:00 2001 From: Pilli Vamshi Date: Fri, 14 Nov 2025 15:15:09 +0530 Subject: [PATCH 11/21] fixed the websocket issue. --- .../config/WebSocketConfig.java | 15 +- .../controller/LogsController.java | 154 ++++++++++++++++-- .../websocket/LogWebSocketHandler.java | 90 +++++++++- .../src/main/resources/application.yml | 10 ++ 4 files changed, 246 insertions(+), 23 deletions(-) diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java index bf7bedf8..42cfb3dd 100644 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java @@ -1,12 +1,13 @@ package com.communication.callautomation.config; -import com.communication.callautomation.websocket.LogWebSocketHandler; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.config.annotation.EnableWebSocket; import org.springframework.web.socket.config.annotation.WebSocketConfigurer; import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry; +import com.communication.callautomation.websocket.LogWebSocketHandler; + @Configuration @EnableWebSocket public class WebSocketConfig implements WebSocketConfigurer { @@ -16,7 +17,17 @@ public class WebSocketConfig implements WebSocketConfigurer { @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { + // Primary WebSocket endpoint with SockJS fallback registry.addHandler(logWebSocketHandler, "/ws/logs") - .setAllowedOrigins("*"); // Allow all origins for testing + .setAllowedOrigins("*") + .setAllowedOriginPatterns("*") + .withSockJS() + .setSessionCookieNeeded(false) + .setHeartbeatTime(25000); // 25 second heartbeat + + // Direct WebSocket endpoint without SockJS + registry.addHandler(logWebSocketHandler, "/websocket/logs") + .setAllowedOrigins("*") + .setAllowedOriginPatterns("*"); } } \ No newline at end of file diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/LogsController.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/LogsController.java index 10de844a..e39d7bc8 100644 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/LogsController.java +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/LogsController.java @@ -126,67 +126,191 @@ public String getLiveLogsPage() { let logQueue = []; const maxLogEntries = 1000; + let reconnectAttempts = 0; + let maxReconnectAttempts = 10; + let reconnectInterval = 3000; // Start with 3 seconds + let heartbeatInterval = null; + function connectWebSocket() { - // Enhanced WebSocket connection with fallback support + // Try SockJS-enabled endpoint first for better compatibility const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:'; const host = window.location.host; const wsUrl = `${protocol}//${host}/ws/logs`; - addLogEntry(`Attempting WebSocket connection to: ${wsUrl}`, 'info'); + addLogEntry(`Attempting WebSocket connection to: ${wsUrl} (attempt ${reconnectAttempts + 1})`, 'info'); try { socket = new WebSocket(wsUrl); // Set a connection timeout const connectionTimeout = setTimeout(() => { - if (socket.readyState === WebSocket.CONNECTING) { + if (socket && socket.readyState === WebSocket.CONNECTING) { socket.close(); - addLogEntry('WebSocket connection timeout - trying fallback', 'warn'); - connectWithFallback(); + addLogEntry('WebSocket connection timeout - trying direct endpoint', 'warn'); + connectDirectWebSocket(); } - }, 10000); // 10 second timeout + }, 8000); // 8 second timeout socket.onopen = function(event) { clearTimeout(connectionTimeout); + reconnectAttempts = 0; // Reset on successful connection + reconnectInterval = 3000; // Reset interval updateConnectionStatus(true); - addLogEntry('WebSocket connected successfully', 'info'); + addLogEntry('✅ WebSocket connected successfully via SockJS', 'info'); + + // Start heartbeat + startHeartbeat(); }; socket.onmessage = function(event) { + const message = event.data; + if (message === 'PONG') { + addLogEntry('Heartbeat: PONG received', 'debug'); + return; + } + if (!isPaused) { - processLogMessage(event.data); + processLogMessage(message); } else { - logQueue.push(event.data); + logQueue.push(message); } }; socket.onclose = function(event) { clearTimeout(connectionTimeout); + stopHeartbeat(); updateConnectionStatus(false); - addLogEntry(`WebSocket connection closed. Code: ${event.code}, Reason: ${event.reason}`, 'warn'); - // Retry connection after delay - if (event.code !== 1000) { // Not a normal closure + let closeReason = getCloseReason(event.code); + addLogEntry(`WebSocket connection closed. Code: ${event.code} (${closeReason})`, 'warn'); + + // Handle different close codes + if (event.code === 1006) { + addLogEntry('Error 1006: Abnormal closure detected - likely network/proxy issue', 'error'); + } + + // Retry connection with exponential backoff + if (event.code !== 1000 && reconnectAttempts < maxReconnectAttempts) { + reconnectAttempts++; + const delay = Math.min(reconnectInterval * Math.pow(1.5, reconnectAttempts - 1), 30000); + setTimeout(() => { - addLogEntry('Attempting to reconnect...', 'info'); + addLogEntry(`Attempting to reconnect in ${delay/1000}s...`, 'info'); connectWebSocket(); - }, 5000); + }, delay); + } else if (reconnectAttempts >= maxReconnectAttempts) { + addLogEntry('Max reconnection attempts reached. Switching to Server-Sent Events...', 'warn'); + connectWithFallback(); } }; socket.onerror = function(error) { clearTimeout(connectionTimeout); updateConnectionStatus(false); - addLogEntry('WebSocket error occurred - check browser console for details', 'error'); + addLogEntry('WebSocket error occurred - attempting direct connection', 'error'); console.error('WebSocket error:', error); + + // Try direct WebSocket endpoint + setTimeout(() => connectDirectWebSocket(), 1000); }; } catch (error) { addLogEntry('Failed to create WebSocket connection: ' + error.message, 'error'); + setTimeout(() => connectDirectWebSocket(), 1000); + } + } + + function connectDirectWebSocket() { + const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:'; + const host = window.location.host; + const wsUrl = `${protocol}//${host}/websocket/logs`; + + addLogEntry(`Trying direct WebSocket connection to: ${wsUrl}`, 'info'); + + try { + socket = new WebSocket(wsUrl); + + socket.onopen = function(event) { + reconnectAttempts = 0; + updateConnectionStatus(true); + addLogEntry('✅ Direct WebSocket connected successfully', 'info'); + startHeartbeat(); + }; + + socket.onmessage = function(event) { + const message = event.data; + if (message === 'PONG') { + return; // Ignore pong messages + } + + if (!isPaused) { + processLogMessage(message); + } else { + logQueue.push(message); + } + }; + + socket.onclose = function(event) { + stopHeartbeat(); + updateConnectionStatus(false); + addLogEntry(`Direct WebSocket closed. Code: ${event.code}`, 'warn'); + + if (event.code !== 1000) { + addLogEntry('Direct WebSocket failed. Switching to Server-Sent Events...', 'warn'); + connectWithFallback(); + } + }; + + socket.onerror = function(error) { + updateConnectionStatus(false); + addLogEntry('Direct WebSocket error - switching to fallback', 'error'); + connectWithFallback(); + }; + + } catch (error) { + addLogEntry('Failed to create direct WebSocket: ' + error.message, 'error'); connectWithFallback(); } } + function startHeartbeat() { + if (heartbeatInterval) { + clearInterval(heartbeatInterval); + } + + heartbeatInterval = setInterval(() => { + if (socket && socket.readyState === WebSocket.OPEN) { + socket.send('PING'); + addLogEntry('Heartbeat: PING sent', 'debug'); + } + }, 30000); // Send ping every 30 seconds + } + + function stopHeartbeat() { + if (heartbeatInterval) { + clearInterval(heartbeatInterval); + heartbeatInterval = null; + } + } + + function getCloseReason(code) { + const reasons = { + 1000: 'Normal Closure', + 1001: 'Going Away', + 1002: 'Protocol Error', + 1003: 'Unsupported Data', + 1005: 'No Status Received', + 1006: 'Abnormal Closure', + 1007: 'Invalid frame payload data', + 1008: 'Policy Violation', + 1009: 'Message too big', + 1010: 'Mandatory extension', + 1011: 'Internal Server Error', + 1015: 'TLS handshake' + }; + return reasons[code] || 'Unknown'; + } + // Fallback connection method for environments with WebSocket issues function connectWithFallback() { addLogEntry('Attempting fallback connection method...', 'info'); diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/websocket/LogWebSocketHandler.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/websocket/LogWebSocketHandler.java index 884e220a..9e2e7d17 100644 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/websocket/LogWebSocketHandler.java +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/websocket/LogWebSocketHandler.java @@ -3,9 +3,14 @@ import java.io.IOException; import java.util.Set; import java.util.concurrent.CopyOnWriteArraySet; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; import org.springframework.stereotype.Component; import org.springframework.web.socket.CloseStatus; +import org.springframework.web.socket.PingMessage; +import org.springframework.web.socket.PongMessage; import org.springframework.web.socket.TextMessage; import org.springframework.web.socket.WebSocketSession; import org.springframework.web.socket.handler.TextWebSocketHandler; @@ -14,40 +19,113 @@ public class LogWebSocketHandler extends TextWebSocketHandler { private final Set sessions = new CopyOnWriteArraySet<>(); + private final ScheduledExecutorService heartbeatExecutor = Executors.newSingleThreadScheduledExecutor(); @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { sessions.add(session); - System.out.println("WebSocket connection established: " + session.getId()); + System.out.println("WebSocket connection established: " + session.getId() + + " from " + session.getRemoteAddress()); + System.out.println("Session URI: " + session.getUri()); + System.out.println("Session attributes: " + session.getAttributes()); + System.out.println("Total active sessions: " + sessions.size()); + + // Send welcome message with timestamp + try { + String welcomeMessage = String.format("WebSocket connection established at %s", + new java.util.Date()); + session.sendMessage(new TextMessage(welcomeMessage)); + } catch (IOException e) { + System.err.println("Error sending welcome message: " + e.getMessage()); + sessions.remove(session); + } + + // Start heartbeat for this session + startHeartbeat(session); } @Override public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception { sessions.remove(session); - System.out.println("WebSocket connection closed: " + session.getId()); + System.out.println("WebSocket connection closed: " + session.getId() + + ", Status: " + status.getCode() + " - " + status.getReason()); + System.out.println("Remaining active sessions: " + sessions.size()); } @Override public void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception { - // Handle incoming messages from clients if needed - System.out.println("Received message: " + message.getPayload()); + String payload = message.getPayload(); + System.out.println("Received message from " + session.getId() + ": " + payload); + + // Handle ping/pong for heartbeat + if ("PING".equals(payload)) { + try { + session.sendMessage(new TextMessage("PONG")); + } catch (IOException e) { + System.err.println("Error sending PONG: " + e.getMessage()); + } + } + } + + @Override + protected void handlePongMessage(WebSocketSession session, PongMessage message) throws Exception { + System.out.println("Received pong from session: " + session.getId()); } public void broadcastLogMessage(String logMessage) { + Set sessionsToRemove = new CopyOnWriteArraySet<>(); + for (WebSocketSession session : sessions) { if (session.isOpen()) { try { session.sendMessage(new TextMessage(logMessage)); } catch (IOException e) { - System.err.println("Error sending message to WebSocket session: " + e.getMessage()); + System.err.println("Error sending message to WebSocket session " + session.getId() + ": " + e.getMessage()); + sessionsToRemove.add(session); } + } else { + sessionsToRemove.add(session); } } + + // Clean up closed sessions + sessions.removeAll(sessionsToRemove); + } + + private void startHeartbeat(WebSocketSession session) { + heartbeatExecutor.scheduleAtFixedRate(() -> { + if (session.isOpen()) { + try { + session.sendMessage(new PingMessage()); + System.out.println("Sent ping to session: " + session.getId()); + } catch (IOException e) { + System.err.println("Error sending ping to session " + session.getId() + ": " + e.getMessage()); + sessions.remove(session); + } + } + }, 30, 30, TimeUnit.SECONDS); // Send ping every 30 seconds } @Override public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception { - System.err.println("WebSocket transport error: " + exception.getMessage()); + System.err.println("WebSocket transport error for session " + session.getId() + ": " + exception.getMessage()); + System.err.println("Session state: " + (session.isOpen() ? "OPEN" : "CLOSED")); + System.err.println("Remote address: " + session.getRemoteAddress()); + exception.printStackTrace(); sessions.remove(session); } + + public void shutdown() { + heartbeatExecutor.shutdown(); + for (WebSocketSession session : sessions) { + if (session.isOpen()) { + try { + session.close(CloseStatus.GOING_AWAY); + } catch (IOException e) { + System.err.println("Error closing session during shutdown: " + e.getMessage()); + } + } + } + sessions.clear(); + } } \ No newline at end of file diff --git a/Call_Automation_GCCH/src/main/resources/application.yml b/Call_Automation_GCCH/src/main/resources/application.yml index b2b8685e..593d9840 100644 --- a/Call_Automation_GCCH/src/main/resources/application.yml +++ b/Call_Automation_GCCH/src/main/resources/application.yml @@ -4,6 +4,16 @@ spring: server: port: 8080 + servlet: + session: + timeout: 30m + cookie: + same-site: none + secure: false + compression: + enabled: true + http2: + enabled: true acs: connectionstring: "" From a7e0b6193037cb2702f2d3a419f6df75d1e39a22 Mon Sep 17 00:00:00 2001 From: Pilli Vamshi Date: Fri, 14 Nov 2025 15:33:52 +0530 Subject: [PATCH 12/21] fixed the issue. --- .../callautomation/config/WebSocketConfig.java | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java index 42cfb3dd..a1a49d8b 100644 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java @@ -17,17 +17,11 @@ public class WebSocketConfig implements WebSocketConfigurer { @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { - // Primary WebSocket endpoint with SockJS fallback - registry.addHandler(logWebSocketHandler, "/ws/logs") - .setAllowedOrigins("*") - .setAllowedOriginPatterns("*") - .withSockJS() - .setSessionCookieNeeded(false) - .setHeartbeatTime(25000); // 25 second heartbeat - - // Direct WebSocket endpoint without SockJS + // Direct WebSocket endpoint - primary endpoint to avoid CORS issues registry.addHandler(logWebSocketHandler, "/websocket/logs") - .setAllowedOrigins("*") .setAllowedOriginPatterns("*"); + + // Simple WebSocket endpoint without any CORS configuration for basic compatibility + registry.addHandler(logWebSocketHandler, "/ws/logs"); } } \ No newline at end of file From 8a748043e87b4775c2fc04f836e4ab64ceaa3776 Mon Sep 17 00:00:00 2001 From: Pilli Vamshi Date: Fri, 14 Nov 2025 15:59:37 +0530 Subject: [PATCH 13/21] fixed the websocket issue. --- .../config/WebSocketConfig.java | 88 ++++++++++++++++++- .../websocket/LogWebSocketHandler.java | 30 ++++++- .../src/main/resources/application.yml | 11 +++ 3 files changed, 124 insertions(+), 5 deletions(-) diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java index a1a49d8b..b40cee9c 100644 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java @@ -1,27 +1,109 @@ package com.communication.callautomation.config; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.config.annotation.EnableWebSocket; import org.springframework.web.socket.config.annotation.WebSocketConfigurer; import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry; +import org.springframework.web.socket.server.HandshakeInterceptor; +import org.springframework.web.socket.server.standard.ServerEndpointExporter; +import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; +import org.springframework.boot.web.servlet.server.ServletWebServerFactory; +import org.springframework.http.server.ServerHttpRequest; +import org.springframework.http.server.ServerHttpResponse; +import org.springframework.web.socket.WebSocketHandler; import com.communication.callautomation.websocket.LogWebSocketHandler; +import java.util.Map; +import java.util.logging.Logger; + @Configuration @EnableWebSocket public class WebSocketConfig implements WebSocketConfigurer { + private static final Logger logger = Logger.getLogger(WebSocketConfig.class.getName()); + @Autowired private LogWebSocketHandler logWebSocketHandler; + @Bean + public ServerEndpointExporter serverEndpointExporter() { + return new ServerEndpointExporter(); + } + + @Bean + public HandshakeInterceptor customHandshakeInterceptor() { + return new HandshakeInterceptor() { + @Override + public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response, + WebSocketHandler wsHandler, Map attributes) throws Exception { + // Add connection metadata for debugging + attributes.put("connectionTime", System.currentTimeMillis()); + attributes.put("remoteAddress", request.getRemoteAddress()); + attributes.put("userAgent", request.getHeaders().getFirst("User-Agent")); + + // Set keepalive headers to prevent connection drops + response.getHeaders().add("Connection", "keep-alive"); + response.getHeaders().add("Keep-Alive", "timeout=300, max=1000"); + + System.out.println("WebSocket handshake from: " + request.getRemoteAddress()); + return true; + } + + @Override + public void afterHandshake(ServerHttpRequest request, ServerHttpResponse response, + WebSocketHandler wsHandler, Exception exception) { + if (exception != null) { + System.err.println("WebSocket handshake failed: " + exception.getMessage()); + } else { + System.out.println("WebSocket handshake completed successfully"); + } + } + }; + } + @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { - // Direct WebSocket endpoint - primary endpoint to avoid CORS issues + // Enhanced WebSocket endpoint with custom interceptor registry.addHandler(logWebSocketHandler, "/websocket/logs") + .setAllowedOriginPatterns("*") + .addInterceptors(customHandshakeInterceptor()); + + // Fallback endpoint with minimal configuration + registry.addHandler(logWebSocketHandler, "/ws/logs") + .addInterceptors(customHandshakeInterceptor()); + + // Additional endpoint for troubleshooting + registry.addHandler(logWebSocketHandler, "/logs/ws") .setAllowedOriginPatterns("*"); + } + + /** + * Configure Tomcat connector for enhanced WebSocket stability + */ + @Bean + public ServletWebServerFactory servletContainer() { + TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory(); + + // Add connector customizations for WebSocket stability + tomcat.addConnectorCustomizers(connector -> { + connector.setProperty("connectionTimeout", "300000"); // 5 minutes + connector.setProperty("keepAliveTimeout", "300000"); // 5 minutes + connector.setProperty("maxKeepAliveRequests", "1000"); + connector.setProperty("tcpNoDelay", "true"); + + // WebSocket specific properties + connector.setProperty("maxHttpHeaderSize", "65536"); // 64KB for large headers + connector.setProperty("compression", "on"); + connector.setProperty("compressionMinSize", "1024"); + connector.setProperty("noCompressionUserAgents", "gozilla, traviata"); + + logger.info("Configured Tomcat connector with WebSocket optimizations - " + + "connectionTimeout: 300s, keepAliveTimeout: 300s, tcpNoDelay: true"); + }); - // Simple WebSocket endpoint without any CORS configuration for basic compatibility - registry.addHandler(logWebSocketHandler, "/ws/logs"); + return tomcat; } } \ No newline at end of file diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/websocket/LogWebSocketHandler.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/websocket/LogWebSocketHandler.java index 9e2e7d17..8e0991a3 100644 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/websocket/LogWebSocketHandler.java +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/websocket/LogWebSocketHandler.java @@ -108,11 +108,37 @@ private void startHeartbeat(WebSocketSession session) { @Override public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception { - System.err.println("WebSocket transport error for session " + session.getId() + ": " + exception.getMessage()); + String errorMessage = exception.getMessage(); + String sessionId = session.getId(); + + System.err.println("=== WebSocket Transport Error ==="); + System.err.println("Session ID: " + sessionId); + System.err.println("Error: " + errorMessage); System.err.println("Session state: " + (session.isOpen() ? "OPEN" : "CLOSED")); System.err.println("Remote address: " + session.getRemoteAddress()); - exception.printStackTrace(); + System.err.println("Session attributes: " + session.getAttributes()); + + // Handle specific error types + if (errorMessage != null && errorMessage.contains("connection was aborted by the software")) { + System.err.println("DIAGNOSIS: Network-level connection abort detected"); + System.err.println("CAUSE: Usually caused by:"); + System.err.println(" - Client browser closing/refreshing page"); + System.err.println(" - Network interruption or proxy timeout"); + System.err.println(" - Firewall or antivirus interference"); + System.err.println(" - Load balancer timeout in Azure"); + System.err.println("SOLUTION: Client should automatically reconnect"); + } else if (errorMessage != null && errorMessage.contains("Connection reset")) { + System.err.println("DIAGNOSIS: Connection reset by peer"); + System.err.println("CAUSE: Likely network infrastructure issue"); + } else { + System.err.println("DIAGNOSIS: Unknown transport error"); + exception.printStackTrace(); + } + + // Clean up the session sessions.remove(session); + System.err.println("Session removed. Active sessions: " + sessions.size()); + System.err.println("=== End Transport Error ==="); } public void shutdown() { diff --git a/Call_Automation_GCCH/src/main/resources/application.yml b/Call_Automation_GCCH/src/main/resources/application.yml index 593d9840..1ab1ce75 100644 --- a/Call_Automation_GCCH/src/main/resources/application.yml +++ b/Call_Automation_GCCH/src/main/resources/application.yml @@ -14,6 +14,17 @@ server: enabled: true http2: enabled: true + # Enhanced Tomcat configuration for WebSocket stability + tomcat: + connection-timeout: 300000 # 5 minutes + keep-alive-timeout: 300000 # 5 minutes + max-keep-alive-requests: 1000 + threads: + max: 200 + min-spare: 10 + # WebSocket specific configurations + websocket: + max-idle-timeout: 300000 # 5 minutes acs: connectionstring: "" From d833961d4e04e89097423d0910bee1f775c290a0 Mon Sep 17 00:00:00 2001 From: Pilli Vamshi Date: Mon, 17 Nov 2025 12:55:33 +0530 Subject: [PATCH 14/21] resolved the websocket issue. --- .../callautomation/config/CorsConfig.java | 57 +++++++++++++++ .../callautomation/config/OpenApiConfig.java | 31 +++++++++ .../config/WebSocketConfig.java | 69 +++++++++++++++---- .../controller/LogsController.java | 6 +- .../websocket/LogWebSocketHandler.java | 9 +-- .../src/main/resources/application.yml | 23 +++++-- 6 files changed, 170 insertions(+), 25 deletions(-) create mode 100644 Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/CorsConfig.java create mode 100644 Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/OpenApiConfig.java diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/CorsConfig.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/CorsConfig.java new file mode 100644 index 00000000..24e7ee1e --- /dev/null +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/CorsConfig.java @@ -0,0 +1,57 @@ +package com.communication.callautomation.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.cors.CorsConfiguration; +import org.springframework.web.cors.CorsConfigurationSource; +import org.springframework.web.cors.UrlBasedCorsConfigurationSource; +import org.springframework.web.filter.CorsFilter; + +import java.util.Arrays; + +@Configuration +public class CorsConfig { + + @Bean + public CorsConfigurationSource corsConfigurationSource() { + CorsConfiguration configuration = new CorsConfiguration(); + + // Allow all origins for deployed environment + configuration.setAllowedOriginPatterns(Arrays.asList("*")); + configuration.setAllowedOrigins(Arrays.asList("*")); + + // Allow all headers + configuration.setAllowedHeaders(Arrays.asList("*")); + + // Allow all HTTP methods + configuration.setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE", "OPTIONS", "HEAD", "PATCH")); + + // Allow credentials + configuration.setAllowCredentials(false); // Set to false when using wildcard origins + + // Expose headers that the client can access + configuration.setExposedHeaders(Arrays.asList( + "Access-Control-Allow-Origin", + "Access-Control-Allow-Methods", + "Access-Control-Allow-Headers", + "Access-Control-Max-Age", + "Access-Control-Request-Headers", + "Access-Control-Request-Method" + )); + + // How long the response from a pre-flight request can be cached by clients + configuration.setMaxAge(3600L); + + UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); + source.registerCorsConfiguration("/**", configuration); + source.registerCorsConfiguration("/websocket/**", configuration); + source.registerCorsConfiguration("/ws/**", configuration); + + return source; + } + + @Bean + public CorsFilter corsFilter() { + return new CorsFilter(corsConfigurationSource()); + } +} \ No newline at end of file diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/OpenApiConfig.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/OpenApiConfig.java new file mode 100644 index 00000000..76f84311 --- /dev/null +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/OpenApiConfig.java @@ -0,0 +1,31 @@ +package com.communication.callautomation.config; + +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.info.Info; +import io.swagger.v3.oas.models.servers.Server; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.List; + +@Configuration +public class OpenApiConfig { + + @Value("${acs.callbackUriHost}") + private String callbackUriHost; + + @Bean + public OpenAPI customOpenAPI() { + Server server = new Server(); + server.setUrl(callbackUriHost); + server.setDescription("Deployed Server"); + + return new OpenAPI() + .info(new Info() + .title("Call Automation GCCH API") + .description("Call Automation API for GCCH") + .version("1.0")) + .servers(List.of(server)); + } +} \ No newline at end of file diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java index b40cee9c..fabf8070 100644 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java @@ -43,12 +43,30 @@ public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse res attributes.put("connectionTime", System.currentTimeMillis()); attributes.put("remoteAddress", request.getRemoteAddress()); attributes.put("userAgent", request.getHeaders().getFirst("User-Agent")); + attributes.put("origin", request.getHeaders().getFirst("Origin")); + attributes.put("host", request.getHeaders().getFirst("Host")); - // Set keepalive headers to prevent connection drops + // Enhanced headers for deployed environments response.getHeaders().add("Connection", "keep-alive"); - response.getHeaders().add("Keep-Alive", "timeout=300, max=1000"); + response.getHeaders().add("Keep-Alive", "timeout=600, max=1000"); - System.out.println("WebSocket handshake from: " + request.getRemoteAddress()); + // CORS headers for WebSocket handshake + String origin = request.getHeaders().getFirst("Origin"); + if (origin != null) { + response.getHeaders().add("Access-Control-Allow-Origin", origin); + } else { + response.getHeaders().add("Access-Control-Allow-Origin", "*"); + } + response.getHeaders().add("Access-Control-Allow-Credentials", "true"); + response.getHeaders().add("Access-Control-Allow-Headers", "*"); + response.getHeaders().add("Access-Control-Allow-Methods", "GET, POST, OPTIONS"); + + // Add headers to help with load balancer compatibility + response.getHeaders().add("X-Content-Type-Options", "nosniff"); + response.getHeaders().add("Cache-Control", "no-cache, no-store, must-revalidate"); + + System.out.println("WebSocket handshake from: " + request.getRemoteAddress() + + ", Origin: " + origin + ", Host: " + request.getHeaders().getFirst("Host")); return true; } @@ -66,22 +84,34 @@ public void afterHandshake(ServerHttpRequest request, ServerHttpResponse respons @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { - // Enhanced WebSocket endpoint with custom interceptor + // Primary WebSocket endpoint with enhanced CORS and interceptor registry.addHandler(logWebSocketHandler, "/websocket/logs") - .setAllowedOriginPatterns("*") - .addInterceptors(customHandshakeInterceptor()); + .setAllowedOrigins("*") // Allow all origins for deployed environment + .setAllowedOriginPatterns("*") // Backup pattern matching + .addInterceptors(customHandshakeInterceptor()) + .withSockJS() // Enable SockJS fallback for better compatibility + .setHeartbeatTime(25000) // Heartbeat every 25 seconds + .setDisconnectDelay(30000) // Wait 30 seconds before disconnect + .setHttpMessageCacheSize(1000) + .setStreamBytesLimit(128 * 1024); // 128KB stream limit - // Fallback endpoint with minimal configuration + // Direct WebSocket endpoint without SockJS (for native WebSocket clients) registry.addHandler(logWebSocketHandler, "/ws/logs") + .setAllowedOrigins("*") + .setAllowedOriginPatterns("*") .addInterceptors(customHandshakeInterceptor()); - // Additional endpoint for troubleshooting + // Additional troubleshooting endpoint registry.addHandler(logWebSocketHandler, "/logs/ws") - .setAllowedOriginPatterns("*"); + .setAllowedOrigins("*") + .setAllowedOriginPatterns("*") + .addInterceptors(customHandshakeInterceptor()); + + logger.info("Registered WebSocket handlers with enhanced CORS and SockJS support"); } /** - * Configure Tomcat connector for enhanced WebSocket stability + * Configure Tomcat connector for enhanced WebSocket stability in deployed environments */ @Bean public ServletWebServerFactory servletContainer() { @@ -89,8 +119,9 @@ public ServletWebServerFactory servletContainer() { // Add connector customizations for WebSocket stability tomcat.addConnectorCustomizers(connector -> { - connector.setProperty("connectionTimeout", "300000"); // 5 minutes - connector.setProperty("keepAliveTimeout", "300000"); // 5 minutes + // Connection timeouts - increased for deployed environments + connector.setProperty("connectionTimeout", "600000"); // 10 minutes + connector.setProperty("keepAliveTimeout", "600000"); // 10 minutes connector.setProperty("maxKeepAliveRequests", "1000"); connector.setProperty("tcpNoDelay", "true"); @@ -100,8 +131,18 @@ public ServletWebServerFactory servletContainer() { connector.setProperty("compressionMinSize", "1024"); connector.setProperty("noCompressionUserAgents", "gozilla, traviata"); - logger.info("Configured Tomcat connector with WebSocket optimizations - " + - "connectionTimeout: 300s, keepAliveTimeout: 300s, tcpNoDelay: true"); + // Additional properties for load balancer compatibility + connector.setProperty("socket.soReuseAddress", "true"); + connector.setProperty("socket.soKeepAlive", "true"); + connector.setProperty("socket.soTimeout", "600000"); // 10 minutes socket timeout + + // Protocol specific settings + connector.setProperty("maxThreads", "200"); + connector.setProperty("minSpareThreads", "10"); + connector.setProperty("acceptCount", "100"); + + logger.info("Configured Tomcat connector with enhanced WebSocket optimizations - " + + "connectionTimeout: 600s, keepAliveTimeout: 600s, tcpNoDelay: true, soKeepAlive: true"); }); return tomcat; diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/LogsController.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/LogsController.java index e39d7bc8..dda14b5a 100644 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/LogsController.java +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/LogsController.java @@ -120,6 +120,7 @@ public String getLiveLogsPage() {
Initializing WebSocket connection...
+ + + From 5b5bff94b0a1716054c0080125b10b6520c980a1 Mon Sep 17 00:00:00 2001 From: Pilli Vamshi Date: Wed, 19 Nov 2025 15:47:55 +0530 Subject: [PATCH 18/21] added zip for test. --- .../newzip/GCCHTestAppJava.zip | Bin 0 -> 292028 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Call_Automation_GCCH/newzip/GCCHTestAppJava.zip diff --git a/Call_Automation_GCCH/newzip/GCCHTestAppJava.zip b/Call_Automation_GCCH/newzip/GCCHTestAppJava.zip new file mode 100644 index 0000000000000000000000000000000000000000..576e74348ac2c94c4390c7452081c47ae884bec0 GIT binary patch literal 292028 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
&L?OLa(&ZF*U>`Y<3w-CbaIu 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


&L?OLa(&ZF*U>`Y<3w-CbaIu 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

- -
- Connecting to WebSocket... -
- -
- - - - -
- -
-
Initializing WebSocket connection...
-
- - - - - - """; - } -} \ No newline at end of file diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/logging/WebSocketLogAppender.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/logging/WebSocketLogAppender.java deleted file mode 100644 index 9224d997..00000000 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/logging/WebSocketLogAppender.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.communication.callautomation.logging; - -import ch.qos.logback.classic.encoder.PatternLayoutEncoder; -import ch.qos.logback.classic.spi.ILoggingEvent; -import ch.qos.logback.core.AppenderBase; -import com.communication.callautomation.websocket.LogWebSocketHandler; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; - -@Component -public class WebSocketLogAppender extends AppenderBase { - - private static LogWebSocketHandler logWebSocketHandler; - private PatternLayoutEncoder encoder; - private final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"); - - @Autowired - public void setLogWebSocketHandler(LogWebSocketHandler handler) { - WebSocketLogAppender.logWebSocketHandler = handler; - } - - @Override - protected void append(ILoggingEvent event) { - if (logWebSocketHandler != null) { - try { - String formattedMessage = formatLogMessage(event); - logWebSocketHandler.broadcastLogMessage(formattedMessage); - } catch (Exception e) { - System.err.println("Error broadcasting log message: " + e.getMessage()); - } - } - } - - private String formatLogMessage(ILoggingEvent event) { - StringBuilder sb = new StringBuilder(); - sb.append("[").append(LocalDateTime.now().format(formatter)).append("] "); - sb.append("[").append(event.getLevel()).append("] "); - sb.append("[").append(event.getLoggerName()).append("] "); - sb.append(event.getFormattedMessage()); - - if (event.getThrowableProxy() != null) { - sb.append(" - ").append(event.getThrowableProxy().getMessage()); - } - - return sb.toString(); - } - - @Override - public void start() { - if (this.encoder == null) { - addError("No encoder set for the appender named [" + name + "]."); - return; - } - - this.encoder.start(); - super.start(); - } - - @Override - public void stop() { - if (this.encoder != null) { - this.encoder.stop(); - } - super.stop(); - } - - public void setEncoder(PatternLayoutEncoder encoder) { - this.encoder = encoder; - } -} \ No newline at end of file diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/websocket/LogWebSocketHandler.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/websocket/LogWebSocketHandler.java deleted file mode 100644 index 3e7df548..00000000 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/websocket/LogWebSocketHandler.java +++ /dev/null @@ -1,158 +0,0 @@ -package com.communication.callautomation.websocket; - -import java.io.IOException; -import java.util.Set; -import java.util.concurrent.CopyOnWriteArraySet; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; - -import org.springframework.stereotype.Component; -import org.springframework.web.socket.CloseStatus; - -import org.springframework.web.socket.PongMessage; -import org.springframework.web.socket.TextMessage; -import org.springframework.web.socket.WebSocketSession; -import org.springframework.web.socket.handler.TextWebSocketHandler; - -@Component -public class LogWebSocketHandler extends TextWebSocketHandler { - - private final Set sessions = new CopyOnWriteArraySet<>(); - private final ScheduledExecutorService heartbeatExecutor = Executors.newSingleThreadScheduledExecutor(); - - @Override - public void afterConnectionEstablished(WebSocketSession session) throws Exception { - sessions.add(session); - System.out.println("WebSocket connection established: " + session.getId() + - " from " + session.getRemoteAddress()); - System.out.println("Session URI: " + session.getUri()); - System.out.println("Session attributes: " + session.getAttributes()); - System.out.println("Total active sessions: " + sessions.size()); - - // Send welcome message with timestamp - try { - String welcomeMessage = String.format("WebSocket connection established at %s", - new java.util.Date()); - session.sendMessage(new TextMessage(welcomeMessage)); - } catch (IOException e) { - System.err.println("Error sending welcome message: " + e.getMessage()); - sessions.remove(session); - } - - // Start heartbeat for this session - startHeartbeat(session); - } - - @Override - public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception { - sessions.remove(session); - System.out.println("WebSocket connection closed: " + session.getId() + - ", Status: " + status.getCode() + " - " + status.getReason()); - System.out.println("Remaining active sessions: " + sessions.size()); - } - - @Override - public void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception { - String payload = message.getPayload(); - System.out.println("Received message from " + session.getId() + ": " + payload); - - // Handle ping/pong for heartbeat - if ("PING".equals(payload) || "HEARTBEAT".equals(payload)) { - try { - session.sendMessage(new TextMessage("PONG")); - } catch (IOException e) { - System.err.println("Error sending PONG: " + e.getMessage()); - } - } - } - - @Override - protected void handlePongMessage(WebSocketSession session, PongMessage message) throws Exception { - System.out.println("Received pong from session: " + session.getId()); - } - - public void broadcastLogMessage(String logMessage) { - Set sessionsToRemove = new CopyOnWriteArraySet<>(); - - for (WebSocketSession session : sessions) { - if (session.isOpen()) { - try { - session.sendMessage(new TextMessage(logMessage)); - } catch (IOException e) { - System.err.println("Error sending message to WebSocket session " + session.getId() + ": " + e.getMessage()); - sessionsToRemove.add(session); - } - } else { - sessionsToRemove.add(session); - } - } - - // Clean up closed sessions - sessions.removeAll(sessionsToRemove); - } - - private void startHeartbeat(WebSocketSession session) { - heartbeatExecutor.scheduleAtFixedRate(() -> { - if (session.isOpen()) { - try { - // Use text message ping for better load balancer compatibility - session.sendMessage(new TextMessage("HEARTBEAT")); - System.out.println("Sent heartbeat to session: " + session.getId()); - } catch (IOException e) { - System.err.println("Error sending ping to session " + session.getId() + ": " + e.getMessage()); - sessions.remove(session); - } - } - }, 30, 30, TimeUnit.SECONDS); // Send ping every 30 seconds - } - - @Override - public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception { - String errorMessage = exception.getMessage(); - String sessionId = session.getId(); - - System.err.println("=== WebSocket Transport Error ==="); - System.err.println("Session ID: " + sessionId); - System.err.println("Error: " + errorMessage); - System.err.println("Session state: " + (session.isOpen() ? "OPEN" : "CLOSED")); - System.err.println("Remote address: " + session.getRemoteAddress()); - System.err.println("Session attributes: " + session.getAttributes()); - - // Handle specific error types - if (errorMessage != null && errorMessage.contains("connection was aborted by the software")) { - System.err.println("DIAGNOSIS: Network-level connection abort detected"); - System.err.println("CAUSE: Usually caused by:"); - System.err.println(" - Client browser closing/refreshing page"); - System.err.println(" - Network interruption or proxy timeout"); - System.err.println(" - Firewall or antivirus interference"); - System.err.println(" - Load balancer timeout in Azure"); - System.err.println("SOLUTION: Client should automatically reconnect"); - } else if (errorMessage != null && errorMessage.contains("Connection reset")) { - System.err.println("DIAGNOSIS: Connection reset by peer"); - System.err.println("CAUSE: Likely network infrastructure issue"); - } else { - System.err.println("DIAGNOSIS: Unknown transport error"); - exception.printStackTrace(); - } - - // Clean up the session - sessions.remove(session); - System.err.println("Session removed. Active sessions: " + sessions.size()); - System.err.println("=== End Transport Error ==="); - } - - public void shutdown() { - heartbeatExecutor.shutdown(); - for (WebSocketSession session : sessions) { - if (session.isOpen()) { - try { - session.close(CloseStatus.GOING_AWAY); - } catch (IOException e) { - System.err.println("Error closing session during shutdown: " + e.getMessage()); - } - } - } - sessions.clear(); - } -} \ No newline at end of file diff --git a/Call_Automation_GCCH/static/logs.html b/Call_Automation_GCCH/static/logs.html deleted file mode 100644 index 072be82c..00000000 --- a/Call_Automation_GCCH/static/logs.html +++ /dev/null @@ -1,394 +0,0 @@ - - - - - - WebSocket Logs Viewer - - - -
-
-

📊 Live WebSocket Logs

-
-
- Disconnected -
-
- -
- - - - -
- -
-
- - - -

No logs yet

-

Click "Connect" to start receiving logs

-
-
- - -
- - - -

ysi$si`}+ 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%0D*WcJf{( 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%0DBrTYYr~-&;Z)Vs&A8Oy5UY~c8ybEvgsKWR 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 Date: Tue, 2 Dec 2025 12:40:22 +0530 Subject: [PATCH 20/21] Responses have been added to display in the Swagger. --- .../java/com/communication/CallResponse.java | 57 +++++ .../ParticipantListResponse.java | 105 ++++++++ .../communication/ParticipantResponse.java | 72 ++++++ .../callautomation/ProgramSample.java | 232 ++++++++++++++---- 4 files changed, 412 insertions(+), 54 deletions(-) create mode 100644 Call_Automation_GCCH/src/main/java/com/communication/CallResponse.java create mode 100644 Call_Automation_GCCH/src/main/java/com/communication/ParticipantListResponse.java create mode 100644 Call_Automation_GCCH/src/main/java/com/communication/ParticipantResponse.java diff --git a/Call_Automation_GCCH/src/main/java/com/communication/CallResponse.java b/Call_Automation_GCCH/src/main/java/com/communication/CallResponse.java new file mode 100644 index 00000000..a562dce4 --- /dev/null +++ b/Call_Automation_GCCH/src/main/java/com/communication/CallResponse.java @@ -0,0 +1,57 @@ +package com.communication; + +public class CallResponse { + + private String callConnectionId; + private String correlationId; + private String message; + private String recordingId; + + public CallResponse() { + } + + public CallResponse(String callConnectionId, String correlationId, String message) { + this.callConnectionId = callConnectionId; + this.correlationId = correlationId; + this.message = message; + } + + public CallResponse(String callConnectionId, String correlationId, String message, String recordingId) { + this.callConnectionId = callConnectionId; + this.correlationId = correlationId; + this.message = message; + this.recordingId = recordingId; + } + + public String getCallConnectionId() { + return callConnectionId; + } + + public void setCallConnectionId(String callConnectionId) { + this.callConnectionId = callConnectionId; + } + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public String getRecordingId() { + return recordingId; + } + + public void setRecordingId(String recordingId) { + this.recordingId = recordingId; + } +} diff --git a/Call_Automation_GCCH/src/main/java/com/communication/ParticipantListResponse.java b/Call_Automation_GCCH/src/main/java/com/communication/ParticipantListResponse.java new file mode 100644 index 00000000..6b45f2d0 --- /dev/null +++ b/Call_Automation_GCCH/src/main/java/com/communication/ParticipantListResponse.java @@ -0,0 +1,105 @@ +package com.communication; + +import java.util.List; + +public class ParticipantListResponse { + + private String callConnectionId; + private String correlationId; + private String message; + private List participants; + private int participantCount; + + public ParticipantListResponse() { + } + + public ParticipantListResponse(String callConnectionId, String correlationId, String message, + List participants) { + this.callConnectionId = callConnectionId; + this.correlationId = correlationId; + this.message = message; + this.participants = participants; + this.participantCount = participants != null ? participants.size() : 0; + } + + public String getCallConnectionId() { + return callConnectionId; + } + + public void setCallConnectionId(String callConnectionId) { + this.callConnectionId = callConnectionId; + } + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public List getParticipants() { + return participants; + } + + public void setParticipants(List participants) { + this.participants = participants; + this.participantCount = participants != null ? participants.size() : 0; + } + + public int getParticipantCount() { + return participantCount; + } + + public void setParticipantCount(int participantCount) { + this.participantCount = participantCount; + } + + // Inner class for individual participant information + public static class ParticipantInfo { + private String participantId; + private boolean isOnHold; + private boolean isMuted; + + public ParticipantInfo() { + } + + public ParticipantInfo(String participantId, boolean isOnHold, boolean isMuted) { + this.participantId = participantId; + this.isOnHold = isOnHold; + this.isMuted = isMuted; + } + + public String getParticipantId() { + return participantId; + } + + public void setParticipantId(String participantId) { + this.participantId = participantId; + } + + public boolean isOnHold() { + return isOnHold; + } + + public void setOnHold(boolean onHold) { + isOnHold = onHold; + } + + public boolean isMuted() { + return isMuted; + } + + public void setMuted(boolean muted) { + isMuted = muted; + } + } +} \ No newline at end of file diff --git a/Call_Automation_GCCH/src/main/java/com/communication/ParticipantResponse.java b/Call_Automation_GCCH/src/main/java/com/communication/ParticipantResponse.java new file mode 100644 index 00000000..b8a72db7 --- /dev/null +++ b/Call_Automation_GCCH/src/main/java/com/communication/ParticipantResponse.java @@ -0,0 +1,72 @@ +package com.communication; + +public class ParticipantResponse { + + private String callConnectionId; + private String correlationId; + private String message; + private String participantId; + private boolean isOnHold; + private boolean isMuted; + + public ParticipantResponse() { + } + + public ParticipantResponse(String callConnectionId, String correlationId, String message, + String participantId, boolean isOnHold, boolean isMuted) { + this.callConnectionId = callConnectionId; + this.correlationId = correlationId; + this.message = message; + this.participantId = participantId; + this.isOnHold = isOnHold; + this.isMuted = isMuted; + } + + public String getCallConnectionId() { + return callConnectionId; + } + + public void setCallConnectionId(String callConnectionId) { + this.callConnectionId = callConnectionId; + } + + public String getCorrelationId() { + return correlationId; + } + + public void setCorrelationId(String correlationId) { + this.correlationId = correlationId; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public String getParticipantId() { + return participantId; + } + + public void setParticipantId(String participantId) { + this.participantId = participantId; + } + + public boolean isOnHold() { + return isOnHold; + } + + public void setOnHold(boolean onHold) { + isOnHold = onHold; + } + + public boolean isMuted() { + return isMuted; + } + + public void setMuted(boolean muted) { + isMuted = muted; + } +} \ No newline at end of file diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/ProgramSample.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/ProgramSample.java index 25c07df0..717a9990 100644 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/ProgramSample.java +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/ProgramSample.java @@ -13,6 +13,9 @@ import com.azure.core.http.rest.PagedIterable; import com.azure.core.http.rest.Response; import com.azure.core.util.Context; +import com.communication.CallResponse; +import com.communication.ParticipantResponse; +import com.communication.ParticipantListResponse; import io.swagger.v3.oas.annotations.tags.Tag; @@ -26,6 +29,8 @@ import java.io.IOException; import java.io.OutputStream; import java.net.URI; +import java.util.ArrayList; +import java.util.List; import java.time.Duration; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @@ -327,7 +332,7 @@ public ResponseEntity handleRecordingFileStatus( // POST: /outboundCallAsync @Tag(name = "03. Outbound Call APIs", description = "Outbound Call APIs") @PostMapping("/outboundCallAsync") - public ResponseEntity outboundCallAsync(@RequestParam String target, + public ResponseEntity outboundCallAsync(@RequestParam String target, @RequestParam boolean isPSTN) { try { @@ -348,11 +353,15 @@ public ResponseEntity outboundCallAsync(@RequestParam String target, if (response != null && response.getValue() != null) { callConnectionId = response.getValue().getCallConnectionProperties().getCallConnectionId(); + String correlationId = response.getValue().getCallConnectionProperties().getCorrelationId(); log.info("Created async pstn call with connection id: " + callConnectionId); + CallResponse callResponse = new CallResponse(callConnectionId, correlationId, "Created async PSTN call successfully"); + return ResponseEntity.ok(callResponse); } else { log.error("Failed to create call. Response or value was null."); + CallResponse errorResponse = new CallResponse(null, null, "Failed to create call. Response or value was null."); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorResponse); } - return ResponseEntity.ok("Created async call with connection id: " + callConnectionId); } else { CommunicationUserIdentifier targetParticipant = new CommunicationUserIdentifier(target); CallInvite callInvite = new CallInvite(targetParticipant); @@ -363,18 +372,21 @@ public ResponseEntity outboundCallAsync(@RequestParam String target, Response result = client.createCallWithResponse(createCallOptions, Context.NONE); callConnectionId = result.getValue().getCallConnectionProperties().getCallConnectionId(); + String correlationId = result.getValue().getCallConnectionProperties().getCorrelationId(); log.info("Created async call with connection id: " + callConnectionId); - return ResponseEntity.ok("Created async call with connection id: " + callConnectionId); + CallResponse callResponse = new CallResponse(callConnectionId, correlationId, "Created async call successfully"); + return ResponseEntity.ok(callResponse); } } catch (Exception e) { log.error("Error creating call : {}", e.getMessage()); - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to create call."); + CallResponse errorResponse = new CallResponse(null, null, "Failed to create call: " + e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorResponse); } } @Tag(name = "03. Outbound Call APIs", description = "Outbound Call APIs") @PostMapping("/outboundCall") - public ResponseEntity outboundCallToPstn(@RequestParam String target, + public ResponseEntity outboundCallToPstn(@RequestParam String target, @RequestParam boolean isPSTN) { try { if (isPSTN) { @@ -387,8 +399,10 @@ public ResponseEntity outboundCallToPstn(@RequestParam String target, // ✅ Convert URI to String CreateCallResult result = client.createCall(callInvite, callbackUri.toString()); callConnectionId = result.getCallConnectionProperties().getCallConnectionId(); + String correlationId = result.getCallConnectionProperties().getCorrelationId(); log.info("Created call with connection id: " + callConnectionId); - return ResponseEntity.ok("Created async call with connection id: " + callConnectionId); + CallResponse callResponse = new CallResponse(callConnectionId, correlationId, "Created PSTN call successfully"); + return ResponseEntity.ok(callResponse); } else { CommunicationUserIdentifier targetParticipant = new CommunicationUserIdentifier(target); CallInvite callInvite = new CallInvite(targetParticipant); @@ -396,44 +410,55 @@ public ResponseEntity outboundCallToPstn(@RequestParam String target, CreateCallResult result = client.createCall(callInvite, callbackUri.toString()); callConnectionId = result.getCallConnectionProperties().getCallConnectionId(); + String correlationId = result.getCallConnectionProperties().getCorrelationId(); log.info("Created call with connection id: " + callConnectionId); - return ResponseEntity.ok("Created call with connection id: " + callConnectionId); + CallResponse callResponse = new CallResponse(callConnectionId, correlationId, "Created call successfully"); + return ResponseEntity.ok(callResponse); } } catch (Exception e) { log.error("Error creating call : {}", e.getMessage()); - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to create call."); + CallResponse errorResponse = new CallResponse(null, null, "Failed to create call: " + e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorResponse); } } @Tag(name = "04. Disconnect Call APIs", description = "Disconnect call APIs") @PostMapping("/hangupAsync") - public ResponseEntity hangupAsync(@RequestParam String callConnectionId, @RequestParam boolean isForEveryOne) { + public ResponseEntity hangupAsync(@RequestParam String callConnectionId, @RequestParam boolean isForEveryOne) { try { CallConnection callConnection = getConnection(callConnectionId); + CallConnectionProperties properties = callConnection.getCallProperties(); + String correlationId = properties.getCorrelationId(); callConnection.hangUpWithResponse(isForEveryOne, Context.NONE); log.info("Call hangup requested (async) forEveryone={}", isForEveryOne); - return ResponseEntity.ok("Call hangup requested (async)."); + CallResponse callResponse = new CallResponse(callConnectionId, correlationId, "Call hangup requested (async)"); + return ResponseEntity.ok(callResponse); } catch (Exception e) { log.error("Error hanging up call: {}", e.getMessage()); - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to hang up call."); + CallResponse errorResponse = new CallResponse(callConnectionId, null, "Failed to hang up call: " + e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorResponse); } } @Tag(name = "04. Disconnect Call APIs", description = "Disconnect call APIs") @PostMapping("/hangup") - public ResponseEntity hangup(@RequestParam String callConnectionId, @RequestParam boolean isForEveryOne) { + public ResponseEntity hangup(@RequestParam String callConnectionId, @RequestParam boolean isForEveryOne) { try { CallConnection callConnection = getConnection(callConnectionId); + CallConnectionProperties properties = callConnection.getCallProperties(); + String correlationId = properties.getCorrelationId(); callConnection.hangUp(isForEveryOne); log.info("Call hangup requested (sync) forEveryone={}", isForEveryOne); - return ResponseEntity.ok("Call hangup requested."); + CallResponse callResponse = new CallResponse(callConnectionId, correlationId, "Call hangup requested"); + return ResponseEntity.ok(callResponse); } catch (Exception e) { log.error("Error hanging up call: {}", e.getMessage()); - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to hang up call."); + CallResponse errorResponse = new CallResponse(callConnectionId, null, "Failed to hang up call: " + e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorResponse); } } @@ -546,10 +571,12 @@ public ResponseEntity unholdParticipant(@RequestParam String callConnect @Tag(name = "06. Get Participant APIs", description = "Get Participant APIs") @PostMapping("/getParticipantAsync") - public ResponseEntity getParticipantAsync(@RequestParam String callConnectionId, @RequestParam String targetParticipant, + public ResponseEntity getParticipantAsync(@RequestParam String callConnectionId, @RequestParam String targetParticipant, @RequestParam boolean isPSTN) { try { CallConnection callConnection = getConnection(callConnectionId); + CallConnectionProperties properties = callConnection.getCallProperties(); + String correlationId = properties.getCorrelationId(); CommunicationIdentifier target; if (isPSTN) { @@ -565,24 +592,46 @@ public ResponseEntity getParticipantAsync(@RequestParam String callConne CallParticipant participant = response.getValue(); if (participant != null) { - log.info("Participant: --> {}", participant.getIdentifier().getRawId()); - log.info("Is Participant on hold: --> {}", participant.isOnHold()); + String participantId = participant.getIdentifier().getRawId(); + boolean isOnHold = participant.isOnHold(); + boolean isMuted = participant.isMuted(); + + log.info("Participant: --> {}", participantId); + log.info("Is Participant on hold: --> {}", isOnHold); + log.info("Is Participant muted: --> {}", isMuted); + + ParticipantResponse participantResponse = new ParticipantResponse( + callConnectionId, correlationId, "Participant found successfully", + participantId, isOnHold, isMuted + ); + return ResponseEntity.ok(participantResponse); } else { log.warn("No participant found for identifier: {}", targetParticipant); + ParticipantResponse errorResponse = new ParticipantResponse( + callConnectionId, correlationId, "No participant found for identifier: " + targetParticipant, + targetParticipant, false, false + ); + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(errorResponse); } - return ResponseEntity.ok("Participant found"); } catch (Exception e) { log.error("Error getting participant asynchronously: {}", e.getMessage()); - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to get participant asynchronously."); + ParticipantResponse errorResponse = new ParticipantResponse( + callConnectionId, null, "Failed to get participant asynchronously: " + e.getMessage(), + targetParticipant, false, false + ); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorResponse); } } @Tag(name = "06. Get Participant APIs", description = "Get Participant APIs") @PostMapping("/getParticipant") - public ResponseEntity getParticipant(@RequestParam String callConnectionId, @RequestParam String targetParticipant, + public ResponseEntity getParticipant(@RequestParam String callConnectionId, @RequestParam String targetParticipant, @RequestParam boolean isPSTN) { try { CallConnection callConnection = getConnection(callConnectionId); + CallConnectionProperties properties = callConnection.getCallProperties(); + String correlationId = properties.getCorrelationId(); + CommunicationIdentifier target; if (isPSTN) { target = new PhoneNumberIdentifier(targetParticipant); @@ -592,65 +641,128 @@ public ResponseEntity getParticipant(@RequestParam String callConnection CallParticipant participant = callConnection.getParticipant(target); if (participant != null) { - log.info("Participant: --> {}", participant.getIdentifier().getRawId()); - log.info("Is Participant on hold: --> {}", participant.isOnHold()); + String participantId = participant.getIdentifier().getRawId(); + boolean isOnHold = participant.isOnHold(); + boolean isMuted = participant.isMuted(); + + log.info("Participant: --> {}", participantId); + log.info("Is Participant on hold: --> {}", isOnHold); + log.info("Is Participant muted: --> {}", isMuted); + + ParticipantResponse participantResponse = new ParticipantResponse( + callConnectionId, correlationId, "Participant found successfully", + participantId, isOnHold, isMuted + ); + return ResponseEntity.ok(participantResponse); + } else { + log.warn("No participant found for identifier: {}", targetParticipant); + ParticipantResponse errorResponse = new ParticipantResponse( + callConnectionId, correlationId, "No participant found for identifier: " + targetParticipant, + targetParticipant, false, false + ); + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(errorResponse); } - return ResponseEntity.ok("Participant found"); } catch (Exception e) { log.error("Error getting participant: {}", e.getMessage()); - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to get participant."); + ParticipantResponse errorResponse = new ParticipantResponse( + callConnectionId, null, "Failed to get participant: " + e.getMessage(), + targetParticipant, false, false + ); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorResponse); } } @Tag(name = "06. Get Participant APIs", description = "Get Participant APIs") @PostMapping("/getParticipantListAsync") - public ResponseEntity getParticipantListAsync(@RequestParam String callConnectionId) { + public ResponseEntity getParticipantListAsync(@RequestParam String callConnectionId) { try { CallConnection callConnection = getConnection(callConnectionId); + CallConnectionProperties properties = callConnection.getCallProperties(); + String correlationId = properties.getCorrelationId(); PagedIterable participants = callConnection.listParticipants(Context.NONE); if (participants != null) { + List participantList = new ArrayList<>(); + for (CallParticipant participant : participants) { + String participantId = participant.getIdentifier().getRawId(); + boolean isOnHold = participant.isOnHold(); + boolean isMuted = participant.isMuted(); + log.info("----------------------------------------------------------------------"); - log.info("Participant: --> {}", participant.getIdentifier().getRawId()); - log.info("Is Participant on hold: --> {}", participant.isOnHold()); + log.info("Participant: --> {}", participantId); + log.info("Is Participant on hold: --> {}", isOnHold); + log.info("Is Participant muted: --> {}", isMuted); log.info("----------------------------------------------------------------------"); + + participantList.add(new ParticipantListResponse.ParticipantInfo(participantId, isOnHold, isMuted)); } - return ResponseEntity.ok("Participant list retrieved"); + + ParticipantListResponse response = new ParticipantListResponse( + callConnectionId, correlationId, "Participant list retrieved successfully", participantList + ); + return ResponseEntity.ok(response); } else { log.warn("No participants returned in the response."); - return ResponseEntity.ok("No participants found"); + ParticipantListResponse emptyResponse = new ParticipantListResponse( + callConnectionId, correlationId, "No participants found", new ArrayList<>() + ); + return ResponseEntity.ok(emptyResponse); } } catch (Exception e) { log.error("Error getting participant list: {}", e.getMessage()); - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build(); + ParticipantListResponse errorResponse = new ParticipantListResponse( + callConnectionId, null, "Failed to get participant list: " + e.getMessage(), new ArrayList<>() + ); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorResponse); } } @Tag(name = "06. Get Participant APIs", description = "Get Participant APIs") @PostMapping("/getParticipantList") - public ResponseEntity getParticipantList(@RequestParam String callConnectionId) { + public ResponseEntity getParticipantList(@RequestParam String callConnectionId) { try { CallConnection callConnection = getConnection(callConnectionId); + CallConnectionProperties properties = callConnection.getCallProperties(); + String correlationId = properties.getCorrelationId(); PagedIterable participants = callConnection.listParticipants(); if (participants != null) { + List participantList = new ArrayList<>(); + for (CallParticipant participant : participants) { + String participantId = participant.getIdentifier().getRawId(); + boolean isOnHold = participant.isOnHold(); + boolean isMuted = participant.isMuted(); + log.info("----------------------------------------------------------------------"); - log.info("Participant: --> {}", participant.getIdentifier().getRawId()); - log.info("Is Participant on hold: --> {}", participant.isOnHold()); + log.info("Participant: --> {}", participantId); + log.info("Is Participant on hold: --> {}", isOnHold); + log.info("Is Participant muted: --> {}", isMuted); log.info("----------------------------------------------------------------------"); + + participantList.add(new ParticipantListResponse.ParticipantInfo(participantId, isOnHold, isMuted)); } - return ResponseEntity.ok("Participant list retrieved"); + + ParticipantListResponse response = new ParticipantListResponse( + callConnectionId, correlationId, "Participant list retrieved successfully", participantList + ); + return ResponseEntity.ok(response); } else { log.warn("No participants returned in the response."); - return ResponseEntity.ok("No participants found"); + ParticipantListResponse emptyResponse = new ParticipantListResponse( + callConnectionId, correlationId, "No participants found", new ArrayList<>() + ); + return ResponseEntity.ok(emptyResponse); } } catch (Exception e) { log.error("Error getting participant list: {}", e.getMessage()); - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build(); + ParticipantListResponse errorResponse = new ParticipantListResponse( + callConnectionId, null, "Failed to get participant list: " + e.getMessage(), new ArrayList<>() + ); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorResponse); } } @@ -1014,7 +1126,7 @@ public ResponseEntity stopContinuousDTMFTones(@RequestParam String callC @Tag(name = "13. Recording APIs", description = "Recording APIs") @PostMapping("/startRecordingAsync") - public ResponseEntity startRecordingAsync(@RequestParam String callConnectionId, @RequestParam boolean isAudioVideo, + public ResponseEntity startRecordingAsync(@RequestParam String callConnectionId, @RequestParam boolean isAudioVideo, @RequestParam String recordingFormat, @RequestParam boolean isMixed, @RequestParam boolean isRecordingWithCallConnectionId, @RequestParam boolean isPauseOnStart) { return startRecording(callConnectionId, isAudioVideo, recordingFormat, isMixed, isRecordingWithCallConnectionId, isPauseOnStart, true); @@ -1022,7 +1134,7 @@ public ResponseEntity startRecordingAsync(@RequestParam String callConne @Tag(name = "13. Recording APIs", description = "Recording APIs") @PostMapping("/startRecording") - public ResponseEntity startRecording(@RequestParam String callConnectionId, @RequestParam boolean isAudioVideo, + public ResponseEntity startRecording(@RequestParam String callConnectionId, @RequestParam boolean isAudioVideo, @RequestParam String recordingFormat, @RequestParam boolean isMixed, @RequestParam boolean isRecordingWithCallConnectionId, @RequestParam boolean isPauseOnStart) { return startRecording(callConnectionId, isAudioVideo, recordingFormat, isMixed, isRecordingWithCallConnectionId, isPauseOnStart, false); @@ -1030,53 +1142,61 @@ public ResponseEntity startRecording(@RequestParam String callConnection @Tag(name = "13. Recording APIs", description = "Recording APIs") @PostMapping("/pauseRecordingAsync") - public ResponseEntity pauseRecordingAsync(@RequestParam String recordingId) { + public ResponseEntity pauseRecordingAsync(@RequestParam String recordingId) { try { client.getCallRecording().pauseWithResponse(recordingId, null); log.info("Paused recording for {}", recordingId); - return ResponseEntity.ok("Recording paused successfully."); + CallResponse response = new CallResponse(null, null, "Recording paused successfully", recordingId); + return ResponseEntity.ok(response); } catch (Exception e) { log.error("Error pausing recording for {}: {}", recordingId, e.getMessage()); - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error pausing recording"); + CallResponse errorResponse = new CallResponse(null, null, "Error pausing recording: " + e.getMessage(), recordingId); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorResponse); } } @Tag(name = "13. Recording APIs", description = "Recording APIs") @PostMapping("/pauseRecording") - public ResponseEntity pauseRecording(@RequestParam String recordingId ) { + public ResponseEntity pauseRecording(@RequestParam String recordingId ) { try { client.getCallRecording().pause(recordingId); log.info("Paused recording for {}", recordingId); - return ResponseEntity.ok("Recording paused successfully."); + CallResponse response = new CallResponse(null, null, "Recording paused successfully", recordingId); + return ResponseEntity.ok(response); } catch (Exception e) { log.error("Error pausing recording for {}: {}", recordingId, e.getMessage()); - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error pausing recording"); + CallResponse errorResponse = new CallResponse(null, null, "Error pausing recording: " + e.getMessage(), recordingId); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorResponse); } } @Tag(name = "13. Recording APIs", description = "Recording APIs") @PostMapping("/resumeRecordingAsync") - public ResponseEntity resumeRecordingAsync(@RequestParam String recordingId) { + public ResponseEntity resumeRecordingAsync(@RequestParam String recordingId) { try { client.getCallRecording().resumeWithResponse(recordingId, null); log.info("Resumed recording for {}", recordingId); - return ResponseEntity.ok("Recording resumed successfully."); + CallResponse response = new CallResponse(null, null, "Recording resumed successfully", recordingId); + return ResponseEntity.ok(response); } catch (Exception e) { log.error("Error resuming recording for {}: {}", recordingId, e.getMessage()); - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error resuming recording"); + CallResponse errorResponse = new CallResponse(null, null, "Error resuming recording: " + e.getMessage(), recordingId); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorResponse); } } @Tag(name = "13. Recording APIs", description = "Recording APIs") @PostMapping("/resumeRecording") - public ResponseEntity resumeRecording(@RequestParam String recordingId) { + public ResponseEntity resumeRecording(@RequestParam String recordingId) { try { client.getCallRecording().resume(recordingId); log.info("Resumed recording for {}", recordingId); - return ResponseEntity.ok("Recording resumed successfully."); + CallResponse response = new CallResponse(null, null, "Recording resumed successfully", recordingId); + return ResponseEntity.ok(response); } catch (Exception e) { log.error("Error resuming recording for {}: {}", recordingId, e.getMessage()); - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error resuming recording"); + CallResponse errorResponse = new CallResponse(null, null, "Error resuming recording: " + e.getMessage(), recordingId); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorResponse); } } @@ -1362,12 +1482,13 @@ private ResponseEntity startDtmfRecognition(String callConnectionId, Str } } - private ResponseEntity startRecording(String callConnectionId, boolean isAudioVideo, + private ResponseEntity startRecording(String callConnectionId, boolean isAudioVideo, String recordingFormat, boolean isMixed, boolean isRecordingWithCallConnectionId, boolean isPauseOnStart, boolean async) { try { CallConnectionProperties properties = getCallConnectionProperties(callConnectionId); CallLocator locator = new ServerCallLocator(properties.getServerCallId()); + String correlationId = properties.getCorrelationId(); String eventCallbackUri = callbackUriHost + "/api/callbacks"; if(isRecordingWithCallConnectionId){ StartRecordingOptions options = new StartRecordingOptions(callConnectionId); @@ -1397,7 +1518,8 @@ private ResponseEntity startRecording(String callConnectionId, boolean i recordingId = client.getCallRecording().start(options).getRecordingId(); } log.info("Recording started. RecordingId: {}", recordingId); - return ResponseEntity.ok("Recording started successfully."); + CallResponse callResponse = new CallResponse(callConnectionId, correlationId, "Recording started successfully", recordingId); + return ResponseEntity.ok(callResponse); } else { StartRecordingOptions options = new StartRecordingOptions(locator); @@ -1426,11 +1548,13 @@ private ResponseEntity startRecording(String callConnectionId, boolean i recordingId = client.getCallRecording().start(options).getRecordingId(); } log.info("Recording started. RecordingId: {}", recordingId); - return ResponseEntity.ok("Recording started successfully. RecordingId: " + recordingId); + CallResponse callResponse = new CallResponse(callConnectionId, correlationId, "Recording started successfully", recordingId); + return ResponseEntity.ok(callResponse); } } catch (Exception e) { log.error("Error starting recording for {}: {}", recordingId, e.getMessage()); - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error starting recording"); + CallResponse errorResponse = new CallResponse(callConnectionId, null, "Error starting recording: " + e.getMessage(), recordingId); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errorResponse); } } From a3ee8f8973aaf8c72eee1dd3d62759f3f1c48806 Mon Sep 17 00:00:00 2001 From: Pilli Vamshi Date: Thu, 4 Dec 2025 12:38:12 +0530 Subject: [PATCH 21/21] Removed live logs code and added txt file for events. --- .../callautomation/ProgramSample.java | 274 ++++++++++-- .../callautomation/config/CorsConfig.java | 56 --- .../callautomation/config/LoggingConfig.java | 45 -- .../config/WebSocketConfig.java | 147 ------- .../controller/LogsController.java | 402 ------------------ .../logging/WebSocketLogAppender.java | 73 ---- .../websocket/LogWebSocketHandler.java | 158 ------- Call_Automation_GCCH/static/logs.html | 394 ----------------- 8 files changed, 228 insertions(+), 1321 deletions(-) delete mode 100644 Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/CorsConfig.java delete mode 100644 Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/LoggingConfig.java delete mode 100644 Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java delete mode 100644 Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/LogsController.java delete mode 100644 Call_Automation_GCCH/src/main/java/com/communication/callautomation/logging/WebSocketLogAppender.java delete mode 100644 Call_Automation_GCCH/src/main/java/com/communication/callautomation/websocket/LogWebSocketHandler.java delete mode 100644 Call_Automation_GCCH/static/logs.html diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/ProgramSample.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/ProgramSample.java index 717a9990..d1ae29f7 100644 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/ProgramSample.java +++ b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/ProgramSample.java @@ -25,10 +25,12 @@ import org.springframework.web.bind.annotation.*; import org.springframework.http.*; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStream; +import java.io.*; import java.net.URI; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardOpenOption; import java.util.ArrayList; import java.util.List; import java.time.Duration; @@ -36,8 +38,9 @@ import java.time.format.DateTimeFormatter; import java.util.Arrays; import java.util.Collections; -import java.util.List; import java.util.concurrent.CompletableFuture; +import org.springframework.core.io.Resource; +import org.springframework.core.io.FileSystemResource; import org.json.JSONObject; import com.azure.messaging.eventgrid.EventGridEvent; import com.azure.messaging.eventgrid.systemevents.SubscriptionValidationResponse; @@ -70,6 +73,10 @@ public class ProgramSample { private String confirmLabel = "Confirm"; private String cancelLabel = "Cancel"; + + // Event logging configuration + private static final String EVENTS_LOG_FILE = "call_automation_events.txt"; + private static final DateTimeFormatter TIMESTAMP_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); public ProgramSample(final AppConfig appConfig) { this.appConfig = appConfig; @@ -87,6 +94,37 @@ public ProgramSample(final AppConfig appConfig) { client = initClient(); } + + /** + * Writes event information to a text file + */ + private void writeEventToFile(CallAutomationEventBase event, String additionalInfo) { + try { + Path filePath = Paths.get(EVENTS_LOG_FILE); + String timestamp = LocalDateTime.now().format(TIMESTAMP_FORMATTER); + + StringBuilder eventInfo = new StringBuilder(); + eventInfo.append("==========================================\n"); + eventInfo.append("Timestamp: ").append(timestamp).append("\n"); + eventInfo.append("Event Type: ").append(event.getClass().getSimpleName()).append("\n"); + eventInfo.append("Call Connection ID: ").append(event.getCallConnectionId()).append("\n"); + eventInfo.append("Server Call ID: ").append(event.getServerCallId()).append("\n"); + eventInfo.append("Correlation ID: ").append(event.getCorrelationId()).append("\n"); + + if (additionalInfo != null && !additionalInfo.isEmpty()) { + eventInfo.append("Additional Info: ").append(additionalInfo).append("\n"); + } + + eventInfo.append("==========================================\n\n"); + + // Write to file (append mode) + Files.write(filePath, eventInfo.toString().getBytes(), + StandardOpenOption.CREATE, StandardOpenOption.APPEND); + + } catch (IOException e) { + log.error("Failed to write event to file: {}", e.getMessage()); + } + } @Tag(name = "02. Call Automation Events", description = "CallAutomation Events") @PostMapping(path = "/api/callbacks") public ResponseEntity callbackEvents(@RequestBody final String reqBody) { @@ -100,6 +138,10 @@ public ResponseEntity callbackEvents(@RequestBody final String reqBody) event.getServerCallId(), event.getCorrelationId(), event.getClass().getSimpleName()); + + // Write basic event info to file for all events + String basicEventInfo = String.format("Event: %s", event.getClass().getSimpleName()); + writeEventToFile(event, basicEventInfo); if (event instanceof CallConnected) { log.info("****************************************"); @@ -113,17 +155,35 @@ public ResponseEntity callbackEvents(@RequestBody final String reqBody) .getTranscriptionSubscription(); log.info("MediaStreaming State: {}", mediaStreamingSubscription.getState()); log.info("Transcription State: {}", transcriptionSubscription.getState()); + + // Write to file + String additionalInfo = String.format("MediaStreaming State: %s, Transcription State: %s", + mediaStreamingSubscription.getState(), + transcriptionSubscription.getState()); + writeEventToFile(event, additionalInfo); } else if (event instanceof MediaStreamingStarted) { MediaStreamingStarted acsEvent = (MediaStreamingStarted) event; log.info("Operation Context: {}", acsEvent.getOperationContext()); log.info("MediaSteaming Status: {}", acsEvent.getMediaStreamingUpdateResult().getMediaStreamingStatus()); + + // Write to file + String additionalInfo = String.format("Operation Context: %s, MediaStreaming Status: %s", + acsEvent.getOperationContext(), + acsEvent.getMediaStreamingUpdateResult().getMediaStreamingStatus()); + writeEventToFile(event, additionalInfo); } else if (event instanceof MediaStreamingStopped) { MediaStreamingStopped acsEvent = (MediaStreamingStopped) event; log.info("Operation Context: {}", acsEvent.getOperationContext()); log.info("MediaSteaming Status: {}", acsEvent.getMediaStreamingUpdateResult().getMediaStreamingStatus()); + + // Write to file + String additionalInfo = String.format("Operation Context: %s, MediaStreaming Status: %s", + acsEvent.getOperationContext(), + acsEvent.getMediaStreamingUpdateResult().getMediaStreamingStatus()); + writeEventToFile(event, additionalInfo); } else if (event instanceof MediaStreamingFailed) { MediaStreamingFailed acsEvent = (MediaStreamingFailed) event; @@ -132,23 +192,48 @@ public ResponseEntity callbackEvents(@RequestBody final String reqBody) acsEvent.getMediaStreamingUpdateResult().getMediaStreamingStatus()); log.error("Received failed event: {}", acsEvent .getResultInformation().getMessage()); + + // Write to file + String additionalInfo = String.format("Operation Context: %s, MediaStreaming Status: %s, Error: %s", + acsEvent.getOperationContext(), + acsEvent.getMediaStreamingUpdateResult().getMediaStreamingStatus(), + acsEvent.getResultInformation().getMessage()); + writeEventToFile(event, additionalInfo); } else if (event instanceof TranscriptionStarted) { TranscriptionStarted acsEvent = (TranscriptionStarted) event; log.info("Operation Context: {}", acsEvent.getOperationContext()); log.info("Transcription Status: {}", acsEvent.getTranscriptionUpdateResult().getTranscriptionStatus()); + + // Write to file + String additionalInfo = String.format("Operation Context: %s, Transcription Status: %s", + acsEvent.getOperationContext(), + acsEvent.getTranscriptionUpdateResult().getTranscriptionStatus()); + writeEventToFile(event, additionalInfo); } else if (event instanceof TranscriptionUpdated) { TranscriptionUpdated acsEvent = (TranscriptionUpdated) event; log.info("Operation Context: {}", acsEvent.getOperationContext()); log.info("Transcription Status: {}", acsEvent.getTranscriptionUpdateResult().getTranscriptionStatus()); + + // Write to file + String additionalInfo = String.format("Operation Context: %s, Transcription Status: %s", + acsEvent.getOperationContext(), + acsEvent.getTranscriptionUpdateResult().getTranscriptionStatus()); + writeEventToFile(event, additionalInfo); } else if (event instanceof TranscriptionStopped) { TranscriptionStopped acsEvent = (TranscriptionStopped) event; log.info("Operation Context: {}", acsEvent.getOperationContext()); log.info("Transcription Status: {}", acsEvent.getTranscriptionUpdateResult().getTranscriptionStatus()); + + // Write to file + String additionalInfo = String.format("Operation Context: %s, Transcription Status: %s", + acsEvent.getOperationContext(), + acsEvent.getTranscriptionUpdateResult().getTranscriptionStatus()); + writeEventToFile(event, additionalInfo); } else if (event instanceof TranscriptionFailed) { TranscriptionFailed acsEvent = (TranscriptionFailed) event; @@ -157,29 +242,50 @@ public ResponseEntity callbackEvents(@RequestBody final String reqBody) acsEvent.getTranscriptionUpdateResult().getTranscriptionStatus()); log.error("Received failed event: {}", acsEvent .getResultInformation().getMessage()); + + // Write to file + String additionalInfo = String.format("Operation Context: %s, Transcription Status: %s, Error: %s", + acsEvent.getOperationContext(), + acsEvent.getTranscriptionUpdateResult().getTranscriptionStatus(), + acsEvent.getResultInformation().getMessage()); + writeEventToFile(event, additionalInfo); } else { log.debug("Received unhandled event: {}", event.getClass().getSimpleName()); - } if (event instanceof RecognizeCompleted) { + // Write unhandled events to file too + writeEventToFile(event, "Unhandled event type"); + } + + if (event instanceof RecognizeCompleted) { RecognizeCompleted acsEvent = (RecognizeCompleted) event; RecognizeResult recognizeResult = acsEvent.getRecognizeResult().get(); + String recognitionInfo; if (recognizeResult instanceof DtmfResult) { // Take action on collect tones DtmfResult dtmfResult = (DtmfResult) recognizeResult; List tones = dtmfResult.getTones(); log.info("Recognition completed, tones=" + tones + ", context=" + acsEvent.getOperationContext()); + recognitionInfo = "DTMF Tones: " + tones; } else if (recognizeResult instanceof ChoiceResult) { ChoiceResult collectChoiceResult = (ChoiceResult) recognizeResult; String labelDetected = collectChoiceResult.getLabel(); String phraseDetected = collectChoiceResult.getRecognizedPhrase(); + recognitionInfo = String.format("Choice - Label: %s, Phrase: %s", labelDetected, phraseDetected); } else if (recognizeResult instanceof SpeechResult) { SpeechResult speechResult = (SpeechResult) recognizeResult; String text = speechResult.getSpeech(); log.info("Recognition completed, text=" + text + ", context=" + acsEvent.getOperationContext()); + recognitionInfo = "Speech: " + text; } else { log.info("Recognition completed, result=" + recognizeResult + ", context=" + acsEvent.getOperationContext()); + recognitionInfo = "Result: " + recognizeResult; } + + // Write to file + String additionalInfo = String.format("Operation Context: %s, Recognition Info: %s", + acsEvent.getOperationContext(), recognitionInfo); + writeEventToFile(event, additionalInfo); } else if (event instanceof RecognizeFailed) { RecognizeFailed acsEvent = (RecognizeFailed) event; @@ -188,10 +294,21 @@ public ResponseEntity callbackEvents(@RequestBody final String reqBody) acsEvent.getFailedPlaySourceIndex()); log.error("Received failed event: {}", acsEvent .getResultInformation().getMessage()); + + // Write to file + String additionalInfo = String.format("Operation Context: %s, FailedPlaySourceIndex: %s, Error: %s", + acsEvent.getOperationContext(), + acsEvent.getFailedPlaySourceIndex(), + acsEvent.getResultInformation().getMessage()); + writeEventToFile(event, additionalInfo); } else if (event instanceof PlayCompleted) { PlayCompleted acsEvent = (PlayCompleted) event; log.info("Operation Context: {}", acsEvent.getOperationContext()); + + // Write to file + String additionalInfo = String.format("Operation Context: %s", acsEvent.getOperationContext()); + writeEventToFile(event, additionalInfo); } else if (event instanceof PlayFailed) { PlayFailed acsEvent = (PlayFailed) event; @@ -200,21 +317,42 @@ public ResponseEntity callbackEvents(@RequestBody final String reqBody) acsEvent.getFailedPlaySourceIndex()); log.error("Received failed event: {}", acsEvent .getResultInformation().getMessage()); + + // Write to file + String additionalInfo = String.format("Operation Context: %s, FailedPlaySourceIndex: %s, Error: %s", + acsEvent.getOperationContext(), + acsEvent.getFailedPlaySourceIndex(), + acsEvent.getResultInformation().getMessage()); + writeEventToFile(event, additionalInfo); } else if (event instanceof RecordingStateChanged) { RecordingStateChanged acsEvent = (RecordingStateChanged) event; log.info("Recording State Changed event received: {}", event.getCallConnectionId()); log.info("Recording State: {}", acsEvent.getRecordingState()); + + // Write to file + String additionalInfo = String.format("Recording State: %s", acsEvent.getRecordingState()); + writeEventToFile(event, additionalInfo); } else if (event instanceof CallTransferAccepted) { CallTransferAccepted acsEvent = (CallTransferAccepted) event; log.info("Operation Context: {}", acsEvent.getOperationContext()); + + // Write to file + String additionalInfo = String.format("Operation Context: %s", acsEvent.getOperationContext()); + writeEventToFile(event, additionalInfo); } else if (event instanceof CallTransferFailed) { CallTransferFailed acsEvent = (CallTransferFailed) event; log.info("Operation Context: {}", acsEvent.getOperationContext()); log.error("Received failed event: {}", acsEvent .getResultInformation().getMessage()); + + // Write to file + String additionalInfo = String.format("Operation Context: %s, Error: %s", + acsEvent.getOperationContext(), + acsEvent.getResultInformation().getMessage()); + writeEventToFile(event, additionalInfo); } } return ResponseEntity.ok().body(""); @@ -1558,6 +1696,91 @@ private ResponseEntity startRecording(String callConnectionId, boo } } + /** + * API to download the events log file + */ + @Tag(name = "13. Event Log APIs", description = "APIs for managing event logs") + @GetMapping("/api/download-events-log") + public ResponseEntity downloadEventsLog() { + try { + Path filePath = Paths.get(EVENTS_LOG_FILE); + + if (!Files.exists(filePath)) { + log.warn("Events log file does not exist: {}", EVENTS_LOG_FILE); + return ResponseEntity.notFound().build(); + } + + Resource resource = new FileSystemResource(filePath.toFile()); + + return ResponseEntity.ok() + .header(HttpHeaders.CONTENT_DISPOSITION, + "attachment; filename=\"" + EVENTS_LOG_FILE + "\"") + .header(HttpHeaders.CONTENT_TYPE, "text/plain") + .body(resource); + + } catch (Exception e) { + log.error("Error downloading events log file: {}", e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build(); + } + } + + /** + * API to get the current size and info about the events log file + */ + @Tag(name = "13. Event Log APIs", description = "APIs for managing event logs") + @GetMapping("/api/events-log-info") + public ResponseEntity getEventsLogInfo() { + try { + Path filePath = Paths.get(EVENTS_LOG_FILE); + + if (!Files.exists(filePath)) { + return ResponseEntity.ok("Events log file does not exist yet. It will be created when the first event is received."); + } + + long fileSize = Files.size(filePath); + long lineCount = Files.lines(filePath).count(); + String lastModified = Files.getLastModifiedTime(filePath).toString(); + + String info = String.format("Events Log File Info:\n" + + "File: %s\n" + + "Size: %d bytes\n" + + "Lines: %d\n" + + "Last Modified: %s", + EVENTS_LOG_FILE, fileSize, lineCount, lastModified); + + return ResponseEntity.ok(info); + + } catch (Exception e) { + log.error("Error getting events log file info: {}", e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) + .body("Error getting file info: " + e.getMessage()); + } + } + + /** + * API to clear the events log file + */ + @Tag(name = "13. Event Log APIs", description = "APIs for managing event logs") + @DeleteMapping("/api/clear-events-log") + public ResponseEntity clearEventsLog() { + try { + Path filePath = Paths.get(EVENTS_LOG_FILE); + + if (Files.exists(filePath)) { + Files.delete(filePath); + log.info("Events log file cleared successfully"); + return ResponseEntity.ok("Events log file cleared successfully"); + } else { + return ResponseEntity.ok("Events log file does not exist"); + } + + } catch (Exception e) { + log.error("Error clearing events log file: {}", e.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) + .body("Error clearing file: " + e.getMessage()); + } + } + private CallAutomationClient initClient() { try { var client = new CallAutomationClientBuilder() @@ -1573,45 +1796,4 @@ private CallAutomationClient initClient() { return null; } } - - // Test endpoint to generate log messages for WebSocket demonstration - @Tag(name = "00. Test Live Logs", description = "Test endpoint to generate logs for live console") - @PostMapping("/api/test-logs") - public ResponseEntity generateTestLogs(@RequestParam(defaultValue = "5") int count, - @RequestParam(defaultValue = "info") String level) { - try { - log.info("Starting log generation test - Count: {}, Level: {}", count, level); - - for (int i = 1; i <= count; i++) { - Thread.sleep(500); // Small delay between logs - - switch (level.toLowerCase()) { - case "error": - log.error("Test ERROR log message #{} - This is a sample error for WebSocket demonstration", i); - break; - case "warn": - log.warn("Test WARN log message #{} - This is a sample warning for WebSocket demonstration", i); - break; - case "debug": - log.debug("Test DEBUG log message #{} - This is a sample debug for WebSocket demonstration", i); - break; - case "info": - default: - log.info("Test INFO log message #{} - This is a sample info for WebSocket demonstration", i); - break; - } - } - - log.info("Log generation test completed successfully. Generated {} {} level messages", count, level); - return ResponseEntity.ok("Successfully generated " + count + " " + level + " level log messages"); - - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - log.error("Log generation test was interrupted: {}", e.getMessage()); - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Log generation was interrupted"); - } catch (Exception e) { - log.error("Error during log generation test: {}", e.getMessage()); - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to generate log messages"); - } - } } diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/CorsConfig.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/CorsConfig.java deleted file mode 100644 index 028e920c..00000000 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/CorsConfig.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.communication.callautomation.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.cors.CorsConfiguration; -import org.springframework.web.cors.CorsConfigurationSource; -import org.springframework.web.cors.UrlBasedCorsConfigurationSource; -import org.springframework.web.filter.CorsFilter; - -import java.util.Arrays; - -@Configuration -public class CorsConfig { - - @Bean - public CorsConfigurationSource corsConfigurationSource() { - CorsConfiguration configuration = new CorsConfiguration(); - - // Use allowedOriginPatterns instead of allowedOrigins when using wildcards - configuration.setAllowedOriginPatterns(Arrays.asList("*")); - - // Allow all headers - configuration.setAllowedHeaders(Arrays.asList("*")); - - // Allow all HTTP methods - configuration.setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE", "OPTIONS", "HEAD", "PATCH")); - - // Set credentials to false to avoid conflicts with wildcard origins - configuration.setAllowCredentials(false); - - // Expose headers that the client can access - configuration.setExposedHeaders(Arrays.asList( - "Access-Control-Allow-Origin", - "Access-Control-Allow-Methods", - "Access-Control-Allow-Headers", - "Access-Control-Max-Age", - "Access-Control-Request-Headers", - "Access-Control-Request-Method" - )); - - // How long the response from a pre-flight request can be cached by clients - configuration.setMaxAge(3600L); - - UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); - source.registerCorsConfiguration("/**", configuration); - source.registerCorsConfiguration("/websocket/**", configuration); - source.registerCorsConfiguration("/ws/**", configuration); - - return source; - } - - @Bean - public CorsFilter corsFilter() { - return new CorsFilter(corsConfigurationSource()); - } -} \ No newline at end of file diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/LoggingConfig.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/LoggingConfig.java deleted file mode 100644 index b21a41dd..00000000 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/LoggingConfig.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.communication.callautomation.config; - -import ch.qos.logback.classic.Level; -import ch.qos.logback.classic.Logger; -import ch.qos.logback.classic.LoggerContext; -import ch.qos.logback.classic.encoder.PatternLayoutEncoder; -import com.communication.callautomation.logging.WebSocketLogAppender; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Configuration; - -import jakarta.annotation.PostConstruct; - -@Configuration -public class LoggingConfig { - - @Autowired - private WebSocketLogAppender webSocketLogAppender; - - @PostConstruct - public void configureLogging() { - LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory(); - - // Create encoder - PatternLayoutEncoder encoder = new PatternLayoutEncoder(); - encoder.setContext(context); - encoder.setPattern("%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"); - encoder.start(); - - // Set encoder to appender - webSocketLogAppender.setEncoder(encoder); - webSocketLogAppender.setContext(context); - webSocketLogAppender.start(); - - // Get root logger and add our appender - Logger rootLogger = context.getLogger(Logger.ROOT_LOGGER_NAME); - rootLogger.addAppender(webSocketLogAppender); - rootLogger.setLevel(Level.INFO); - - // Also add to our specific package logger - Logger packageLogger = context.getLogger("com.communication.callautomation"); - packageLogger.addAppender(webSocketLogAppender); - packageLogger.setLevel(Level.INFO); - } -} \ No newline at end of file diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java deleted file mode 100644 index 09ef3b78..00000000 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/config/WebSocketConfig.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.communication.callautomation.config; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.socket.config.annotation.EnableWebSocket; -import org.springframework.web.socket.config.annotation.WebSocketConfigurer; -import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry; -import org.springframework.web.socket.server.HandshakeInterceptor; -import org.springframework.web.socket.server.standard.ServerEndpointExporter; -import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; -import org.springframework.boot.web.servlet.server.ServletWebServerFactory; -import org.springframework.http.server.ServerHttpRequest; -import org.springframework.http.server.ServerHttpResponse; -import org.springframework.web.socket.WebSocketHandler; - -import com.communication.callautomation.websocket.LogWebSocketHandler; - -import java.util.Map; -import java.util.logging.Logger; - -@Configuration -@EnableWebSocket -public class WebSocketConfig implements WebSocketConfigurer { - - private static final Logger logger = Logger.getLogger(WebSocketConfig.class.getName()); - - @Autowired - private LogWebSocketHandler logWebSocketHandler; - - @Bean - public ServerEndpointExporter serverEndpointExporter() { - return new ServerEndpointExporter(); - } - - @Bean - public HandshakeInterceptor customHandshakeInterceptor() { - return new HandshakeInterceptor() { - @Override - public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response, - WebSocketHandler wsHandler, Map attributes) throws Exception { - // Add connection metadata for debugging - attributes.put("connectionTime", System.currentTimeMillis()); - attributes.put("remoteAddress", request.getRemoteAddress()); - attributes.put("userAgent", request.getHeaders().getFirst("User-Agent")); - attributes.put("origin", request.getHeaders().getFirst("Origin")); - attributes.put("host", request.getHeaders().getFirst("Host")); - - // Enhanced headers for deployed environments - response.getHeaders().add("Connection", "keep-alive"); - response.getHeaders().add("Keep-Alive", "timeout=600, max=1000"); - - // CORS headers for WebSocket handshake (no credentials to avoid conflicts) - String origin = request.getHeaders().getFirst("Origin"); - if (origin != null) { - response.getHeaders().add("Access-Control-Allow-Origin", origin); - } else { - response.getHeaders().add("Access-Control-Allow-Origin", "*"); - } - response.getHeaders().add("Access-Control-Allow-Credentials", "false"); - response.getHeaders().add("Access-Control-Allow-Headers", "*"); - response.getHeaders().add("Access-Control-Allow-Methods", "GET, POST, OPTIONS"); - - // Add headers to help with load balancer compatibility - response.getHeaders().add("X-Content-Type-Options", "nosniff"); - response.getHeaders().add("Cache-Control", "no-cache, no-store, must-revalidate"); - - System.out.println("WebSocket handshake from: " + request.getRemoteAddress() + - ", Origin: " + origin + ", Host: " + request.getHeaders().getFirst("Host")); - return true; - } - - @Override - public void afterHandshake(ServerHttpRequest request, ServerHttpResponse response, - WebSocketHandler wsHandler, Exception exception) { - if (exception != null) { - System.err.println("WebSocket handshake failed: " + exception.getMessage()); - } else { - System.out.println("WebSocket handshake completed successfully"); - } - } - }; - } - - @Override - public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { - // Primary WebSocket endpoint with enhanced CORS and interceptor - registry.addHandler(logWebSocketHandler, "/websocket/logs") - .setAllowedOriginPatterns("*") // Use only origin patterns to avoid conflicts - .addInterceptors(customHandshakeInterceptor()) - .withSockJS() // Enable SockJS fallback for better compatibility - .setHeartbeatTime(25000) // Heartbeat every 25 seconds - .setDisconnectDelay(30000) // Wait 30 seconds before disconnect - .setHttpMessageCacheSize(1000) - .setStreamBytesLimit(128 * 1024); // 128KB stream limit - - // Direct WebSocket endpoint without SockJS (for native WebSocket clients) - registry.addHandler(logWebSocketHandler, "/ws/logs") - .setAllowedOriginPatterns("*") - .addInterceptors(customHandshakeInterceptor()); - - // Additional troubleshooting endpoint - registry.addHandler(logWebSocketHandler, "/logs/ws") - .setAllowedOriginPatterns("*") - .addInterceptors(customHandshakeInterceptor()); - - logger.info("Registered WebSocket handlers with enhanced CORS and SockJS support"); - } - - /** - * Configure Tomcat connector for enhanced WebSocket stability in deployed environments - */ - @Bean - public ServletWebServerFactory servletContainer() { - TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory(); - - // Add connector customizations for WebSocket stability - tomcat.addConnectorCustomizers(connector -> { - // Connection timeouts - increased for deployed environments - connector.setProperty("connectionTimeout", "600000"); // 10 minutes - connector.setProperty("keepAliveTimeout", "600000"); // 10 minutes - connector.setProperty("maxKeepAliveRequests", "1000"); - connector.setProperty("tcpNoDelay", "true"); - - // WebSocket specific properties - connector.setProperty("maxHttpHeaderSize", "65536"); // 64KB for large headers - connector.setProperty("compression", "on"); - connector.setProperty("compressionMinSize", "1024"); - connector.setProperty("noCompressionUserAgents", "gozilla, traviata"); - - // Additional properties for load balancer compatibility - connector.setProperty("socket.soReuseAddress", "true"); - connector.setProperty("socket.soKeepAlive", "true"); - connector.setProperty("socket.soTimeout", "600000"); // 10 minutes socket timeout - - // Protocol specific settings - connector.setProperty("maxThreads", "200"); - connector.setProperty("minSpareThreads", "10"); - connector.setProperty("acceptCount", "100"); - - logger.info("Configured Tomcat connector with enhanced WebSocket optimizations - " + - "connectionTimeout: 600s, keepAliveTimeout: 600s, tcpNoDelay: true, soKeepAlive: true"); - }); - - return tomcat; - } -} \ No newline at end of file diff --git a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/LogsController.java b/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/LogsController.java deleted file mode 100644 index dda14b5a..00000000 --- a/Call_Automation_GCCH/src/main/java/com/communication/callautomation/controller/LogsController.java +++ /dev/null @@ -1,402 +0,0 @@ -package com.communication.callautomation.controller; - -import org.springframework.http.MediaType; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.ResponseBody; - -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.tags.Tag; - -@Controller -@Tag(name = "01. Live Console Logs", description = "Real-time console logs viewer") -public class LogsController { - - @GetMapping(value = "/api/logs", produces = MediaType.TEXT_HTML_VALUE) - @Operation(summary = "Live Console Logs", description = "View real-time console logs") - @ResponseBody - public String getLiveLogsPage() { - return """ - - - - Live Console Logs - - - -

ysi$si`}+ zp{@2BnR7K|cqT?aF-w{ZSo$1k!{)Z38s<%1zk2s>Y_X0?e~H(~++f8)TN9!(E01;8 zSLJJJYBQgn?0X(N)A~gth_cV6IefokMo>dXOr`O}0Ap_-jQX0D{()2&CRuzjG5oC= zbUA9PTsZdAl^0)&55cS!KsGf1JPWBuNMsgEwM>%Mv-)c0;Q$DKR*ney{C*giDqk?> z{Xpt1%$2Zet6DiMi>RHNZ@)j*;?;Ct2Z=QEpnNK$?h?B4{uR5R$O|W!e(}L<)FemX=`H-=~S}L z#Rrd(LHz|zDcfJ5jvI!Cg+*%SBi~|eV&o+x5{~zo}RCi&8mF4M0lpKvLF}fLdU;u8?Pl$0DU{-+?Pvb9XP8*r8lO zPC=%f^(6s$=r%r6HqS5P{=SCf-KxiQR$N?Nw@=&9&>D9{M5K1*Fb7|JOcs}Gz~tf^ z_GwrP_V(@DPX05Ybhuff!OKaa6H5qaxEv!cp9kUd1*gfklqozdWd^*^W8)h)UYeSl z6Zic46s-UlO$?G)qE^b$ZqAl$%%Vb9bGj+rIj9lvmp9L!?`+lK<~!b$ZFxH%n#^Ev zU3sQeXij8kErOnQN9etUE^2shsf&cZ-vB7`?tv z-0V5}-&8i{C~z?DqW}&q0FT|noYd0Na=jnet%R5uc^HzoHr0`)ZlVojek7|=_Kp3} zk1qa@g@uQ=d;2f?lxpxQ!Ldo(s|$sNg-uC)#Zo)BsP5s-CQ!j6f@kc@7Xf!X!?f>S zf(xn73>mn2{UJCsvBrmy>H0YSsPv*gJ6p349CWE3{m~)n#67?@Bpd$v=LLPfy^4;u z{ri+(^=zXsEk6&W0!gz>u11Cs2+KolIMCkDsW$oC>C*4-p zG!VF&@~P60)e{CN>QrNvy7$R?=22SZsBd6L`4TunrE9FQlO6~Eef^JufQSZD#xS%m zAEceG1@7E;&*Phx6CuX?eCPrPpR}pjw!P3T+MBU<0_EzlujIp3V)W-_T{p7NdVfWd zT_)@acj!;Jj#&r4pWKkHEe8|>9ZZ+Vz>e7s{dj?^47a}nJdK&W%6Z4qssjKEoUJk@_cFeP@gOt|KvIdfi-B}S&h+EKGo&nA zpy?RN#Z%L!iMfqSe`MhW&p{C@1%}9BqWM#h<4kvZwxnvw!;xz+BzQzfsA5T5rJ|pA zOJj9)rp%4+n6y~|!})%V^}W2a1kIu__AT3H)sWJUnF&hW?>CK`re1Z;5B{p{NW9 zs6K>)9$?e`QJ*vkCA?WZZ*@aM$vL3O(p>UD0}}wWz*TPV&9!Jg6!R0`FTso*v`2g| zbTr$N78o5G`oQCLG`n%r&_qHOFEjbOAA4sfFh}yrbl^Rz00T(hx{8V$8wb2kiV$(} zb{SCA!=j?<#-8)at-tSHXYiqe!@4?6SzBCy!O*i0hgB^*o7|*Pk0}5=ydJCwigZ?& zSSq&dm*v{xVwq?lLJQ`X>0bF37}(%1vWAj$M^q4w6}vCL2Gln)oW~G?H=xw2SFb*q zd4fnA$A;1XD7W$W#=Pw0Qw716M*TXOB!=$JKI5-w=-w-8Qqp7i2hwAh1HMe~30!N} zlJ8({Nl1^fG%0dzW?m*0Or@ik7_7cNsNHirt=O{lGfu@67)t<)!hD|6y;~Kw^7@g$ zwa?gFv}2;sF|w9zi6M@pzTWA`u-P#hbptKpY*RRMZf!cNaZ55~>Vg=+g#ZK)KSoS2 zyo!s9L;3&ZXch>xb~Ezv{v5;aABr-#z+3v&^a>8Sw=kcw@)+2x2CYgCsYEOjv&17= zizY$h5c7PlO)qZ~&kiWmz*t^;b5z|r80bOLTKCrnYKu9t&A$7B*!jMS2C*k^n|&6r zwB!hBihL-B@6l<;aZQ+Mok*NJi*71}fB$*&sfNK0G^Ey0y-{K^V_b)s^ z-q|QZ!^(Mo#7hA={$|<3`}yiP4M$8i9L@Y)n|u$r_Z4f?SP{I3ftxa8P|b6k^P%+w z33vm@eC7GxgDE=L66D%{ErFAWoLv9k3(^Gh0sVPh2V+O?V@g;S+u@)lV7wWDh~F|c zwz=HL#LAv6b0{=4^yp4-si%ot7xkNE&v(LPeE!;Kqy0F%ONw8wk7P|DSPk`Z= z-3dwodht3cN;KMgJ!xipPKfW9OEqJlf-EU}b6=pxped&;Pw z6G@HFI{o(Dy9h>}bRg1^*lqz1-Wq~0pLA)3BoJ)}S}{@kO(0@_4IG_3)15;w+c{3a zM(^{9Q;-FhrnyJVxX$C>%RhX!0rK#=>X}%{@!Xz=&ys532oJFb4<4MoQ_9fF9>h`% zyr89Uwucu0yJw*SK26i)rg89J(j_s`U+_x4X6KWBl)8YeJk0MXA7m5cf@I`78CTh7 zuqJl^AdD7(DI8=@@G-~u-`pdrZ`#f9`zMhP9Leh@`8?!p{3htD8m*6f(3x=;$IXxE zKpmmi)m&rV5XW@uG zu8fyTfZ{BX`ulMQcxki5Tx?PkKT2OuHt#h)u-9LNM$m~Zry3PHhk|Pg@8bCx3xM(H zB>+R4R~~2E_8Y^|%Pgi!(ASNc11WaWtRZ3O9)G$C`6Z~!18qsS7y3L%;lk6Watknr z4|*Y7QBH0oK}JOQlpq6wQt8i9FF7!qz_>b4vYrgQ*yx9eRJK!m-(tm2L4SukhFh9< z2gt9XFpQlUvJ-TGSY8d@SWQ|`dE<{?%qauqa1~2m7vqY%p`jr)W0A7K1F%Dk%ce1{ z@?~PZ-f8GRp81*RxiEaSx~ArHKzq@B1e4qX!036 z$?AHk{sX56V)F8IBcyD-(We!Kw{fo$WcgM(#dw=+n__$~96Ke$Dm^E!NDpC4UyuW0 zDsJGze)bQjBJT)}b^DE!cru*9)=rhw#Vk*1PXLNHvkL~ICm>s#c_NC)ciA-7ybnn* zOpw5WAWzwoku9XASbv~s*YxzlXP(HUEns6k#rP<@dU#%H0{dO^yC^@#QYfBTfB($k zj)CN(K3;HLmTGNUS`P!l@$ObjO_1Uy;6$9)7GcVK5ucM{~QDcXLSDWSezc0Toq*HXZbV6k?_)S* zKihNRg2U+Z;gOMWhh#Dx#-A59`suPir??r)zrz^I_?=SV*lXXPx&L3FI-hyBf(2$^ z(Fr*4&*Kg4uK6Hub<`IV6@v|{YdBS(&yJvoLb1I(ox*=z0J!YEK5 zDU~Z40(EW9JG+PwZd|dxV;WXvsqbf?{Mfkh&t*LF|99jJNWqD5IwhJ80|;ldHGNIv z{jbTc4Rg5xr9pErtUe=0{rZQT`rh8&r8*3%PJe__Fp3-8@_z87V1UD&Jd5`58UB>T zI(~9@p$iEo1Ds7L_g{ah-n<#|f9WH0j{CCJL|4|Aq&bemS;ocg)dsf34-DYH`5!#w zBa05+jNm2yoAiXhKFaOaT&6nevthkSLPCO>%q^*Y&#dba64khGT83~UH~M=ckgmO_ z)t}h-+o%~emHh>SD54<%Hdd|75YZyuSAzLPW!#rCL_?OR2yk+$wTQQ4atW-k!6^a% zdkXNS%(N;=bhj2v_hxyoFIhTJX%iZl*N{rfGR*BDUGyD>d4uZuddXJ8->)u+TUcCV zD%m2ROw73J59<AuI9!K!QYz-==H@J#^MdbUhv}grJv}+#Z+15U>M}fEDG)~T zCKtA3+*Rayih;9k?#SMPjy3$qo#CnwoJxE~h9+=Fw&kPqn!sh3Q+ekeY9o;~amvr? zrj-3z5Z1Py7BMt97u%-iJW=SY+oD;%=i1kuyb@I_-#&iakN6S1_e}Z9d9MO=MG!}> zOr{Hs;^sywCJ%?G@Mp>#f;9mBbQ<|+wt%`ST@17KYs5*ga`}FJEiN{{}kwXIsm7h{mPY%!A&&eZH<~xkl z=_L3ofkzw*J7vVSCN3!|eepYwiRWEXefZ76&1fpa?;oHJa<6<~oMQ|96yk;laj+$Z zTK(pjZKAv9>fGIlmV{^M?|tFo<}m7t8#yj2S{y6Zo^91$bAT1A=`|k{izz-;B<(V5 z%@U-fh}Gds{8`h`@D5JRL;YE#J$Mkv_IeRg+7Wp?yJ1hlUwI84? z#GF^&Zf^M>&f8xuaGtU14#|5s@)WX`uV24f2Me_c`slXKxq~wVhl~p?SlY|XN}Gx+ z$G1%V1XdY0(j;4K7T1hJ8;Dz!@}0I@te1-H+6k222DmZ7Wgzyd&d#|1VZLr@X_+Rc zqH>&;N5V`Z*rs?RUcL>iGRU?#2qUsGhhTtY=K1rTL@p0N7T-kL6r8wo(NR!QS^0Yo z_4)(-dU{>BIQ)7Uo%ub&bJ#5P@t8LjPP090-9EkmsYa{-APa0bL;Ob|giznCe?tzi z+xqY;fZJHKh6!^{8!Iztk+Z-*w0u_IPkcBo$dFdRuMsP}hANfG`-w?r)2=sRqC4Fj zG{L?Y=wiukOluNA@MZj@x)pz1mi{N|EN?yX`w?$hTOA5!+CqanHGt@KAx*)5A0%ga zOgv|tXQ!a-j1*^#d4)M<)wHGO4xTrKaI?g<$pMzp<%64;*>zP-O+0k1wx-5f!_={Z zA-5bq33LlC5Ws=&OFnV@_~|VD-wI_e!SlU&^X9>53@v}VY9TtU1q1KJIey99KV=;C z_>wE9eCot~7M)c&uXPD-ny8d1c8r+d1$BS?Sr|kjyw7npm@8KTC2V?DyS*meu&JqU zVPG79TvbuH=ll0UUKoUXCAb+fZ=RT#_?*UwLexlEwtUML;y4$VFc7VfmQp_{)p9ZeB^?t0sV3F1Sufgxw zw{7<}jN<-TD~8Wbt8yA|Iw&}Y^=HG`_S^g)O=JU_s4z{;6%%B}GFqlR;(zhxn8r0C z4vnt8$%-}J_3D%DCMrWc`3_QAO@!oisAb#&(yj74TqLUxm&JP06c5+(b7<)HEAjsjRf>y6)MnRj6st_SFK8D{v+5m1Gehdhy;f{&0 zurQc5vfWl2q^7uBCg%Ypth%ZyBW<;5#-bxN9DPApL?q#^qOp4sucVdf%V#=?KoBd@ zJ$ae1Q*XtS`t0Y_V(7<@HVx(yOJl`Zd&j*jSMjIJPXF8(e3|VgT8?mib{3(a zIHmJ0V-7Es_*GE#m*u({nVSpTmy@@@@(AF4{%Uf`l{sj_DMl%qaiiO+IWAzI;7@L= z{X(&XESDdCz&za=`6D0~!vc>lrfdvA;m&vOuZ`QR%JIe~uLbckbE0^}jNifx98h2% z76fnSp0~(Sj`UHi_R6NsvcvcLVr&C2351`}JpR`pc-Q_OlVP@-8&IgOtIHNWHfIva zM(6EdPmhBao2sp)r3%SRZ7eaCd)VG6@w6A3X(cC?a5b?M&pz<@opECy_yfav&(#cY z^FCT3Z{7%Xb#>u>W5*E?t@t3J_09!fK}uT{IDs(pV4~}vkj)e0uc@hthk>$@m~#4y zCD(ELdA4>QF=@dH5*yuJ2K;Z*39_?eWDFe{B44;l9BQ z1J;6n9w&GXV6pnYV@0p`0}Ww3AnkY@C{bur@rw#mPJjJRn7b)QvpxAJUkmM< zH|-TQWerWdmP3sSZ*1^N*;pIQ-!?Yp&oH@04rQZDwcL-Z{2`)ca%ucRE2_y>n&{uK z9s?zrUuaJ-69dC;0vv-e{+l%Y4J?2;>*IVKtOd-Sk%M7@<5hr*%?##04cZ`_SwDdr zxXkya;L;8Ede?RwbbQ?&_%!{T*IdVLbpC0k{6Y%0?k-Kb{Uu$y7_07t(dOYEOu2tJvFvrbss~3O@ z)4n1%Txj=bUARzhp-V2%IG^s?+S)8s5*%@Klxt9wd6rd}!sK+Fi4Kr#w&)qgDT@l) zHKz75IqZyU5LG+T&ebT08p{7{;C_5%+9|)~bj@IsFrtJ-lVJYD=Sb^X@N!=^Zt)QQ z$#KaGx5UWZ{oC8V7T~7&O5>cSkZbj}-a@cU(3;~FuPkl#{=PH!n1wbN+SnkKf}^4) z`tf+Ul5OQb58@QiTE)L)qXY6}JIuhR1wQ)&5R@*oJ zePK#IZ_j8}0$n;B8XAh*8qdx*-2&qP&>r}#+fvt;VK-RTUpzcSW2GUO)`UClU(l?OtSb6Kq#2T^e=eH$X+9?@!w0uS|G!J+kdu6yp#><*yWn}>> zAO8{nAC~KH;6{?_HyW~*29MveN4!6M*AM+9RX^w2k6-~?0|q-GV<}Ao-X&NlZmm{l zKHFR1lqJfbdflcox=D`V{BN}*AAB0&;7cnJF|o$<1YG9*${Ijf)V(`2fbWrZrmSw3 zHxCa637kVC+(^BJQi9LFV4d?u$+CiPauUNg5z`H({!|`(xEsl8`Tk z!F%&}o7KHPn4h0N8f?IzslU$!K<`moiFN?*_nkF;tcSHdw4Gv0#EA|#_ySs2op|$; z^^Rm&R+kHOd27y974#AJf#`k#hRd)m&37BcWV7*c^+hRO2hn77UcB4mgl{~;k4m;a=o)mV!9t#)K|H| zBXNxTi;atxBCcs@aJX&Q@c{H)VgyXsYv-BnE@+E=w3dSDtHEd8mn^tS+mscp;4uDv zbt4g-^la2iSY7RmNb*_aV0cn}@gnNbPx3D<*Tg_eshfgKyPiQzh#em&^*$USVF`(R zrf5)LE>Lo`h>TAOn=i! zRnhO?zb};U5bNx4f`!mV{!;*_fp>Te-{Ig*Sv-OV|BImctouWo3Y|}R+bM*$2Qj3@ zQXW77fHi_|@*LcNtVT0eCsFqNpo`2oV`){PycX|E<2iAJ=V8XTbE58DVT~L2`74b5 z7PFPa=9FQocj!4d$Zl~vc*1S1EyT_OD-w;jzld4d!K{E49fJO3pMJkvLm zT$|o${d)ss73=w5YnOcrlmPH%;Pp#SOgudmyJaJ!iIJ(Sol;B|(1=}0z-{Q51hBOQ zC1(q8l$CiV5O??RBn^1AZM5y%>|Kff3>a~D&VDA#{ZcmBsHBO^O8z%ca^UU>9kh@W ze2dVxZ#yMbfcrOMDkTMX{#^cbDNauyhLKqEod2nul^$z_xU8ZEEGcj?R(Yp{DM1lw zF*xzPZ91`+SDZ#5CcmzcM$nq`d89hwHNNI@rWO8#R|RZ4cBmi05Hv9Bw+lz#OQPNx zsTl!J_!{P?v8pm3Fbwh%tN-bKZi5=g%q5&5usv;?fT02&=f5p3Avi_B831oi@onY% z19jj&gFT}9ok+^~GS8(|d2G^W^~i3dqaQ2c!v%*ckT^pqDKFgh^}#bE2aDtAGQX|3 z5na4@u@QKsL=U3^$ISnX?&matU-&9Ke4nPTiGO=pEY)tJ5vis1{(Hhf6ymMN#!m$S zDOb76%Vpc!JSyg#u9`=xLeLmwW0GZ7Z!IG2E+8$aY`NNR1W)aiyRrA$gTkW(Ke*^k z!o&!U&HwvLpDe72GAJGTS0YO?Z(Xu*HWC2MYQR5|dUigV=rWI%VE@UN@enhqmPz-OS6^{jHzCPiS8PH$ z(>C;Fqc!RFu~zoa3SAa*Q*7UZ7xz9j{&dl0_APaTY*N_Y5Op!KQ914cLGnrE;*s}# z*x6`)MY5CHgqO-<#O-#;#Nfp;Rslngoy8dHv}g-TBeyljc}CxDI7G!-&9wUUk%wbZ zF5MkYu`e~$vHLUKOOE4%-SU1?FE*3LG~$d>3ixJ83td^}o8_ii#$5PdHK!g2o`(4+ zm84+T;ve59^~qCEfe*h#>_1mkN&4%QEYF zCj_udg?W& z4PEYDa+tAuQujvM4GDkOBFd%USY|v+!0u`%{Wq>MCPn34Dl%qr)Cr9WcdtY%0SV73 zzMc`bl0MXKisyEn#4&a4#xz|S6GLx-MZ2ve+f>Z4bt>iRH&nZa_2gup)|X_|rMJm1 zgQ6RQCi#Wlk+xF`I;ft|20rosAK~Xj#q~ir>j&VPpsIC_CJW1)s4VlwZg2?#yLBEs zNHBUPSA4^dzLrifN7D{s30dT5q4mbs7Ur9j`c=`AEu(Fon#d=2AQN@z7vOY+!gsC` zr39=A-b%4@T?P>&L#Hg>f;E-*75zIQ2XHI0^J@|-n)8F}9jy&gEn{vddbDrdcpJC_ z4nJ7=t|5I|Q9#a><;mnYI@)b?ACWD7P!Zu*up}#an)g)N!gOe4B#Jm|9^$ps4=YjHo_>ZV@zH%2R!AeS9H5e`$gZV$+W80(aCr}PULJ5fIh z?#}e4GX6aBd&R(RpBw#Ch#}PJf^&nO2s2j9UOph%j=Vhpr@?bHNp2mAt^7U(=pM9{ zfPE5Mej%lqT_?oEq)dvvLRzM}_OHSv0ZY?et((!mywN97cIRJg(@^XT-48ObKZeL>|_cYguoV^g=Y&2CiPw@kE^X~gIp2#LSpSBT% zG|ERUyW4|uJflpXIc_Wtb26kZI$;;bI z)aR}B~gGcuZRHu2Fnx3cP_NWXNa%hBe8(Y4_Tiss+u6i+sM z>dw3$WaQB1c*F7HQpAfRa?xUC*j>C|+lOv*d(CVs!NIc9LZmo(`KHNziK?kyRzz8c zArCo#go?d1tq!5M5la&ym;_!fv3hV!9Oel^FQO=Ia4|E-fxbo#{;K& zQ)igK$OMxBiSYu!I@uIV9EEAmO*JUc^rgco7!6zKX$HAC(IDD=xjeC3eWi5Z7~Oh=cFe?CC=Ae9Gehu5>(x8`s?>2KuG=BX@_9neqn$aIxuPMISAn&c(_6h{@ZkJt}2F&;zgm&QNL?oCkR$zq3I!KrAu!@#+I`@^k4e#L(N1+b#QD8)ekprNAq zDMX!4uD~e-b?PL8cdIXFvvsh@>iG@sx|J5T`az^9JNvG{+h^qVEQ#;KLI;u~&--+V zWw#T{vq`_t>oTO1JiHPJ?cTg|ORhm&Pr>X|NE=+ugQE_*bH43)Hl}98x2UvhX7NjjNs7}N zRMblXen*BpeiaW2-h|=oM>iCvk*hi|NH3Mk|6E&X@UHwR8Ri8HC&oSNo0+tUF4v>3YqKy_c@+vQiiq@xJh>LpgRk*A%w19Kg zZRe?Lb8wO{A+=zDym(~wlG1|P^*Q_PxlhRpBehJjtk+C4T}#@&pTVkm%U~vnIT5PR z#Q+d&`d=MmgF3cX!a`GC-h|$z8Ci-++_z;(cF1U74T9=nxh##RhkU4$U=TR4N*LlI zmEw^REtpPMy5$fO-x|IzF5&j52faF-Y1@+fCb^UDNH;3*7FH~JxuHO zZvU8>p01b{?YZ#8$YE)U(3l>e@{Hr~>j8ybPtIm3I>F)Qg`;x~rn{y?b&NAnFK>Rj z(v`FNY`7;EP3%a&P@beU!#D6|+!48xH1(n(qPf_^MK90p?qycT3b&F+$wg@!e>LpB zq>tu0fMYzbChOVS?+8I$;4&&&Mc(41fz%H!kdLG)IUa|_ZN|-UUbM8wPSsH^U z-3^pZaR=uMG)Awx_Pm~VIui12>OY6^>LjcqFzw8^d-OmWu#Cs`^z@*iWjn9$)^zcX zyy6HqH#Z>}SE=}Hk7zpLo?SrldUVY-H8tC9l&LeV_jxp=g_J5^@}X;Ev#z%tox_gl z(W^fKh}g|**VMJs>f+-~Q?+2Hn16~&Bp8I}CMN(}zH;nWKwcO#b<6XNC1a|B&{=N%5US!%LA5#-O(Szj;Ouse79(5Sm2n1-rB-2 z^=Lbnb?uour3{6m!MYz*_#Q2_sEJiOG|HHJq__I=@*eM~WaF>X47*45WGoMT-WcsV zkk`hJwfDjNkumb^@!ptW)EjRjU z+Dst{nY{{RuY<7;nfX|PvRweC*xT>RZ15xYy-lbFSn`s*!Nl;YJiFXBPP>AI(_=Hj z#GYG#R(}@g=0DSu-Yxj@E_4ac+PE2ulo*!Zw4PqG#TQhIZu?gltlv)-(gD!abPG z^`gs)F^#etspuz{XsbhCou-iaFclkQwYRnK(n{z3m3M>9@?T^F)tEj61O(tlro)g9 z&YS(Q!U!$H(qrVSh6p2-0!`T z72SpGeKNWhx54fCpA_R9stuPf&qXJ^`);VGJOwWE?u&dLt5Z{%>8DDTQw zG{Bel>EOmdMsgT3v%{*x8`<@e;I`D#m<@luM9fqIR@ob0qAdJjOl@vVt(wLgvUB&^ z`$`9cLteD_nw*GntjLr2bENIAX-r%GC>Zg}pTQB+1C}H`)9(7gh3(Gq(oU16X4{%# za@3gUyvOmb^Kmmz()NhzS3yc%8+&j8ZlGmbNV-8^d->@PnV z(xkxbj({y&xWI=?v?T#pDk%9+d7dS6YSbm<^ctoGh+3=c#S0Q0*{TmR55+~M8$*Dma$E;nL) zQr6vTsaeH2&F0afCkzo9IVi33`c@rTI78lWxtCY&MvMQM6Y==hIZjUM|B4ykgE8Yf z+3RbtpQ|=$9dFw&OMLn~Fzuq_xSgUhJ>97AM;hB*fOv;LN7}sJ!E>sUKM09tOQ%FX zy{x@RC~*z?x$M4;W?sZXLoITwiZKji8j6sfgKDpBXuzS^Z4(QR4$59R>_<0SWT~wfOuLMI`0(L$ z1g0ZZ?>@n5PZ5=gWoHJec?WH}jPEV~4p`c#J`5N4XiqHjwk6l6+j=iXI*YoEm*f@s z8!u(;@VbGra02A4B#2V{(~UnRZeuSBf?SiVLtZcBhj&lBuUvPzci76E7C)K88%zjQ z+MPmXe&U$+E3KCa%V|z42C)|-2Thj8n=6=Cu!i~fJPv&tqzyb(H7amCb9dIYS>9vr zuOem|Uu-$mJ=Kqu@!M?3ylJsaMEo%H&dV3ouIELzfj-eR>{P(G; zCoKu-y*W*IWEDY}+D!8o(#q@SV~#mUa;>VW$~)MDJ?OH9uC235xW5N>*y0an#}S^> zJ}H?$c^t^1vSi+?z+9klOygsGIn3p}x-7AGTGG1nbm5+T)D8R1;QzMt>m)YrDuTR@ zwuIxkyXDM8w#L^-)TSeb!p%QsqGG=bPm|dCKEic`ceQa;GKTH~NczT;c58646CxKy$_3_0cBGvfQ^Vo`66(Pznbk*dYsR{+Om{JIFT4pLuYF;x>qs+zlQ%Fk zYurWSJ_qpr1(}zE-HCQMDOWpFFr^El^Q%$gV~by8jZ&Vh0E2yR{-Yp2q2O8|;a3$!+h+12zO@kL1O`fXE zD#r(I_=_Coll5E;#JpAdS?bHwQs`n!d`R1c0T^Aa^|Lw}h68-ouQR##)ui(J!M+K! zvdwT+h;#i-qmhmQh9Z^%KSh&uDICkYV&6Nq4+bay_T&;;E8n;@dgfdTagrH(>hCMv z>&~`hB&QHR1u!ME6q>1r5b(y@0El=R9I=X=I&f^Bkj=Imc0=W@hdW_w;m zXO5fyRYp*f;P+m=3$U~-$7~@oT9I>o?&Ly^fz~$dlTIlHa}F!x>Kn+I_iRhSx%PkxP4n? z%l)M2DNzGlo%fg7iK)o2l6PB4&ulynE7;?Yw44cECMn59%PmjntAB$k{fx| zw&+(lD~4uer~Rf>wiWaLi2D+7sJplSk)jQisO%{ep+fd8iBKdd|R}A9*+iCFG4?cx>oU+=9F7HCM%#I8Z;@rs=ECd`{fhnIaB7hM)g zAQSD$nz6M5nzwgeQ5~mya{HD1cu$D_!H}I^WLT1}_&LSOH!TG-Ehh6kD$0&TvlzH) z>}dj==QqQll|DOc3Xa9+{(@J4RIbTmwgYrbp8iW}xz%)!ZAKcAwF}5EvL<5eDB)s~ zs547Yw7;W;;N5Gz+{JoDMRji?(^ssb^-cO;Hbqv9$G2 z#YNaD3!BvKp^LfhDAi0HGxJ2ZYZ1nW$3r7(2wWP_vk zixYMe2c(@}h;HW?!)2N{BX9Y~6$l!5%Qa7$WyA9K*sUdvc1>UKarT_4FsFj*3K=-N z2)p`A`%ZSty;Mf^&=JNF_XFuzcj2HL)>d`gM1pMh>B^e^jwTdb?g#J|o$YOrQU!GrhWwA7(B~A!L_l7u~Ixt{4{$YoMb{Nps=*<<+;`K@vALl{l7>?y2SWvc76olwq-2 z5b|U-UMSd_7$d8rJ0xY4DHY;rDBP`CEbMkq`A{x@rf12BlhHKRP_{dvGNXW~%gA>w z%jTY$ED+Y-%>#U!q4nVEVh0`TAWz_d@ z3}Rf`QcufaKL&pM2H#%y-Yp0B@UK$8QB0lxaqgp)Pvc-CkQY=Om?r9M#MB)eZsJ+B zas1Y3-Sv!G*0wo4+ZIgaqW9^uS+AC%$A1)8t`(B$*njf5m`&Iv^whB|d>YMbOP#KZ(Y^)=64@owh}6`gP8^$iTJb10Dmr<>ng2n~trj4$)pE*sbo(EUs< zSV&n}IdRfn|48jUeV2Z@aGHVQ;rJ7syT2Z5jA>{eb^b0J6_svQ8N46OCyQ>N!9n5{ zEL(%uM%JnlWn@~j^Ve~rCwYa_ey{fE;&569djID!n$c7IdczG!OiB*c%4LA)HG9+a zKoOxML4D6W!(FTN1S|B1j=7T7QQWwge$z^D%X|W_59hqq$YAB1+tnk{@;;oo1$lad zD+RB(+bb{1agO1|gj%P`T{a?5pzLWat39tLPmL9l;Tr`o9!4BW+myo zODGRj>ra8A^P$g9oSL(8*+t^#bH4;I@33%rkn0n}PGR2@DU zFHO%TaoNIovkMZlhiDG_Em-#y<$F6nhEy2ZnST!d@^)UcFVVI0D^G+`e7JC)YwJI840PtLee(#`?mPw{Jx+RQDpMiyHw}Z`vaO#u^H|`X-s+sp`HD z{s~UQwK;q^m>ILfyDRTTPUZ8nilbcj-7l7SHU7FL*3 zBa$7oizCrKxVV`1yoG5L9g$Cf*y*z{(vUN>{qiy_ONYsFvT>VCX;ZSYbPTeun;UBB zU}&^rW?5(t(uhxJj&LH_{xBC>{hX@j8DwUBUrO94TfLxTt!k(=Ani6KI;naM#JH%p zu=Nkli^yG{5!dB8o+hqC3fV-rXrt?a4rZ6`sn_qd<{`qK8*pb5`OOHN2-DQ#L2 z`u!GIoQso?Bdf+Q~utTX=V|)QG5bDUg$P`LeU5;$67M6FMbSC6xsw+{2dRU zpk5z)Myx+kY&&K9*oDr?GyL|pJzs$7ao9|7=q?CdNBRE@ZVjeeHzh(!b=YIlHsr!> z6Y_ZjfQyl3Nq$q4ow=Q1O8&j3UbDC1hE8pf^NS*XGd#JIrq>*ZG17w*fo!E@uE2aG~sFNacI+=EzCm3(JK_+o35du%D z@_pv+qv{{t*U2FT+op|SIN`W`VR%90?S7@eHjcH?B2EPXOS7?rIO$LgNf=>Lx$z5r zvcc`ivfJA%S`p#r*dc0%HNunk=;)R><$bzz-n)&Kz-C!G0h&yA=-H3^p@h?>dVwYE z3}RTuz3-Bi8j zirf3^V=<%}b>ZSuZNKulW5Zyk&h;Ws$fDRP(rpqj8aYLjVrue`;RKDj;WE zDYvcOCvy}Ed{_SaNy=W{>mZmxb~&%mN?OoD#1!|2Km*DEgx-oTy(*#!Y~3> zoxwWcomDk8&tOF7M@?(1X={~dT0UvQ;*8z8^ro*X-)RnV?wL(CDzZv#=H{UCU~i7Q z;w4-hC_2##_fZ+;atkoh7ZsM2smUUiwW4+u(Hm<}h$(#iq{N$G(m9PcYB5n-?eSg| zD(J;~FqI9<`XID=XIOsjsVqYmb1>@*8IsMGHN$yL0@Bv!?HEc1F@!Fqj3%=o)2x!U zjA$@Pn&~gk(Z!7V(C9B=GcfddcX=H-x46aLj;0Pbk!D%OUgCV!ueXGKe&AV8crEkJ z$>05JeqMRO;D)C-ycfcWVVxfoTs*w#~3r$=4%0 z?ek30QJV6^W}~FPhLB7tWe2MHkiy%&#l8@dr=RRhNJz-xlaacp;6L0GL^4S5uDHAN z-HpN1Z{EJmDke4Zm;>3o znt}rY3G#%A_pB+a;&vT6K|w*bA!O&+4`4ZLtK+;4h$V8;z&=Qt7UX5|lYlip8%n&` z;722M7oP6tRK`&&I|puN_ucu1j`f7<(o{FvE|*?nWp%!8sERKJii@w-&6_vVztaC| za0Eve`DgYZh1?4g#su!A}q0%W}h} z#HR6YTseij9{_7m9p%G-^6oK{4f{4 zxW8e15SHTR%Q-vV^(0K@nwJG^u~1Mm_MH8=XOg8XA+GwE*{3$R^7A^3(uelbQKObBg$A!^O-Ps?y(5(E>FC5v%K z8GR)rBwWOriq{!V*ICCJ#*|MH31?^ztwL5c3WKG4jlQY3?o`2edW2q~z6;Ybth<(s zhBei)+&0*BF(xuRxIwP!oaU>r(nT@T%;ikGf7bd$4^<5|0 z_6rv;XrIEG92p^1%(1nKgP5InMjnX+{`eqgkK0c%Q?OcDS)nqe;%eCmyeljfoniGu z(fXkfR9R}In&%=ET5(ukDn}P$Q);L*|9G?R5GKVB;d3eT>h0}&k8*LXmH_#mznHld zQ#i&w14%Ach|?%x)Vw&#jOKdYRoTyq{>ugEr7owC$r~wzaV|vEmHmxlBq`Ppj}NF^ zoBLLkm_|q-#QM#Ge@2!RydHLLeS0bAcI1dt+>OCc8%d9wDF`;|jam#^s_*BKL8dZ5 zcpKJ_TIKBqGTo#;;>>A(ZD31hvSSNiH}fHYceIU+Y>{OmwrxitiIB#Qt^`F#x02qMCA>^f-zh}B=dXaH@wOv3+}Ut25tP+5Sh8V&%(k?w$<9W zte%fQT?IL3_=$I_>6TEdvz1UAH@i*%RY0o0c9?UNJFrOf<~qbs4$L93LKV>5A>e3p zl1LE9m)g=?hsh>jzxjwn#kB_J(nRW&umTgV5B(T*cr)W$`+ zBv!HO2VvO+_^&M*uUPkxqf^cs-^Oug%F;2$bU}uhiRt+h zVSjndu}`6?brG@y#D~c7Pj+OBc>gt?nLUu;=OLSFrQujEocYODpH z7Rv)H70qK?w^vP6+hG~tP+Kw5ttN$l!jC5LKA0{>$$m2ECZ`up6)<-&+%eIo5L*z& zv*VogXxI@m_f1#JYQFq6FyA(=8HQ%+uaROR{o`j}oOu3aHpRR;3~v9xb|Vy4LdOUD zL{8_}cVEBNlU`G!0htdWaSt$62HqtA_$F>B(Z~1@HDZh8>J@jvrhF#Fp6y^IO^<9K z8+>K;0RE{@Y#za#)@T@|Pjt}%wkIEc4eU{_4bINtSR0)sH1p}xW zX^6MebYEbp_d7rdfNP1G(K46dnKtsTq3sZW)QjK1m_il(X{tUwWCc<)ncFJ_3k%=O za0t<@+T1346L9Su$NUz7`FXy>-NPe)GOZXu?ns3Ky)rj3hn}v0e#k6{e1Zj$sYCKN zG&P$uGd0FK*_8GSu!*HO3DMVRDsT2{JA~Mi9f4yLQ4dhJq^~EqPh?iEqvqSC>*G^$ ziSkn6CJ3{eMPMhb*I8N3I-m7{JASr>k@s_Llr;5*)s}`BxJe3hh=K{3tb0p}pNnzj z;Zb%Y3LB!L6sW(Ou-s*sQa|zWe7R&Bv$m4&dOmTG>aR={eePmkd4afZwfKrQ;Ya<^b2w)WbLRq4rgQ+ zr47&6W~kwf@&)8!@@mZ7RN*x2-gVYgPcIBsgYlN4TRO^bz+NMeaJMp;J*V=`XLM+< zi-I4`7h-H@qV9<1ONlGU3Y{=)`$h=8G;cQSD5-rH>%Xtad53SWt{pbrSO7BTalXq- zH_GQu)knjgVCtt&2TrC%2NHX|=FdX9<(f?WDWc3wDK+HtYx>0};9K!y2jK1}c$y>F zhbHI795bV#bcu-#-T_Pa2-6tTlEpL!SW=^5WoVsYB9My#e(%cdMb;CxRw?BU?eBQ{ za4_h3`I7CzmXe~PE?jFc&EU3e+w7|2T4wzP$b9!<*YoQH&$mWW%O`0KDYVYb(HtVh zb$x32VCqGN4K1xV-?4vTvPUU!`!VX%&*;nQzmPhX8l?g9@h@Q;%2#y5FuP%}^YYz4Y6sjhHZ|(WCo)q6ACXC1OQY z)0Y;3dbUS*G?ZfWD%^4}xJ-4mZ)|}4u*fHOXl7kXZ($)d3IFi;ku5&;gRevcM;>gG zI&e!pWH8*+=P;zFk!@)*TOF1sUxIzVU=%;ev;t!6*T9C%J&jqdfJKqbwSN=@KPuWx zqU^Zeymua#$0wI1tgC{S5nAB%-B&G*e>mBkUTE{bifl3tUns??vmC zVS|=o!(dr@_RSf{CHqb_dUJF0n*i~%@~@2hjF6TUX-$jfYo))ljofe=U1=U8LFUc9 z8?~5&r(!{FvCxmcB9UM1ccv zwY;#;*4wv7I;msRjSHO5Q2MqQWLfQpM0b-+umuU^3C+2F0w4zwCEswpq23(37j`Y@ zKpX&xs{*%tDg+?$z;Inmt{}>a%am3o4+IL{QD+oFZcwtN$OOoYQaD{A-6xUnM+VUX zg#r!0X#w=e`>rjS~CS5X?;z!Kt_*`2XmK5V-0OQqp^5;`=%DaZYzOXcWV^{l9vJrTDSSOoY z{5xhizVkQB{7uL*-_L-uA|1s*j&R|=dOyw=C+v=MI*v?GRoyK`UE91GFGs1(Tq&NX*knDMb6zF+t-y-UFx4A3GTEe@KZAET zz2Ip7wuwYi}X<6Ax z5tr{1?eFavC}H2hJ;Xcb?CsN^m(Z_GRGuep;xMGu7DSm_T2?n{$_s|b;geTT=0#BT zc9;2oektkn8o4wDtEaV)>v^eQE>ehm@(jc4WQ(tn&mZN|93;<$V>Sj5#5R*whGVJ$ zzTyrSHq9xHvvyf#mv(Jyb%AwDR75Mw9gwYfOFuG79@P`huv<+{%|4Hlj)3KzLH85V z40F{eh*!z-eEqbtI_=pJk9zN=M#3uWk~bK;Rh9(86me>aB7YudV)0VXQyMy!&#No* zQi4 zR<-PRU>~-)7hRS@mIGxL5bt(=3ZXmp^n=m-213g|dY{?*rV(T0#Z64414_41&9pw4 z>1Kv!rYPd#Bmeea!m52+uMGY5E$OkN0IAZ`^&l5c+mA_jgy0yXfB4@8WauoW##Lt15kD zsST9<@Qoz)%&n^`VI`Zi9Axn$@pH?AAuo>R1^OBTL?xz+%WljJToS9`)KHp&y+k0t zJQdU97eE~?XtfN^%Qe^OsrZiptMg9q4sNn5|H7B*YCFwtShpj2t|tSdx1^s9Vv@}J zq7$aT8qf%P&3vH!K3seS#lA7aYvm^FUogZczjCH{8-d!FbHU{|Eyiq;@+AD*b+=UB z*G4pp>_EmjyaVdKGE>fg-n5WCK+Y{$6uj_;oQ*YkIxujxX?iG-B(^$5N3_vJrA?vx z=a>ZaPVL4|L#jJf)I{5{&Ow=TXp`b=1l(j!lD+k2Q(9Gb|3x*WrG^^j42NDh5s8!K z_@3)6{Q<!O!~d`S{TB-)Mf?Rb0Zpbu+e5sA3Z|B3SaoUBlB#MNFOw>dFTJ^ zdcyT~E0+f(1%dsds&ni*YdD)(mfftmyg@XTc$0W{=K(0+IO*WVMr}q7EMgS|es*X^ zDbwuhq50FuseHbPQ8iHw48Q~;)xPSqRFta4Y~JPB^0+0Bg^~07fH|7Hu>sHD_^5IT-2SuG?~Ptgj50hCs$ zdT9pFNqDuoQGl~;w}~|jp9HSb{HG%WDzQ42ivG5UHD%aaL{ln{!Z*d#?Edh%%}s4X;I#=5|CG2ykTP$z=C6$42peSIx=;=`1i@$1Q8w<~?MA**Be=o0~AW&MNKt z*29$5{`3i>jU+0aQ4mapL9>5!|1#VgFoC@FkOb>&hB5Vs!M)zpf_jWzBzE6M(FNes z4GB>xqjg6Nb85EBjKGM+MJ~4H^XI!MK_#YsD7u019PeT2-eV#RdCo^~^@Pv|ZN4)F z9*p(t<)FSn?F((DmWK5TsQb)<*J>h;eUHe4UDh{k+BDZa?IUiUf@fR~+3p8y0`%n7 zAR?|I6kH^)QN3~h^5fL?8VX196;VV~4ypHe>tE-GsHBaeh=AD8?~5VbuU>I8vSHwM z2{r`}umt3tVC=*CQNiY=y%&I84g-L^SLY=exH;Qttgr+f>lY9PnKvh&e|Poc)(Z_K zym%2Xl_DX73ErN)Qp>UFBc#R2PI0b@X`jBG_H7v88`sPzw(#&1s)|+gpK$yA6o_PLN;`7j5r9Rs z;(_a|g4O#!`rcS!zs#|e>Kpixb2{yxzPXU}Wp=RAyy^+15e(xh7D!hbHkJfaLu^Dg zCfC$xtfXS_0+QbNtS!kl351k9T~e-X`&A^H%cUVqP76^i3r$FCS#kM9-K`Q%pW;qj z#KI1Ubejp|L=4o`$1WDSrcv7C`9FrI;Gt0Orq>-{Xz6dJP$y)= z*2Zn8gV_$lo^0kI4uGU65gEmXQKscYmXlbuMM%?;pdKE%b=e@>M1W{>)FidtX2>%< zumv;w&>`aah6SX-Yzcocaw!ZJQ4n17!N~18Esz5TbX-uf^!++Z*v`?nG@gc0L$M${ z!b#K9&D&U^8eg9QAfYQ3gCtAcJsI*`ot9x_cDyAuylA0O{k!G5!6vK!X#0)=^Somx z-6)Do=ndbrjX5G^6_zZA5{&`)5{rY4BC28Es`hv0+B!N1%|1OiM&+7jgl3vBHfZ;O z{&9z&UJ+KSQ2K6Z>iPK7i56?YAUPp$Q$Y&pf@J zN*MR0q5B>l78cn~=Nv{IUVArI5mn3?B^U?1s`y4Cr{_qVF9F-W6J`)Q$-vHu%03`? zQw7RC;r8nx9)0;yXE1x3(lQ?IBO=aMefjcaI0j_`qquXhXofk>Yr3%%|LpLEgM54{ zIS#!-WMVJb?&M^L$$N{3Z>~)zDB@ra4S?fs_*02CVq|!d6z7}jG5;OzQe6;}=YUoF zBMtF4VG$&y8wcYTtoOE$X(Tf2`VB-F?kb5<^BH+|Ie!WOfqrBP8H6IKCq~dAxz8RNVKGx;Eu3ayraK|XmX+%#;zQeecR0zJ$U z4Y|;D^7@8xVE$k!+Gko$FD}UWOXZzrHJ#QP6Bfq%l=tkDE9HUD9lesTlcgAaaW*5} z3Hv?S5A{V!a_PZlK>H+bzJBw4y5pVs{e2H&-?MIXO2v9;Jz$Rb;N%HAx?Un$!N8>QNm&9XQOA2}kLyGXx7OBRU}z2YXm zeL4--3&H}%NUYx`A-W=)?2B}Rv-OTmxJA@d2S z(MFz?xoY9BTpPNltDf@FZX_-)TPdUH@Z%)mix~>hK6q=$1X28(A8W@UN`3YYfggru znQMljR2&3@k1>Qoj0h9i0X7@}So#QXCR88D3k%LLnAk$H*=&-EhxJQ7OHy=|<4a;k z&~Yo-HdsjLyb@iDfV^?g)L08do#8rgK*<$u4zDJ(EQ*z)u*Pof9F;&ZYH%YydBN<` z78cUUDJhsnev(wVV$!*&8il(cN))kDSo)Blh+=PxU1|YX(MFLBjCm*A%sRNo+u@>) z&b40~Th~rer2eij>;pJm4Y)y^GQq$p*R_4aOd~%TPwd-Ay_#WO&HO$JQW2_rtB+HHG()g~m4@Mx zCM{nPnMAPIp^%(H5~7=wpZk0uF%na26LreNUi>gef3j*;S3Lc->U>t1*p zW?sEb>FP5dHLVKE0tJ;g)B-Sps+k%D)=BwbEqiF~(r>VLb!s!jH8eiXgGe^dcqv0Os*^eX;l5f-*M+e*I z+K)pWhrB^sh;=U|o4PnDbN2I6FmAZz1wioA5P4EWEL2IYN}zjp1?Xz!i3?40N%F+1 zjo%=bU)dCpVwjhNOdSKVdM*(JXk}yr9&%%XI!^lP$z_9keqK>$Vqtz@ z<(4sr_IJvVt+b2?B6|^PI(Sa&a9%bl;W98m7T^7;Y3U={8Nvh&d0{`juC6X$zx4!k z&9{Y&3*g@RIf{%Xn*n&(yoD|sZZuQCG`PF@>hf$Nf9Vq*b&ZcmW9(K^3q%y~DA(c> z0uAtEL?8LqrfoG@w>)E{;!9Z_iuOY$Yn5EKmdkdYzyMD3TXMSqb24xK_lU zm#;rqZmFazOVBUOK};2Td)uDKH&jiHjn{_0gz`G0saDF$PQvzT#CwsW3ci=#TU5dG zEf`}xU=^>`;eZGl4D!XtRFx18*yUif`OQZ`61xao%VCMQ_9xl2rEV*7o%KLLxcYHy!j^ISv)dgYa26v+}&r|nz6O-Z=| z;y<*Y+g*Bp68s^RVwn-wQTV-)TGuRfYdQZzfy*S$hiqDj5AIE@~=-Dz~}0In3hmnExt11nr2J zP3vc%xRU^+soDame@4j+S$|8|bq?Ws@CM}STWrxEg1wi3v;I?+2T@eML>QWkTL1HK5--A|e;?3!?{MTxOK#s0djOkv0G-!ql4G zOibUS|5fV_Rj>8 zOX&jj*ZfvdQY_9ub$k*XZEqNtkdOddW&KI04W35&$1~w3JF5W-vlGYyFcq2^yZ`V( z4q4C7z=3}Q>XgH$b>&Ljo0(n^RCfMF7W#xD(oYny>BcZ|^&RXB2K)25Shb;mCpr$R zss8%PnE$_#N~+3G%1>5T=5uc2`+!D2gH%#_#0!@$9fmz2;jSw1!LWW>TU+}oKLK)x zE-0U*-70F|bqdrF}B)88Y~hct~3aO$Mx2hevwK zY`9-1fr~F_h(B35AFU>XrArpi`r_@KJ~J)Ozji>tENF0$NLUJo!ul(3bHINq84K@) zSbn&bOwa%05aCJ3zp#A%rizC*)cEsk8os!D|JJPyhxz&6{ex>5{^b(-1L#q%%?y6) zAj{8d*N*?$o3FG?OoTuvrT!W2PT2GO`59FUsKa+5>nl88duQF07+?V16YR&*t@h`K zAJwoJ5hIP4zGhiBU7PC4e*$~6fd?zTG5DzpZk-9_WIZXNnV{@p?9PnAfjQ!NAt= z9?W8+sHJXvnfw^_8bw~??`;1c7nfWza1KlqYOmy(>ASkOQ9uiQJr6|tk?~;ZDPLW? zDHq$n^eXv1i-=~%|2?O1_oRnMKAW`bk^SL8L0bz$5r15iy(nmLnBPCjeJ!k(Z>vZWpU(*Q|9a+}L-KLBv9h4A=ik`e1gV%m!&FyAp zR$I6AySDRrP+T0VVfsU=eA~YKw|ZiqpwyG8s;j@3CB>HgVH_T;6Uv|Gk^_IIicl`t zX951bd;dSSVL&MC=I7`C)|KzHB_HOyrTt1YeZ&7B=_-FDoFaB0;dThcjN7tHyJ|qa zKLa@VRkONRq)UB*82c# zurnn&`4RAPJk9XnHFxb8^5=C>8p_hxLwCJp;h){H^{zq$F6z+Jm6LM%_S#wAu?mixno(yyY#=;hX(Q2<+~B$kAJ**>c4!` z*OT{8emwZ1LisYlpFpalH8-}AkA_K(9deMo%^?vg2P-zD*$O9nPQfqMYI&)30S z_hxYy>2H_2`2Z4x3qz6`yL&)yl*5Eg?F~smKZlALeaj^E=wtTv7XE$mK1Dx3`;)5w zfnq{~72A_H9F2Sp^!~^dAr>4bi2G$d;V)^SvTWNM(MbDk@1n}UsF2~m;C z_=}l3rZ_k;r1gzDb)YOMG!8(V1^isiyqL5!KmmxcZFJ$t7MI(oY#*X0L>#Y^lByvq zii1^l+5krt<#9qzorGu2k7~Ly-`}f9VJAT-XdC`?kUJPyE@Cgc z%G?^C^?G|TMVRo*$!W!`>FBzPi)!b;z4@=^5s;G*Z5le3gRra^9(OySCf1no zQlV>_%-rV#IXv&KRqe_Lc+76R0CpA5RuGfb({*MI3JR)`R}F$jNbBOV;$18HJH|QWkbs>nU34nAIuhZEtVam74|zF5!RR z!#5LaIyEWb<)bW0h6oJFQOdiP8R)eNb6a93UMb)I_9iL%_@ovPVWA6&8kuP+ExQ|A zE3bDKWZT^qUiQ&B8^WZ)N$_WodjxC2SRIP4AXD|a<*-9O6@xMbqN1cmbzxm(Ov_&GLK~#nijw zK4U%sjAME&lTOByD!Ny1a4gD6JCE#e@ikiUe%UoYg7v|B8#f=+tIItlqdyxbh4v9rT4L( zkUoVCyP?5*VJgYK{MM#z8ZGW_4Md;S*~&>lHeJd<4rNM&usmobEHn}z8^D{M5=bVh zJF>VuI_can$a*ex$uaHH`_uTv@!@eeLLI)f5msIhxEd%GT_FEqSi>Rdx0$C*66I2e znhgvP<3cWu>B9Zqvqvvt!otG70HX!&4?Jea*l zcX#P0%EiV%)0v_x0E=Tad|MN)w1a4+Q;nm5p&*83Lo1iF3qa1yJ07%p%K=5T;}OEt z4gy40GihufR-9s%xI`S}B)8?9GI8(U1j}&jJ_g2MZH$ff_}HUf#iY8|YhgGvyD^ug zE-TUAa2GVnt507uOIjjp5I;iFDG~OZ01-gmx$?@EO;KW}UVv!FFu42^t%VIh-e$~aTq&Q3G@I@zc1lY z7e5z$v}^FqI!eN|2ha)mJA6JBZ_EHYrYNGNAT0$_$=epj%~t4m$73e?@ZB; zZBg&QqHKv?=>tGB_aDCnu4X?lO;vEm{0|B|*jT&g_#&)COP7Qs8rYMDzgX|Gzdg0Z zD)Yyrs={Vd>5>aIkQchAEE71F*IV_mcgDGOYk!5PE`Go6 zRN)tx9pjC=)Va$8m=yEz)-;$M56>iJR=z!@sx}LewQzVI8763GflY7fTYh`#y+)`z z-80Ng**2VX@EXaPfMhe}7P@w@&579BjkuM5!OyFm0R=FvR4H(KrtA#=kt3p4 zZiLhHEk@{?f4H^jW?v~4L^G3T=okA7RGXb#@C(+3VSClo)h8pBXg$|{bp2$TQRp** z$2K(VfGPEpk)PpV3BtsGh9$D67@7Nq9%J7v#mI(LTQ*oM0dj-md!piDZnCpe>@o1}XMq1d>#}@4{xpyI z=iXE~qdoU-rZ+Y!X8`AHel7!@;?`(p@O?}$ab?tufM16|}>vst<66yk( zwxjgZ2m{uGoKc-8E#isgA2p&PR9Q;<<>U zA97wL4V!`RGKZ-{q)x^R%cdT7n_l}>EvW5aNLultFoz`ZeeA}`-t7Re!j0{fBmWNRM@HY8vS3_c};J7BV~*S);)XSw*MBc80r zCpYzp*|Mh?_`JGD8Pm=5E=A#f8QO&tramhP`C6;78JG7B2)#yOoUCuMuc{2YbC z^RTZ58l<#wZjU40 z+v!e1%ZTezO)a)Lv|Pm(lO>Dg`Qnp&F{Tox{?r$$hukA|Ezb^8Gs~VUu-aUbm9-Ff zbVYi)$PD|6F=SjU467^yoKtORszYyy7??r#@mG~{7vV{ufqR)Gsz8vIo{j5Q4%l6_ ze~rixee(a@&+^581IqF}Rj-Zyj^6xKYuXFD+h_py?F&W|GdTDeCn?I5t|UZ!f@;;aiHtZiGpKJm){ z_y)u=H5PMk$)QC;Jj-&`&uQ(5Tw&sO*mm%(KP^K?c4QhPsFVb{G08IU`;)%pUx7Yi z*J%LyjGb2dXyrExsKS_kA5d63NnXupTPz8MT-tEW@=`CuYWReO8zb{B?)_VyIo@DW zy+?ILp^YhM_m&OkH}1@gdh+h(`Q18N2ISHYDanu3AL)IxHK(yl3RN3AZkAxa)t*%` z{cK=Ry7DcBqoOoh^6gybhdsQL&wuE`y_}DJA5&K&J-kA!WqsGaY3?Aw+ef&i&*sNq zTljuxi-L90=vjxLr{|;&>+gikP$u$+qi>8RgfoxtX6{|UkLhDrfKz&C7A(n2zH15_ z378F3+{=H(;+2Mo?cxtry8(6o;aTWieIr#FFBcXR+}wni8DkbQT4q(8`*tA)-%P&! zQM|ZTjxfP(M0&R{sO{^8n`qBh5?lGv4^_d1(sxdavADRnp{ePq0K!*4cRaoDQ(A5h z3mNA?W*&}4+E0;u4$DOQ)SMOXKB!=#RH8?D5G`Y~6D0@HDm9}?F&tPEq@Bi#6M}9C z#N}`8ZUFa<%m8mu`Myq$Ri4mZcXJqPG9QVpSQu@(-zT|DzluJ`1EM|K3Tw z{7jXR)NzKp7u<^d%qc~kJ9q8?ea!GS@tXbk_bo(kyE!@@g+FBZF^I`SIs3P|A|C95 z=z9wpQF<3ZPLIDw@KjT7pPiju{su&wD?q0AVNZzsbw3|lrNbXOu)((%2QW`X5R(AV zfsDyd!R)L6b5t?4P@I#(S!Xvl6@7jEbjo*pJuelx-+=Q`2;85f>P70G3*zA5u&}W3 z?Z<*7heO)OOxMW{Bk;)=w47c?(aF5Oj^M10hpHvyA^JigE$}h>t~~guVrTam5@EWI zspa60`z|akRhE`2tljqvRk3A^_X#i)hUkQZ1c_6si$68c+uK|D=kaqgrqcl<+ln@g zp-8lh3>$;&g4T_@kH#2(%T`X+mrwzSv6S7t$^+^0)ekK9ES2m5Q&bHWGfbUOg2E@E zzA&}${)!?Hwok!qN`j9qeLTY#wVN=FL3OzgKD$qF;iQk8gms0^oJVGM&l4bRGQd3hObLf%zK&F9b2)Ual!Q;OHVNIoAZr2lm z>x#ccrR_TU#6FW5%#H2z^vrQ&fFy_L5v8f>w3}j(Q~B--4JuA|4AyPioqpMeGRs?R zH8cbG7A(BG%VxVuS6c)y(rV9Mfrw4ks$V1Na zU&SluhN{in-6ep5^D%dH%y8${+Df{B{1>_LZ8$fBG1B&R0LVEJtS#mW5x+P)B#g?J z*sJROOYjw*zR}_TxT${gMsoEaFrmTKLWM{4&?ZsRh*GPtGLq@a7yW?}!c;Z;nBor; zKQcWnTw?v>>*!N67&a4nBHAFEKM*M19>iX|#tSIzHdMna<$R^$&HoT8AI=YCym}mY z;dO-Qs3~~!H0Kra&2@H9O=SjCqCG+e2=!qMX(35@gaKjY162+tiqGB__S!#HywuZ` z(DTXG>x@ZAM3bhxYb@yCaQ6l>X$cdPIyOEw7G#s2&wEa0wxX;3=HZN-%O7qTWoCb` zdCoZPi7mX^m3O0|qa(5qp&)VwSx8>3BR@c+h~xAGyLb@w9_=HdeOn`ARQQogK+3IwIh%c6 z=f#^|f*)J{z~HlE9E%QVN!1^Aqw+od--oVoh^olyAR^LZ$X}_v_g$dyP%dTo0^&)F)5NbVc&IeBdva#fiBwyRjQMS zSQ1!svcoNuCp!yE5J1VFzKZv<4acB-fGq@KvV?T2dgx*OKKs~j_ndYVg#NnOf`r;^ z8|)|IQm?57it75fQw+ffp4N+Bg~Pbs2O``fCUsyw2bf}6K*Y~H?NNukscZa{_iWHM zp*$|3f{|Av6B9Mvg5l8{qfU< z8zL{MEwXuhd;Bq`Tv|%%rsXv#oAntJ(s7wJFT{m|rN$2RUZYH`)h^ht%WS%MsaDse zh;0GxFWg_ufqEI+k;1gh`N9;)P;AN{8agwkokyOl77l?;5BNjBxZWmGAz~l@jceew zYz&jfXI`xH9j_nR79dz|!`#rK;}k=8{S^iyPeVg<^9Njm-^h^sspeogcH)013`{d^ zJO0~KDV&8x4W+H?6e>jxW_9K~{Jo>2#YFiz@87=BcP9_*ZG1p!y|pZyc&DC~lk(T!3e7~Rw<>fzd3krqWzJ2@O9|lkaj}Q9I=>nAO*F%9z zP4)l9KO;2~v=75Znz5Nbm%O{XyP>5eRABAHCscku`sC!p=;-LbA01xx*ZzjnK#4;9 z{QUkoPwPYg_`~XTI0nrAmM#D7e?H)rp2{<0b1bF00m7b2kKw32`ljA4UPA(=_s~9z zsk3gVB{$3s;$$z$Zno#vrfmZQ_l1M=orXW{zr(icLejafWKl%QnRU|=TQv#L_Kgnf zq>sA##!Rpjft`~yb7v4ZJh!5iuMWXLUYPD6T-&bP@mfN=I6Lp2KKuMQ553e#ti)pT zg~2YTx`%Zr()^8bI`Q4KG}WF^5qHmMULig{;X2Va5EDacw{9ep2`I9#+){qs$18W(nFR#} zSA-Bbp+5lcV_xJsG`-gvOwz*;)aoD%sy?yyE`Pdu3ng}vgy!9}3JlTJ5Lw(^r&`G* z3CE*I+{CI7qVwdx3d#YVvu!cr4kpJgK{EP=o*om89(2;~Rn%7-6UIFz?pKUl+s!jO z?F)z85N#~~kg57rddY8(@}>&L2S(yUgn02-=@D{gW4}KZLt3P`j&qVj&jtebk(Xcvo|QWpMk#$9_`v&dzfZ{Q=7hN%HI$5;dx(|6NLR>OlC% zsBi3|%jP)}_i-cf^ke$N698EpLy=ZTMn|iR0XA5dSmsM}49rK~LZiCbaFm-+;&<`L zu&}U!!6`5;7tTrYxKX)_twZPty1o$7NXWne&J|Uqvx_LP!waZ^dwicjG;7GV0l?$+ zQva+=x@R^x0?g(ER&gOW7E`G_M<9+LKkhL-vcNFIzh2VRCIT4G9oj(tx*LbOw3RrG zA(Kv$5$N^F46(0+WpQm1L(eX}N=p-Ti`10*JcGw#EM?S)JhJ&v~qB$i~1fOebupIr%J`KO17uc zh|T|IYWiBTva%{bpmcF#pUMl-QF8ILw}S@IFgL_$@gGaeE$jLIcVJhVdd6=l%B@Ed zL@QCp>YVHQU)>ktr#kJ;GWd#UuI0rvHtY&|*8wa;Uoi-iCuQ!Cv4bVntlD=tb zyhClW{z7K$nF*8_iS@rpd)aw?q@5fO*|{T*nce*8piaC0ob+Ut5!C~sKkj(^N?Cx! zRNi3F8C+2TuwZca8r;zHj~iAssBp5gird#Pp)G*bn#JW}Wc3m8>vL2T*x~9_@x`#g z^)FA|C+%uGQ8-L?2Ik{;O3B$o?KivkAP_^X-QC6;+uM%|b3Q`sJ-aGI1t;t^ z=IzAT*q5K@D2`taCq+zQn6&%Ief|u=XP)v7(JRa|{#zJ-w1EBQ=lu=s?au{rn!z&< zOgf;D>4?aff5_f5taR^6?Ou5wuk<$Uw6wGvAVR7HYk8A4Hh;@sJ06s4Z*k(eD3+!q z%{nGS8xW+>OHX7NQHlN(x>sm4dh^e$!cr@~w~sm&<~eF?i;*D-y>*FW4G z4X;MT|0(av!>Qcb{!<+}>BT9E40%rzqNJ2EpHmUi79p96BZOoKnYK=y%9N9Y%w?WQ z=3#3<8q8$MOfqd#Z0zB?*WN1Ly1whXzUw;weBbj|+tst4weEG_zx#I&&w7605IpsE zQ@bSuzFEZ5#X*+nBVS==DX_v63P!;n(!=+x5?JwLI%Q;xMJGbD!PbmBd@l)4$a|1U z@c+)8J7-Lz%++jCu;2K@OU$pba!UIRDRB<{X2Q_Q3L!?c)UFoaW;-QDNYxs^qCak|M+=rjPrnp2RXM1%Zg%RwVUpAR_i-Si z0WJdRxZ$eCn#Lr}n4Fx0I@?vhnWVXk@J%Ll8+z=9@-W6bL=6fhGO%GY2%+~x?$%;m zHh4ojP+ibN4`4XP0986x8COS|%L8_*+JP(&TzvZ~<(}YwLNNgX;QZdzi3#XC7BnBl zT2N{4qny}h?RN>vKcfAKX%b8>bb|mzSTOq|_5}w{X7U*9gxOSo)wP3DOWW1i*@+ks z1I!z>RaJeSNhk=5>OR?V>((v1^4YVwRu5}-syhjfM$LvcZTo&+fEpo3>@T8$Cwt4Y zF1`!Z&q`a%%-naKdF!i93Y6mUs~JA5yodTP_5TRD6H6cvmj_XO1UH0C1@6|!pG9dO zxH*|@E6H#(Qrf-72W~H%c zYFm4Iirn>0=T%YPT3vH{0}pV zP3J9RuZ#f$z7M#8^2;)$?iHniq#4 z3+$P?mIdMAYy|yways3$lhZk0yG)05g~McAfF<`<%2RFATf#YKXt0IvVLRV%P~zKw z^4-ai$v;sWgwG}D=A6=3S?iNyHJ@yOHWYXDn7q`&OTiT2>6KW{_7*=o20BWZG8VLsoatL1T>k=I5(Jk8W2W+NWipwT_$sF#-U@ z8O=7E&lQjalJk7}& zNG=3j5&+`l;OJQK#Pp3F0HI<~nY={gGGI2%^q?#__wjaxz%CRGhFW@`mnI0y&UfG9 zy?h4&BO9zVR6-cJ_mtrj&@AO15lztU#Gt3|PvU}>+_&|;_(cH^QV*yyVc<=0<@?gv zoU=ua*5iM(Dag#!9*?yia@n~K4s`eeKZxyBM4dH&YPkd6bN>-4sV^obX1h+48ERB#6&yRz;K9MTJy$98 z?Ltsq@lG9VU}8WF-x^2@MoucdV2~$jee{{xR@xe%m!lvGFPl|OAaRKq>W>~=VnwcMA^U#4D^Dfq zuL`V0arD^&J5#Hc%wL@pZ$EqXj9w8iHy3ikUiT!%+}+K#v+11H8XB{JTP9*R+lL`q z@Y{0W;xVA7iExpN19Kx)_5F> z^jP==>-Tp!@f2-Ej^^hw+6#91Z~*ic4-5Rm*@p^!pT@`cmR?}!iD@=~ob!lYSEz{R z)Cmr%7_cU~nn+|gl=T3(`9T083R5)!D7(6DQBaGOoKTg5(#Qyf*+7E8W#s9|BN4E| zVFfBdoW|!qQzs5F5}MN{5pB*#G?aZlHLa}MAcmiRGx=(}e?OZ-LGhTijnC}ttbUU= zh(ejgz5})vVWoAR+x(O>d9sp;f!~K>=&nug^4kz`+vn>9!JFu#HE)}t`52M6A-|Y+ zBvmhOZ#sdxfber13w(pT06@HrFTdXBA&N-yLXFF4R%Hdmwhxh996$ZrLP|Y!S1RV0 zu)?|r0(RwY#gixF$!p>s{7#D^y%g+yXcj5Ft5>qHr>DnxvYe~0A&TnIfu~Ul)~m}+ z55A*&$tJ_5H8f-|9wr-xkwTy&ki1a(oW)#XnWKDt3F1^+09qhBZrbVkx+fQK58p~` zA)IDqW7|v!dLu^AFXa@Km6=a8lx}3$N3yV*jeDhZ=RFZmJC$p1ZQMun%5RckCnb(e;GLcG zxo7gO^gJg$=PLarMJJ=0hy`kfjuSxGACo;UZ6x6cwKGCD;HQ`q%16c#67xsWi;Szo zj}$CX-X^d z<+boO>#41#Rjm^Y|Ahv=98s1QyH6IUKVcSIPQ7JlcP$y@#sRdUz^N8*_VYD47{yMfmz`{kXmK@^BDVU7Cb+kAE>EZ97oK`KZ~>f=;V0h>O5^le+) z!G~spOY9@r5@@$=|2?G&z@2;2*udOO15PPU!wZ#*KR)-r zGzr)<0Olk%##AFUl1eWNEhOu96XN1_q8-Vftl+f=w{S>I)-f|X`v9BFL|F%8dp(C$ zf6JJzkte*8T_q8qwDsB!xtT}oUQx!RX5Di7P3QbsElyzfRksMl#B^($%-C+KIFx zLsV@Jw^;etdagmX+E?}XH{jl*)-d|HBmy~&DWppIt#5+GYWO`Xa{BH{SB$o1_ubik zS7@yy@oB@U@_iq{2H$O6eWHizVB@k{#YOEtS-@@L*|s5cq}N~(#-ro%q=7s?ZPNDC zqCk`FAUhe=DLWTC=PGncrykV1@5eA9t_BK2?1_021q+D(;@pQd3)a-iXgK3hayC6Z zy?37i3zg=WYhUiYDGS1>UYDsV!9Fj+$U9ty&c71Y*UAi5NAM!`ONw6E}xY{|J-ETtZR1st0Tk|jyO0tyqv5Q5MbtaKxkE)xJxaR6BQCv`Dby%Jfx_@w#FL< zL*?-v|6*kw0F91m+LPCzF}faixaZ~CqjG;sQ`323bmT1{xGZuYLd1o9N=m69Ainlbn?5a++bz>31%XInx2 z6=F~-vNy!!t{3>j4&gkFpQzH((tX|{>33>8X0x-vA9gTd=bwha68V7Op#q{bV<`2@ z!v79>Zj9>6@JMyXqOn{(w}~49Rw0>q4ev7i6JqIN12L4lrI*-U#oG zw&Lw(F+)DdPG^&>d#C(mnL_negae^3@@@Ni!9aaput@`>z=Xm$XK~B`NCHvPekN}# zg8Q!uBO!ItsB@L!N9=o1WoUdgR%;cs*MR3sDZ{q=I`iOO#(E{<0rW^=g!!=ixlUKm zG|&AZAW65u15sWPj%~sfclR_EllN#8`X7!6%^yxqK}hHYTy8sB_%6T@e}9je7~5w| zTt743g+23I=(&)+*d;-=1@uW4lP>o;q^!ex{-U6R-4#I-kKUr(*YIe(FNnKKFGuzH zNmhJt>WV0W`P@Jh=K^g;A|d9k)NZHibgw zQ+1zHm6M`W_gOZl=JyAvdb3UdKm8j`=&?jA%|u}FY*wZ8NNTnn7ej8LI2JlvHbwe_ zHZ~0$-PZEj`HMd<3dXUK1tH|JE#IW`av<1ft5cUdeHTsyi5YE0yC7cPPoA!+SyEqf zL*Otz_BFDSr=&i`B3o*^SRJnWM-A+27sw)Z<~pq(C7)B$3wI+@mOnojMqgZ}!>4-W zo{Yyk3ceg?;=5aThF0xVdI04$!6m{zCEk)Sr=sd2To5k)YCNSEd%BvpLftmEwOH9JSD-W-@YIiZ z!_ksZwWIt75bi1JyN=~#nb$o=mW6PU0Fr6#xb`u^c77nZ5=?y~aAB))2DK;~y8oxy z0kdjf!a@qcJ4rJEDP_Cm^PB6CI=xgDjA(p%TZDI9mkBgw?=A{ED{J{;7meyXoRlyH z_8Rz`R3JKcq|#5alN+VJ`X*km*ATI#!JC?!H#a2U{6#W~>&rwj&kdPiyPFH9TC>e6 zNt1o{dGo%=hhIJn5s^~Il^3kYddtCTV2?drly8eSoT1J95$_{bnx76A}cS=ubF5!^6iXnl9!s z=|d;_AR$7{<)X38NR3e1uMVK3=v`XR8d_E8K}%yQdHy&_{x2%K9I2ZOlWfX0F83zY z2bXgC%PpAegG!HLtl*O9Zt!(TU}kh#A(u2VJ&hZ+NpPVZHmQF z3%psByCWY2!t?x|@4jq&d5;xZR zulEv@G~WZ&LaQ%P0Vhcmq;0Z|CjPS8R`CrNUW44od&`=|(FrJ6wBtzO&mH-2ZQYEZuuaxqA`Y+T#h9~Tu#1NGPZi87yangb*TfcOjgoT#W?t|)LEO?qyF zxElML?L;Ry?a2tDn;;7HdNa{62G+6H#~76ib#&6rJG3>EDB)n8_d(kYXLIGsJ^+VW zXVjdqE%+%oA00oQ)+hh3z3yS1<9|zT7Zbi6>Wr z$!tI*o;Yzy(Hb6f^ypE9S=%~-e!qNstBd&tD`^PEO{V&*=J#TrgZFpMCmj9Tf;}*P zKA{B1GM`}C`_gNEujf*&guc9(7bsy(T#U2G2g^IZfok;Rk187f&xrd17z_;$@7~{L zC%H60H4mvJX=IZPrDIayL^CXIWK%l@OhMoVL1W&-)Fdf z80iII^p`B|VJ$b@p*D@{!RJPn(TMjB6$_K2(#w6gxM)*jC3Bs}x%Wm$C}$KAON*40 zF)S_{+)J+uQc|FcG=j*ODI37bwtjibX3<6N==i0=VYFj&sxHTi7cY+IkK<``cpsub zsT?e`^_D;qPKF&y%NP4=aM!8uv#AX!zwl$~d)@@?5ixA&ry`Cp@-YfuI+ReN zEEN)x?r=if0HyHvV4t6ShoPS5RJ!!^^DZ0s@=B(MWQMUZ#Y)L;>Hdq$@D3_GA#8oT z7ISVDAU_k}%&>5FaS5%xxsJm-6JJ53!EqHq2aKbP9a;a@yqOZC?eANc8|lBNHA-k#p?x=c3M&I@0Udih`V<6|p(2jNox z{h#>xgTA)!`v2%JaV(RKXTZLmFNLG;o9kBg9V~0E`$n7Lvf8rZpemtX|B0X9tJR7g zf4Ex0#d(ba-Y>gdK{@2RHV>?}WvLoSrBb=MxnF&KMK)~v_dPNgmg~FX=#s#{|B0X9 ztJR98SGcUIL;S?5zP{EBSM-jP|7UtO%}})Z^%Y{c)Hm+>Z}4bk#~k3%_cc>k@}A}G z3t+`N{)wO8tJV1U_|UhGAyBIW7yDGFc$VERw2rZk-hz*jKB)RQ`~dY-*R{6lrhcFm zbr7j)1znUdJHn#mfXAH8Ysz?6;Nk~@@LUmIbKItSkxTR}>WJ}Gi3>o93We=Uy(@c5 zNxk%F@bl}znkWIpFtZ$K#2=62M2n|Ch;WTa=>BtkFR-zLaC9zrVRnSP1$-38`#(Oj zyXP9YxCauF;BG~VLyJQT#l5&&ad)@kr8pFKcXvrbh`Zb6ba!Wd&mE+p?dSXd@4oJC zWp*2+qpIY{AGh*D-AXkJChJ8UZIGBqNgY9{#)mNZWX>{{`Tg7 z{pr~LjYK&fKE;Uw6OFfd4z&eUbI8-~OAW%Hy5=8xqzy6u)%bzbl`gh;o-v4iu{&y=!@}Ii>`^j&urGM*F zF6EyQUx8SK$1A@7SDaPMxZlP*{-0Or-+h1U`G4<@tHR$kgdKMNYXwoBZ!0uI|G!)L zj8hRc74sAObrz_|d|!_7-`Cl{XZZhS#q#Zcq5i+>h;jrgQ2F2U67!Fz|92K~Y+vmE zg4Gw490+|urab<5YJ)qruk{!IwH5ylKRa4}$*hiV$C>@>{-uT?U!SqTZlxA#hHoo1 z!LJ#<%f22tt~uhJQimlD%*tna_HQhuNQM+h?!;4uR7itdkUP@BkvnpQ%HIX9IDWNA z4XqT=UJAc*=kJ#%zw{?@dc)xvCA4((u5j*ZXvLy08W5^-N|M1j`_0n`p3!}kAp2U~ zI`na9hn(#>XhoeEIdX^tT?g6@jIB;P9eA3lk(SaTTH-{Y)QN!OycDkF(>&*$GPvgW zlt5b}EvALE0PYnzf6D;J^60jF^%UcjjGd!I02vOCe93uA(Edwx!oaW8sqq(79A`@B z_m`_u^d&ETi8Bo6DnL~a);cV9Lk8pt7(04X!4(bkq6RcLr&JB}q(?!}N)KKzfn|91@Ld_S6R1OLf6yom?6*P-HOR12hb$iY z#PI8Q(jnIcT1vl;fG;_y2>Ry%u>$xQL1H0DbD;0=jsU+Rm4cR@PRqV{UFD1>hwqip zkHXnMhs>0N9&Jv)ImVquyz3zw+SGdnpchJ=U zQL2Pr0kjst2I_1kvB>1C9 zz(|cUz|U1dYC3rB9Q_EsMW`XVPGhMX@&M1r11{mH0I*V{r!)w4MXB^K#0~}=%i#At z4MeZOZZC9(`l2N23O#1f8t6G_Qmrnl%Px|=?Lb{_z>V<6oTJ1^)ER0mze zgZL<>x|}jbyhZ3pUeiwKM|6n#qgtphT|$?T8t5;;<0jJ6r=%Z!POs5LXddm3qEQ=E z40`6$Su_p(g0g8A+DlubL+CDj4X7#6C=^Q{Qa##2PeDB00GVe2u{?T-uAwXGMmXC6 z=hpzW>k!EuKu>QJOAgXcWE|Q>Z<2VrkX$C!=v{J})S%O7EU{338iIbJ_h|r%L95l< zB_4!__-Y`*Y>GGtEug32UbfhYSjYx4SNKaDCaxpRX%DfZxR`Fkckvq5Q*ugD#2QEh z-$R^>b&{W$LE>KV0l09N&@Yis1R;*8y=sayob>tOI6WvG$ znol5#i58-`5qd&A@G3f()@2^heRLnLhIgVlxRBn&@u)c(jyvPi$VMX3ep(X^MAIP3 zC>?9cPX7g%$Guv=$o~6iK$=uJhpe)Ha$f!1+F?K5JV!C3gW*%kPZ{1+; zA{-+<@m)4X@?3ULQKr&qiO$94f=htwS=U}}licdMMZ0!$O?GMJvRL$? za`G}sH*P5N3=&0@J;GX47F;^3FfVs$)`awS$$LL#z1BSmeOmCoATcN9ZIb-+)x=+N z23!8*6W(dafzzBQiA}V%t^Pqo8HxtfX!q8$Gk! zy>NE$@%h)74>uAEK83%Y{cb_>7Rx35T7P%{1>Vyti4pq9?omNCgKF)HsOKA?DPc-U z4apSQueRSaS0)Zj9g#b+uz~TWv9YNs#jj}RtuY}o9O^FjHQk46oy-Xbi; zv$L+ZuAz%fd7fD%%(9f0v@N`tH7R*t{EoP?=w`1PJ!*P;;g#{1lV6@nZIWY7b5B~9 z)5Eq*H#`JKwyjh*q*0aDkyXO(S9S~UA9UKaCrfRyrX-Wnnq+*OQ5^S6!jvp~F=HNQ zTS^XbziM3!b3NAjGzx4U{xsrx=wCr`fg6L?1zqvgxc5=Nklti_;|XLFe~)ir4>CV1 z`CPcW(6yi}uX@(fq_WrpZ@ivtxIOx1{mj+{>YTmt(Me~DtKi0NFa1V(?{=T%HQz7D z?|={W-RM|T`{@D)2U~-V z``Nr^_%QyDe6Jb~Y0oJ0WmRN5rAsA&>?d3U-4omK(Y6uRmgaWFeY5MQZA^X{*ZB3_ zn~CRdyqKLnH(!ys@y(gIJ9?uJY&wM$5*TA!$SXO3jVOvaRvaL|E z`D4!A%*n-Jq%}8_UBOO}&D0!r8|K~K?@~bB!0CZ~{Zu|Hd`16Yzek2_ZK3i{C6OPL zo#!4gQ*jBdkLHVG?3L}0EOU%|@}^`IC2vX^`)R=Q+E?5EHR#ob>}5qAKMT+6#T!h! zb;o^*eFRNsou{upbb-Bkbj4OcK!nbvVA{$r~4icboC$Wu2Gw0H5CUHZxrLCmvDQs2C}c2?`$1pU1jQ1 zd@gHK(#3>DpIgR0d%XPo+tcShb|@WCxG(1Pv&6I;sG-+o|5DFaD$aFk(7oV&{?~mp zKJB&5gov`sWS~^eHL4N@YKt|wx?Oxdqk3AtVp_~0ydA3q}(xNh75+mKfjj#_X?vi`5 zaJ%55+$+CAI-*PR&IX;=4!;HgjRQ`2&-8v4;OQUiKg@58cUzYe${otn>Il^wt_{QD z_u@Wrpzwx&XSrIYFM6D_Fuh4eZtB$dm9LmPXU|T*=T-QyxKmpF=RZW(wshC{`c?Hx zSN|wo;BhzfMu^p4ZrG(Xi2l|RuC@9aYbwhxTwherd>^loKjJ*Z&$NT)JNL(4PkqMv z9riiy{*%w)!1KWu{f>BzHpJ+X_3QMJ+GI&LW-0fQ$)`KS<>E%`Z^k`E(+URW$g^ou zWPIH>t)9hS-+yIFQgU9yERUBf-qp*WA+Z|*-BsH0D9Uw4$hykw1IHOW)qBtY@t$;( zZj7`+S*7BdrgOZS8OSk`BjOBFQ|amE<<-Tb$g`f;T|8;-ADZgx}dm@@h|==dr;bpMdYPDjGgWB ziy_OcmunxlD34;pz<~Ua5&ma9+IfETTJGiPwbQU&dxkqB>8+e4UyT)fvH3@1x1v); zxj8kHbqQBLCcf?aEbW^4wrgxocJ0_&PX>LMUbtEDPBmG6pULH3`^>JiKcu7AL$~#s znzDxS%i5;ygITR5z04>?aG|OvGEd&alXOK(b~csPF) z>oq?c=4oOiF^VVpW8Oo3tNJM182w7GGyVho!VJN#SM_Z*W{s%nuA0V7;+NUCnAenP z3#(?_jPDZH_4AWgK98zsNJDjJv=Oo{>;>gQZ3X!Hgqu5*X3)oT=Z_y`p(*D}TNHb>_aJTMlQy5z1Yo1z%$VKK~7jFG#!-SoviZXQ`s zA=GvK$+N%vJWXrO6m62`vSysdOEXcqTHaYfm8Vp%lu61NihGLZ>QG(0_PDyS`moxf zP1Q}(ER>tr_N)o-pg|T{(fXX-Sy`zhZq2J@FXCb{xoZgH6T9@qF^TwKMcTHFtaF=Hwcc8eRY%2GSvzTpWVoadsz)2U zl#7%EbD_*|q@^>29NSXUuu`wWIeE`Bx+hOeT$lJDX<5SEgdGXDQk&)+%|BL^| zPn4xZWTa;2rW9sxcs5C^^J6W*afyxCOdM z{~!_K2Hs$=WW8Ye)wrnmRl%s-$C*W`O_Q0Vn1nY8`3YweQ>DFhyA3!Mz7f(DQ+WNymjZ* zeUvc3L;fWy0YsqgAS2?Vp~D5|6yxx^|stGxtCQbMa3lr z)ALk0e8!-(BPsKe-z8m18lC(gB`|$mW=PJ)yu*dnN>7=Z+O`Q*(K)u4?6PvHW{}>) z?XAJv%he~^cZmO$fChoB0uKi4^AGWB;Zx|@*YMu8jsBIUwd%Tjg0u(sE3*;3BQ3?} z{B*mzD${h+FLIsX9_I1bQ|le&^TsFBXO~Zb_dBm9oW=(cJbXdbJAm8a!RWJe_JI2HQ@-$JkGbCM(K#o@v^-iJSA_p!gV zjj{#WSlb@!57q!{y5*>)hlR6P&Bf*r%V^713%1^{jV=M=98?ugz^8B$c4Im) z{g}nfPG%D`lj+FRV|2_D&}t~IjZ4uZbP4SMPCpvB{$w--O+eGp7&z{P8X|vWp%>^l zkRYMA$r93z$jNJQuQ*-&UJMWg!6GO{f3bx)R6HPxVpnp2@T51rMqSYebQHxPH{1!& z#>??$d=basd~Cr4E14k1o6#^z;0u|c-3xpkZ^yskA-E&1gI#eMibfaEN;CvTA%x!2 zV{{hnK=m|>+#|n{=0r_0#GB&p;!JU(I9wbd&JqubDWV%`OO}&Z5=qC`tN{2XB2{X z8cWa7HGphG>Pt=JF*#1wlS!l}=??N*lOM?dvY6~Aw@EJXrk&^%`a8Wx6Q~rBtAd(? zA4UL{lhACm5Ul}}cYr>7(Ft@NqTvD98ILRoV}e-BV2X;+OLPtW1#On2p8)*`_60iW5R)$bs0Bkb$Y3bX(%gDXqncRJjg0kJR);^2E!1Nk61 z%A_&$DSZgM?F_w7pVN0Vo_?Z9&cCRa!0#Kl5=~#xD-hwk0f{xB^LRRpP6J$~(dBdp zJxpKHOqxf{RExqW+q^U(q;_I~ol}qtHmeZzLQIMg7pv;E{Hy zDQbYKBQF$;Je_}uSD*s0>MdCQ5|H0bXVL{AYc@o|0Qk%R4K~q3^f>*CUI*1gcGPWbB<<`WWu4%$eV=G>WIL2>IuGh4&ELCNJXL> z=q%tqj{Zq~um!X^1&CsN42j^a0Eo~(&=_i?mqC}x5D|{Qf`mW8s%-^r&2%F*#ol->Lm;=cqXBpe$|UX4M^Z}EOl4FcuApjki{_$IdJ1^*ZpesI zjL|?^8>K+31Og8oBg{oh*}Y6JdR1(Mjxc@kCQ^xXr)%&VJe*K59m()T@KqjU(XN10 zOXQ7akyG>yx&$6yjpmU)G>GYnCW;S`j=3-PrstSBbO;#*9&Lpj5fF+Z@OC-{ZJ`a( zV-iD;a%Yj3&`hLU52n98UGU~^Axt}=v0^KLKE(sbCt)6$jW06qg%>KuH z9DAJ(#;s5!-GSFSvV=ICQnmw)gHpI1nu~@pTg5-oNu~_sO=jDYhV(mjfmkSB;5wph zLIU0ZGgS!lLj0ZvGq-3VIRiRIv2RdA@hV-4GH?<4O^l{n*#NvrI8ItfB5{bo6Afd8 zv3OTpPcpbXK7QCxqtMnGs3 zQyXohIk*FzF8;;7!iV{qIFqRjW7k3_;ukQp&L(kq9TP3wq`T1`w3Y5A=OH?k)Dwwh z0#)Gdqy|}p;vpx`M?cW-$x38JQ^e+U9&?jkA}0xttKxKF6`g{|<90Ne{74t#a5hO~ z$ryGi9!BEG8m0z{Bv0`Mf>0b2PalYTQA4&fdM@5ad)UL!b4OfCCNOQ;*P@ZcG99rJ z^+mm4tS({36PrMA3bUE?6S~lv%pCj->ZyTn zq#u>i?qob@Qb0>-GV-F$&?}}9en^AajqEJ)9)FS?g}YrOJ}^)AWZy9Bm~}8O8zx{L2eFUvO01OB7y$Ri#Izr@8%-?UJipZ3!ze zGq16P^fmkF+{d$POUaMN(y@WMUKy|ufG zYX`kmJ4CZZxlqNn~Mx2Nk6tO6r zR*J0jLuliW9|I$N*0~qxyXkb=rpiO?Q*k1n&DZD8S+CtudBYw`1oh?&$*AX!;myXB}$f}W+m;5+karF2PGm>hjb&I+D!vA&Ar@fg$`GFZ{ z;%6r}FWJP*mp^BH(R6OP%Y}fLN^?T`21Equ!iGeCSJks>hlt3^+e5|#Cj_+#ZV|ZC ztA+lqa<$T3vrg&3j_1c)McV^0PYkgRF4<7jsC1Ljt)x?a%d82h?~~TYZFs*jrdGz! zX{$dxc~SFq)6awR1{A-_h>Jgw+NkWhq`mrr>^i$gcF}c3U|?9+N;5(>S9%y09k#tn zQB*|K#qjqbb^I23|LHd}ptZL}XO!yLaLG~WX0{wUXVy!*9Jl-3DRh_B`YKf}N?;Q~DK*#QQbhYZk~4NYm94 zpOuv-g=JS#ROUh#hMWys6d4y0R%L4F0-sWk!QP{Nu6nUZabEZ>ZZ_ zUG;slPcE5(1@iodxhZ*>B{||8nNhV?H^Vi2`e}wu=TdEnieD`C@1{2YF@{f#ZiCb5mP-LQ?aPqo*v6`P+MLyPz3@6L(MR^^7|Rmu&| zu94}UF(iX#KFVoSu&yN0lw~stP<`WdT&(<ccukxlhKii15w{Bsgynp1 zdwrX`CA@5AiDyZ((lDd3w4mgt;x=tGV!!RLOg*m7@?f_?;hz`?J zz$@+nyP8hB0*{*yjCKvM5f?NaDlG-+A|&wN37hzu{4oBieY)+KwZy_(8d@J%=i1KO z;%t5FhwY{I`g|cT5f_Rd$xJj4AI4*u$IN&plR3(kvY*(c++J=pXJf~(^VllvZRRH2 z+rk`W7BQaeV@Ar3XFsx4xjeQL_bXR}({uOPYHS^L6gz>{vtf)CeFnaGh+4=HGEh7r zv=n;tUHESNH2VSDYTE$YRGYVbyM2+}XzOPW=P&RIp}JrY?g&#vA2Jy{$QIH9>R4Aa1vSS5aUW(T!>}ogntjMBSt)mcUC(ak7O?$TEAy6J z!PaFGm_XPgn8WyIyar#y4S_jNM^9)lvXH6Nn>L0TMM0VYKi?;IBx#~jtU|(xuQ*){ zB2&d!v8mWubS0fg1i3|$$TaedSjc3$AJ|7G@Z*)}IIyils1=r=i|9MN3aa_na6S_c z#tTq5o`Ub-8Mr;3gU^Eo>F5O-hqvQncr7yt??U^aZrlyrejilzZs-7T^gB=&7L(3I zN3M}a-h(7{{3;{pR1Lphzs(UT)!%*}9IPMBy#f4Ok zRH!;I^n*}Kb^(dhYJ1`dt{L}_4tq$<3M!>_5A{+Fi zz$<_k+kp{JN0ZPmXc3x;{sfP;fxC~;Ec6*F^){$IAcfE_usw$kK+)6{MWF%o5Zwoo zLs1b(aYZ*lst)a-2pDYx&}9?VpcZHb&4zZ{XcKgso(2tCpk8PXeNHPu%|F!1#wCEn zOh9-fvIEO(4y=4USXm351a903J`bro`T_Vea0JwXI^N)#3cakQ58?X;^cW5!_8t8h zq(vcruq~brL5_D9Cxf=<=>dr0`tV#Tpm3b3KtDZj?RYv4-KV*rRdZl`P`9HXhzW00 z1N7iP|DS=;+d)=+;CMRFp^yfG4<69Bz~1YiB+%UPzNQ(X$proRA;%k}$Dxn$bOC77 z7TB{6l>t{=M601(&?Fh~7=iA>(Fl4K`tU<(^fkRjhryHU!GittF}g~nXab6*VbHD} z>If1L=yn?T@Duc&8qhO9vMz8$$2($8&}u+^ANXcFJiQLR0py?3Nf1#nbU2K<97x(7P!r!llT*mx1GqbU%n2hdVfmkvY)^a1$t zCcO=@zW}gEgSa0>7Xh+e0F&Lo>{g(r=o~sqm(y$L4($X!dIY1p8e}dTXtJMv2T@!D ze0cyy{b9<0zwaSE`U@=H2D45S#7Q{Hh75HBM$U5N10IZlQ7n)RaMm160(nZn;uHNI zwFD+uKu*H-0CXKSLp4z;cw#DIVN8ESMwrVk!kBmT`w*=4!_UcldIi}?ONh7tJRjmu zjoyM5mB7c(=v~0!K0MI{Fm^+if%_Y<8_FXKh$mi3>!XD*V*f-{VC1yJy+I#OG=`1^ z+w$pFc-ji1?Ib;edV`OTp?CBVS&h0t?6*d(=?$>yFuqMU)A5ksjv`;MeKW+io@tK; zlOLex`81tQMSq||uqlUX$aeAw^+CVl5%dV{gD#R1RE-`WCr}75@>h^uY5^{_u@_{# zU(s`Nfm#61ZjieZpeL4YfvnY%rbB$ZqCB|+_fA0mHjt5!wT^=1Kk0TDMOr|qgq(v6 zvk0}vpU6gX038Dl_s07m2k9Z-c~KQzheqJ15I-H^comE|6V5{SVJ4|TyWvN4JyD~o zWF>XHCt4kgw3x0zanK+mqBLSC2pg0VARL5C&jv`FRe*xGSPtlE8z1yblMF+?kl7UrY%%u6~`yf5yDtUMR> z!+)asREJAZKe`MJ5PRSkY!58ZA&`lC!&o^?CW=-x4Xe-*oQ22J!=wqRgIX~s$TM*| zItkZ)#JOY;=|tbqhiERP!~mJFAGMJebTDoP`pu_tB$oDvk<*JVrE`!ca|Ln%L*Jq| zcnf5=r8JCwPp9Gs*aCTJ87&6y)uI!`*7OHFmR-&CL$Apause?QrWxR`INAeUp|ha3 z1=I(1p(R8@FOnvBE}n=6;9RN$tQ7b@m%*rs#COpHlmp1lgcucNv+7hhv)v*Xw-matv8>zu$Ym(RCX*_p7iH0k>#8dn zoA!?Oj3!#$QZ-*uD61{~gDpc-NIE~+mSwqaZf}}n>|AoJFe`UdX04Q)pZ%kaZ{y$8 z`_Mk&US6;;LAAg$!+)sXUxpLf0rHL9Xh{`SvcAYoX1MRlsXsCK_S0pq#RCd)aZO`0 zi<{60uak_CPf@l~O;hRBYHe$m07HoPJKyWR6TIrVebzKkbdmL!_ff6W{HYnMN|UrA z>&m`zX6>hBmp$r=D*&KHK)l{5az+pBiFasV?^K5v~tQ^nd3Tpx!G> zP-MH*^Vtw^(cj?pQmvtCo3(pz1S$Bv<=rtQHxhb2gJf?l>e#FNV zbhpxPmAeF=@QHH!Ufo1~UY4&ossat<&slFV!7MeNDmh+4N{<^C8PAqfF6xrEF7tNs zm`^{xUHRo5oLa?q7Kj@_JP2 z9Gjqx3EB~HtupWZyY`J#FKMWb^;U%Sjockp*L#d)O7Y8-sL$2nC24=BhOHhqh*Dw)~LGpFW3zzYG5}qH~qxkmkNWxn-zBl-rcUHJQ3yx{s>$DWRmf zvA)%Xnz>i9An9||&;DbXvUpVC`vR_DS58*inz-?={U7eQb?{Eq%N1#J#dU_xVbM{S zL!%5o%2uOr=91=Cz+X|>HO^Og=+&ADFBq6q^K)V1@7Xns5AD~4b#_K9(=Linz5b!fQX2KNP8nW~X$pf=ZKq}yCD5jSGxTOoz>p zmb|hdMJTIky#HI~vCF;Q_b2-|Tl-J8Hh)z;U(P)!?n zO!dN6TsSkocF6#{k=Y|tN~|@Hu2Z3ZOqHcwitIAFB_RMzp@p^n39G?JMv00 z=cNWE9ZEQ!*ez{9ZboT}y)E9(4dVJR3Dk>r#r^^1) z*GV>4AyMYbn@Ej}4viuy;xK|y4!*_Kl4MD4NaDC9Y#pXIUWeB)OSo&&9`a{$SNRfY z8JmR<10!HzhWQb=vlnVekBhhX-|cg3Ev%y~GK{4|19^C z@0TIj6^SqRnQ>(t|MDNmj9~^aotU%uF;t-U=}@|ZRz=f*u^)!|^A{RRj*=dv2Dw7C zG=k2CYLt>F@~8MlkO^gcRiT-%LnsxJgmuCUp}z2rf6a#rKMETJPOK-Y#T4O*uw0lX zTok;-)8af5Om{=2j)7++LrtEJF5;ui4z>k%i2J}9xhyW3yUnfP+HiU7Dz-W+Ws{lv z%o3&{a}Jw<8{MZ%pbATas(Cz`0vs)wu52~@DRK}B__8Ull1OCVY!yW-u^)Ps)qwR}g4V;} zsV(#_u+(CxvR{CWPl27c2B!B1Itz8{4B$)M(2uAyum{KcDFMJZQ-D{W0=~Wor1Ynb z>g5#u0Bp*!rqKqdKL>vH(Yab`JlX+${0fzu5h|md;Mv!}Lc2r#wgOP&6zWjO!MKMwe^ z4+@3)Fb|&GP1nM+mx05`kuRXdp?I+HEbRAyAG@O{kQwP*?PdgiZ-zS174T>dRqhZ# zY9Q#<6|8LsSL#FCN+=vW;g7V)>U`ti9B6a`G|8e2$ajO@(?EkOu)hF_j#Y0Zzy|No z3-lu7gO9Yxxt33f9IH)D)UlGy3;Jya+J6UJBNBR#04bG0hBxTs2~5ftjvTAX)JO_r z)(tGE1vPGCR2A;Xp-OeExGVwrX%JzLq4K>A$T;3Mc@Ljx_|9~$eRZr2Ev1QYDe%-Su;vEnn@S6)W38kgXiy6xsRP8VhG2dnEMkSZ63goK=Q+iUhP-sEwaOoV;Z(ElTP2BP*7;1>f|9BWr8^pXkp z(t$zSoa3HVr_hCa_lrUwJ$6QG-Qhh_+Ok z1N}Pes0_%5I&pTa`}GDSg5gS#^F1HOYRY1eYH|9F&{B9R1tiA+rkQ}eV|}C!Q1*b` z3qCsMdSAzTBE=BFsW2*@INv+C2V>8%u8>0H8=&Vvh~5B@R2h(|<@9GLcvuF=n_$Fe z0ve9@W3u51$I8tt=&QtOy9Q(gfOZc5yMZ*Rb2Y9Kt~=~<;1mt9eHmi!A&rG+q@bH) z&8WMxg#j$91~L9UM0r)vmq7bi82KNmV}-2X#MTP2kq^7WbB?#89DZ|gYKELEIQ?M{ zaK3TmSj$-edkLUZ>Ri9==t1R-j3_|7s`GDpj+LZeR^9X9w>*&a0>=C;XFNGHq|~v} zR}N!17ch0iCI%bBL2f8KYjs-mhC1G>(SQ{`pozoE7Z5jZ0V6YIoa<>3w9Em#N~i?1 ziv$}T86p@EVxfHz$Ss4h=U7i%0&+6G`d)$@c@veto1QF8$qQ?Na zpc;A&I%I+$FTvA}|Bt9O8Vq-%03QVR5}nppb-qVd6**SN-hpg?4P+HV?(G9D-2ux2 z$UFxi)?Y&0)JJU~DjR~Pu@JunfQpgUg&fxba(O?{%khre96A!_yc&@0Otcqji+0fI zApJ6Axd_OI9uPr8LDnf}MjJu*LpHewy|e+`x}la3Rjt6|uYgZy!K||e=8qS24@9n+ z1_CCn0k1qd7Um@cR$WFC+?1`%#o+ah%peZnC-A+28MmWqhGpmAF6b}nA)5F%La8`} z4q?p_Dyc4!a{JI0@v`th$QN|9Efc{GXS=eyaTJXeGlV^Yfeb}$nJ(-A_7#3dPl}B2 zk#8Y(r&;(r?h0pR>oRrGJMojST%1Y$m>rylR4VPq&BXNx<&*5be0OmV?TIC9O;(Oq z&<;c)wC9m%5?T5)wlWH)7JiMM5m#}LcoG(sedJzCZ*ULMXu4M5thX(*?2qj$#cVtXY#%N$vW2La$jNBH=@-P~f!uWI zZds&cEcXc;$uv?o;V0Sqmif?Jwe8jzsM5uKwK&|A_g?Wf7;bdk!BSA-LYi1Ja zg9*EryT!&a?{GW`6<_d4d}AS3{2&hIqewA1Mk$(0o8xWtF^Qr_&^hJ@+>G7BJ%+w7 zF_ZB-$O665HQEc1%@>Vi8+lE3lOEz!k|?;6(>R3f!+5bz*&yZs-ask~H3frsO3cG$ zvV)RRrV%@g46}#Y<85t)bK+WBi9N|3<9ND>oTg^}l)WVxgI$;s<}SO4KIFAjDHf0^ zI0662bj820JmJN={40Jeiord(Im|c|M&^ns;tc+n5JoSs{iH*r8C(`*gt4F8kB&dtB z$Y~~)Swg$gZiEP{ZRf4MteN)rNY3n)w3khks-<^PBkh)=+*t`AwW5MxtGqM_IHg z_T@%%v1}fe(j($4(I2>m7v9IVV@tqWKcF3?tuROUP3Ub8vp*AyNk24``&p95cynq= zs5F~<4I}D%x>rmBeh?w_5Hds)X(0Yc{z5E4AA3Ot?I~_TztTQbMXbUiaiBO|WKbBh3;0bw zQ_6X;C+GvVlJqX}vQ4&aAf1FTYc=};Jd>S@#&MmLKgjE`J((D;14=WWG3srTXsB3Q zP%(Yv&t)s|YeDt=_;l! z(?hyfK2GAp)Wt@6Kzs(X$QC>R@1^g_8puo=0X+#l$TniWqYLp1c0FE5nu_o2+9}>t`=e9x(Fay}oOM%#LibXV%jrK8CJ+s`%~e@YA> zd#OS4Kz5wli(9fGtVsN99c=F6FTye5d*DqDhMLI?l?0;J_$SFPQU$9NHzG!|052Do ziH*3&(hib2GJjQl#a8wOK7tcOf4++lggn{1Y;Q@NbiQn^WB|jUK_rwwm5wLle)v1w z08N1M={}!jf5G42KU(hDa>Y#kvAu=uH`_kz_og6Ij@fE$Z@Xb_WGm!P(jSS3kZbo9 zz3_X%U|%Yhi3f#&_C|awa#F|_uQ7?-X~qL@JIk2yAnZfUVjHqY{7zVD&#~6GbT*AM zCX^g1zFElRU(3FnwLfEg+N-qBDcaQWY1>k}r7lP<%#;*ww!dODig_;EJlc3|cHJcR zU|QPWnUL{ANmtVx8%A5X`_gero#vh14YbI0^Yl z|C9`r43$oj{wABCRH|>OSF5F}&5GkPrDP?ZNxl<{g;PQt-_YLIw#Zs$`q`LLxGHB) zX4~{Rsn3%n2|p(!#!rhs_i0@8!B6|s>X{m{12p};{X;H=&kBxn=`I;(2`W%#K28bC zD9q(d(};=5mrRm9Q$5s1Y6>(GSEKj&fLj4S2ObKX>%Yx&jV?st&0Rt#$$T-3R6?GT z&B{NtNiHT=nZfM7&E*eGs4`OCQJTw~z*=S%enuyVNZ4hsZFy{*SmIy&W5MN|fmyj3 zY}%Tnb_pLp4Ua`1roOu$vnkc1^cEVXx#k-ZJ}}~3rQseyin+q(g3D=D6L%+_&Ul&k z|Co9U;5c%wYglTAK{G=faF}6}4Kp~*%*@QVVPyYJn_H`gb|D_{Le{4A{F)-h-3JoW&e|Fm!Y6xe zA=X-Qa}NC}`!h1VYQAE;m9O=0Z&vHOJ$!EJ?9e<1O4E-1J0=Jo&LbKFy>L%;pQnysIrvNxgR$New0zAs9gP!Q(wJWCErs-4E>j4XNJcnEv3wfRl_X6`Xt!WxAxx^Uk?LC3?}R|=1)8uYi< zY+*Uv;T&ZdQRZuYZ|f`PGhx~lz9RzDf<^?a_Ufk^$QEJrUIW}B0vRvUc7A|r} zsRGncDsWwMB-w4YkGA3V{g(8yn}&n}IR|8%N+uH8{v7vp(D#c;!G*j#Q0N|{suA13 zRPR{Tz5yM%9LI_58cBoV_a*+9K^IQ7-Gy#$vWik?3snUzw~O-^q4uZG>7cD)Ps1OE zeDd$5TgrsW1FTz&k4l)b$&L|_6B!>EG&#&Ww1@wDEyKSf!_Xn=g4~Fx&jj-|#O3Nc zs#-!Vx)#_dwRibBd~5;M0oH@o`j!r5LrZLhKKWO&YNiZJJo>HR^Tlr{X-BcseOsIx z-lcAz#!(GsRDnT8&d)ME^FVy1_(O?zQpXmW9Yd(mVv1^lrmOmZ5QhCsXZEAeOgGUl zEu>2X7d|aG#&@R}2YcCv8lM?17;0L6dVH7(df&jQVH3mR0tm15LMrKz!`vo!AM}(I zxDR44?E~#)RSr9kIH&A)`#OGF``SL)yERpqaDWWm*JJ>k0Qu_j$S&wQZX zus-Upy1hR219jmOB0dGb_Q_B!qy+blvZqDKhEt|VE(s1*_3`f#Iv@-NMftYX26MTf z)DtPaRJOsVR1$YYWl|@K>p7V!0iUJI&RBbfeYE3}W4)cSWto2(Cl~k2znS$kZAQ|+ zaZSFJe(#!;nH^@S2D|x=t+KFgOnvWKovU>7*U?wXM&ukyS&>wbn3i_5D91JtwWc2M z-PE(x24N6elM4|}tA1!Fdb&qB(6D33r^+W+oPD>=YMo~tZMkgTW@=)b zSo|nIJU264PH7YW_m35E3ldJ|JTa>g@Vf+{YOkH=Q#)u$aEG7~e$(_9gu^h(6=aSs8(>;t zYwEc{oD+k+!~GfmM!t2t{?bh03JEVb3pOS1P%&&bai4m+`j}9ME2Or9PM$cs-8#hT zXI)~siEaLed6RL1K`gwU6OtkRiT=(0yb^aV>3nXG*_WWbb1Mz56C(5ovXhPV)I0*d?f4U?<<#x{JI& z{ORC1=H1>|nhMQ)%G+eEys`dc+!T)~fE zRuYoD(QS5^ZDrO>%WO-q<&vptS>=*rMLY9XWk+S`QcMZKzrX#SmiD^vh;q<{`IGgbo7pk)PKAg<{+U0J^F863%#tm-s*fVl^#W9Q159Q zLkLe)3F`gosiKujqx--->8rD!{j2qcrG`aq39y_pzb;!{I>FGZ@Oo~uOjAm3V)8FC zAw1QX*VlRvH1rCN_!>R6W_-08QSJS=veTVk499b4XRb_pon5p(okKlWQAfJ#Cq78|r=ux^M&3tnQ@#zCKku zTV-Qc(odm8k>WRyqdVFp-*>Oozlz1h9|PW3PSFyE8@HvhqXFTL8R z`?7~Y2T!Oo#c|!Gms)|vbROSJ^+1)anyKn4q_8FQd%BQ`XV>xv#L4QJnhWY^RgAEV z?M*!fmEKDM zvNJjtrCZMtW3=r;e4`30NtJR!tN7${7bVgbZ){sUxagMQT3L$ik+YkpL_VOHQC;O< zc|15tRACki3$#mp8wcJCoEkXU@47xk>_LSii@Ver;-;l2@Qk{{#fy_wm&BjKYibA=UxALMkSysb`gocf7PTE*oIDTW}+r<+le$XMb5@q+Ln!oYFqq4R?E zXqn3pTR1=eab8YtK#n0ZHSN-$>+zaj9g?@_G%^M%b3`u46t$+(j&MFi>+^!4=PNqFQk?c;|$l-Jp`+{$vRNU?m~qSz z+Fo(0T~n9ST5PhE&MH}I&=uQ?h@wIHa(0I_kevT3{Cn~5rP&WkUn_p9%7H>5} zC*Rt-_l#Bf;c2LJ1i&;tF6Yy|Hq%RM!m!>t;#TsGZ!!O*d2YeB!fECXB@B-t?9AC4D~F*NJH{95lOA3Zm}0t z=k)b`4tPD(K2Uw+E$kR(3A3ML1vmGU9z`Ue{hproJ?5*X8D`OZsO);_nc@Wnv+}NH z)=3+YSQuX=ZsyOgY1ND?#{qcZHp>w^Q0xvGsP@2x%Mt+ERmWg$!if`xYa-Zc5 zD(Y`)<=#gAqI}>Auovj*Y_5T7gLiV!vCw6~>%BwOk9nHf3`*p0=rmK6dq^Lp{-I1% z39OCQ6M8O0bxQq9-B{N{*AAoO5yC&J-|E(yrJBm>XTlG*7KxO_(ipeO-OichnB)wx z*D<#$wG<5~jLp;KcF6gb$)@*7`I;E<%Qx|Mu`g;zVIJr;(J#S!3jLb-p#AE7Q8!wX ztlG&mcdjT}k$W;HvFM2@!SUOZDw~kW<>M%JXM(BxMxB@6qo6)Pi+nOPBY1`W&0OaS zgkXL#cZqWm{wPe|ixyB#86DRG$BotEC055MTnnL%xJ{$g57VF1HdI~VP3$MekMX72 z65g;ccqy%RjI*4wEVA@5nM+<978F$}K3Y(g-5@RVk0T}QPu=)V30LjUiI&V{(wCc~ zZzF0LJF_Cd7QEU2x_T++mdncCmP|CL%(fHW7LNNh(Cn>d_yLfI!g|tvdF%`>4|it+S=j>ecp7z zc%%40-s5cF%vqUH>95kCB{%z(6t}Z*2}n_9x#B%ds7&6)Syfd7&xP*vKd4D$&B&uH zB#sa*oyC@KjwjaZ#zm#$?S7uW+y(A2(sAiEdc@GGylqc7k(A zHP=~%#O11Fbq)0~^%8v-ui4sa>KiIw)gqyYtI7A|-*X&hd?w~8bB;N{q%ckB7W5b< ziy6%LVO(^F*+O@rZctU|+H`d?6>di}<#X;>(!-Jwt1&#CHWK~Wdo!TX- zcVbTVA@i}a-vyNnsixTk67;GZe22Z_5A6}}5$Yf@j~&WiCN84~%)|U?4C;A1a6(M`n{oGLlRqz7y*S1(t%3AOd}n_j$IumpTVJPFT8@ zjV;|#l8VQkoI5G2PkQ2?qd6ms&luL^?aOao>Tz@QLdqYkl}i{=CwaU0(NqduOE@9+ z=6zTvd`FC=Y34b2rue~?prNu_f+$-VsWe30&_5^?G$(7(bE##-H~KZ7&3g-y&`@Pk zjn($m9nm69h<36zP;*z+THGhp#D1nJ_nV2J-;)a{g8D_ozzyIDT8Y-8L}h|ZNiC&n z(ooM6*A{07N48D0hMG&uzLnN4IaO>eT$dk{^&zWM!Mu{@#fE}sMSIHLd;Z40xVmSL zlt@linN?c42}~euf<`Tiq3j_toE@sFuRg(?AbJxF^@18jE`mDcx159~5k=sE5~ut^ zH^F3BM${vZlD+5;>^eS4aI3Cr_Gwbp^)T=P5GMU)WgcCQK!paaC1X^;SX6_2<=^$C{d|7_KrC$@F1+ zvUjQHuoGAaUlLV`8K5zGrqo7*!Bp52mchB?Pr5SqnTKMss8cz_s;UdB4yxVaZ{dLO zSQsYW$9`lvKZ>i$O<*6=dNKhFL_3tn<%D{ zL$391m#2sF25cmLk>{y(Oheu*j#58TH_^<}-q*d;IkbBM3cnUha6@mHa54;SY0Wb^`mD*+kc*-k0xx1Vze3`MYPNJJjWN9I*%3PFMz;1=B0z z>e7KFl?+U=q409S$NbOvHw#`BYKuP`Y^Cc=!>u{?JI-i#n6zEF0G46DahqPiUgB?v zcGVm8L5*AcLFc2tfpOe*t+#ff##=o{e8V5dURlFjq^^_qh#=xE+zk7{zu;}?Ps}53 zV()T`454;lo$EobrCszC<}~w;F)}sTK(?6K$3!y+=`5-S6-=7pD{vVtRea=|o}O;r zmF{?GUtw!uWi1|4S(#AA7`v6OEBRswGmI!^io=VOiVqv4l0C*{rcag@_WzuR+{>kz z%4RTuFq0eUYfNqKG~Zktu4O>uzxfqhTh^P&piHDd zwj(~kIj|X&KnUy(=fQpOJ=75Gh!w(M-At9(e>>)G$V>B@EnI(s_S*?-w;+YVa&tv4(&7L)mcd9pde9A_#pH8sbY z7g&~BpV`!o$IhW{*)v_vQKo|v@DmYFzN0qKqnTc;ihIK?=DP~XLN{@jxLNEiCJTdv zP5f4FJA0J5M&F{$WHa(0;Y-|yt6^Oz0|}&q&)@@i37&v^;01UNet=kz0i1w_k+30N zmmaV$Yy)dSe^>yHfzcomq@XF~XTm7sl~CooJWckJ4blsYh?YrPr6bZxX`{4F+96Go zMoJ^3=C}n*gkN;m8pRZtX;Q9Q!X z1b?rCTNP9bwLrbmWV8(JM*GoT{5pcpq6_FQdWU{hWHd$LUOR!lpetwt8h~oR9}vKa z((qkg;_LRJedruIfIZ=U{JE>>G5+Ku6kBncQ##74$Zjk@@t?%j+ZId$3&2i1hezN) zJe&LA4z}mZU^|!xMu48+Z%`G8pcLQtH~NG7|BC*@eceXaD{^sfvTloaYlj4AR5#Ijqs~FXb5V9Iu%)dEkPGB3`_)5!9uVctOwh`RW14OynSF-%mS}e~ftkb>~xwZda zO%~sZS{>#4bQMGaghyn;awtNsifmWs|F7cA|1uLT_}cPH8rF*b%g+!KKnT{9^0}3- zRe2V2wTisSnxHOjhm1xBMm@1@f!0&~MF)$UCSh$LcBHs8XHEz0!dK~}D zeJroH;y`8iRepazyc%jOr?86b$nuQg5Ue#}SU;n&tOM~{*T#2lP>~^93+roRtiMh0 zIBMc?h2Z90k*iz2b2$&M{~z35px4+Mc41AtgtlUhJdEXe106*t@arMAmb>UY{`*O6 zjVI83{P$~UCwh*rh{x#qBbL9hA~*In?ni?oYa+M_0+m>21HO^i6glKCjttje>HvR= zzNj>GmAYQbwV?^5!SBc}Cn?{tKg&e@!5`!Sr_c;+`}xWt6bm}QPxy}Sl$Hu02T(hR zqhPM`MY)ao!JR}3mVFbHEtjEG=tYLYyK-|yQ9hw4coY0qV&z-PJa85+fcsE}(i=>J zTj6@(k3wM*>;Mnp_d#GhXiPfLJTM8b^EKp!`l9710H%XPSc>e*H|+nSK`dMfZYYD4 zqaYb2KpmW_Y(vMCgJ?CFMcBYzjPYlnlaPfEz;`rJnI&I@BLSf-2m4WpG62L&gA@rI zP$1?p&pnddpR9(;PhR{YtwcJIqbvh%{<7K-b4!Q01jgYNf6hGXfPhNM=_ub{sKopOSD!#h3dd($`-|?ge$92Q>a4&l*SlW zrJ|8&DfY#Qr~!OI-U2_BD_Ad+h^8ckwkaR6jeP<#*otl`LzJFqbH#4^u}V7b^i6S~YQUz`q^RDOdyusg=N%YX^h1I4IJ(W7JNEViu);JMOJ`G~#kc610| zTLnS*9j{m$>`C&K_MihOR#syFum*Jm!+{YUSNs)!96?jjJoHrw!+J3gL}I*m?)y_}>R>hXLF{n=#fI4-()9;8C8+JCuo-$*%(~kWP83biqER zGfKyj%Ej0r6Lm&sm7Pkd5(18*(@GO%rBZ(CMEQxEw@~>Gn%k%WD31r}_@}*iR+r#q zjMI*Q7|dI8F^)ctBTgy^hCXlt$OA*LypI!q6N~Vu9}$S`OD1E@iNSx5g{R>u@Ku?l zbOm3*HH@NU@GraqzM#fXhMnOpJf_Jg0LS-1SRI^Yu9Sk~B%WBR5gfYIa zNBd!PQwz93Bzc(}LUtg(k<+PTSfiJ>DYNdIB_veVdY z%v$<1okxG5|D_wy7pafrP~sv+*3)4i(YrijPFf_nWL~K%ZE#n2t#Ot){y3r?!)v2_z>Whj|UsBuDiR!KDi<r)Rq{`)F?}3I2b2^U`l7nMTB~lU?yVWC{jTk*Yoj}%yRO@$`=I-xd!yT{8;gH)T{~Nw zt|fIJw5--gldftkp5$}bcXVg67x*RL@sv0l*=tzmn1jmBmDDuE6?HEhS5TC%%|DrY zID1Lf>8wWC&9c3-Vlr%LOVie5HY&Phf1sx zm(N9WGniHM4knhp%w{kWL$FQRgPcmNr@9~x6-TQhv`BMU!|5J*MR@LhgyR6^s z)!xgfTcx?FI<1XN@HYe{->>de&Glq)GUQiC#T_~7m#9yw)~RlYr-d+~g&+zE+UwJ6zGuK)c3TYBrd^ zmz5aS7JkW(%X^!1EITNxO8WccghWr$tJFW)PmBAS{LCFJq>G2snGM25jZND^JyvY0 z>Z)2Nv=!>8{uM3kBWf~rirPh;p{!I8Rf=uC8@Pny!yEXAoKM%KzfsZ5LOxaXQFBAv zTNkZQ)Nj>!3_%BV`@cDNF3Mv2(7n&b&mFZW-r zLML=ivyZmrSx%XD8aI{r7jG|Uo%cSwY37vlM`=IOzGOVhZC%`~v{l(+>k#)TMN2ec zHt^MijhK->5I*pmc&*q)^`E#$Xeiv}*K<$UH7w13rZ-WmNRDU?AoexyaI78yeF%aq zBlYxP<{F#GRS^!0vs5vv`T7F7d(qKinO51_S5?WF#>Q zHii2^J0vJE@@i?P=a-vs7df{&6x$%{QS+>_8KqAQ_98=pn7=Sr%w_Us=KotTsc>OY zW5b$KXW1A_HCtEv7RN|eW6yumD&=2rn~Y_S@K?mosz>T{O_H{{&VX%()!x%|(#%kg zQoR;mimBozF+=#p|Hnmeuh`9Oe|9lzVP|7D?%|s8PxwBD z?{uFD-s`+>=tgRGsJ4lun8}B8)tPzJBFw8}iM2!wX4S9BS(J?$Mkmszm@({cHj^F4 z`m-e4kzI;sbevtwR%drIXXsAUQ$oNf?X7&>v)2{tsAJ!51(uzr$Ht{47mEuEGxHDU znzFiP7H3?@Y?ys8$CNuIzipAK^nj_GwWD2hPIjkD!_jWoifqZ?jx=ey6ub(gFqxSCY^t1HHYxcIl_yv>P^Q6H_SetK> zO{gNO7rmeUn~|Adb_o;C#4xj%AV3UE-g|sfeX99B^=ab$R&UV(-Ac_1)euoHkbEC5hCM}RlO*|$ z*iEb^P7y|;4+*GDY8rio_F;}Nsmy(52eX=)%dBKhGe4PJhG8MQm$^>wpqgT@RvXMz zHb{ruF6Tx^CHq-xjD1~gCcmallKyJMYK99!(uY@@A{EZxn1rZQu0Xz1s9kY= zL${KnrM=5qn73F9?eCnE++mVd;lY1!CTXP>F>|ayH^U}4| zUe!3%uTK)Yc2u(Y8+Z`HqLqELW=ghv$m`Pe8E0WRM%8wcs$kOBl(v^f~4= zyN~O{f9JaikA)}LL)8=B^JDlQoHy5nUBrB#L+EML4Kj;pMC^m1@HrTVd3*`_iJ9|F z^c3UbADH#asJsSyBh2E4g5}^mc#I=Y3Gje?@ByRZjTj;OgCdMm$D)oX2;V}>*xOaZgN zw2CKnOYs#uF|!_z$1)zXrpBNe(BM@nM9Js{W<_7Z(U@tCuu zqI}ElyU^D;hZx$k&1SU?LcSXEqX}?eZP-g6pM#ax zvGoU0peFuIt%`Lh-vL_<1Xb+W^{J>WTwZy$e7~$4{jWl8d0p54)&2z)m2#xc~B<#(c#U<$G<-cpeFOX7A8{`1KU8$_KnUH_)LQE@os1s{yrVe#uA@_M&s8Q)D=}l^^kznNK$z8NO35!O0n`>DOBz%50sa6)fJ9tCCjni6XqE%U4&yD3rmI( zec)he0o_FEEW0rdYwl~OB}j!aW$ueqAe&D`C~GB~dKUHB-b&aZj<#k) zmTe$al9n@#lmO)i+-RE3~B{GlP?;89c009B-IM7xG6+LX}$HN3DIV547K8#WIo|%0D*WcJf{( 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%0DBrTYYr~-&;Z)Vs&A8Oy5UY~c8ybEvgsKWR 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 Date: Wed, 19 Nov 2025 16:53:56 +0530 Subject: [PATCH 19/21] deleted the zip file. --- .../newzip/GCCHTestAppJava.zip | Bin 292028 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 Call_Automation_GCCH/newzip/GCCHTestAppJava.zip diff --git a/Call_Automation_GCCH/newzip/GCCHTestAppJava.zip b/Call_Automation_GCCH/newzip/GCCHTestAppJava.zip deleted file mode 100644 index 576e74348ac2c94c4390c7452081c47ae884bec0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 292028 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