a2eda2203a
Bring our 5 configs into line with current upstream versions (jitsi-meet_7648 and stable-7648-4 tags from the jitsi-meet and docker-jitsi-meet repositories respectively). Attempt to preserve most of our earlier overrides: * configure Etherpad integration * disable background blurring * disable watermarks * open shared document on join * start with audio and video muted * redirect HTTP to HTTPS * disable XMPP WebSockets * disable P2P connections * templated credentials * templated unique JVB server identifiers Drop any options we previously set which later became defaults (like useRoomAsSharedDocumentName or UTC as the TZ). Identify the upstream repo and tag on which each file is based. Stop claiming Firefox is not recommended, now that the default configuration adds a pre-join page which helps browsers realize they should not treat the audio stream as unsolicited. Switch to newer vars for muting audio and video as a boolean rather than at a participant threshold. Update the docker-compose files to use the stable tag instead of latest, since upstream seems to just stop refreshing the latest tag far too often. Clean up extra envvars we were setting for JVB which we didn't pass through to the containers. Change-Id: I1e5a3836917f3d90ad7dd1c0771871740fda3cda
455 lines
18 KiB
JavaScript
455 lines
18 KiB
JavaScript
// Based on
|
|
// https://github.com/jitsi/docker-jitsi-meet/blob/stable-7648-4/web/rootfs/defaults/settings-config.js
|
|
// Licensed under the ASL v2.
|
|
|
|
// Customized for OpenDev, all overrides go here (and remember to comment out
|
|
// any defaults from the example):
|
|
config.openSharedDocumentOnJoin = true;
|
|
|
|
{{ $DEPLOYMENTINFO_USERREGION := .Env.DEPLOYMENTINFO_USERREGION | default "" -}}
|
|
{{ $ENABLE_AUDIO_PROCESSING := .Env.ENABLE_AUDIO_PROCESSING | default "true" | toBool -}}
|
|
{{ $ENABLE_BREAKOUT_ROOMS := .Env.ENABLE_BREAKOUT_ROOMS | default "true" | toBool -}}
|
|
{{ $ENABLE_CALENDAR := .Env.ENABLE_CALENDAR | default "false" | toBool -}}
|
|
{{ $ENABLE_FILE_RECORDING_SHARING := .Env.ENABLE_FILE_RECORDING_SHARING | default "false" | toBool -}}
|
|
{{ $ENABLE_IPV6 := .Env.ENABLE_IPV6 | default "true" | toBool -}}
|
|
{{ $ENABLE_LIPSYNC := .Env.ENABLE_LIPSYNC | default "false" | toBool -}}
|
|
{{ $ENABLE_NO_AUDIO_DETECTION := .Env.ENABLE_NO_AUDIO_DETECTION | default "true" | toBool -}}
|
|
{{ $ENABLE_P2P := .Env.ENABLE_P2P | default "true" | toBool -}}
|
|
{{ $ENABLE_PREJOIN_PAGE := .Env.ENABLE_PREJOIN_PAGE | default "true" | toBool -}}
|
|
{{ $ENABLE_WELCOME_PAGE := .Env.ENABLE_WELCOME_PAGE | default "true" | toBool -}}
|
|
{{ $ENABLE_CLOSE_PAGE := .Env.ENABLE_CLOSE_PAGE | default "false" | toBool -}}
|
|
{{ $ENABLE_RECORDING := .Env.ENABLE_RECORDING | default "false" | toBool -}}
|
|
{{ $ENABLE_SERVICE_RECORDING := .Env.ENABLE_SERVICE_RECORDING | default ($ENABLE_RECORDING | printf "%t") | toBool -}}
|
|
{{ $ENABLE_LIVESTREAMING := .Env.ENABLE_LIVESTREAMING | default "false" | toBool -}}
|
|
{{ $ENABLE_REMB := .Env.ENABLE_REMB | default "true" | toBool -}}
|
|
{{ $ENABLE_REQUIRE_DISPLAY_NAME := .Env.ENABLE_REQUIRE_DISPLAY_NAME | default "false" | toBool -}}
|
|
{{ $ENABLE_SIMULCAST := .Env.ENABLE_SIMULCAST | default "true" | toBool -}}
|
|
{{ $ENABLE_STATS_ID := .Env.ENABLE_STATS_ID | default "false" | toBool -}}
|
|
{{ $ENABLE_STEREO := .Env.ENABLE_STEREO | default "false" | toBool -}}
|
|
{{ $ENABLE_OPUS_RED := .Env.ENABLE_OPUS_RED | default "false" | toBool -}}
|
|
{{ $ENABLE_TALK_WHILE_MUTED := .Env.ENABLE_TALK_WHILE_MUTED | default "false" | toBool -}}
|
|
{{ $ENABLE_TCC := .Env.ENABLE_TCC | default "true" | toBool -}}
|
|
{{ $ENABLE_TRANSCRIPTIONS := .Env.ENABLE_TRANSCRIPTIONS | default "false" | toBool -}}
|
|
{{ $ENABLE_JAAS_COMPONENTS := .Env.ENABLE_JAAS_COMPONENTS | default "0" | toBool }}
|
|
{{ $ENABLE_MULTI_STREAM := .Env.ENABLE_MULTI_STREAM | default "true" | toBool }}
|
|
{{ $HIDE_PREJOIN_DISPLAY_NAME := .Env.HIDE_PREJOIN_DISPLAY_NAME | default "false" | toBool -}}
|
|
{{ $PUBLIC_URL := .Env.PUBLIC_URL | default "https://localhost:8443" -}}
|
|
{{ $RESOLUTION := .Env.RESOLUTION | default "720" -}}
|
|
{{ $RESOLUTION_MIN := .Env.RESOLUTION_MIN | default "180" -}}
|
|
{{ $RESOLUTION_WIDTH := .Env.RESOLUTION_WIDTH | default "1280" -}}
|
|
{{ $RESOLUTION_WIDTH_MIN := .Env.RESOLUTION_WIDTH_MIN | default "320" -}}
|
|
{{ $START_AUDIO_ONLY := .Env.START_AUDIO_ONLY | default "false" | toBool -}}
|
|
{{ $START_AUDIO_MUTED := .Env.START_AUDIO_MUTED | default 10 -}}
|
|
{{ $START_WITH_AUDIO_MUTED := .Env.START_WITH_AUDIO_MUTED | default "false" | toBool -}}
|
|
{{ $START_SILENT := .Env.START_SILENT | default "false" | toBool -}}
|
|
{{ $DISABLE_AUDIO_LEVELS := .Env.DISABLE_AUDIO_LEVELS | default "false" | toBool -}}
|
|
{{ $ENABLE_NOISY_MIC_DETECTION := .Env.ENABLE_NOISY_MIC_DETECTION | default "true" | toBool -}}
|
|
{{ $START_VIDEO_MUTED := .Env.START_VIDEO_MUTED | default 10 -}}
|
|
{{ $START_WITH_VIDEO_MUTED := .Env.START_WITH_VIDEO_MUTED | default "false" | toBool -}}
|
|
{{ $DESKTOP_SHARING_FRAMERATE_MIN := .Env.DESKTOP_SHARING_FRAMERATE_MIN | default 5 -}}
|
|
{{ $DESKTOP_SHARING_FRAMERATE_MAX := .Env.DESKTOP_SHARING_FRAMERATE_MAX | default 5 -}}
|
|
{{ $TESTING_OCTO_PROBABILITY := .Env.TESTING_OCTO_PROBABILITY | default "0" -}}
|
|
{{ $TESTING_CAP_SCREENSHARE_BITRATE := .Env.TESTING_CAP_SCREENSHARE_BITRATE | default "1" -}}
|
|
{{ $XMPP_DOMAIN := .Env.XMPP_DOMAIN | default "meet.jitsi" -}}
|
|
{{ $XMPP_RECORDER_DOMAIN := .Env.XMPP_RECORDER_DOMAIN | default "recorder.meet.jitsi" -}}
|
|
{{ $DISABLE_DEEP_LINKING := .Env.DISABLE_DEEP_LINKING | default "false" | toBool -}}
|
|
{{ $VIDEOQUALITY_ENFORCE_PREFERRED_CODEC := .Env.VIDEOQUALITY_ENFORCE_PREFERRED_CODEC | default "false" | toBool -}}
|
|
{{ $DISABLE_POLLS := .Env.DISABLE_POLLS | default "false" | toBool -}}
|
|
{{ $DISABLE_REACTIONS := .Env.DISABLE_REACTIONS | default "false" | toBool -}}
|
|
{{ $DISABLE_REMOTE_VIDEO_MENU := .Env.DISABLE_REMOTE_VIDEO_MENU | default "false" | toBool -}}
|
|
{{ $DISABLE_PRIVATE_CHAT:= .Env.DISABLE_PRIVATE_CHAT | default "false" | toBool -}}
|
|
{{ $DISABLE_KICKOUT := .Env.DISABLE_KICKOUT | default "false" | toBool -}}
|
|
{{ $DISABLE_GRANT_MODERATOR := .Env.DISABLE_GRANT_MODERATOR | default "false" | toBool -}}
|
|
{{ $ENABLE_E2EPING := .Env.ENABLE_E2EPING | default "false" | toBool -}}
|
|
{{ $DISABLE_LOCAL_RECORDING := .Env.DISABLE_LOCAL_RECORDING | default "false" | toBool -}}
|
|
{{ $ENABLE_LOCAL_RECORDING_NOTIFY_ALL_PARTICIPANT := .Env.ENABLE_LOCAL_RECORDING_NOTIFY_ALL_PARTICIPANT | default "false" | toBool -}}
|
|
{{ $ENABLE_LOCAL_RECORDING_SELF_START := .Env.ENABLE_LOCAL_RECORDING_SELF_START | default "false" | toBool -}}
|
|
{{ $DISABLE_PROFILE := .Env.DISABLE_PROFILE | default "false" | toBool -}}
|
|
|
|
|
|
// Video configuration.
|
|
//
|
|
|
|
if (!config.hasOwnProperty('constraints')) config.constraints = {};
|
|
if (!config.constraints.hasOwnProperty('video')) config.constraints.video = {};
|
|
|
|
config.resolution = {{ $RESOLUTION }};
|
|
config.constraints.video.height = { ideal: {{ $RESOLUTION }}, max: {{ $RESOLUTION }}, min: {{ $RESOLUTION_MIN }} };
|
|
config.constraints.video.width = { ideal: {{ $RESOLUTION_WIDTH }}, max: {{ $RESOLUTION_WIDTH }}, min: {{ $RESOLUTION_WIDTH_MIN }}};
|
|
config.disableSimulcast = {{ not $ENABLE_SIMULCAST }};
|
|
config.startVideoMuted = {{ $START_VIDEO_MUTED }};
|
|
config.startWithVideoMuted = {{ $START_WITH_VIDEO_MUTED }};
|
|
|
|
{{ if .Env.START_BITRATE -}}
|
|
config.startBitrate = '{{ .Env.START_BITRATE }}';
|
|
{{ end -}}
|
|
|
|
if (!config.hasOwnProperty('flags')) config.flags = {};
|
|
config.flags.sourceNameSignaling = {{ $ENABLE_MULTI_STREAM }};
|
|
config.flags.sendMultipleVideoStreams = {{ $ENABLE_MULTI_STREAM }};
|
|
config.flags.receiveMultipleVideoStreams = {{ $ENABLE_MULTI_STREAM }};
|
|
|
|
|
|
// ScreenShare Configuration.
|
|
//
|
|
|
|
config.desktopSharingFrameRate = { min: {{ $DESKTOP_SHARING_FRAMERATE_MIN }}, max: {{ $DESKTOP_SHARING_FRAMERATE_MAX }} };
|
|
|
|
// Audio configuration.
|
|
//
|
|
|
|
config.enableNoAudioDetection = {{ $ENABLE_NO_AUDIO_DETECTION }};
|
|
config.enableTalkWhileMuted = {{ $ENABLE_TALK_WHILE_MUTED }};
|
|
config.disableAP = {{ not $ENABLE_AUDIO_PROCESSING }};
|
|
|
|
if (!config.hasOwnProperty('audioQuality')) config.audioQuality = {};
|
|
config.audioQuality.stereo = {{ $ENABLE_STEREO }};
|
|
|
|
{{ if .Env.AUDIO_QUALITY_OPUS_BITRATE -}}
|
|
config.audioQuality.opusMaxAverageBitrate = '{{ .Env.AUDIO_QUALITY_OPUS_BITRATE }}';
|
|
{{ end -}}
|
|
|
|
config.startAudioOnly = {{ $START_AUDIO_ONLY }};
|
|
config.startAudioMuted = {{ $START_AUDIO_MUTED }};
|
|
config.startWithAudioMuted = {{ $START_WITH_AUDIO_MUTED }};
|
|
config.startSilent = {{ $START_SILENT }};
|
|
config.enableOpusRed = {{ $ENABLE_OPUS_RED }};
|
|
config.disableAudioLevels = {{ $DISABLE_AUDIO_LEVELS }};
|
|
config.enableNoisyMicDetection = {{ $ENABLE_NOISY_MIC_DETECTION }};
|
|
|
|
|
|
// Peer-to-Peer options.
|
|
//
|
|
|
|
if (!config.hasOwnProperty('p2p')) config.p2p = {};
|
|
|
|
config.p2p.enabled = {{ $ENABLE_P2P }};
|
|
|
|
|
|
// Breakout Rooms
|
|
//
|
|
|
|
config.hideAddRoomButton = {{ $ENABLE_BREAKOUT_ROOMS | not }};
|
|
|
|
|
|
// Etherpad
|
|
//
|
|
|
|
{{ if .Env.ETHERPAD_PUBLIC_URL -}}
|
|
config.etherpad_base = '{{ .Env.ETHERPAD_PUBLIC_URL }}';
|
|
{{ else if .Env.ETHERPAD_URL_BASE -}}
|
|
config.etherpad_base = '{{ $PUBLIC_URL }}/etherpad/p/';
|
|
{{ end -}}
|
|
|
|
// Recording.
|
|
//
|
|
|
|
{{ if $ENABLE_RECORDING -}}
|
|
|
|
config.hiddenDomain = '{{ $XMPP_RECORDER_DOMAIN }}';
|
|
|
|
if (!config.hasOwnProperty('recordingService')) config.recordingService = {};
|
|
|
|
// Whether to enable file recording or not using the "service" defined by the finalizer in Jibri
|
|
config.recordingService.enabled = {{ $ENABLE_SERVICE_RECORDING }};
|
|
|
|
// Whether to enable live streaming or not.
|
|
config.liveStreamingEnabled = {{ $ENABLE_LIVESTREAMING }};
|
|
|
|
{{ if .Env.DROPBOX_APPKEY -}}
|
|
// Enable the dropbox integration.
|
|
if (!config.hasOwnProperty('dropbox')) config.dropbox = {};
|
|
config.dropbox.appKey = '{{ .Env.DROPBOX_APPKEY }}';
|
|
{{ if .Env.DROPBOX_REDIRECT_URI -}}
|
|
// A URL to redirect the user to, after authenticating
|
|
// by default uses:
|
|
// 'https://jitsi-meet.example.com/static/oauth.html'
|
|
config.dropbox.redirectURI = '{{ .Env.DROPBOX_REDIRECT_URI }}';
|
|
{{ end -}}
|
|
{{ end -}}
|
|
|
|
// Whether to show the possibility to share file recording with other people
|
|
// (e.g. meeting participants), based on the actual implementation
|
|
// on the backend.
|
|
config.recordingService.sharingEnabled = {{ $ENABLE_FILE_RECORDING_SHARING }};
|
|
{{ end -}}
|
|
|
|
|
|
// Local recording configuration.
|
|
if (!config.hasOwnProperty('localRecording')) config.localRecording = {};
|
|
config.localRecording.disable = {{ $DISABLE_LOCAL_RECORDING }};
|
|
config.localRecording.notifyAllParticipants = {{ $ENABLE_LOCAL_RECORDING_NOTIFY_ALL_PARTICIPANT }};
|
|
config.localRecording.disableSelfRecording = {{ $ENABLE_LOCAL_RECORDING_SELF_START }};
|
|
|
|
|
|
// Analytics.
|
|
//
|
|
|
|
if (!config.hasOwnProperty('analytics')) config.analytics = {};
|
|
|
|
{{ if .Env.AMPLITUDE_ID -}}
|
|
// The Amplitude APP Key:
|
|
config.analytics.amplitudeAPPKey = '{{ .Env.AMPLITUDE_ID }}';
|
|
{{ end -}}
|
|
|
|
{{ if .Env.GOOGLE_ANALYTICS_ID -}}
|
|
// The Google Analytics Tracking ID:
|
|
config.analytics.googleAnalyticsTrackingId = '{{ .Env.GOOGLE_ANALYTICS_ID }}';
|
|
{{ end -}}
|
|
|
|
{{ if .Env.MATOMO_ENDPOINT -}}
|
|
// Matomo endpoint:
|
|
config.analytics.matomoEndpoint = '{{ .Env.MATOMO_ENDPOINT }}';
|
|
{{ end -}}
|
|
|
|
{{ if .Env.MATOMO_SITE_ID -}}
|
|
// Matomo site ID:
|
|
config.analytics.matomoSiteID = '{{ .Env.MATOMO_SITE_ID }}';
|
|
{{ end -}}
|
|
|
|
{{ if .Env.ANALYTICS_SCRIPT_URLS -}}
|
|
// Array of script URLs to load as lib-jitsi-meet "analytics handlers".
|
|
config.analytics.scriptURLs = [ '{{ join "','" (splitList "," .Env.ANALYTICS_SCRIPT_URLS) }}' ];
|
|
{{ end -}}
|
|
|
|
{{ if .Env.ANALYTICS_WHITELISTED_EVENTS -}}
|
|
config.analytics.whiteListedEvents = [ '{{ join "','" (splitList "," .Env.ANALYTICS_WHITELISTED_EVENTS) }}' ];
|
|
{{ end -}}
|
|
|
|
{{ if .Env.CALLSTATS_CUSTOM_SCRIPT_URL -}}
|
|
config.callStatsCustomScriptUrl = '{{ .Env.CALLSTATS_CUSTOM_SCRIPT_URL }}';
|
|
{{ end -}}
|
|
|
|
{{ if .Env.CALLSTATS_ID -}}
|
|
// To enable sending statistics to callstats.io you must provide the
|
|
// Application ID and Secret.
|
|
config.callStatsID = '{{ .Env.CALLSTATS_ID }}';
|
|
{{ end -}}
|
|
|
|
{{ if .Env.CALLSTATS_ID -}}
|
|
config.callStatsSecret = '{{ .Env.CALLSTATS_SECRET }}';
|
|
{{ end -}}
|
|
|
|
// Enables callstatsUsername to be reported as statsId and used
|
|
// by callstats as repoted remote id.
|
|
config.enableStatsID = {{ $ENABLE_STATS_ID }};
|
|
|
|
|
|
// Dial in/out services.
|
|
//
|
|
|
|
{{ if $ENABLE_JAAS_COMPONENTS }}
|
|
config.dialInConfCodeUrl = 'https://conference-mapper.jitsi.net/v1/access';
|
|
config.dialInNumbersUrl = 'https://conference-mapper.jitsi.net/v1/access/dids';
|
|
{{ else }}
|
|
{{ if .Env.CONFCODE_URL -}}
|
|
config.dialInConfCodeUrl = '{{ .Env.CONFCODE_URL }}';
|
|
{{ end -}}
|
|
{{ if .Env.DIALIN_NUMBERS_URL -}}
|
|
config.dialInNumbersUrl = '{{ .Env.DIALIN_NUMBERS_URL }}';
|
|
{{ end -}}
|
|
{{ end -}}
|
|
|
|
{{ if .Env.DIALOUT_AUTH_URL -}}
|
|
config.dialOutAuthUrl = '{{ .Env.DIALOUT_AUTH_URL }}';
|
|
{{ end -}}
|
|
|
|
{{ if .Env.DIALOUT_CODES_URL -}}
|
|
config.dialOutCodesUrl = '{{ .Env.DIALOUT_CODES_URL }}';
|
|
{{ end -}}
|
|
|
|
|
|
// Calendar service integration.
|
|
//
|
|
|
|
config.enableCalendarIntegration = {{ $ENABLE_CALENDAR }};
|
|
|
|
{{ if .Env.GOOGLE_API_APP_CLIENT_ID -}}
|
|
config.googleApiApplicationClientID = '{{ .Env.GOOGLE_API_APP_CLIENT_ID }}';
|
|
{{ end -}}
|
|
|
|
{{ if .Env.MICROSOFT_API_APP_CLIENT_ID -}}
|
|
config.microsoftApiApplicationClientID = '{{ .Env.MICROSOFT_API_APP_CLIENT_ID }}';
|
|
{{ end -}}
|
|
|
|
|
|
// Invitation service.
|
|
//
|
|
|
|
{{ if .Env.INVITE_SERVICE_URL -}}
|
|
config.inviteServiceUrl = '{{ .Env.INVITE_SERVICE_URL }}';
|
|
{{ end -}}
|
|
|
|
{{ if .Env.PEOPLE_SEARCH_URL -}}
|
|
config.peopleSearchUrl = '{{ .Env.PEOPLE_SEARCH_URL }}';
|
|
config.peopleSearchQueryTypes = ['user','conferenceRooms'];
|
|
{{ end -}}
|
|
|
|
|
|
// Miscellaneous.
|
|
//
|
|
|
|
// Prejoin page.
|
|
if (!config.hasOwnProperty('prejoinConfig')) config.prejoinConfig = {};
|
|
config.prejoinConfig.enabled = {{ $ENABLE_PREJOIN_PAGE }};
|
|
|
|
// Hides the participant name editing field in the prejoin screen.
|
|
config.prejoinConfig.hideDisplayName = {{ $HIDE_PREJOIN_DISPLAY_NAME }};
|
|
|
|
// List of buttons to hide from the extra join options dropdown on prejoin screen.
|
|
{{ if .Env.HIDE_PREJOIN_EXTRA_BUTTONS -}}
|
|
config.prejoinConfig.hideExtraJoinButtons = [ '{{ join "','" (splitList "," .Env.HIDE_PREJOIN_EXTRA_BUTTONS) }}' ];
|
|
{{ end -}}
|
|
|
|
// Welcome page.
|
|
config.enableWelcomePage = {{ $ENABLE_WELCOME_PAGE }};
|
|
|
|
// Close page.
|
|
config.enableClosePage = {{ $ENABLE_CLOSE_PAGE }};
|
|
|
|
// Default language.
|
|
{{ if .Env.DEFAULT_LANGUAGE -}}
|
|
config.defaultLanguage = '{{ .Env.DEFAULT_LANGUAGE }}';
|
|
{{ end -}}
|
|
|
|
// Require users to always specify a display name.
|
|
config.requireDisplayName = {{ $ENABLE_REQUIRE_DISPLAY_NAME }};
|
|
|
|
|
|
// Chrome extension banner.
|
|
{{ if .Env.CHROME_EXTENSION_BANNER_JSON -}}
|
|
config.chromeExtensionBanner = {{ .Env.CHROME_EXTENSION_BANNER_JSON }};
|
|
{{ end -}}
|
|
|
|
// Disables profile and the edit of all fields from the profile settings (display name and email)
|
|
config.disableProfile = {{ $DISABLE_PROFILE }};
|
|
|
|
// Advanced.
|
|
//
|
|
|
|
// Lipsync hack in jicofo, may not be safe.
|
|
config.enableLipSync = {{ $ENABLE_LIPSYNC }};
|
|
|
|
config.enableRemb = {{ $ENABLE_REMB }};
|
|
config.enableTcc = {{ $ENABLE_TCC }};
|
|
|
|
// Enable IPv6 support.
|
|
config.useIPv6 = {{ $ENABLE_IPV6 }};
|
|
|
|
// Transcriptions (subtitles and buttons can be configured in interface_config)
|
|
config.transcribingEnabled = {{ $ENABLE_TRANSCRIPTIONS }};
|
|
|
|
{{ if .Env.DYNAMIC_BRANDING_URL -}}
|
|
// External API url used to receive branding specific information.
|
|
config.dynamicBrandingUrl = '{{ .Env.DYNAMIC_BRANDING_URL }}';
|
|
{{ else if .Env.BRANDING_DATA_URL -}}
|
|
config.brandingDataUrl = '{{ .Env.BRANDING_DATA_URL }}';
|
|
{{ end -}}
|
|
|
|
{{ if .Env.TOKEN_AUTH_URL -}}
|
|
// Authenticate using external service or just focus external auth window if there is one already.
|
|
config.tokenAuthUrl = '{{ .Env.TOKEN_AUTH_URL }}';
|
|
{{ end -}}
|
|
|
|
|
|
// Deployment information.
|
|
//
|
|
|
|
if (!config.hasOwnProperty('deploymentInfo')) config.deploymentInfo = {};
|
|
|
|
{{ if .Env.DEPLOYMENTINFO_ENVIRONMENT -}}
|
|
config.deploymentInfo.environment = '{{ .Env.DEPLOYMENTINFO_ENVIRONMENT }}';
|
|
{{ end -}}
|
|
|
|
{{ if .Env.DEPLOYMENTINFO_SHARD -}}
|
|
config.deploymentInfo.shard = '{{ .Env.DEPLOYMENTINFO_SHARD }}';
|
|
{{ end -}}
|
|
|
|
{{ if .Env.DEPLOYMENTINFO_ENVIRONMENT_TYPE -}}
|
|
config.deploymentInfo.envType = '{{ .Env.DEPLOYMENTINFO_ENVIRONMENT_TYPE }}';
|
|
{{ end -}}
|
|
|
|
{{ if .Env.DEPLOYMENTINFO_REGION -}}
|
|
config.deploymentInfo.region = '{{ .Env.DEPLOYMENTINFO_REGION }}';
|
|
{{ end -}}
|
|
|
|
{{ if $DEPLOYMENTINFO_USERREGION -}}
|
|
config.deploymentInfo.userRegion = '{{ $DEPLOYMENTINFO_USERREGION }}';
|
|
{{ end -}}
|
|
|
|
|
|
// Testing
|
|
//
|
|
|
|
if (!config.hasOwnProperty('testing')) config.testing = {};
|
|
if (!config.testing.hasOwnProperty('octo')) config.testing.octo = {};
|
|
|
|
config.testing.capScreenshareBitrate = {{ $TESTING_CAP_SCREENSHARE_BITRATE }};
|
|
config.testing.octo.probability = {{ $TESTING_OCTO_PROBABILITY }};
|
|
|
|
// Deep Linking
|
|
config.disableDeepLinking = {{ $DISABLE_DEEP_LINKING }};
|
|
|
|
// P2P preferred codec
|
|
{{ if .Env.P2P_PREFERRED_CODEC -}}
|
|
config.p2p.preferredCodec = '{{ .Env.P2P_PREFERRED_CODEC }}';
|
|
{{ end -}}
|
|
|
|
// enable preffered video Codec
|
|
if (!config.hasOwnProperty('videoQuality')) config.videoQuality = {};
|
|
{{ if .Env.VIDEOQUALITY_PREFERRED_CODEC -}}
|
|
config.videoQuality.preferredCodec = '{{ .Env.VIDEOQUALITY_PREFERRED_CODEC }}';
|
|
{{ end -}}
|
|
|
|
config.videoQuality.enforcePreferredCodec = {{ $VIDEOQUALITY_ENFORCE_PREFERRED_CODEC }};
|
|
|
|
if (!config.videoQuality.hasOwnProperty('maxBitratesVideo')) config.videoQuality.maxBitratesVideo = null;
|
|
{{ if and .Env.VIDEOQUALITY_BITRATE_H264_LOW .Env.VIDEOQUALITY_BITRATE_H264_STANDARD .Env.VIDEOQUALITY_BITRATE_H264_HIGH -}}
|
|
config.videoQuality.maxBitratesVideo = config.videoQuality.maxBitratesVideo || {}
|
|
config.videoQuality.maxBitratesVideo.H264 = { low: {{ .Env.VIDEOQUALITY_BITRATE_H264_LOW }}, standard: {{ .Env.VIDEOQUALITY_BITRATE_H264_STANDARD }}, high: {{ .Env.VIDEOQUALITY_BITRATE_H264_HIGH }} };
|
|
{{ end -}}
|
|
{{ if and .Env.VIDEOQUALITY_BITRATE_VP8_LOW .Env.VIDEOQUALITY_BITRATE_VP8_STANDARD .Env.VIDEOQUALITY_BITRATE_VP8_HIGH -}}
|
|
config.videoQuality.maxBitratesVideo = config.videoQuality.maxBitratesVideo || {}
|
|
config.videoQuality.maxBitratesVideo.VP8 = { low: {{ .Env.VIDEOQUALITY_BITRATE_VP8_LOW }}, standard: {{ .Env.VIDEOQUALITY_BITRATE_VP8_STANDARD }}, high: {{ .Env.VIDEOQUALITY_BITRATE_VP8_HIGH }} };
|
|
{{ end -}}
|
|
{{ if and .Env.VIDEOQUALITY_BITRATE_VP9_LOW .Env.VIDEOQUALITY_BITRATE_VP9_STANDARD .Env.VIDEOQUALITY_BITRATE_VP9_HIGH -}}
|
|
config.videoQuality.maxBitratesVideo = config.videoQuality.maxBitratesVideo || {}
|
|
config.videoQuality.maxBitratesVideo.VP9 = { low: {{ .Env.VIDEOQUALITY_BITRATE_VP9_LOW }}, standard: {{ .Env.VIDEOQUALITY_BITRATE_VP9_STANDARD }}, high: {{ .Env.VIDEOQUALITY_BITRATE_VP9_HIGH }} };
|
|
{{ end -}}
|
|
|
|
// Reactions
|
|
config.disableReactions = {{ $DISABLE_REACTIONS }};
|
|
|
|
// Polls
|
|
config.disablePolls = {{ $DISABLE_POLLS }};
|
|
|
|
// Configure toolbar buttons
|
|
{{ if .Env.TOOLBAR_BUTTONS -}}
|
|
config.toolbarButtons = [ '{{ join "','" (splitList "," .Env.TOOLBAR_BUTTONS) }}' ];
|
|
{{ end -}}
|
|
|
|
// Hides the buttons at pre-join screen
|
|
{{ if .Env.HIDE_PREMEETING_BUTTONS -}}
|
|
config.hiddenPremeetingButtons = [ '{{ join "','" (splitList "," .Env.HIDE_PREMEETING_BUTTONS) }}' ];
|
|
{{ end -}}
|
|
|
|
// Configure remote participant video menu
|
|
if (!config.hasOwnProperty('remoteVideoMenu')) config.remoteVideoMenu = {};
|
|
config.remoteVideoMenu.disabled = {{ $DISABLE_REMOTE_VIDEO_MENU }};
|
|
config.remoteVideoMenu.disableKick = {{ $DISABLE_KICKOUT }};
|
|
config.remoteVideoMenu.disableGrantModerator = {{ $DISABLE_GRANT_MODERATOR }};
|
|
config.remoteVideoMenu.disablePrivateChat = {{ $DISABLE_PRIVATE_CHAT }};
|
|
|
|
// Configure e2eping
|
|
if (!config.hasOwnProperty('e2eping')) config.e2eping = {};
|
|
config.e2eping.enabled = {{ $ENABLE_E2EPING }};
|
|
{{ if .Env.E2EPING_NUM_REQUESTS -}}
|
|
config.e2eping.numRequests = {{ .Env.E2EPING_NUM_REQUESTS }};
|
|
{{ end -}}
|
|
{{ if .Env.E2EPING_MAX_CONFERENCE_SIZE -}}
|
|
config.e2eping.maxConferenceSize = {{ .Env.E2EPING_MAX_CONFERENCE_SIZE }};
|
|
{{ end -}}
|
|
{{ if .Env.E2EPING_MAX_MESSAGE_PER_SECOND -}}
|
|
config.e2eping.maxMessagePerSecond = {{ .Env.E2EPING_MAX_MESSAGE_PER_SECOND }};
|
|
{{ end }}
|