From cc934b5d71c3bb2994d2b47e0381d9c78a82aeb7 Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Tue, 25 Jun 2019 11:02:09 +0200 Subject: [PATCH] openvidu-server: decouple recording stopped ws notification and CD/webhook message --- .../java/io/openvidu/server/core/SessionEventsHandler.java | 2 -- .../server/recording/service/ComposedRecordingService.java | 6 +++++- .../recording/service/SingleStreamRecordingService.java | 1 + 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/openvidu-server/src/main/java/io/openvidu/server/core/SessionEventsHandler.java b/openvidu-server/src/main/java/io/openvidu/server/core/SessionEventsHandler.java index e112a475..c200e47e 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/core/SessionEventsHandler.java +++ b/openvidu-server/src/main/java/io/openvidu/server/core/SessionEventsHandler.java @@ -439,8 +439,6 @@ public class SessionEventsHandler { public void sendRecordingStoppedNotification(Session session, Recording recording, EndReason reason) { - CDR.recordRecordingStopped(session.getSessionId(), recording, reason); - // Be sure to clean this map (this should return null) this.recordingsStarted.remove(session.getSessionId()); diff --git a/openvidu-server/src/main/java/io/openvidu/server/recording/service/ComposedRecordingService.java b/openvidu-server/src/main/java/io/openvidu/server/recording/service/ComposedRecordingService.java index 21d2c6b1..44ff4edb 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/recording/service/ComposedRecordingService.java +++ b/openvidu-server/src/main/java/io/openvidu/server/recording/service/ComposedRecordingService.java @@ -328,6 +328,9 @@ public class ComposedRecordingService extends RecordingService { throw new OpenViduException(Code.RECORDING_REPORT_ERROR_CODE, "There was an error generating the metadata report file for the recording"); } + + this.cdr.recordRecordingStopped(recording.getSessionId(), recording, reason); + if (session != null && reason != null) { this.recordingManager.sessionHandler.sendRecordingStoppedNotification(session, recording, reason); } @@ -380,8 +383,9 @@ public class ComposedRecordingService extends RecordingService { long finalSize = videoFile.length(); double finalDuration = (double) compositeWrapper.getDuration() / 1000; this.updateFilePermissions(filesPath); - this.sealRecordingMetadataFileAsStopped(recording, finalSize, finalDuration, + finalRecordingArray[0] = this.sealRecordingMetadataFileAsStopped(recording, finalSize, finalDuration, filesPath + RecordingManager.RECORDING_ENTITY_FILE + recording.getId()); + cdr.recordRecordingStopped(finalRecordingArray[0].getSessionId(), finalRecordingArray[0], reason); }); } catch (IOException e) { log.error("Error while downloading recording {}: {}", recording.getName(), e.getMessage()); diff --git a/openvidu-server/src/main/java/io/openvidu/server/recording/service/SingleStreamRecordingService.java b/openvidu-server/src/main/java/io/openvidu/server/recording/service/SingleStreamRecordingService.java index 31ee8dca..685b4cbd 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/recording/service/SingleStreamRecordingService.java +++ b/openvidu-server/src/main/java/io/openvidu/server/recording/service/SingleStreamRecordingService.java @@ -171,6 +171,7 @@ public class SingleStreamRecordingService extends RecordingService { } } finalRecordingArray[0] = this.sealMetadataFiles(recording); + cdr.recordRecordingStopped(finalRecordingArray[0].getSessionId(), finalRecordingArray[0], reason); }); } catch (IOException e) { log.error("Error while downloading recording {}", recording.getName());