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.Recording;
import io.openvidu.java.client.RecordingMode;
import io.openvidu.java.client.RecordingProperties;
import io.openvidu.java.client.SessionProperties;
import io.openvidu.java.client.VideoCodec;
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.utils.GeoLocation;
import io.openvidu.server.utils.JsonUtils;
import io.openvidu.server.utils.RecordingUtils;
import io.openvidu.server.utils.SDPMunging;
public class KurentoSessionManager extends SessionManager {
@ -448,8 +450,9 @@ public class KurentoSessionManager extends SessionManager {
// Start automatic recording for sessions configured with RecordingMode.ALWAYS
// that have not been been manually stopped
new Thread(() -> {
recordingManager.startRecording(kSession,
kSession.getSessionProperties().defaultRecordingProperties());
RecordingProperties props = RecordingUtils
.RECORDING_PROPERTIES_WITH_MEDIA_NODE(kSession);
recordingManager.startRecording(kSession, props);
}).start();
} else if (recordingManager.sessionIsBeingRecorded(kSession.getSessionId())) {
// 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.utils.CustomFileManager;
import io.openvidu.server.utils.DockerManager;
import io.openvidu.server.utils.RecordingUtils;
public class ComposedQuickStartRecordingService extends ComposedRecordingService {
@ -177,7 +178,8 @@ public class ComposedQuickStartRecordingService extends ComposedRecordingService
try {
log.info("Launching COMPOSED_QUICK_START recording container for session: {}",
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: {}",
recorderSession.getSessionId());
launched = true;

View File

@ -1,6 +1,8 @@
package io.openvidu.server.utils;
import io.openvidu.java.client.Recording.OutputMode;
import io.openvidu.java.client.RecordingProperties;
import io.openvidu.server.core.Session;
public final class RecordingUtils {
@ -8,4 +10,13 @@ public final class RecordingUtils {
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;
}
}