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