openvidu-server: RecordingProperties.mediaNode defined in ALWAYS recordings

pull/621/head
pabloFuente 2021-04-12 15:44:10 +02:00
parent 08f878b8a9
commit 2faeb965ca
3 changed files with 19 additions and 3 deletions

View File

@ -53,6 +53,7 @@ import io.openvidu.java.client.KurentoOptions;
import io.openvidu.java.client.MediaMode; import io.openvidu.java.client.MediaMode;
import io.openvidu.java.client.Recording; import io.openvidu.java.client.Recording;
import io.openvidu.java.client.RecordingMode; import io.openvidu.java.client.RecordingMode;
import io.openvidu.java.client.RecordingProperties;
import io.openvidu.java.client.SessionProperties; import io.openvidu.java.client.SessionProperties;
import io.openvidu.java.client.VideoCodec; import io.openvidu.java.client.VideoCodec;
import io.openvidu.server.cdr.CallDetailRecord; import io.openvidu.server.cdr.CallDetailRecord;
@ -75,6 +76,7 @@ import io.openvidu.server.kurento.kms.KmsManager;
import io.openvidu.server.rpc.RpcHandler; import io.openvidu.server.rpc.RpcHandler;
import io.openvidu.server.utils.GeoLocation; import io.openvidu.server.utils.GeoLocation;
import io.openvidu.server.utils.JsonUtils; import io.openvidu.server.utils.JsonUtils;
import io.openvidu.server.utils.RecordingUtils;
import io.openvidu.server.utils.SDPMunging; import io.openvidu.server.utils.SDPMunging;
public class KurentoSessionManager extends SessionManager { public class KurentoSessionManager extends SessionManager {
@ -448,8 +450,9 @@ public class KurentoSessionManager extends SessionManager {
// Start automatic recording for sessions configured with RecordingMode.ALWAYS // Start automatic recording for sessions configured with RecordingMode.ALWAYS
// that have not been been manually stopped // that have not been been manually stopped
new Thread(() -> { new Thread(() -> {
recordingManager.startRecording(kSession, RecordingProperties props = RecordingUtils
kSession.getSessionProperties().defaultRecordingProperties()); .RECORDING_PROPERTIES_WITH_MEDIA_NODE(kSession);
recordingManager.startRecording(kSession, props);
}).start(); }).start();
} else if (recordingManager.sessionIsBeingRecorded(kSession.getSessionId())) { } else if (recordingManager.sessionIsBeingRecorded(kSession.getSessionId())) {
// Abort automatic recording stop thread for any recorded session in which a // Abort automatic recording stop thread for any recorded session in which a

View File

@ -30,6 +30,7 @@ import io.openvidu.server.recording.RecordingDownloader;
import io.openvidu.server.recording.RecordingUploader; import io.openvidu.server.recording.RecordingUploader;
import io.openvidu.server.utils.CustomFileManager; import io.openvidu.server.utils.CustomFileManager;
import io.openvidu.server.utils.DockerManager; import io.openvidu.server.utils.DockerManager;
import io.openvidu.server.utils.RecordingUtils;
public class ComposedQuickStartRecordingService extends ComposedRecordingService { public class ComposedQuickStartRecordingService extends ComposedRecordingService {
@ -177,7 +178,8 @@ public class ComposedQuickStartRecordingService extends ComposedRecordingService
try { try {
log.info("Launching COMPOSED_QUICK_START recording container for session: {}", log.info("Launching COMPOSED_QUICK_START recording container for session: {}",
recorderSession.getSessionId()); recorderSession.getSessionId());
runContainer(recorderSession, recorderSession.getSessionProperties().defaultRecordingProperties()); RecordingProperties props = RecordingUtils.RECORDING_PROPERTIES_WITH_MEDIA_NODE(recorderSession);
runContainer(recorderSession, props);
log.info("COMPOSED_QUICK_START recording container launched for session: {}", log.info("COMPOSED_QUICK_START recording container launched for session: {}",
recorderSession.getSessionId()); recorderSession.getSessionId());
launched = true; launched = true;

View File

@ -1,6 +1,8 @@
package io.openvidu.server.utils; package io.openvidu.server.utils;
import io.openvidu.java.client.Recording.OutputMode; import io.openvidu.java.client.Recording.OutputMode;
import io.openvidu.java.client.RecordingProperties;
import io.openvidu.server.core.Session;
public final class RecordingUtils { public final class RecordingUtils {
@ -8,4 +10,13 @@ public final class RecordingUtils {
return (OutputMode.COMPOSED.equals(outputMode) || OutputMode.COMPOSED_QUICK_START.equals(outputMode)); return (OutputMode.COMPOSED.equals(outputMode) || OutputMode.COMPOSED_QUICK_START.equals(outputMode));
} }
public final static RecordingProperties RECORDING_PROPERTIES_WITH_MEDIA_NODE(Session session) {
RecordingProperties recordingProperties = session.getSessionProperties().defaultRecordingProperties();
if (recordingProperties.mediaNode() == null) {
recordingProperties = new RecordingProperties.Builder(recordingProperties)
.mediaNode(session.getMediaNodeId()).build();
}
return recordingProperties;
}
} }