diff --git a/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoSessionManager.java b/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoSessionManager.java index fd506704..fd90166f 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoSessionManager.java +++ b/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoSessionManager.java @@ -67,6 +67,7 @@ import io.openvidu.server.core.EndReason; import io.openvidu.server.core.FinalUser; import io.openvidu.server.core.IdentifierPrefixes; import io.openvidu.server.core.MediaOptions; +import io.openvidu.server.core.MediaServer; import io.openvidu.server.core.Participant; import io.openvidu.server.core.Session; import io.openvidu.server.core.SessionManager; @@ -113,9 +114,13 @@ public class KurentoSessionManager extends SessionManager { if (sessionNotActive == null && this.isInsecureParticipant(participant.getParticipantPrivateId())) { // Insecure user directly call joinRoom RPC method, without REST API use - sessionNotActive = new Session(sessionId, new SessionProperties.Builder() - .mediaMode(MediaMode.ROUTED).recordingMode(RecordingMode.ALWAYS).build(), openviduConfig, - recordingManager); + SessionProperties.Builder builder = new SessionProperties.Builder().mediaMode(MediaMode.ROUTED) + .recordingMode(RecordingMode.ALWAYS); + // forcedVideoCodec to NONE if mediasoup + if (MediaServer.mediasoup.equals(openviduConfig.getMediaServer())) { + builder.forcedVideoCodec(VideoCodec.NONE); + } + sessionNotActive = new Session(sessionId, builder.build(), openviduConfig, recordingManager); } try { diff --git a/openvidu-server/src/main/java/io/openvidu/server/rest/SessionRestController.java b/openvidu-server/src/main/java/io/openvidu/server/rest/SessionRestController.java index c39195b9..7499af49 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/rest/SessionRestController.java +++ b/openvidu-server/src/main/java/io/openvidu/server/rest/SessionRestController.java @@ -65,6 +65,7 @@ import io.openvidu.java.client.VideoCodec; import io.openvidu.server.config.OpenviduConfig; import io.openvidu.server.core.EndReason; import io.openvidu.server.core.IdentifierPrefixes; +import io.openvidu.server.core.MediaServer; import io.openvidu.server.core.Participant; import io.openvidu.server.core.Session; import io.openvidu.server.core.SessionManager; @@ -756,10 +757,15 @@ public class SessionRestController { } builder = builder.customSessionId(customSessionId); } - if (forcedVideoCodec != null) { - builder = builder.forcedVideoCodec(VideoCodec.valueOf(forcedVideoCodec)); + // forcedVideoCodec to NONE if mediasoup + if (MediaServer.mediasoup.equals(openviduConfig.getMediaServer())) { + builder = builder.forcedVideoCodec(VideoCodec.NONE); } else { - builder = builder.forcedVideoCodec(openviduConfig.getOpenviduForcedCodec()); + if (forcedVideoCodec != null) { + builder = builder.forcedVideoCodec(VideoCodec.valueOf(forcedVideoCodec)); + } else { + builder = builder.forcedVideoCodec(openviduConfig.getOpenviduForcedCodec()); + } } if (allowTranscoding != null) { builder = builder.allowTranscoding(allowTranscoding);