mirror of https://github.com/OpenVidu/openvidu.git
NEW SYNTAX FOR CONFIGURATION PROPERTIES
parent
b7a36700f9
commit
3dd048b318
|
@ -110,7 +110,7 @@ public class KurentoOptions {
|
|||
* value to this property will override the global configuration set in <a
|
||||
* href="https://docs.openvidu.io/en/stable/reference-docs/openvidu-server-params/#configuration-parameters-for-openvidu-server"
|
||||
* target="_blank">OpenVidu Server configuration</a> (parameter
|
||||
* <code>openvidu.streams.video.max-recv-bandwidth</code>) for every incoming
|
||||
* <code>OPENVIDU_STREAMS_VIDEO_MAX_RECV_BANDWIDTH</code>) for every incoming
|
||||
* stream of the user owning the token. <br>
|
||||
* <strong>WARNING</strong>: the lower value set to this property limits every
|
||||
* other bandwidth of the WebRTC pipeline this server-to-client stream belongs
|
||||
|
@ -127,7 +127,7 @@ public class KurentoOptions {
|
|||
* to this property will override the global configuration set in <a href=
|
||||
* "https://docs.openvidu.io/en/stable/reference-docs/openvidu-server-params/#configuration-parameters-for-openvidu-server"
|
||||
* target="_blank">OpenVidu Server configuration</a> (parameter
|
||||
* <code>openvidu.streams.video.min-recv-bandwidth</code>) for every incoming
|
||||
* <code>OPENVIDU_STREAMS_VIDEO_MIN_RECV_BANDWIDTH</code>) for every incoming
|
||||
* stream of the user owning the token.
|
||||
*/
|
||||
public Integer getVideoMinRecvBandwidth() {
|
||||
|
@ -140,7 +140,7 @@ public class KurentoOptions {
|
|||
* to this property will override the global configuration set in <a href=
|
||||
* "https://docs.openvidu.io/en/stable/reference-docs/openvidu-server-params/#configuration-parameters-for-openvidu-server"
|
||||
* target="_blank">OpenVidu Server configuration</a> (parameter
|
||||
* <code>openvidu.streams.video.max-send-bandwidth</code>) for every outgoing
|
||||
* <code>OPENVIDU_STREAMS_VIDEO_MAX_SEND_BANDWIDTH</code>) for every outgoing
|
||||
* stream of the user owning the token. <br>
|
||||
* <strong>WARNING</strong>: this value limits every other bandwidth of the
|
||||
* WebRTC pipeline this client-to-server stream belongs to. This includes every
|
||||
|
@ -156,7 +156,7 @@ public class KurentoOptions {
|
|||
* this property will override the global configuration set in <a href=
|
||||
* "https://docs.openvidu.io/en/stable/reference-docs/openvidu-server-params/#configuration-parameters-for-openvidu-server"
|
||||
* target="_blank">OpenVidu Server configuration</a> (parameter
|
||||
* <code>openvidu.streams.video.min-send-bandwidth</code>) for every outgoing
|
||||
* <code>OPENVIDU_STREAMS_VIDEO_MIN_SEND_BANDWIDTH</code>) for every outgoing
|
||||
* stream of the user owning the token.
|
||||
*/
|
||||
public Integer getVideoMinSendBandwidth() {
|
||||
|
|
|
@ -185,7 +185,7 @@ public class OpenVidu {
|
|||
* or it is already being recorded</li>
|
||||
* <li><code>501</code>: OpenVidu Server
|
||||
* recording module is disabled
|
||||
* (<i>openvidu.recording</i> property set
|
||||
* (<i>OPENVIDU_RECORDING</i> property set
|
||||
* to <i>false</i>)</li>
|
||||
* </ul>
|
||||
*/
|
||||
|
@ -282,7 +282,7 @@ public class OpenVidu {
|
|||
* or it is already being recorded</li>
|
||||
* <li><code>501</code>: OpenVidu Server
|
||||
* recording module is disabled
|
||||
* (<i>openvidu.recording</i> property set
|
||||
* (<i>OPENVIDU_RECORDING</i> property set
|
||||
* to <i>false</i>)</li>
|
||||
* </ul>
|
||||
*/
|
||||
|
@ -323,7 +323,7 @@ public class OpenVidu {
|
|||
* or it is already being recorded</li>
|
||||
* <li><code>501</code>: OpenVidu Server
|
||||
* recording module is disabled
|
||||
* (<i>openvidu.recording</i> property set
|
||||
* (<i>OPENVIDU_RECORDING</i> property set
|
||||
* to <i>false</i>)</li>
|
||||
* </ul>
|
||||
*/
|
||||
|
|
|
@ -197,7 +197,7 @@ public class Recording {
|
|||
* <code>null</code> until recording reaches "ready" or "failed" status. If
|
||||
* <a href="https://docs.openvidu.io/en/stable/reference-docs/openvidu-server-params/" target=
|
||||
* "_blank">OpenVidu Server configuration</a> property
|
||||
* <code>openvidu.recording.public-access</code> is false, this path will be
|
||||
* <code>OPENVIDU_RECORDING_PUBLIC_ACCESS</code> is false, this path will be
|
||||
* secured with OpenVidu credentials
|
||||
*/
|
||||
public String getUrl() {
|
||||
|
|
|
@ -130,7 +130,7 @@ export class OpenVidu {
|
|||
* - `422`: when passing [[RecordingProperties]], `resolution` parameter exceeds acceptable values (for both width and height, min 100px and max 1999px) or trying
|
||||
* to start a recording with both `hasAudio` and `hasVideo` to false
|
||||
* - `409`: the session is not configured for using [[MediaMode.ROUTED]] or it is already being recorded
|
||||
* - `501`: OpenVidu Server recording module is disabled (`openvidu.recording` property set to `false`)
|
||||
* - `501`: OpenVidu Server recording module is disabled (`OPENVIDU_RECORDING` property set to `false`)
|
||||
*/
|
||||
public startRecording(sessionId: string, param2?: string | RecordingProperties): Promise<Recording> {
|
||||
return new Promise<Recording>((resolve, reject) => {
|
||||
|
|
|
@ -49,7 +49,7 @@ export class Recording {
|
|||
duration = 0;
|
||||
|
||||
/**
|
||||
* URL of the recording. You can access the file from there. It is `null` until recording reaches "ready" or "failed" status. If OpenVidu Server configuration property `openvidu.recording.public-access` is false, this path will be secured with OpenVidu credentials
|
||||
* URL of the recording. You can access the file from there. It is `null` until recording reaches "ready" or "failed" status. If OpenVidu Server configuration property `OPENVIDU_RECORDING_PUBLIC_ACCESS` is false, this path will be secured with OpenVidu credentials
|
||||
*/
|
||||
url: string;
|
||||
|
||||
|
|
|
@ -42,18 +42,18 @@ export interface TokenOptions {
|
|||
* You can adjust:
|
||||
* - `videoMaxRecvBandwidth`: maximum number of Kbps that the client owning the token will be able to receive from Kurento Media Server. 0 means unconstrained. Giving a value to this property will override
|
||||
* the global configuration set in [OpenVidu Server configuration](/en/stable/reference-docs/openvidu-server-params/#configuration-parameters-for-openvidu-server)
|
||||
* (parameter `openvidu.streams.video.max-recv-bandwidth`) for every incoming stream of the user owning the token.
|
||||
* (parameter `OPENVIDU_STREAMS_VIDEO_MAX_RECV_BANDWIDTH`) for every incoming stream of the user owning the token.
|
||||
* _**WARNING**: the lower value set to this property limits every other bandwidth of the WebRTC pipeline this server-to-client stream belongs to. This includes the user publishing the stream and every other user subscribed to the stream_
|
||||
* - `videoMinRecvBandwidth`: minimum number of Kbps that the client owning the token will try to receive from Kurento Media Server. 0 means unconstrained. Giving a value to this property will override
|
||||
* the global configuration set in [OpenVidu Server configuration](/en/stable/reference-docs/openvidu-server-params/#configuration-parameters-for-openvidu-server)
|
||||
* (parameter `openvidu.streams.video.min-recv-bandwidth`) for every incoming stream of the user owning the token
|
||||
* (parameter `OPENVIDU_STREAMS_VIDEO_MIN_RECV_BANDWIDTH`) for every incoming stream of the user owning the token
|
||||
* - `videoMaxSendBandwidth`: maximum number of Kbps that the client owning the token will be able to send to Kurento Media Server. 0 means unconstrained. Giving a value to this property will override
|
||||
* the global configuration set in [OpenVidu Server configuration](/en/stable/reference-docs/openvidu-server-params/#configuration-parameters-for-openvidu-server)
|
||||
* (parameter `openvidu.streams.video.max-send-bandwidth`) for every outgoing stream of the user owning the token.
|
||||
* (parameter `OPENVIDU_STREAMS_VIDEO_MAX_SEND_BANDWIDTH`) for every outgoing stream of the user owning the token.
|
||||
* _**WARNING**: this value limits every other bandwidth of the WebRTC pipeline this client-to-server stream belongs to. This includes every other user subscribed to the stream_
|
||||
* - `videoMinSendBandwidth`: minimum number of Kbps that the client owning the token will try to send to Kurento Media Server. 0 means unconstrained. Giving a value to this property will override
|
||||
* the global configuration set in [OpenVidu Server configuration](/en/stable/reference-docs/openvidu-server-params/#configuration-parameters-for-openvidu-server)
|
||||
* (parameter `openvidu.streams.video.min-send-bandwidth`) for every outgoing stream of the user owning the token
|
||||
* (parameter `OPENVIDU_STREAMS_VIDEO_MIN_SEND_BANDWIDTH`) for every outgoing stream of the user owning the token
|
||||
* - `allowedFilters`: names of the filters the user owning the token will be able to apply. See [Voice and video filters](/en/stable/advanced-features/filters/)
|
||||
*/
|
||||
kurentoOptions?: {
|
||||
|
|
|
@ -26,25 +26,21 @@ CERTIFICATE_TYPE=selfsigned
|
|||
# If CERTIFICATE_TYPE=letsencrypt, you need to configure a valid email for notifications
|
||||
LETSENCRYPT_EMAIL=user@example.com
|
||||
|
||||
# Parameter "openvidu.recording.path"
|
||||
# Openvidu Folder Record used for save the openvidu recording videos. Change it
|
||||
# with the folder you want to use from your host.
|
||||
OPENVIDU_RECORDING_PATH=/opt/openvidu/recordings
|
||||
|
||||
# Parameter "openvidu.recording.custom-layout"
|
||||
# System path where OpenVidu Server should look for custom recording layouts
|
||||
OPENVIDU_RECORDING_CUSTOM_LAYOUT=/opt/openvidu/custom-layout
|
||||
|
||||
# Parameter "openvidu.recording.public-access"
|
||||
# if true any client can connect to
|
||||
# https://OPENVIDU_SERVER_IP:OPENVIDU_PORT/recordings/any_session_file.mp4
|
||||
# and access any recorded video file. If false this path will be secured with
|
||||
# openvidu.secret param just as OpenVidu Server dashboard at
|
||||
# OPENVIDU_SECRET param just as OpenVidu Server dashboard at
|
||||
# https://OPENVIDU_SERVER_IP:OPENVIDU_PORT
|
||||
# Values: true | false
|
||||
OPENVIDU_RECORDING_PUBLIC_ACCESS=false
|
||||
|
||||
# Parameter "openvidu.recording.notification"
|
||||
# Which users should receive the recording events in the client side
|
||||
# (recordingStarted, recordingStopped). Can be all (every user connected to
|
||||
# the session), publisher_moderator (users with role 'PUBLISHER' or
|
||||
|
@ -52,7 +48,6 @@ OPENVIDU_RECORDING_PUBLIC_ACCESS=false
|
|||
# (no user will receive these events)
|
||||
OPENVIDU_RECORDING_NOTIFICATION=publisher_moderator
|
||||
|
||||
# Parameter "openvidu.recording.autostop-timeout"
|
||||
# Timeout in seconds for recordings to automatically stop (and the session involved to be closed)
|
||||
# when conditions are met: a session recording is started but no user is publishing to it or a session
|
||||
# is being recorded and last user disconnects. If a user publishes within the timeout in either case,
|
||||
|
@ -60,66 +55,54 @@ OPENVIDU_RECORDING_NOTIFICATION=publisher_moderator
|
|||
# 0 means no timeout
|
||||
OPENVIDU_RECORDING_AUTOSTOP_TIMEOUT=120
|
||||
|
||||
# Parameter "openvidu.streams.video.max-recv-bandwidth"
|
||||
# Maximum video bandwidth sent from clients to OpenVidu Server, in kbps.
|
||||
# 0 means unconstrained
|
||||
OPENVIDU_STREAMS_VIDEO_MAX_RECV_BANDWIDTH=1000
|
||||
|
||||
# Parameter "openvidu.streams.video.min-recv-bandwidth"
|
||||
# Minimum video bandwidth sent from clients to OpenVidu Server, in kbps.
|
||||
# 0 means unconstrained
|
||||
OPENVIDU_STREAMS_VIDEO_MIN_RECV_BANDWIDTH=300
|
||||
|
||||
# Parameter "openvidu.streams.video.max-send-bandwidth"
|
||||
# Maximum video bandwidth sent from OpenVidu Server to clients, in kbps.
|
||||
# 0 means unconstrained
|
||||
OPENVIDU_STREAMS_VIDEO_MAX_SEND_BANDWIDTH=1000
|
||||
|
||||
# Parameter "openvidu.streams.video.min-send-bandwidth"
|
||||
# Minimum video bandwidth sent from OpenVidu Server to clients, in kbps.
|
||||
# 0 means unconstrained
|
||||
OPENVIDU_STREAMS_VIDEO_MIN_SEND_BANDWIDTH=300
|
||||
|
||||
# Parameter "openvidu.webhook"
|
||||
# true to enable OpenVidu Server Webhook service. false' otherwise
|
||||
# Values: true | false
|
||||
OPENVIDU_WEBHOOK=false
|
||||
|
||||
# Parameter "openvidu.webhook.endpoint"
|
||||
# HTTP endpoint where OpenVidu Server will send Webhook HTTP POST messages
|
||||
# Must be a valid URL: http(s)://ENDPOINT
|
||||
#OPENVIDU_WEBHOOK_ENDPOINT=
|
||||
|
||||
# Parameter "openvidu.webhook.headers"
|
||||
# List of headers that OpenVidu Server Webhook service will attach to HTTP POST messages
|
||||
#OPENVIDU_WEBHOOK_HEADERS=
|
||||
|
||||
# Parameter "openvidu.webhook.events"
|
||||
# List of events that will be sent by OpenVidu Server Webhook service
|
||||
# Leave blank if all events.
|
||||
OPENVIDU_WEBHOOK_EVENTS=[sessionCreated,sessionDestroyed,participantJoined,participantLeft,webrtcConnectionCreated,webrtcConnectionDestroyed,recordingStatusChanged,filterEventDispatched,mediaNodeStatusChanged]
|
||||
|
||||
# Parameter "openvidu.sessions.garbage.interval"
|
||||
# How often the garbage collector of non active sessions runs.
|
||||
# This helps cleaning up sessions that have been initialized through
|
||||
# REST API (and maybe tokens have been created for them) but have had no users connected.
|
||||
# Default to 900s (15 mins). 0 to disable non active sessions garbage collector
|
||||
OPENVIDU_SESSIONS_GARBAGE_INTERVAL=900
|
||||
|
||||
# Parameter "openvidu.sessions.garbage.threshold"
|
||||
# Minimum time in seconds that a non active session must have been in existence
|
||||
# for the garbage collector of non active sessions to remove it. Default to 3600s (1 hour).
|
||||
# If non active sessions garbage collector is disabled
|
||||
# (property 'openvidu.sessions.garbage.interval' to 0) this property is ignored
|
||||
# (property 'OPENVIDU_SESSIONS_GARBAGE_INTERVAL' to 0) this property is ignored
|
||||
OPENVIDU_SESSIONS_GARBAGE_THRESHOLD=3600
|
||||
|
||||
# Parameter "openvidu.cdr"
|
||||
# Call Detail Record enabled
|
||||
# Whether to enable Call Detail Record or not
|
||||
# Values: true | false
|
||||
OPENVIDU_CDR=false
|
||||
|
||||
# Parameter "openvidu.cdr.path"
|
||||
# Path where the cdr log file is hosted
|
||||
OPENVIDU_CDR_PATH=/opt/openvidu/log
|
||||
|
||||
|
|
|
@ -98,7 +98,7 @@ public class OpenViduServer implements JsonRpcConfigurer {
|
|||
@DependsOn("openviduConfig")
|
||||
public KmsManager kmsManager(OpenviduConfig openviduConfig) {
|
||||
if (openviduConfig.getKmsUris().isEmpty()) {
|
||||
throw new IllegalArgumentException("'kms.uris' should contain at least one KMS url");
|
||||
throw new IllegalArgumentException("'KMS_URIS' should contain at least one KMS url");
|
||||
}
|
||||
String firstKmsWsUri = openviduConfig.getKmsUris().get(0);
|
||||
log.info("OpenVidu Server using one KMS: {}", firstKmsWsUri);
|
||||
|
@ -114,13 +114,13 @@ public class OpenViduServer implements JsonRpcConfigurer {
|
|||
log.info("OpenVidu CDR service is enabled");
|
||||
loggers.add(new CDRLoggerFile());
|
||||
} else {
|
||||
log.info("OpenVidu CDR service is disabled (may be enable with 'openvidu.cdr=true')");
|
||||
log.info("OpenVidu CDR service is disabled (may be enable with 'OPENVIDU_CDR=true')");
|
||||
}
|
||||
if (openviduConfig.isWebhookEnabled()) {
|
||||
log.info("OpenVidu Webhook service is enabled");
|
||||
loggers.add(new CDRLoggerWebhook(openviduConfig));
|
||||
} else {
|
||||
log.info("OpenVidu Webhook service is disabled (may be enabled with 'openvidu.webhook=true')");
|
||||
log.info("OpenVidu Webhook service is disabled (may be enabled with 'OPENVIDU_WEBHOOK=true')");
|
||||
}
|
||||
return new CallDetailRecord(loggers);
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@ import io.openvidu.server.webhook.CDRLoggerWebhook;
|
|||
|
||||
/**
|
||||
* CDR logger to register all information of a Session.
|
||||
* Enabled by property 'openvidu.cdr=true'
|
||||
* Enabled by property 'OPENVIDU_CDR=true'
|
||||
*
|
||||
* - 'sessionCreated': {sessionId, timestamp}
|
||||
* - 'sessionDestroyed': {sessionId, timestamp, startTime, duration, reason}
|
||||
|
|
|
@ -433,62 +433,62 @@ public class OpenviduConfig {
|
|||
}
|
||||
|
||||
protected List<String> getNonUserProperties() {
|
||||
return Arrays.asList("coturn.ip", "coturn.redis.ip", "kms.uris", "server.port", "coturn.redis.dbname",
|
||||
"coturn.redis.password", "coturn.redis.connect-timeout");
|
||||
return Arrays.asList("COTURN_IP", "COTURN_REDIS_IP", "KMS_URIS", "SERVER_PORT", "COTURN_REDIS_DBNAME",
|
||||
"COTURN_REDIS_PASSWORD", "COTURN_REDIS_CONNECT_TIMEOUT");
|
||||
}
|
||||
|
||||
// Properties
|
||||
|
||||
protected void checkConfigurationProperties() {
|
||||
|
||||
serverPort = getValue("server.port");
|
||||
serverPort = getValue("SERVER_PORT");
|
||||
|
||||
coturnRedisDbname = getValue("coturn.redis.dbname");
|
||||
coturnRedisDbname = getValue("COTURN_REDIS_DBNAME");
|
||||
|
||||
coturnRedisPassword = getValue("coturn.redis.password");
|
||||
coturnRedisPassword = getValue("COTURN_REDIS_PASSWORD");
|
||||
|
||||
coturnRedisConnectTimeout = getValue("coturn.redis.connect-timeout");
|
||||
coturnRedisConnectTimeout = getValue("COTURN_REDIS_CONNECT_TIMEOUT");
|
||||
|
||||
openviduSecret = asNonEmptyString("openvidu.secret");
|
||||
openviduSecret = asNonEmptyString("OPENVIDU_SECRET");
|
||||
|
||||
checkOpenviduPublicurl();
|
||||
|
||||
openviduCdr = asBoolean("openvidu.cdr");
|
||||
openviduCdr = asBoolean("OPENVIDU_CDR");
|
||||
|
||||
openviduCdrPath = asFileSystemPath("openvidu.cdr.path");
|
||||
openviduCdrPath = asFileSystemPath("OPENVIDU_CDR_PATH");
|
||||
|
||||
openviduRecording = asBoolean("openvidu.recording");
|
||||
openviduRecordingPublicAccess = asBoolean("openvidu.recording.public-access");
|
||||
openviduRecordingAutostopTimeout = asNonNegativeInteger("openvidu.recording.autostop-timeout");
|
||||
openviduRecordingPath = asFileSystemPath("openvidu.recording.path");
|
||||
openviduRecordingCustomLayout = asFileSystemPath("openvidu.recording.custom-layout");
|
||||
openviduRecordingVersion = asNonEmptyString("openvidu.recording.version");
|
||||
openviduRecordingComposedUrl = asOptionalURL("openvidu.recording.composed-url");
|
||||
openviduRecording = asBoolean("OPENVIDU_RECORDING");
|
||||
openviduRecordingPublicAccess = asBoolean("OPENVIDU_RECORDING_PUBLIC_ACCESS");
|
||||
openviduRecordingAutostopTimeout = asNonNegativeInteger("OPENVIDU_RECORDING_AUTOSTOP_TIMEOUT");
|
||||
openviduRecordingPath = asFileSystemPath("OPENVIDU_RECORDING_PATH");
|
||||
openviduRecordingCustomLayout = asFileSystemPath("OPENVIDU_RECORDING_CUSTOM_LAYOUT");
|
||||
openviduRecordingVersion = asNonEmptyString("OPENVIDU_RECORDING_VERSION");
|
||||
openviduRecordingComposedUrl = asOptionalURL("OPENVIDU_RECORDING_COMPOSED_URL");
|
||||
checkOpenviduRecordingNotification();
|
||||
|
||||
openviduStreamsVideoMaxRecvBandwidth = asNonNegativeInteger("openvidu.streams.video.max-recv-bandwidth");
|
||||
openviduStreamsVideoMinRecvBandwidth = asNonNegativeInteger("openvidu.streams.video.min-recv-bandwidth");
|
||||
openviduStreamsVideoMaxSendBandwidth = asNonNegativeInteger("openvidu.streams.video.max-send-bandwidth");
|
||||
openviduStreamsVideoMinSendBandwidth = asNonNegativeInteger("openvidu.streams.video.min-send-bandwidth");
|
||||
openviduStreamsVideoMaxRecvBandwidth = asNonNegativeInteger("OPENVIDU_STREAMS_VIDEO_MAX_RECV_BANDWIDTH");
|
||||
openviduStreamsVideoMinRecvBandwidth = asNonNegativeInteger("OPENVIDU_STREAMS_VIDEO_MIN_RECV_BANDWIDTH");
|
||||
openviduStreamsVideoMaxSendBandwidth = asNonNegativeInteger("OPENVIDU_STREAMS_VIDEO_MAX_SEND_BANDWIDTH");
|
||||
openviduStreamsVideoMinSendBandwidth = asNonNegativeInteger("OPENVIDU_STREAMS_VIDEO_MIN_SEND_BANDWIDTH");
|
||||
|
||||
openviduSessionsGarbageInterval = asNonNegativeInteger("openvidu.sessions.garbage.interval");
|
||||
openviduSessionsGarbageThreshold = asNonNegativeInteger("openvidu.sessions.garbage.threshold");
|
||||
openviduSessionsGarbageInterval = asNonNegativeInteger("OPENVIDU_SESSIONS_GARBAGE_INTERVAL");
|
||||
openviduSessionsGarbageThreshold = asNonNegativeInteger("OPENVIDU_SESSIONS_GARBAGE_THRESHOLD");
|
||||
|
||||
kmsUrisList = checkKmsUris();
|
||||
|
||||
checkCoturnIp();
|
||||
|
||||
coturnRedisIp = asOptionalInetAddress("coturn.redis.ip");
|
||||
coturnRedisIp = asOptionalInetAddress("COTURN_REDIS_IP");
|
||||
|
||||
checkWebhook();
|
||||
|
||||
checkCertificateType();
|
||||
|
||||
dotenvPath = getValue("dotenv.path");
|
||||
dotenvPath = getValue("DOTENV_PATH");
|
||||
}
|
||||
|
||||
private void checkCertificateType() {
|
||||
String property = "certificate.type";
|
||||
String property = "CERTIFICATE_TYPE";
|
||||
certificateType = asNonEmptyString(property);
|
||||
|
||||
if (certificateType != null && !certificateType.isEmpty()) {
|
||||
|
@ -500,7 +500,7 @@ public class OpenviduConfig {
|
|||
}
|
||||
|
||||
private void checkCoturnIp() {
|
||||
String property = "coturn.ip";
|
||||
String property = "COTURN_IP";
|
||||
coturnIp = asOptionalIPv4OrIPv6(property);
|
||||
|
||||
if (coturnIp == null || this.coturnIp.isEmpty()) {
|
||||
|
@ -513,36 +513,35 @@ public class OpenviduConfig {
|
|||
}
|
||||
|
||||
private void checkWebhook() {
|
||||
openviduWebhookEnabled = asBoolean("openvidu.webhook");
|
||||
openviduWebhookEndpoint = asOptionalURL("openvidu.webhook.endpoint");
|
||||
openviduWebhookEnabled = asBoolean("OPENVIDU_WEBHOOK");
|
||||
openviduWebhookEndpoint = asOptionalURL("OPENVIDU_WEBHOOK_ENDPOINT");
|
||||
webhookHeadersList = checkWebhookHeaders();
|
||||
webhookEventsList = getWebhookEvents();
|
||||
|
||||
if (openviduWebhookEnabled && (openviduWebhookEndpoint == null || openviduWebhookEndpoint.isEmpty())) {
|
||||
addError("openvidu.webhook.endpoint",
|
||||
"With " + getPropertyName("openvidu.webhook") + "=true, this property cannot be empty");
|
||||
addError("OPENVIDU_WEBHOOK_ENDPOINT",
|
||||
"With " + getPropertyName("OPENVIDU_WEBHOOK") + "=true, this property cannot be empty");
|
||||
}
|
||||
}
|
||||
|
||||
private void checkOpenviduRecordingNotification() {
|
||||
|
||||
String recordingNotif = asNonEmptyString("openvidu.recording.notification");
|
||||
String recordingNotif = asNonEmptyString("OPENVIDU_RECORDING_NOTIFICATION");
|
||||
try {
|
||||
openviduRecordingNotification = RecordingNotification.valueOf(recordingNotif);
|
||||
} catch (IllegalArgumentException e) {
|
||||
addError("openvidu.recording.notification",
|
||||
addError("OPENVIDU_RECORDING_NOTIFICATION",
|
||||
"Must be one of the values " + Arrays.asList(RecordingNotification.values()));
|
||||
}
|
||||
}
|
||||
|
||||
private void checkOpenviduPublicurl() {
|
||||
final String property = "openvidu.domain.or.public.ip";
|
||||
final String property = "OPENVIDU_DOMAIN_OR_PUBLIC_IP";
|
||||
String domain = getValue(property);
|
||||
|
||||
if (domain != null && !domain.isEmpty()) {
|
||||
this.openviduPublicUrl = "https://" + domain;
|
||||
} else {
|
||||
final String urlProperty = "openvidu.publicurl";
|
||||
final String urlProperty = "OPENVIDU_PUBLICURL";
|
||||
String publicurl = getValue(urlProperty);
|
||||
if (publicurl == null || publicurl.isEmpty()) {
|
||||
addError(property, "Cannot be empty");
|
||||
|
@ -607,7 +606,7 @@ public class OpenviduConfig {
|
|||
|
||||
public List<String> checkKmsUris() {
|
||||
|
||||
String property = "kms.uris";
|
||||
String property = "KMS_URIS";
|
||||
|
||||
return asKmsUris(property, getValue(property));
|
||||
|
||||
|
@ -638,7 +637,7 @@ public class OpenviduConfig {
|
|||
}
|
||||
|
||||
private List<Header> checkWebhookHeaders() {
|
||||
String property = "openvidu.webhook.headers";
|
||||
String property = "OPENVIDU_WEBHOOK_HEADERS";
|
||||
List<String> headers = asJsonStringsArray(property);
|
||||
List<Header> headerList = new ArrayList<>();
|
||||
|
||||
|
@ -663,7 +662,7 @@ public class OpenviduConfig {
|
|||
}
|
||||
|
||||
private List<CDREventName> getWebhookEvents() {
|
||||
String property = "openvidu.webhook.events";
|
||||
String property = "OPENVIDU_WEBHOOK_EVENTS";
|
||||
List<String> events = asJsonStringsArray(property);
|
||||
List<CDREventName> eventList = new ArrayList<>();
|
||||
|
||||
|
|
|
@ -438,7 +438,7 @@ public class SessionEventsHandler {
|
|||
|
||||
public void sendRecordingStartedNotification(Session session, Recording recording) {
|
||||
|
||||
// Filter participants by roles according to "openvidu.recording.notification"
|
||||
// Filter participants by roles according to "OPENVIDU_RECORDING_NOTIFICATION"
|
||||
Set<Participant> filteredParticipants = this.filterParticipantsByRole(
|
||||
this.openviduConfig.getRolesFromRecordingNotification(), session.getParticipants());
|
||||
|
||||
|
@ -457,7 +457,7 @@ public class SessionEventsHandler {
|
|||
// Be sure to clean this map (this should return null)
|
||||
this.recordingsStarted.remove(session.getSessionId());
|
||||
|
||||
// Filter participants by roles according to "openvidu.recording.notification"
|
||||
// Filter participants by roles according to "OPENVIDU_RECORDING_NOTIFICATION"
|
||||
Set<Participant> existingParticipants;
|
||||
try {
|
||||
existingParticipants = session.getParticipants();
|
||||
|
|
|
@ -429,7 +429,7 @@ public abstract class SessionManager {
|
|||
private void startSessionGarbageCollector() {
|
||||
if (openviduConfig.getSessionGarbageInterval() == 0) {
|
||||
log.info(
|
||||
"Garbage collector for non active sessions is disabled (property 'openvidu.sessions.garbage.interval' is 0)");
|
||||
"Garbage collector for non active sessions is disabled (property 'OPENVIDU_SESSIONS_GARBAGE_INTERVAL' is 0)");
|
||||
return;
|
||||
}
|
||||
TimerTask task = new TimerTask() {
|
||||
|
|
|
@ -135,11 +135,11 @@ public class RecordingManager {
|
|||
} else if (e.getCodeValue() == Code.RECORDING_PATH_NOT_VALID.getValue()) {
|
||||
finalErrorMessage = "Error initializing recording path \""
|
||||
+ this.openviduConfig.getOpenViduRecordingPath()
|
||||
+ "\" set with system property \"openvidu.recording.path\"";
|
||||
+ "\" set with system property \"OPENVIDU_RECORDING_PATH\"";
|
||||
} else if (e.getCodeValue() == Code.RECORDING_FILE_EMPTY_ERROR.getValue()) {
|
||||
finalErrorMessage = "Error initializing recording custom layouts path \""
|
||||
+ this.openviduConfig.getOpenviduRecordingCustomLayout()
|
||||
+ "\" set with system property \"openvidu.recording.custom-layout\"";
|
||||
+ "\" set with system property \"OPENVIDU_RECORDING_CUSTOM_LAYOUT\"";
|
||||
}
|
||||
log.error(finalErrorMessage + ". Shutting down OpenVidu Server");
|
||||
System.exit(1);
|
||||
|
@ -212,7 +212,7 @@ public class RecordingManager {
|
|||
if ("docker".equals(openviduConfig.getSpringProfile())) {
|
||||
final String NEW_LINE = System.getProperty("line.separator");
|
||||
message += ": make sure you include the following flags in your \"docker run\" command:" + NEW_LINE
|
||||
+ " -e openvidu.recording.path=/YOUR/PATH/TO/VIDEO/FILES" + NEW_LINE
|
||||
+ " -e OPENVIDU_RECORDING_PATH=/YOUR/PATH/TO/VIDEO/FILES" + NEW_LINE
|
||||
+ " -e MY_UID=$(id -u $USER)" + NEW_LINE + " -v /var/run/docker.sock:/var/run/docker.sock"
|
||||
+ NEW_LINE + " -v /YOUR/PATH/TO/VIDEO/FILES:/YOUR/PATH/TO/VIDEO/FILES" + NEW_LINE;
|
||||
} else {
|
||||
|
@ -649,7 +649,7 @@ public class RecordingManager {
|
|||
|
||||
// Check Kurento Media Server write permissions in recording path
|
||||
if (this.kmsManager.getKmss().isEmpty()) {
|
||||
log.warn("No KMSs were defined in kms.uris array. Recording path check aborted");
|
||||
log.warn("No KMSs were defined in KMS_URIS array. Recording path check aborted");
|
||||
} else {
|
||||
|
||||
MediaPipeline pipeline = this.kmsManager.getLessLoadedConnectedAndRunningKms().getKurentoClient()
|
||||
|
@ -708,7 +708,7 @@ public class RecordingManager {
|
|||
}
|
||||
|
||||
if (openviduConfig.openviduRecordingCustomLayoutChanged(openviduRecordingCustomLayout)) {
|
||||
// Property openvidu.recording.custom-layout changed
|
||||
// Property OPENVIDU_RECORDING_CUSTOM_LAYOUT changed
|
||||
File dir = new File(openviduRecordingCustomLayout);
|
||||
if (dir.exists()) {
|
||||
if (!dir.isDirectory()) {
|
||||
|
@ -733,7 +733,7 @@ public class RecordingManager {
|
|||
try {
|
||||
Files.createDirectories(dir.toPath());
|
||||
log.warn(
|
||||
"OpenVidu custom layouts path (system property 'openvidu.recording.custom-layout') has been created, being folder {}. "
|
||||
"OpenVidu custom layouts path (system property 'OPENVIDU_RECORDING_CUSTOM_LAYOUT') has been created, being folder {}. "
|
||||
+ "It is an empty folder, so no custom layout is currently present",
|
||||
dir.getAbsolutePath());
|
||||
} catch (IOException e) {
|
||||
|
|
|
@ -27,12 +27,12 @@ import io.openvidu.server.config.OpenviduConfig;
|
|||
|
||||
/**
|
||||
* This class serves custom recording layouts from host folder indicated in
|
||||
* configuration property openvidu.recording.custom-layout
|
||||
* configuration property OPENVIDU_RECORDING_CUSTOM_LAYOUT
|
||||
*
|
||||
* @author Pablo Fuente (pablofuenteperez@gmail.com)
|
||||
*/
|
||||
@Configuration
|
||||
@ConditionalOnProperty(name = "openvidu.recording", havingValue = "true")
|
||||
@ConditionalOnProperty(name = "OPENVIDU_RECORDING", havingValue = "true")
|
||||
public class RecordingCustomLayoutsResourceHandler implements WebMvcConfigurer {
|
||||
|
||||
@Autowired
|
||||
|
|
|
@ -26,7 +26,7 @@ import io.openvidu.server.config.OpenviduConfig;
|
|||
|
||||
/**
|
||||
* This class serves recording files from host folder indicated in configuration
|
||||
* property openvidu.recording.path
|
||||
* property OPENVIDU_RECORDING_PATH
|
||||
*
|
||||
* @author Pablo Fuente (pablofuenteperez@gmail.com)
|
||||
*/
|
||||
|
|
|
@ -444,7 +444,7 @@ public class SessionRestController {
|
|||
log.info("REST API: POST /api/recordings/start {}", params.toString());
|
||||
|
||||
if (!this.openviduConfig.isRecordingModuleEnabled()) {
|
||||
// OpenVidu Server configuration property "openvidu.recording" is set to false
|
||||
// OpenVidu Server configuration property "OPENVIDU_RECORDING" is set to false
|
||||
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,181 +1,180 @@
|
|||
{
|
||||
"properties": [
|
||||
{
|
||||
"name": "dotenv.path",
|
||||
"name": "DOTENV_PATH",
|
||||
"type": "java.lang.String",
|
||||
"description": "Path to the .env configuration file"
|
||||
},
|
||||
{
|
||||
"name": "kms.uris",
|
||||
"name": "KMS_URIS",
|
||||
"type": "java.lang.String",
|
||||
"description": "KMS URL's to which OpenVidu Server will try to connect. They are tested in order until a valid one is found",
|
||||
"defaultValue": "[\"ws://localhost:8888/kurento\"]"
|
||||
},
|
||||
{
|
||||
"name": "openvidu.secret",
|
||||
"name": "OPENVIDU_SECRET",
|
||||
"type": "java.lang.String",
|
||||
"description": "Secret used to connect to OpenVidu Server. This value is required when using the REST API or any server client, as well as when connecting to openvidu-server dashboard",
|
||||
"defaultValue": "MY_SECRET"
|
||||
},
|
||||
{
|
||||
"name": "openvidu.publicurl",
|
||||
"name": "OPENVIDU_PUBLICURL",
|
||||
"type": "java.lang.String",
|
||||
"description": "URL to connect clients to OpenVidu Server. This must be the full IP of your OpenVidu Server, including protocol, host and port (for example: https://my.openvidu.server.ip:4443). If no port argument is provided, 'server.port' param will be appended to it",
|
||||
"defaultValue": "local"
|
||||
},
|
||||
{
|
||||
"name": "openvidu.cdr",
|
||||
"name": "OPENVIDU_CDR",
|
||||
"type": "java.lang.Boolean",
|
||||
"description": "Whether to enable Call Detail Record or not",
|
||||
"defaultValue": false
|
||||
},
|
||||
{
|
||||
"name": "openvidu.cdr.path",
|
||||
"name": "OPENVIDU_CDR_PATH",
|
||||
"type": "java.lang.String",
|
||||
"description": "Where to store CDR files",
|
||||
"defaultValue": "log"
|
||||
},
|
||||
{
|
||||
"name": "openvidu.recording",
|
||||
"name": "OPENVIDU_RECORDING",
|
||||
"type": "java.lang.Boolean",
|
||||
"description": "Whether to start OpenVidu Server with recording module service available or not (a Docker image will be downloaded during the first execution). Apart from setting this param to true, it is also necessary to explicitly configure sessions to be recorded",
|
||||
"defaultValue": false
|
||||
},
|
||||
{
|
||||
"name": "openvidu.recording.path",
|
||||
"name": "OPENVIDU_RECORDING_PATH",
|
||||
"type": "java.lang.String",
|
||||
"description": "Where to store the recorded video files",
|
||||
"defaultValue": "/opt/openvidu/recordings"
|
||||
},
|
||||
{
|
||||
"name": "openvidu.recording.public-access",
|
||||
"name": "OPENVIDU_RECORDING_PUBLIC_ACCESS",
|
||||
"type": "java.lang.Boolean",
|
||||
"description": "'true' to allow public access to the video files specified in 'openviu.recording.path'. 'false' to only allow access to authenticated users",
|
||||
"defaultValue": false
|
||||
},
|
||||
{
|
||||
"name": "openvidu.recording.notification",
|
||||
"name": "OPENVIDU_RECORDING_NOTIFICATION",
|
||||
"type": "java.lang.String",
|
||||
"description": "Which users will receive a notfication (client events 'recordingStarted' and 'recordingStopped') when recording starts and stops: 'none', 'publisher_moderator', 'all'",
|
||||
"defaultValue": "publisher_moderator"
|
||||
},
|
||||
{
|
||||
"name": "openvidu.recording.custom-layout",
|
||||
"name": "OPENVIDU_RECORDING_CUSTOM_LAYOUT",
|
||||
"type": "java.lang.String",
|
||||
"description": "Where should OpenVidu Server look for custom recording layouts",
|
||||
"defaultValue": "/opt/openvidu/custom-layout"
|
||||
},
|
||||
{
|
||||
"name": "openvidu.recording.version",
|
||||
"name": "OPENVIDU_RECORDING_VERSION",
|
||||
"type": "java.lang.String",
|
||||
"description": "Tag for openvidu/openvidu-recording Docker image"
|
||||
},
|
||||
{
|
||||
"name": "openvidu.recording.autostop-timeout",
|
||||
"name": "OPENVIDU_RECORDING_AUTOSTOP_TIMEOUT",
|
||||
"type": "java.lang.Integer",
|
||||
"description": "Timeout in seconds for automatically stopping the recording of a session when last user disconnects or when it starts and no user is publishing (only if RecordingMode.MANUAL)",
|
||||
"defaultValue": 120
|
||||
},
|
||||
{
|
||||
"name": "openvidu.recording.composed-url",
|
||||
"name": "OPENVIDU_RECORDING_COMPOSED_URL",
|
||||
"type": "java.lang.String",
|
||||
"description": "URL the composed-video recording dockerized Chrome will use to connect to the recording layouts inside OpenVidu Server host. This will affect all video recording layouts (default one BEST_FIT, all CUSTOM layouts). This allows changing the default URL, which is 'openvidu.publicurl', for those cases where OpenVidu Server host does not allow back and forth connections using the public url from inside the host",
|
||||
"description": "URL the composed-video recording dockerized Chrome will use to connect to the recording layouts inside OpenVidu Server host. This will affect all video recording layouts (default one BEST_FIT, all CUSTOM layouts). This allows changing the default URL, which is 'OPENVIDU_PUBLICURL', for those cases where OpenVidu Server host does not allow back and forth connections using the public url from inside the host",
|
||||
"defaultValue": ""
|
||||
},
|
||||
{
|
||||
"name": "openvidu.webhook",
|
||||
"name": "OPENVIDU_WEBHOOK",
|
||||
"type": "java.lang.Boolean",
|
||||
"description": "'true' to enable OpenVidu Server Webhook service. 'false' otherwise",
|
||||
"defaultValue": false
|
||||
},
|
||||
{
|
||||
"name": "openvidu.webhook.endpoint",
|
||||
"name": "OPENVIDU_WEBHOOK_ENDPOINT",
|
||||
"type": "java.lang.String",
|
||||
"description": "HTTP endpoint where OpenVidu Server will send Webhook HTTP POST messages",
|
||||
"defaultValue": ""
|
||||
},
|
||||
{
|
||||
"name": "openvidu.webhook.headers",
|
||||
"name": "OPENVIDU_WEBHOOK_HEADERS",
|
||||
"type": "java.lang.String",
|
||||
"description": "List of headers that OpenVidu Server Webhook service will attach to HTTP POST messages",
|
||||
"defaultValue": "[]"
|
||||
},
|
||||
{
|
||||
"name": "openvidu.webhook.events",
|
||||
"name": "OPENVIDU_WEBHOOK_EVENTS",
|
||||
"type": "java.lang.String",
|
||||
"description": "List of events that will be sent by OpenVidu Server Webhook service",
|
||||
"defaultValue": "[\"sessionCreated\",\"sessionDestroyed\",\"participantJoined\",\"participantLeft\",\"webrtcConnectionCreated\",\"webrtcConnectionDestroyed\",\"recordingStatusChanged\"]"
|
||||
},
|
||||
{
|
||||
"name": "openvidu.streams.video.max-recv-bandwidth",
|
||||
"name": "OPENVIDU_STREAMS_VIDEO_MAX_RECV_BANDWIDTH",
|
||||
"type": "java.lang.Integer",
|
||||
"description": "Maximum video bandwidth sent from clients to OpenVidu Server, in kbps. 0 means unconstrained",
|
||||
"defaultValue": 1000
|
||||
},
|
||||
{
|
||||
"name": "openvidu.streams.video.min-recv-bandwidth",
|
||||
"name": "OPENVIDU_STREAMS_VIDEO_MIN_RECV_BANDWIDTH",
|
||||
"type": "java.lang.Integer",
|
||||
"description": "Minimum video bandwidth sent from clients to OpenVidu Server, in kbps. 0 means unconstrained",
|
||||
"defaultValue": 300
|
||||
},
|
||||
{
|
||||
"name": "openvidu.streams.video.max-send-bandwidth",
|
||||
"name": "OPENVIDU_STREAMS_VIDEO_MAX_SEND_BANDWIDTH",
|
||||
"type": "java.lang.Integer",
|
||||
"description": "Maximum video bandwidth sent from OpenVidu Server to clients, in kbps. 0 means unconstrained",
|
||||
"defaultValue": 1000
|
||||
},
|
||||
{
|
||||
"name": "openvidu.streams.video.min-send-bandwidth",
|
||||
"name": "OPENVIDU_STREAMS_VIDEO_MIN_SEND_BANDWIDTH",
|
||||
"type": "java.lang.Integer",
|
||||
"description": "Minimum video bandwidth sent from OpenVidu Server to clients, in kbps. 0 means unconstrained",
|
||||
"defaultValue": 300
|
||||
},
|
||||
{
|
||||
"name": "openvidu.sessions.garbage.interval",
|
||||
"name": "OPENVIDU_SESSIONS_GARBAGE_INTERVAL",
|
||||
"type": "java.lang.Integer",
|
||||
"description": "How often the garbage collector of non active sessions runs. This helps cleaning up sessions that have been initialized through REST API (and maybe tokens have been created for them) but have had no users connected. Default to 900s (15 mins). 0 to disable non active sessions garbage collector",
|
||||
"defaultValue": 900
|
||||
},
|
||||
{
|
||||
"name": "openvidu.sessions.garbage.threshold",
|
||||
"name": "OPENVIDU_SESSIONS_GARBAGE_THRESHOLD",
|
||||
"type": "java.lang.Integer",
|
||||
"description": "Minimum time in seconds that a non active session must have been in existence for the garbage collector of non active sessions to remove it. Default to 3600s (1 hour). If non active sessions garbage collector is disabled (property 'openvidu.sessions.garbage.interval' to 0) this property is ignored",
|
||||
"description": "Minimum time in seconds that a non active session must have been in existence for the garbage collector of non active sessions to remove it. Default to 3600s (1 hour). If non active sessions garbage collector is disabled (property 'OPENVIDU_SESSIONS_GARBAGE_INTERVAL' to 0) this property is ignored",
|
||||
"defaultValue": 3600
|
||||
},
|
||||
{
|
||||
"name": "coturn.ip",
|
||||
"name": "COTURN_IP",
|
||||
"type": "java.lang.String",
|
||||
"description": "Coturn IP of a deployed coturn server"
|
||||
},
|
||||
{
|
||||
"name": "coturn.redis.ip",
|
||||
"name": "COTURN_REDIS_IP",
|
||||
"type": "java.lang.String",
|
||||
"description": "Redis IP where OpenVidu Server should connect to store TURN credentials",
|
||||
"defaultValue": "127.0.0.1"
|
||||
},
|
||||
{
|
||||
"name": "coturn.redis.dbname",
|
||||
"name": "COTURN_REDIS_DBNAME",
|
||||
"type": "java.lang.String",
|
||||
"description": "Redis database where to store TURN credentials",
|
||||
"defaultValue": "0"
|
||||
},
|
||||
{
|
||||
"name": "coturn.redis.password",
|
||||
"name": "COTURN_REDIS_PASSWORD",
|
||||
"type": "java.lang.String",
|
||||
"description": "Password to connect OpenVidu Server to Redis database to store TURN credentials",
|
||||
"defaultValue": "turn"
|
||||
},
|
||||
{
|
||||
"name": "coturn.redis.connect-timeout",
|
||||
"name": "COTURN_REDIS_CONNECT_TIMEOUT",
|
||||
"type": "java.lang.Integer",
|
||||
"description": "Timeout in seconds when OpenVidu Server is connecting to Redis database to store TURN credentials",
|
||||
"defaultValue": 30
|
||||
},
|
||||
{
|
||||
"name": "coturn.sqlite",
|
||||
"name": "CERTIFICATE_TYPE",
|
||||
"type": "java.lang.String",
|
||||
"description": "Path to COTURN sqlite database to add and remove TURN user credentials",
|
||||
"defaultValue": "/opt/openvidu/coturn/turndb"
|
||||
"description": "Which kind of certificate shall be used by OpenVidu in production mode [selfsigned,letsencrypt,owncert]"
|
||||
},
|
||||
{
|
||||
"name": "jsonRpcClientWebSocket.reconnectionDelay",
|
||||
|
@ -218,11 +217,6 @@
|
|||
"type": "java.lang.Long",
|
||||
"description": "Maximum number of websocket sessions that openvidu-server will be able to hold",
|
||||
"defaultValue": 9223372036854775807
|
||||
},
|
||||
{
|
||||
"name": "certificate.type",
|
||||
"type": "java.lang.String",
|
||||
"description": "A description for 'certificate.type'"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,25 +1,22 @@
|
|||
spring.profiles.active: docker
|
||||
|
||||
server.address: 0.0.0.0
|
||||
server.ssl.enabled: true
|
||||
openvidu.recording.version: 2.9.0
|
||||
|
||||
|
||||
|
||||
server.port: 4443
|
||||
server.ssl.enabled: true
|
||||
server.ssl.key-store: classpath:openvidu-selfsigned.jks
|
||||
server.ssl.key-store-password: openvidu
|
||||
server.ssl.key-store-type: JKS
|
||||
server.ssl.key-alias: openvidu-selfsigned
|
||||
kms.uris=["ws://localhost:8888/kurento"]
|
||||
|
||||
openvidu.secret: MY_SECRET
|
||||
openvidu.publicurl: local
|
||||
openvidu.cdr: false
|
||||
KMS_URIS=["ws://localhost:8888/kurento"]
|
||||
|
||||
openvidu.recording: false
|
||||
openvidu.recording.path: /opt/openvidu/recordings
|
||||
openvidu.recording.public-access: false
|
||||
openvidu.recording.notification: publisher_moderator
|
||||
openvidu.recording.custom-layout: /opt/openvidu/custom-layout
|
||||
openvidu.recording.autostop-timeout: 120
|
||||
OPENVIDU_SECRET: MY_SECRET
|
||||
OPENVIDU_PUBLICURL: local
|
||||
OPENVIDU_CDR: false
|
||||
|
||||
OPENVIDU_RECORDING: false
|
||||
OPENVIDU_RECORDING_VERSION: 2.9.0
|
||||
OPENVIDU_RECORDING_PATH: /opt/openvidu/recordings
|
||||
OPENVIDU_RECORDING_PUBLIC_ACCESS: false
|
||||
OPENVIDU_RECORDING_NOTIFICATION: publisher_moderator
|
||||
OPENVIDU_RECORDING_CUSTOM_LAYOUT: /opt/openvidu/custom-layout
|
||||
OPENVIDU_RECORDING_AUTOSTOP_TIMEOUT: 120
|
|
@ -1,5 +1,3 @@
|
|||
dotenv.path=.
|
||||
|
||||
server.address=0.0.0.0
|
||||
server.ssl.enabled=true
|
||||
server.port=4443
|
||||
|
@ -11,38 +9,40 @@ server.ssl.key-alias=openvidu-selfsigned
|
|||
logging.level.root=info
|
||||
spring.main.allow-bean-definition-overriding=true
|
||||
|
||||
certificate.type=selfsigned
|
||||
kms.uris=["ws://localhost:8888/kurento"]
|
||||
DOTENV_PATH=.
|
||||
|
||||
openvidu.publicurl=local
|
||||
openvidu.secret=MY_SECRET
|
||||
CERTIFICATE_TYPE=selfsigned
|
||||
KMS_URIS=["ws://localhost:8888/kurento"]
|
||||
|
||||
openvidu.cdr=false
|
||||
openvidu.cdr.path=log
|
||||
OPENVIDU_PUBLICURL=local
|
||||
OPENVIDU_SECRET=MY_SECRET
|
||||
|
||||
openvidu.webhook=false
|
||||
openvidu.webhook.endpoint=
|
||||
openvidu.webhook.headers=[]
|
||||
openvidu.webhook.events=["sessionCreated","sessionDestroyed","participantJoined","participantLeft","webrtcConnectionCreated","webrtcConnectionDestroyed","recordingStatusChanged","filterEventDispatched","mediaNodeStatusChanged"]
|
||||
OPENVIDU_CDR=false
|
||||
OPENVIDU_CDR_PATH=log
|
||||
|
||||
openvidu.recording=false
|
||||
openvidu.recording.version=2.9.0
|
||||
openvidu.recording.path=/opt/openvidu/recordings
|
||||
openvidu.recording.public-access=false
|
||||
openvidu.recording.notification=publisher_moderator
|
||||
openvidu.recording.custom-layout=/opt/openvidu/custom-layout
|
||||
openvidu.recording.autostop-timeout=120
|
||||
openvidu.recording.composed-url=
|
||||
OPENVIDU_WEBHOOK=false
|
||||
OPENVIDU_WEBHOOK_ENDPOINT=
|
||||
OPENVIDU_WEBHOOK_HEADERS=[]
|
||||
OPENVIDU_WEBHOOK_EVENTS=["sessionCreated","sessionDestroyed","participantJoined","participantLeft","webrtcConnectionCreated","webrtcConnectionDestroyed","recordingStatusChanged","filterEventDispatched","mediaNodeStatusChanged"]
|
||||
|
||||
openvidu.streams.video.max-recv-bandwidth=1000
|
||||
openvidu.streams.video.min-recv-bandwidth=300
|
||||
openvidu.streams.video.max-send-bandwidth=1000
|
||||
openvidu.streams.video.min-send-bandwidth=300
|
||||
OPENVIDU_RECORDING=false
|
||||
OPENVIDU_RECORDING_VERSION=2.9.0
|
||||
OPENVIDU_RECORDING_PATH=/opt/openvidu/recordings
|
||||
OPENVIDU_RECORDING_PUBLIC_ACCESS=false
|
||||
OPENVIDU_RECORDING_NOTIFICATION=publisher_moderator
|
||||
OPENVIDU_RECORDING_CUSTOM_LAYOUT=/opt/openvidu/custom-layout
|
||||
OPENVIDU_RECORDING_AUTOSTOP_TIMEOUT=120
|
||||
OPENVIDU_RECORDING_COMPOSED_URL=
|
||||
|
||||
openvidu.sessions.garbage.interval=900
|
||||
openvidu.sessions.garbage.threshold=3600
|
||||
OPENVIDU_STREAMS_VIDEO_MAX_RECV_BANDWIDTH=1000
|
||||
OPENVIDU_STREAMS_VIDEO_MIN_RECV_BANDWIDTH=300
|
||||
OPENVIDU_STREAMS_VIDEO_MAX_SEND_BANDWIDTH=1000
|
||||
OPENVIDU_STREAMS_VIDEO_MIN_SEND_BANDWIDTH=300
|
||||
|
||||
coturn.redis.ip=127.0.0.1
|
||||
coturn.redis.dbname=0
|
||||
coturn.redis.password=turn
|
||||
coturn.redis.connect-timeout=30
|
||||
OPENVIDU_SESSIONS_GARBAGE_INTERVAL=900
|
||||
OPENVIDU_SESSIONS_GARBAGE_THRESHOLD=3600
|
||||
|
||||
COTURN_REDIS_IP=127.0.0.1
|
||||
COTURN_REDIS_DBNAME=0
|
||||
COTURN_REDIS_PASSWORD=turn
|
||||
COTURN_REDIS_CONNECT_TIMEOUT=30
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
|
||||
<springProperty scope="context" name="cdrPath" source="openvidu.cdr.path" />
|
||||
<springProperty scope="context" name="cdrPath" source="OPENVIDU_CDR_PATH" />
|
||||
|
||||
<timestamp key="myTimestamp" timeReference="contextBirth"
|
||||
datePattern="HH-mm-ss" />
|
||||
|
@ -37,7 +37,7 @@
|
|||
<level value="INFO" />
|
||||
<appender-ref ref="STDOUT" />
|
||||
</root>
|
||||
<if condition='property("openvidu.cdr").equalsIgnoreCase("true")'>
|
||||
<if condition='property("OPENVIDU_CDR").equalsIgnoreCase("true")'>
|
||||
<then>
|
||||
<appender name="CDR"
|
||||
class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
|
|
|
@ -47,7 +47,7 @@ import io.openvidu.server.test.integration.config.IntegrationTestConfiguration;
|
|||
/**
|
||||
* @author Pablo Fuente (pablofuenteperez@gmail.com)
|
||||
*/
|
||||
@SpringBootTest(properties = { "openvidu.sessions.garbage.interval=1", "openvidu.sessions.garbage.threshold=1" })
|
||||
@SpringBootTest(properties = { "OPENVIDU_SESSIONS_GARBAGE_INTERVAL=1", "OPENVIDU_SESSIONS_GARBAGE_THRESHOLD=1" })
|
||||
@TestPropertySource(locations = "classpath:integration-test.properties")
|
||||
@ContextConfiguration(classes = { IntegrationTestConfiguration.class })
|
||||
@WebAppConfiguration
|
||||
|
|
|
@ -2,7 +2,7 @@ server.port: 4443
|
|||
server.address: 0.0.0.0
|
||||
server.ssl.enabled: false
|
||||
|
||||
kms.uris=[\"ws://localhost:8888/kurento\"]
|
||||
KMS_URIS=[\"ws://localhost:8888/kurento\"]
|
||||
|
||||
openvidu.secret: MY_SECRET
|
||||
openvidu.publicurl: local
|
||||
OPENVIDU_SECRET: MY_SECRET
|
||||
OPENVIDU_PUBLICURL: local
|
|
@ -9,37 +9,37 @@ server.ssl.key-alias=openvidu-selfsigned
|
|||
logging.level.root=info
|
||||
spring.main.allow-bean-definition-overriding=true
|
||||
|
||||
kms.uris=["ws://localhost:8888/kurento"]
|
||||
KMS_URIS=["ws://localhost:8888/kurento"]
|
||||
|
||||
openvidu.publicurl=local
|
||||
openvidu.secret=MY_SECRET
|
||||
OPENVIDU_PUBLICURL=local
|
||||
OPENVIDU_SECRET=MY_SECRET
|
||||
|
||||
openvidu.cdr=false
|
||||
openvidu.cdr.path=log
|
||||
OPENVIDU_CDR=false
|
||||
OPENVIDU_CDR_PATH=log
|
||||
|
||||
openvidu.webhook=false
|
||||
openvidu.webhook.endpoint=
|
||||
openvidu.webhook.headers=[]
|
||||
openvidu.webhook.events=["sessionCreated","sessionDestroyed","participantJoined","participantLeft","webrtcConnectionCreated","webrtcConnectionDestroyed","recordingStatusChanged","filterEventDispatched","mediaNodeStatusChanged"]
|
||||
OPENVIDU_WEBHOOK=false
|
||||
OPENVIDU_WEBHOOK_ENDPOINT=
|
||||
OPENVIDU_WEBHOOK_HEADERS=[]
|
||||
OPENVIDU_WEBHOOK_EVENTS=["sessionCreated","sessionDestroyed","participantJoined","participantLeft","webrtcConnectionCreated","webrtcConnectionDestroyed","recordingStatusChanged","filterEventDispatched","mediaNodeStatusChanged"]
|
||||
|
||||
openvidu.recording=false
|
||||
openvidu.recording.version=2.9.0
|
||||
openvidu.recording.path=/opt/openvidu/recordings
|
||||
openvidu.recording.public-access=false
|
||||
openvidu.recording.notification=publisher_moderator
|
||||
openvidu.recording.custom-layout=/opt/openvidu/custom-layout
|
||||
openvidu.recording.autostop-timeout=120
|
||||
openvidu.recording.composed-url=
|
||||
OPENVIDU_RECORDING=false
|
||||
OPENVIDU_RECORDING_VERSION=2.9.0
|
||||
OPENVIDU_RECORDING_PATH=/opt/openvidu/recordings
|
||||
OPENVIDU_RECORDING_PUBLIC_ACCESS=false
|
||||
OPENVIDU_RECORDING_NOTIFICATION=publisher_moderator
|
||||
OPENVIDU_RECORDING_CUSTOM_LAYOUT=/opt/openvidu/custom-layout
|
||||
OPENVIDU_RECORDING_AUTOSTOP_TIMEOUT=120
|
||||
OPENVIDU_RECORDING_COMPOSED_URL=
|
||||
|
||||
openvidu.streams.video.max-recv-bandwidth=1000
|
||||
openvidu.streams.video.min-recv-bandwidth=300
|
||||
openvidu.streams.video.max-send-bandwidth=1000
|
||||
openvidu.streams.video.min-send-bandwidth=300
|
||||
OPENVIDU_STREAMS_VIDEO_MAX_RECV_BANDWIDTH=1000
|
||||
OPENVIDU_STREAMS_VIDEO_MIN_RECV_BANDWIDTH=300
|
||||
OPENVIDU_STREAMS_VIDEO_MAX_SEND_BANDWIDTH=1000
|
||||
OPENVIDU_STREAMS_VIDEO_MIN_SEND_BANDWIDTH=300
|
||||
|
||||
openvidu.sessions.garbage.interval=900
|
||||
openvidu.sessions.garbage.threshold=3600
|
||||
OPENVIDU_SESSIONS_GARBAGE_INTERVAL=900
|
||||
OPENVIDU_SESSIONS_GARBAGE_THRESHOLD=3600
|
||||
|
||||
coturn.redis.ip=127.0.0.1
|
||||
coturn.redis.dbname=0
|
||||
coturn.redis.password=turn
|
||||
coturn.redis.connect-timeout=30
|
||||
COTURN_REDIS_IP=127.0.0.1
|
||||
COTURN_REDIS_DBNAME=0
|
||||
COTURN_REDIS_PASSWORD=turn
|
||||
COTURN_REDIS_CONNECT_TIMEOUT=30
|
||||
|
|
Loading…
Reference in New Issue