mirror of https://github.com/OpenVidu/openvidu.git
openvidu-server: defaultOutputModeString param managed in REST API
parent
c247de00bc
commit
9168de7b33
|
@ -41,6 +41,7 @@ import com.google.gson.JsonObject;
|
|||
import io.openvidu.client.OpenViduException;
|
||||
import io.openvidu.client.OpenViduException.Code;
|
||||
import io.openvidu.client.internal.ProtocolElements;
|
||||
import io.openvidu.java.client.Recording;
|
||||
import io.openvidu.java.client.RecordingLayout;
|
||||
import io.openvidu.java.client.SessionProperties;
|
||||
import io.openvidu.server.cdr.CallDetailRecord;
|
||||
|
@ -387,9 +388,12 @@ public class KurentoSession implements Session {
|
|||
json.addProperty("createdAt", this.startTime);
|
||||
json.addProperty("mediaMode", this.sessionProperties.mediaMode().name());
|
||||
json.addProperty("recordingMode", this.sessionProperties.recordingMode().name());
|
||||
json.addProperty("defaultRecordingLayout", this.sessionProperties.defaultRecordingLayout().name());
|
||||
if (RecordingLayout.CUSTOM.equals(this.sessionProperties.defaultRecordingLayout())) {
|
||||
json.addProperty("defaultCustomLayout", this.sessionProperties.defaultCustomLayout());
|
||||
json.addProperty("defaultOutputMode", this.sessionProperties.defaultOutputMode().name());
|
||||
if (Recording.OutputMode.COMPOSED.equals(this.sessionProperties.defaultOutputMode())) {
|
||||
json.addProperty("defaultRecordingLayout", this.sessionProperties.defaultRecordingLayout().name());
|
||||
if (RecordingLayout.CUSTOM.equals(this.sessionProperties.defaultRecordingLayout())) {
|
||||
json.addProperty("defaultCustomLayout", this.sessionProperties.defaultCustomLayout());
|
||||
}
|
||||
}
|
||||
if (this.sessionProperties.customSessionId() != null) {
|
||||
json.addProperty("customSessionId", this.sessionProperties.customSessionId());
|
||||
|
|
|
@ -43,6 +43,7 @@ import com.google.gson.JsonParser;
|
|||
import io.openvidu.client.OpenViduException;
|
||||
import io.openvidu.client.internal.ProtocolElements;
|
||||
import io.openvidu.java.client.MediaMode;
|
||||
import io.openvidu.java.client.Recording.OutputMode;
|
||||
import io.openvidu.java.client.RecordingLayout;
|
||||
import io.openvidu.java.client.RecordingMode;
|
||||
import io.openvidu.java.client.RecordingProperties;
|
||||
|
@ -87,6 +88,7 @@ public class SessionRestController {
|
|||
if (params != null) {
|
||||
String mediaModeString = (String) params.get("mediaMode");
|
||||
String recordingModeString = (String) params.get("recordingMode");
|
||||
String defaultOutputModeString = (String) params.get("defaultOutputMode");
|
||||
String defaultRecordingLayoutString = (String) params.get("defaultRecordingLayout");
|
||||
String defaultCustomLayout = (String) params.get("defaultCustomLayout");
|
||||
|
||||
|
@ -101,6 +103,12 @@ public class SessionRestController {
|
|||
} else {
|
||||
builder = builder.recordingMode(RecordingMode.MANUAL);
|
||||
}
|
||||
if (defaultOutputModeString != null) {
|
||||
OutputMode defaultOutputMode = OutputMode.valueOf(defaultOutputModeString);
|
||||
builder = builder.defaultOutputMode(defaultOutputMode);
|
||||
} else {
|
||||
builder.defaultOutputMode(OutputMode.COMPOSED);
|
||||
}
|
||||
if (defaultRecordingLayoutString != null) {
|
||||
RecordingLayout defaultRecordingLayout = RecordingLayout.valueOf(defaultRecordingLayoutString);
|
||||
builder = builder.defaultRecordingLayout(defaultRecordingLayout);
|
||||
|
@ -120,8 +128,9 @@ public class SessionRestController {
|
|||
|
||||
} catch (IllegalArgumentException e) {
|
||||
return this.generateErrorResponse("RecordingMode " + params.get("recordingMode") + " | "
|
||||
+ "Default RecordingLayout " + params.get("defaultRecordingLayout") + " | " + "MediaMode "
|
||||
+ params.get("mediaMode") + " are not defined", "/api/tokens", HttpStatus.BAD_REQUEST);
|
||||
+ "Default OutputMode " + params.get("defaultOutputMode") + " | " + "Default RecordingLayout "
|
||||
+ params.get("defaultRecordingLayout") + " | " + "MediaMode " + params.get("mediaMode")
|
||||
+ " are not defined", "/api/tokens", HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -360,7 +369,7 @@ public class SessionRestController {
|
|||
try {
|
||||
outputMode = io.openvidu.java.client.Recording.OutputMode.valueOf(outputModeString);
|
||||
} catch (Exception e) {
|
||||
outputMode = io.openvidu.java.client.Recording.OutputMode.COMPOSED;
|
||||
outputMode = session.getSessionProperties().defaultOutputMode();
|
||||
}
|
||||
RecordingProperties.Builder builder = new RecordingProperties.Builder().name(name).outputMode(outputMode)
|
||||
.hasAudio(hasAudio != null ? hasAudio : true).hasVideo(hasVideo != null ? hasVideo : true);
|
||||
|
@ -443,7 +452,7 @@ public class SessionRestController {
|
|||
Recording stoppedRecording = this.recordingManager.stopRecording(session, recording.getId(),
|
||||
"recordingStoppedByServer");
|
||||
|
||||
if (session != null) {
|
||||
if (session != null && OutputMode.COMPOSED.equals(recording.getOutputMode()) && recording.hasVideo()) {
|
||||
sessionManager.evictParticipant(
|
||||
session.getParticipantByPublicId(ProtocolElements.RECORDER_PARTICIPANT_PUBLICID), null, null,
|
||||
"EVICT_RECORDER");
|
||||
|
|
Loading…
Reference in New Issue