private boolean processData()

in source/aws-connect-vm-serverless/src/main/java/com/amazonaws/kvstream/KVSProcessRecordingLambda.java [59:106]


    private boolean processData(String data) {
        JSONObject json = new JSONObject(data);
        ContactTraceRecord traceRecord = new ContactTraceRecord(json);
        List<KVStreamRecordingData> recordings = traceRecord.getRecordings();

        if (recordings.size() == 0) {
            return false;
        }

        KVStreamRecordingData recording = recordings.get(0);
        // Begin processing audio stream
        TranscribeService transcribeService = new TranscribeService(TRANSCRIBE_REGION);
        AmazonDynamoDBClientBuilder builder = AmazonDynamoDBClientBuilder.standard();
        ContactVoicemailRepo contactVoicemailRepo = new ContactVoicemailRepo(
                traceRecord.getContactId(),
                traceRecord.getCustomerEndpoint().getAddress(),
                new DynamoDB(builder.build()),
                logRecordsFlag
        );

        AudioStreamService streamingService = new AudioStreamService(transcribeService, contactVoicemailRepo);
        try {
            streamingService.processAudioStream(
                    recording.getLocation(),
                    recording.getFragmentStartNumber(),
                    traceRecord.getAttributes().getAgentId(),
                    traceRecord.getAttributes().getAgentName(),
                    traceRecord.getContactId(),
                    traceRecord.getAttributes().isTranscribeVoicemail(),
                    traceRecord.getAttributes().isEncryptVoicemail(),
                    traceRecord.getAttributes().getLanguageCode(),
                    traceRecord.getAttributes().getSaveCallRecording()
            );
            MetricsUtil.sendMetrics("ProcessVoicemail", "Success", "", 
                traceRecord.getAttributes().isTranscribeVoicemail(),
                traceRecord.getAttributes().isEncryptVoicemail(),
                traceRecord.getAttributes().getLanguageCode().orElse(""));
            return true;
        } catch (Exception e) {
            MetricsUtil.sendMetrics("ProcessVoicemail", "Failure", e.getMessage(),
                traceRecord.getAttributes().isTranscribeVoicemail(),
                traceRecord.getAttributes().isEncryptVoicemail(),
                traceRecord.getAttributes().getLanguageCode().orElse(""));
            logger.error("KVS to Transcribe Streaming failed with: ", e);
            return false;
        }

    }