diff --git a/openvidu-java-client/src/main/java/io/openvidu/java/client/SessionProperties.java b/openvidu-java-client/src/main/java/io/openvidu/java/client/SessionProperties.java index 8f436721..820c45ff 100644 --- a/openvidu-java-client/src/main/java/io/openvidu/java/client/SessionProperties.java +++ b/openvidu-java-client/src/main/java/io/openvidu/java/client/SessionProperties.java @@ -30,6 +30,7 @@ public class SessionProperties { private RecordingLayout defaultRecordingLayout; private String defaultCustomLayout; private String customSessionId; + private String mediaNode; /** * Builder for {@link io.openvidu.java.client.SessionProperties} @@ -42,6 +43,7 @@ public class SessionProperties { private RecordingLayout defaultRecordingLayout = RecordingLayout.BEST_FIT; private String defaultCustomLayout = ""; private String customSessionId = ""; + private String mediaNode; /** * Returns the {@link io.openvidu.java.client.SessionProperties} object properly @@ -49,7 +51,7 @@ public class SessionProperties { */ public SessionProperties build() { return new SessionProperties(this.mediaMode, this.recordingMode, this.defaultOutputMode, - this.defaultRecordingLayout, this.defaultCustomLayout, this.customSessionId); + this.defaultRecordingLayout, this.defaultCustomLayout, this.customSessionId, this.mediaNode); } /** @@ -117,9 +119,9 @@ public class SessionProperties { *
* * Custom layouts are only applicable to recordings with OutputMode - * {@link io.openvidu.java.client.Recording.OutputMode#COMPOSED} (or - * {@link io.openvidu.java.client.Recording.OutputMode#COMPOSED_QUICK_START}) and - * RecordingLayout {@link io.openvidu.java.client.RecordingLayout#CUSTOM} + * {@link io.openvidu.java.client.Recording.OutputMode#COMPOSED} (or + * {@link io.openvidu.java.client.Recording.OutputMode#COMPOSED_QUICK_START}) + * and RecordingLayout {@link io.openvidu.java.client.RecordingLayout#CUSTOM} */ public SessionProperties.Builder defaultCustomLayout(String path) { this.defaultCustomLayout = path; @@ -138,6 +140,19 @@ public class SessionProperties { return this; } + /** + * PRO Call this method to force the session to be hosted in the + * Media Node with identifier mediaNodeId + */ + public SessionProperties.Builder mediaNode(String mediaNodeId) { + this.mediaNode = mediaNodeId; + return this; + } + } protected SessionProperties() { @@ -147,16 +162,18 @@ public class SessionProperties { this.defaultRecordingLayout = RecordingLayout.BEST_FIT; this.defaultCustomLayout = ""; this.customSessionId = ""; + this.mediaNode = ""; } private SessionProperties(MediaMode mediaMode, RecordingMode recordingMode, OutputMode outputMode, - RecordingLayout layout, String defaultCustomLayout, String customSessionId) { + RecordingLayout layout, String defaultCustomLayout, String customSessionId, String mediaNode) { this.mediaMode = mediaMode; this.recordingMode = recordingMode; this.defaultOutputMode = outputMode; this.defaultRecordingLayout = layout; this.defaultCustomLayout = defaultCustomLayout; this.customSessionId = customSessionId; + this.mediaNode = mediaNode; } /** @@ -213,8 +230,8 @@ public class SessionProperties { * with any other value.
* Custom layouts are only applicable to recordings with OutputMode * {@link io.openvidu.java.client.Recording.OutputMode#COMPOSED} (or - * {@link io.openvidu.java.client.Recording.OutputMode#COMPOSED_QUICK_START}) and - * RecordingLayout {@link io.openvidu.java.client.RecordingLayout#CUSTOM} + * {@link io.openvidu.java.client.Recording.OutputMode#COMPOSED_QUICK_START}) + * and RecordingLayout {@link io.openvidu.java.client.RecordingLayout#CUSTOM} */ public String defaultCustomLayout() { return this.defaultCustomLayout; @@ -231,4 +248,17 @@ public class SessionProperties { return this.customSessionId; } + /** + * PRO The Media Node where to host the session. The default + * option if this property is not defined is the less loaded Media Node at the + * moment the first user joins the session. + */ + public String mediaNode() { + return this.mediaNode; + } + } \ No newline at end of file diff --git a/openvidu-node-client/src/SessionProperties.ts b/openvidu-node-client/src/SessionProperties.ts index f866e1b8..e08aa0d0 100644 --- a/openvidu-node-client/src/SessionProperties.ts +++ b/openvidu-node-client/src/SessionProperties.ts @@ -64,4 +64,13 @@ export interface SessionProperties { * If this parameter is undefined or an empty string, OpenVidu Server will generate a random sessionId for you. */ customSessionId?: string; + + /** + * **This feature is part of OpenVidu Pro tier** PRO + * + * The Media Node where to host the session. The default option if this property is not defined is the less loaded + * Media Node at the moment the first user joins the session. + */ + mediaNode?: string; + }