diff --git a/type/__bird_radv/man.rst b/type/__bird_radv/man.rst index 27362aa..819b213 100644 --- a/type/__bird_radv/man.rst +++ b/type/__bird_radv/man.rst @@ -26,18 +26,6 @@ OPTIONAL PARAMETERS mtu An optional MTU setting to include in the router advertisements. -default-preference - This option specifies the Default Router Preference value to advertise to - hosts. Default: medium. - -route-preference - This option specifies the default value of advertised route preference for - specific routes. Default: medium. - -default-lifetime - This option specifies the time (in seconds) how long (since the receipt of RA) - hosts may use the router as a default router. 0 means do not use as a default - router. Default: 3. OPTIONAL MULTIPLE PARAMETERS ---------------------------- diff --git a/type/__bird_radv/manifest b/type/__bird_radv/manifest index ed04028..aee8690 100755 --- a/type/__bird_radv/manifest +++ b/type/__bird_radv/manifest @@ -58,48 +58,27 @@ fi MTU= if [ -f "${__object:?}/parameter/mtu" ]; then - MTU="link mtu $(cat "${__object:?}/parameter/mtu");" -fi - -DEFAULT_PREFERENCE= -if [ -f "${__object:?}/parameter/default-preference" ]; -then - DEFAULT_PREFERENCE="default preference $(cat "${__object:?}/parameter/default-preference");" -fi - -ROUTE_PREFERENCE= -if [ -f "${__object:?}/parameter/route-preference" ]; -then - ROUTE_PREFERENCE="route preference $(cat "${__object:?}/parameter/route-preference");" -fi - -DEFAULT_LIFETIME= -if [ -f "${__object:?}/parameter/default-lifetime" ]; -then - DEFAULT_LIFETIME="default lifetime $(cat "${__object:?}/parameter/default-lifetime");" + MTU="link mtu $(cat "${__object:?}/parameter/mtu")" fi __file "${confdir:?}/radv-${__object_id:?}.conf" \ --mode 0640 --owner root --group bird \ --source - << EOF -ipv6 table radv_routes_${__object_id}; +ipv6 table radv_routes; protocol static { description "Routes advertised via RAs"; - ipv6 { table radv_routes_${__object_id}; }; + ipv6 { table radv_routes; }; $(sed -e 's/^/\troute /' -e 's/$/ unreachable;/' "${__object:?}/parameter/route") } protocol radv ${__object_id:?} { propagate routes ${have_routes:?}; - ipv6 { table radv_routes_${__object_id}; export all; }; + ipv6 { table radv_routes; export all; }; interface "$(cat "${__object:?}/parameter/interface")" { $MTU - $DEFAULT_LIFETIME - $DEFAULT_PREFERENCE - $ROUTE_PREFERENCE }; $RDNS diff --git a/type/__bird_radv/parameter/optional b/type/__bird_radv/parameter/optional index 51058a7..ee48c5c 100644 --- a/type/__bird_radv/parameter/optional +++ b/type/__bird_radv/parameter/optional @@ -1,4 +1 @@ mtu -default-preference -route-preference -default-lifetime diff --git a/type/__jitsi_meet/explorer/configured-memory b/type/__jitsi_meet/explorer/configured-memory deleted file mode 100755 index 658f94b..0000000 --- a/type/__jitsi_meet/explorer/configured-memory +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -eu - -JICOFO="/usr/share/jicofo/jicofo.sh" -VIDEOBRIDGE="/usr/share/jitsi-videobridge/lib/videobridge.rc" - -if [ -f "${JICOFO:?}" ]; then - jicofo_memory="$(grep JICOFO_MAX_MEMORY= "${JICOFO:?}" | cut -d= -f 2 | cut -d ";" -f 1)" -fi -if [ -f "${VIDEOBRIDGE:?}" ]; then - vb_memory="$(grep VIDEOBRIDGE_MAX_MEMORY= "${VIDEOBRIDGE:?}" | cut -d= -f 2)" -fi -cat < COPYING ------- -Copyright \(C) 2022 Evilham. +Copyright \(C) 2021 Evilham. diff --git a/type/__jitsi_meet/manifest b/type/__jitsi_meet/manifest index 5b5a11e..599af18 100755 --- a/type/__jitsi_meet/manifest +++ b/type/__jitsi_meet/manifest @@ -1,6 +1,7 @@ #!/bin/sh -e os="$(cat "${__global}/explorer/os")" +init="$(cat "${__global}/explorer/init")" case "${os}" in devuan|debian) ;; @@ -10,37 +11,10 @@ case "${os}" in ;; esac -current_conferences="$(cat "${__object}/explorer/jitsi-status" | grep -E "^jitsi_conferences[[:space:]]" | cut -d ' ' -f 2)" - -JICOFO_AUTHPASSWORD="$(cat "${__object}/explorer/jicofo-authpassword")" -if [ -z "${JICOFO_AUTHPASSWORD}" ]; then - # This is probably a first time installation, we'll generate the - # password which will be set in debconf by this type - # https://github.com/jitsi/jicofo/blob/aafb61b5363a1c4abdbf08e1444a6276b807993e/debian/postinst#L43 - JICOFO_AUTHPASSWORD="$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 16)" -fi - -ABORT_CONFERENCE_COUNT="$(cat "${__object}/parameter/abort-conference-count")" - -if [ -n "${current_conferences}" ] && [ -n "${ABORT_CONFERENCE_COUNT}" ] && \ - [ "${ABORT_CONFERENCE_COUNT}" -le "${current_conferences}" ]; then - cat <<-EOF -Early bail out was requested when at least ${ABORT_CONFERENCE_COUNT} conferences are taking place. -There are currently ${current_conferences} active conferences. - -Try again at a later time or remove or increase --abort-conference-count - EOF - exit 1 -fi JITSI_HOST="${__target_host}" -if [ -f "${__object}/parameter/jitsi-version" ]; then - # This has been deprecated and will be removed 'soon' - JITSI_VERSION="$(cat "${__object}/parameter/jitsi-version")" -else - # Note this won't be a parameter anymore, we won't let users stay behind - JITSI_VERSION="$(cat "${__type}/files/jitsi-version")" -fi +# Currently unused, see below +# JITSI_VERSION="$(cat "${__object}/parameter/jitsi-version")" TURN_SERVER="$(cat "${__object}/parameter/turn-server")" TURN_SECRET="$(cat "${__object}/parameter/turn-secret")" @@ -48,6 +22,8 @@ if [ -z "${TURN_SERVER}" ]; then TURN_SERVER="${JITSI_HOST}" fi +PROMETHEUS_JITSI_EXPORTER_IS_VERSION="$(cat "${__object}/explorer/prometheus-jitsi-meet-explorer-version")" + # The rest is loosely based on Jitsi's documentation # https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-quickstart @@ -79,12 +55,11 @@ __debconf_set_selections jitsi_meet --line "${DEBCONF_SETTINGS}" export require="${require} __debconf_set_selections/jitsi_meet" # Install and upgrade packages as needed -# NOTE: we are doing version pinning again, but it breaks sometimes when -# the version is not the latest. -# This happens because dependencies might not be properly resolved. -# To avoid this, this type must be maintained up to date. -# If we don't use this, keeping Jitsi's up to date is very difficult. -__package_apt jitsi-meet --version "${JITSI_VERSION}" +__package_apt jitsi-meet +# We are not doing version pinning anymore because it breaks when +# the version is not the latest. +# This happens because dependencies cannot be properly resolved. +# --version "${JITSI_VERSION}" # Proceed only after installation/upgrade has finished export require="__package_apt/jitsi-meet" @@ -149,9 +124,8 @@ require="__directory${NGINX_ETC}/sites-available" __file "${NGINX_ETC}/sites-ava server_names_hash_bucket_size 64; types { -# nginx's default mime.types doesn't include a mapping for wasm or wav. +# nginx's default mime.types doesn't include a mapping for wasm application/wasm wasm; - audio/wav wav; } server { @@ -175,145 +149,95 @@ server { } EOF -# Starting from 2.0.7210, jitsi defines following nginx upstreams -__directory "${NGINX_ETC}/conf.d" --state present -require="__directory${NGINX_ETC}/conf.d" __file "${NGINX_ETC}/conf.d/prosody.conf" \ - --mode 644 \ - --source - << EOF -upstream prosody { - zone upstreams 64K; - server 127.0.0.1:5280; - keepalive 2; -} -EOF -require="__directory${NGINX_ETC}/conf.d" __file "${NGINX_ETC}/conf.d/jvb1.conf" \ - --mode 644 \ - --source - << EOF -upstream jvb1 { - zone upstreams 64K; - server 127.0.0.1:9090; - keepalive 2; -} -EOF - if [ -f "${__object}/parameter/secured-domains" ]; then SECURED_DOMAINS_STATE='present' + SECURED_DOMAINS_STATE_JICOFO='present' else SECURED_DOMAINS_STATE='absent' + SECURED_DOMAINS_STATE_JICOFO='absent' fi -# This is the main host config -PROSODY_MAIN_CONFIG="YES" -# Prosody settings for common components (jvb, focus, ...) -# shellcheck source=type/__jitsi_meet/files/prosody.cfg.lua.sh -. "${__type}/files/prosody.cfg.lua.sh" # This defines PROSODY_CONFIG -__file "/etc/prosody/conf.d/00_jitsi_base.cfg.lua" \ - --group prosody \ - --mode 0440 \ - --source - < +__block jitsi_jicofo_secured_domains \ + --prefix "// begin cdist: jicofo_secured_domains" \ + --suffix "// end cdist: jicofo_secured_domains" \ + --file /etc/jitsi/jicofo/jicofo.conf \ + --state "${SECURED_DOMAINS_STATE_JICOFO}" \ + --text '-' <]*(/external_api.js).!src='\1'!" \ - -e "s!

[^<]*

!

Jitsi Meetings with interpreter

!" \ - -e "s!https://meet.mayfirst.org!/!" \ - -e "s!(style.css|jsi.js)([^?])!\1?v=${jsi_updated_on:?}\2!" \ - /opt/jsi/static/index.html.sample +PROMETHEUS_JITSI_EXPORTER_SHOULD_VERSION="1.1.5" +PROMETHEUS_JITSI_EXPORTER_CHECKSUM="sha256:3ddf43a48d9a2f62be1bc6db9e7ba75d61994f9423e5c5b28be019f41f06f745" +PROMETHEUS_JITSI_EXPORTER_URL="https://github.com/systemli/prometheus-jitsi-meet-exporter/releases/download/${PROMETHEUS_JITSI_EXPORTER_SHOULD_VERSION}/prometheus-jitsi-meet-exporter-linux-amd64" +PROMETHEUS_JITSI_EXPORTER_VERSION_FILE="/usr/local/bin/.prometheus-jitsi-meet-exporter.cdist.version" +if [ ! -f "${__object}/parameter/disable-prometheus-exporter" ]; then + case "${init}" in + init|sysvinit) + __runit + require="__runit" __runit_service \ + prometheus-jitsi-meet-exporter --log --source - <&1 EOF -)" + + export require="__runit_service/prometheus-jitsi-meet-exporter" + JITSI_MEET_EXPORTER_SERVICE="sv %s prometheus-jitsi-meet-exporter" + ;; + systemd) + __systemd_unit prometheus-jitsi-meet-exporter.service \ + --source "-" \ + --enablement-state "enabled" < jitsi-version diff --git a/type/__jitsi_meet_domain/files/config.js.sh b/type/__jitsi_meet_domain/files/config.js.sh index 3c1cf1a..58df3fc 100644 --- a/type/__jitsi_meet_domain/files/config.js.sh +++ b/type/__jitsi_meet_domain/files/config.js.sh @@ -2,31 +2,7 @@ # shellcheck disable=SC2034 # This is intended to be included JITSI_CONFIG_JS="$(cat <. - // NOTE [cdist]: if we use '${DOMAIN}', jicofo won't start the meeting - authdomain: '${JITSI_HOST}', + // authdomain: '${JITSI_HOST}', // Focus component domain. Defaults to focus.. - focus: 'focus.${JITSI_HOST}', + // focus: 'focus.${JITSI_HOST}', // XMPP MUC domain. FIXME: use XEP-0030 to discover it. - muc: 'conference.${DOMAIN}' + muc: 'conference.${JITSI_HOST}' }, // BOSH URL. FIXME: use XEP-0156 to discover it. @@ -56,12 +37,12 @@ var config = { bosh: '///http-bind', // Websocket URL - // websocket: 'wss://${DOMAIN}/xmpp-websocket', + // websocket: 'wss://${JITSI_HOST}/xmpp-websocket', // The real JID of focus participant - can be overridden here // Do not change username - FIXME: Make focus username configurable // https://github.com/jitsi/jitsi-meet/issues/7376 - focusUserJid: 'focus@auth.${JITSI_HOST}', + // focusUserJid: 'focus@auth.${JITSI_HOST}', // Testing / experimental features. @@ -72,24 +53,43 @@ var config = { // issues related to insertable streams. // disableE2EE: false, + // Enables/disables thumbnail reordering in the filmstrip. It is enabled by default unless explicitly + // disabled by the below option. + // enableThumbnailReordering: true, + // Enables XMPP WebSocket (as opposed to BOSH) for the given amount of users. - // mobileXmppWsThreshold: 10, // enable XMPP WebSockets on mobile for 10% of the users + // mobileXmppWsThreshold: 10 // enable XMPP WebSockets on mobile for 10% of the users // P2P test mode disables automatic switching to P2P when there are 2 // participants in the conference. // p2pTestMode: false, // Enables the test specific features consumed by jitsi-meet-torture - // testMode: false, + // testMode: false // Disables the auto-play behavior of *all* newly created video element. // This is useful when the client runs on a host with limited resources. - // noAutoPlayVideo: false, + // noAutoPlayVideo: false + + // Enable / disable 500 Kbps bitrate cap on desktop tracks. When enabled, + // simulcast is turned off for the desktop share. If presenter is turned + // on while screensharing is in progress, the max bitrate is automatically + // adjusted to 2.5 Mbps. This takes a value between 0 and 1 which determines + // the probability for this to be enabled. This setting has been deprecated. + // desktopSharingFrameRate.max now determines whether simulcast will be enabled + // or disabled for the screenshare. + // capScreenshareBitrate: 1 // 0 to disable - deprecated. // Enable callstats only for a percentage of users. // This takes a value between 0 and 100 which determines the probability for // the callstats to be enabled. - // callStatsThreshold: 5, // enable callstats for 5% of the users. + // callStatsThreshold: 5 // enable callstats for 5% of the users. + }, + + // Feature Flags. + flags: { + // Enables source names in the signaling. + // sourceNameSignaling: false, }, // Disables moderator indicators. @@ -118,7 +118,7 @@ var config = { // Can be either 'recording' - screensharing screenshots are taken // only when the recording is also on, // or 'always' - screensharing screenshots are always taken. - // mode: 'recording', + // mode: 'recording' // } // Disables ICE/UDP by filtering out local and remote UDP candidates in @@ -140,7 +140,6 @@ var config = { // Disable measuring of audio levels. disableAudioLevels: $(if [ -n "${DISABLE_AUDIO_LEVELS}" ]; then printf "true"; else printf "false"; fi), - // audioLevelsInterval: 200, // Enabling this will run the lib-jitsi-meet no audio detection module which @@ -176,19 +175,16 @@ var config = { // Enabling it (with #params) will disable local audio output of remote // participants and to enable it back a reload is needed. - // startSilent: false, + // startSilent: false // Enables support for opus-red (redundancy for Opus). // enableOpusRed: false, // Specify audio quality stereo and opusMaxAverageBitrate values in order to enable HD audio. // Beware, by doing so, you are disabling echo cancellation, noise suppression and AGC. - // Specify enableOpusDtx to enable support for opus-dtx where - // audio packets won’t be transmitted while participant is silent or muted. // audioQuality: { // stereo: false, - // opusMaxAverageBitrate: null, // Value to fit the 6000 to 510000 range. - // enableOpusDtx: false, + // opusMaxAverageBitrate: null // Value to fit the 6000 to 510000 range. // }, // Video @@ -199,35 +195,15 @@ var config = { // Specifies whether the raised hand will hide when someone becomes a dominant speaker or not // disableRemoveRaisedHandOnFocus: false, - // speakerStats: { - // // Specifies whether the speaker stats is enable or not. - // disabled: false, - - // // Specifies whether there will be a search field in speaker stats or not. - // disableSearch: false, - - // // Specifies whether participants in speaker stats should be ordered or not, and with what priority. - // // 'role', <- Moderators on top. - // // 'name', <- Alphabetically by name. - // // 'hasLeft', <- The ones that have left in the bottom. - // order: [ - // 'role', - // 'name', - // 'hasLeft', - // ], - // }, - - // DEPRECATED. Please use speakerStats.disableSearch instead. // Specifies whether there will be a search field in speaker stats or not // disableSpeakerStatsSearch: false, - // DEPRECATED. Please use speakerStats.order . // Specifies whether participants in speaker stats should be ordered or not, and with what priority // speakerStatsOrder: [ // 'role', <- Moderators on top // 'name', <- Alphabetically by name // 'hasLeft', <- The ones that have left in the bottom - // ], <- the order of the array elements determines priority + // ] <- the order of the array elements determines priority // How many participants while in the tile view mode, before the receiving video quality is reduced from HD to SD. // Use -1 to disable. @@ -243,9 +219,9 @@ var config = { // height: { // ideal: 720, // max: 720, - // min: 240, - // }, - // }, + // min: 240 + // } + // } // }, $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) @@ -265,12 +241,23 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // applied locally. FIXME: having these 2 options is confusing. // startWithVideoMuted: false, + // If set to true, prefer to use the H.264 video codec (if supported). + // Note that it's not recommended to do this because simulcast is not + // supported when using H.264. For 1-to-1 calls this setting is enabled by + // default and can be toggled in the p2p section. + // This option has been deprecated, use preferredCodec under videoQuality section instead. + // preferH264: true, + + // If set to true, disable H.264 video codec by stripping it out of the + // SDP. + // disableH264: false, + // Desktop sharing // Optional desktop sharing frame rate options. Default value: min:5, max:5. // desktopSharingFrameRate: { // min: 5, - // max: 5, + // max: 5 // }, // This option has been deprecated since it is no longer supported as per the w3c spec. @@ -282,115 +269,49 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // Recording - // DEPRECATED. Use recordingService.enabled instead. + // Whether to enable file recording or not. // fileRecordingsEnabled: false, - // Enable the dropbox integration. // dropbox: { - // appKey: '', // Specify your app key here. + // appKey: '' // Specify your app key here. // // A URL to redirect the user to, after authenticating // // by default uses: - // // 'https://${DOMAIN}/static/oauth.html' + // // 'https://${JITSI_HOST}/static/oauth.html' // redirectURI: - // 'https://${DOMAIN}/subfolder/static/oauth.html', + // 'https://${JITSI_HOST}/subfolder/static/oauth.html' // }, - - // recordingService: { - // // When integrations like dropbox are enabled only that will be shown, - // // by enabling fileRecordingsServiceEnabled, we show both the integrations - // // and the generic recording service (its configuration and storage type - // // depends on jibri configuration) - // enabled: false, - - // // Whether to show the possibility to share file recording with other people - // // (e.g. meeting participants), based on the actual implementation - // // on the backend. - // sharingEnabled: false, - - // // Hide the warning that says we only store the recording for 24 hours. - // hideStorageWarning: false, - // }, - - // DEPRECATED. Use recordingService.enabled instead. + // When integrations like dropbox are enabled only that will be shown, + // by enabling fileRecordingsServiceEnabled, we show both the integrations + // and the generic recording service (its configuration and storage type + // depends on jibri configuration) // fileRecordingsServiceEnabled: false, - - // DEPRECATED. Use recordingService.sharingEnabled instead. + // Whether to show the possibility to share file recording with other people + // (e.g. meeting participants), based on the actual implementation + // on the backend. // fileRecordingsServiceSharingEnabled: false, - // Local recording configuration. - // localRecording: { - // // Whether to disable local recording or not. - // disable: false, - - // // Whether to notify all participants when a participant is recording locally. - // notifyAllParticipants: false, - - // // Whether to disable the self recording feature (only local participant streams). - // disableSelfRecording: false, - // }, - - // Customize the Live Streaming dialog. Can be modified for a non-YouTube provider. - // liveStreaming: { - // // Whether to enable live streaming or not. - // enabled: false, - // // Terms link - // termsLink: 'https://www.youtube.com/t/terms', - // // Data privacy link - // dataPrivacyLink: 'https://policies.google.com/privacy', - // // RegExp string that validates the stream key input field - // validatorRegExpString: '^(?:[a-zA-Z0-9]{4}(?:-(?!$)|$)){4}', - // // Documentation reference for the live streaming feature. - // helpLink: 'https://jitsi.org/live' - // }, - - // DEPRECATED. Use liveStreaming.enabled instead. + // Whether to enable live streaming or not. // liveStreamingEnabled: false, - // DEPRECATED. Use transcription.enabled instead. + // Transcription (in interface_config, + // subtitles and buttons can be configured) // transcribingEnabled: false, - // DEPRECATED. Use transcription.useAppLanguage instead. + // If true transcriber will use the application language. + // The application language is either explicitly set by participants in their settings or automatically + // detected based on the environment, e.g. if the app is opened in a chrome instance which is using french as its + // default language then transcriptions for that participant will be in french. + // Defaults to true. // transcribeWithAppLanguage: true, - // DEPRECATED. Use transcription.preferredLanguage instead. + // Transcriber language. This settings will only work if "transcribeWithAppLanguage" is explicitly set to false. + // Available languages can be found in + // ./src/react/features/transcribing/transcriber-langs.json. // preferredTranscribeLanguage: 'en-US', - // DEPRECATED. Use transcription.autoCaptionOnRecord instead. + // Enables automatic turning on captions when recording is started // autoCaptionOnRecord: false, - // Transcription options. - // transcription: { - // // Whether the feature should be enabled or not. - // enabled: false, - - // // Translation languages. - // // Available languages can be found in - // // ./src/react/features/transcribing/translation-languages.json. - // translationLanguages: ['en', 'es', 'fr', 'ro'], - - // // Important languages to show on the top of the language list. - // translationLanguagesHead: ['en'], - - // // If true transcriber will use the application language. - // // The application language is either explicitly set by participants in their settings or automatically - // // detected based on the environment, e.g. if the app is opened in a chrome instance which - // // is using french as its default language then transcriptions for that participant will be in french. - // // Defaults to true. - // useAppLanguage: true, - - // // Transcriber language. This settings will only work if "useAppLanguage" - // // is explicitly set to false. - // // Available languages can be found in - // // ./src/react/features/transcribing/transcriber-langs.json. - // preferredLanguage: 'en-US', - - // // Disable start transcription for all participants. - // disableStartForAll: false, - - // // Enables automatic turning on captions when recording is started - // autoCaptionOnRecord: false, - // }, - // Misc // Default value for the channel "last N" attribute. -1 for unlimited. @@ -423,9 +344,15 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // 30: 15, // 50: 10, // 70: 5, - // 90: 2, + // 90: 2 // }, + // Provides a way to translate the legacy bridge signaling messages, 'LastNChangedEvent', + // 'SelectedEndpointsChangedEvent' and 'ReceiverVideoConstraint' into the new 'ReceiverVideoConstraints' message + // that invokes the new bandwidth allocation algorithm in the bridge which is described here + // - https://github.com/jitsi/jitsi-videobridge/blob/master/doc/allocation.md. + // useNewBandwidthAllocationStrategy: false, + // Specify the settings for video quality optimizations on the client. // videoQuality: { // // Provides a way to prevent a video codec from being negotiated on the JVB connection. The codec specified @@ -446,7 +373,7 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // // This will result in Safari not being able to decode video from endpoints sending VP9 video. // // When set to false, the conference falls back to VP8 whenever there is an endpoint that doesn't support the // // preferred codec and goes back to the preferred codec when that endpoint leaves. - // enforcePreferredCodec: false, + // // enforcePreferredCodec: false, // // // Provides a way to configure the maximum bitrates that will be enforced on the simulcast streams for // // video tracks. The keys in the object represent the type of the stream (LD, SD or HD) and the values @@ -457,18 +384,18 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // H264: { // low: 200000, // standard: 500000, - // high: 1500000, + // high: 1500000 // }, // VP8 : { // low: 200000, // standard: 500000, - // high: 1500000, + // high: 1500000 // }, // VP9: { // low: 100000, // standard: 300000, - // high: 1200000, - // }, + // high: 1200000 + // } // }, // // // The options can be used to override default thresholds of video thumbnail heights corresponding to @@ -483,16 +410,19 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // // the high quality. // minHeightForQualityLvl: { // 360: 'standard', - // 720: 'high', + // 720: 'high' // }, // + // // Provides a way to resize the desktop track to 720p (if it is greater than 720p) before creating a canvas + // // for the presenter mode (camera picture-in-picture mode with screenshare). + // resizeDesktopForPresenter: false // }, // Notification timeouts // notificationTimeouts: { // short: 2500, // medium: 5000, - // long: 10000, + // long: 10000 // }, // // Options for the recording limit notification. @@ -507,7 +437,7 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // appName: 'Unlimited recordings APP', // // // The URL of the app with unlimited recordings. - // appURL: 'https://unlimited.recordings.app.com/', + // appURL: 'https://unlimited.recordings.app.com/' // }, // Disables or enables RTX (RFC 4588) (defaults to false). @@ -550,18 +480,12 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // Disables responsive tiles. // disableResponsiveTiles: false, - // DEPRECATED. Please use \`securityUi?.hideLobbyButton\` instead. - // Hides lobby button. + // Hides lobby button // hideLobbyButton: false, - // DEPRECATED. Please use \`lobby?.autoKnock\` instead. // If Lobby is enabled starts knocking automatically. // autoKnockLobby: false, - // DEPRECATED. Please use \`lobby?.enableChat\` instead. - // Enable lobby chat. - // enableLobbyChat: true, - // DEPRECATED! Use \`breakoutRooms.hideAddRoomButton\` instead. // Hides add breakout room button // hideAddRoomButton: false, @@ -569,35 +493,9 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // Require users to always specify a display name. // requireDisplayName: true, - // DEPRECATED! Use 'welcomePage.disabled' instead. // Whether to use a welcome page or not. In case it's false a random room // will be joined when no room is specified. - // enableWelcomePage: true, - - // Configs for welcome page. - // welcomePage: { - // // Whether to disable welcome page. In case it's disabled a random room - // // will be joined when no room is specified. - // disabled: false, - // // If set,landing page will redirect to this URL. - // customUrl: '' - // }, - - // Configs for the lobby screen. - // lobby { - // // If Lobby is enabled, it starts knocking automatically. Replaces \`autoKnockLobby\`. - // autoKnock: false, - // // Enables the lobby chat. Replaces \`enableLobbyChat\`. - // enableChat: true, - // }, - - // Configs for the security related UI elements. - // securityUi: { - // // Hides the lobby button. Replaces \`hideLobbyButton\`. - // hideLobbyButton: false, - // // Hides the possibility to set and enter a lobby password. - // disableLobbyPassword: false, - // }, + enableWelcomePage: true, // Disable app shortcuts that are registered upon joining a conference // disableShortcuts: false, @@ -627,7 +525,7 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // Hides the dominant speaker name badge that hovers above the toolbox // hideDominantSpeakerBadge: false, - // Default language for the user interface. Cannot be overwritten. + // Default language for the user interface. defaultLanguage: '${DEFAULT_LANGUAGE}', // Disables profile and the edit of all fields from the profile settings (display name and email) @@ -636,9 +534,12 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // Hides the email section under profile settings. // hideEmailInSettings: false, + // Whether or not some features are checked based on token. + // enableFeaturesBasedOnToken: false, + // When enabled the password used for locking a room is restricted to up to the number of digits specified - // default: roomPasswordNumberOfDigits: false, // roomPasswordNumberOfDigits: 10, + // default: roomPasswordNumberOfDigits: false, // Message to show the users. Example: 'The service will be down for // maintenance at 01:00 AM GMT, @@ -653,16 +554,12 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // // When 'true', it shows an intermediate page before joining, where the user can configure their devices. // // This replaces \`prejoinPageEnabled\`. // enabled: true, - // // Hides the participant name editing field in the prejoin screen. - // // If requireDisplayName is also set as true, a name should still be provided through - // // either the jwt or the userInfo from the iframe api init object in order for this to have an effect. - // hideDisplayName: false, // // List of buttons to hide from the extra join options dropdown. - // hideExtraJoinButtons: ['no-audio', 'by-phone'], + // hideExtraJoinButtons: ['no-audio', 'by-phone'] // }, // When 'true', the user cannot edit the display name. - // (Mainly useful when used in conjunction with the JWT so the JWT name becomes read only.) + // (Mainly useful when used in conjuction with the JWT so the JWT name becomes read only.) // readOnlyName: false, // If etherpad integration is enabled, setting this to true will @@ -684,17 +581,8 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // Array with avatar URL prefixes that need to use CORS. // corsAvatarURLs: [ 'https://www.gravatar.com/avatar/' ], - // Base URL for a Gravatar-compatible service. Defaults to Gravatar. - // DEPRECATED! Use \`gravatar.baseUrl\` instead. - // gravatarBaseURL: 'https://www.gravatar.com/avatar/', - - // Setup for Gravatar-compatible services. - // gravatar: { - // // Defaults to Gravatar. - // baseUrl: 'https://www.gravatar.com/avatar/', - // // True if Gravatar should be disabled. - // disabled: false, - // }, + // Base URL for a Gravatar-compatible service. Defaults to libravatar. + // gravatarBaseURL: 'https://seccdn.libravatar.org/avatar/', // App name to be displayed in the invitation email subject, as an alternative to // interfaceConfig.APP_NAME. @@ -724,12 +612,11 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // 'fullscreen', // 'hangup', // 'help', - // 'highlight', // 'invite', - // 'linktosalesforce', // 'livestreaming', // 'microphone', - // 'noisesuppression', + // 'mute-everyone', + // 'mute-video-everyone', // 'participants-pane', // 'profile', // 'raisehand', @@ -744,22 +631,20 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // 'tileview', // 'toggle-camera', // 'videoquality', - // 'whiteboard', + // '__end' // ], // Holds values related to toolbar visibility control. // toolbarConfig: { // // Moved from interfaceConfig.INITIAL_TOOLBAR_TIMEOUT - // // The initial number of milliseconds for the toolbar buttons to be visible on screen. + // // The initial numer of miliseconds for the toolbar buttons to be visible on screen. // initialTimeout: 20000, // // Moved from interfaceConfig.TOOLBAR_TIMEOUT - // // Number of milliseconds for the toolbar buttons to be visible on screen. + // // Number of miliseconds for the toolbar buttons to be visible on screen. // timeout: 4000, // // Moved from interfaceConfig.TOOLBAR_ALWAYS_VISIBLE - // // Whether toolbar should be always visible or should hide after x milliseconds. - // alwaysVisible: false, - // // Indicates whether the toolbar should still autohide when chat is open - // autoHideWhileChatIsOpen: false, + // // Whether toolbar should be always visible or should hide after x miliseconds. + // alwaysVisible: false // }, // Toolbar buttons which have their click/tap event exposed through the API on @@ -780,13 +665,11 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // 'desktop', // 'download', // 'embedmeeting', - // 'end-meeting', // 'etherpad', // 'feedback', // 'filmstrip', // 'fullscreen', // 'hangup', - // 'hangup-menu', // 'help', // { // key: 'invite', @@ -796,7 +679,6 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // 'microphone', // 'mute-everyone', // 'mute-video-everyone', - // 'noisesuppression', // 'participants-pane', // 'profile', // { @@ -818,22 +700,14 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // { // key: 'add-passcode', // preventExecution: false - // }, - // 'whiteboard', + // } + // '__end' // ], // List of pre meeting screens buttons to hide. The values must be one or more of the 5 allowed buttons: // 'microphone', 'camera', 'select-background', 'invite', 'settings' // hiddenPremeetingButtons: [], - // An array with custom option buttons for the participant context menu - // type: Array<{ icon: string; id: string; text: string; }> - // customParticipantMenuButtons: [], - - // An array with custom option buttons for the toolbar - // type: Array<{ icon: string; id: string; text: string; }> - // customToolbarButtons: [], - // Stats // @@ -850,7 +724,6 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // Application ID and Secret. // callStatsID: '', // callStatsSecret: '', - // callStatsApplicationLogsDisabled: false, // The callstats initialize config params as described in the API: // https://docs.callstats.io/docs/javascript#callstatsinitialize-with-app-secret @@ -868,10 +741,10 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // pbxID: "PBX Identifier. Example, walmart.", // pbxExtensionID: "PBX Extension Identifier. Example, 5625.", // fqExtensionID: "Fully qualified Extension Identifier. Example, +71 (US) +5625.", - // sessionID: "Session Identifier. Example, session-12-34", + // sessionID: "Session Identifier. Example, session-12-34" // }, // collectLegacyStats: true, //enables the collection of legacy stats in chrome browser - // collectIP: true, //enables the collection localIP address + // collectIP: true //enables the collection localIP address // }, // Enables sending participants' display names to callstats @@ -880,25 +753,11 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // Enables sending participants' emails (if available) to callstats and other analytics // enableEmailInStats: false, - // faceLandmarks: { - // // Enables sharing your face coordinates. Used for centering faces within a video. - // enableFaceCentering: false, + // Enables detecting faces of participants and get their expression and send it to other participants + // enableFacialRecognition: true, - // // Enables detecting face expressions and sharing data with other participants - // enableFaceExpressionsDetection: false, - - // // Enables displaying face expressions in speaker stats - // enableDisplayFaceExpressions: false, - - // // Enable rtc stats for face landmarks - // enableRTCStats: false, - - // // Minimum required face movement percentage threshold for sending new face centering coordinates data. - // faceCenteringThreshold: 10, - - // // Milliseconds for processing a new image capture in order to detect face coordinates if they exist. - // captureInterval: 1000, - // }, + // Enables displaying facial expressions in speaker stats + // enableDisplayFacialExpressions: true, // Controls the percentage of automatic feedback shown to participants when callstats is enabled. // The default value is 100%. If set to 0, no automatic feedback will be requested @@ -936,10 +795,18 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // If not set, the effective value is 'all'. // iceTransportPolicy: 'all', + // If set to true, it will prefer to use H.264 for P2P calls (if H.264 + // is supported). This setting is deprecated, use preferredCodec instead. + // preferH264: true, + // Provides a way to set the video codec preference on the p2p connection. Acceptable // codec values are 'VP8', 'VP9' and 'H264'. // preferredCodec: 'H264', + // If set to true, disable H.264 video codec by stripping it out of the + // SDP. This setting is deprecated, use disabledCodec instead. + // disableH264: false, + // Provides a way to prevent a video codec from being negotiated on the p2p connection. // disabledCodec: '', @@ -951,28 +818,23 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) stunServers: [ // { urls: 'stun:jitsi-meet.example.com:3478' }, - { urls: 'stun:${TURN_SERVER}:443' }, - ], + { urls: 'stun:${TURN_SERVER}:443' } + ] }, analytics: { -${ANALYTICS_SETTINGS} // True if the analytics should be disabled // disabled: false, // The Google Analytics Tracking ID: - // googleAnalyticsTrackingId: 'your-tracking-id-UA-123456-1', + // googleAnalyticsTrackingId: 'your-tracking-id-UA-123456-1' // Matomo configuration: // matomoEndpoint: 'https://your-matomo-endpoint/', // matomoSiteID: '42', // The Amplitude APP Key: - // amplitudeAPPKey: '', - - // Obfuscates room name sent to analytics (amplitude, rtcstats) - // Default value is false. - // obfuscateRoomName: false, + // amplitudeAPPKey: '' // Configuration for the rtcstats server: // By enabling rtcstats server every time a conference is joined the rtcstats @@ -980,24 +842,19 @@ ${ANALYTICS_SETTINGS} // PeerConnection states along with getStats metrics polled at the specified // interval. // rtcstatsEnabled: false, - // rtcstatsStoreLogs: false, // In order to enable rtcstats one needs to provide a endpoint url. // rtcstatsEndpoint: wss://rtcstats-server-pilot.jitsi.net/, - // The interval at which rtcstats will poll getStats, defaults to 10000ms. + // The interval at which rtcstats will poll getStats, defaults to 1000ms. // If the value is set to 0 getStats won't be polled and the rtcstats client // will only send data related to RTCPeerConnection events. - // rtcstatsPollInterval: 10000, - - // This determines if rtcstats sends the SDP to the rtcstats server or replaces - // all SDPs with an empty string instead. - // rtcstatsSendSdp: false, + // rtcstatsPolIInterval: 1000, // Array of script URLs to load as lib-jitsi-meet "analytics handlers". // scriptURLs: [ // "libs/analytics-ga.min.js", // google-analytics - // "https://example.com/my-custom-analytics.js", + // "https://example.com/my-custom-analytics.js" // ], }, @@ -1006,11 +863,11 @@ ${ANALYTICS_SETTINGS} // Information about the jitsi-meet instance we are connecting to, including // the user region as seen by the server. - // deploymentInfo: { - // shard: "shard1", - // region: "europe", - // userRegion: "asia", - // }, + deploymentInfo: { + // shard: "shard1", + // region: "europe", + // userRegion: "asia" + }, // Array of disabled sounds. // Possible values: @@ -1053,42 +910,49 @@ ${ANALYTICS_SETTINGS} // chromeExtensionBanner: { // // The chrome extension to be installed address // url: 'https://chrome.google.com/webstore/detail/jitsi-meetings/kglhbbefdnlheedjiejgomgmfplipfeb', - // edgeUrl: 'https://microsoftedge.microsoft.com/addons/detail/jitsi-meetings/eeecajlpbgjppibfledfihobcabccihn', // // Extensions info which allows checking if they are installed or not // chromeExtensionsInfo: [ // { // id: 'kglhbbefdnlheedjiejgomgmfplipfeb', - // path: 'jitsi-logo-48x48.png', - // }, - // // Edge extension info - // { - // id: 'eeecajlpbgjppibfledfihobcabccihn', - // path: 'jitsi-logo-48x48.png', - // }, + // path: 'jitsi-logo-48x48.png' + // } // ] // }, + // Local Recording + // + + // localRecording: { + // Enables local recording. + // Additionally, 'localrecording' (all lowercase) needs to be added to + // the \`toolbarButtons\`-array for the Local Recording button to show up + // on the toolbar. + // + // enabled: true, + // + + // The recording format, can be one of 'ogg', 'flac' or 'wav'. + // format: 'flac' + // + + // }, // e2ee: { // labels, - // externallyManagedKey: false, + // externallyManagedKey: false // }, // Options related to end-to-end (participant to participant) ping. // e2eping: { - // // Whether ene-to-end pings should be enabled. - // enabled: false, + // // The interval in milliseconds at which pings will be sent. + // // Defaults to 10000, set to <= 0 to disable. + // pingInterval: 10000, // - // // The number of responses to wait for. - // numRequests: 5, - // - // // The max conference size in which e2e pings will be sent. - // maxConferenceSize: 200, - // - // // The maximum number of e2e ping messages per second for the whole conference to aim for. - // // This is used to control the pacing of messages in order to reduce the load on the backend. - // maxMessagesPerSecond: 250, - // }, + // // The interval in milliseconds at which analytics events + // // with the measured RTT will be sent. Defaults to 60000, set + // // to <= 0 to disable. + // analyticsInterval: 60000, + // }, // If set, will attempt to use the provided video input device label when // triggering a screenshare, instead of proceeding through the normal flow @@ -1097,64 +961,10 @@ ${ANALYTICS_SETTINGS} // use only. // _desktopSharingSourceDevice: 'sample-id-or-label', - // DEPRECATED! Use deeplinking.disabled instead. // If true, any checks to handoff to another application will be prevented // and instead the app will continue to display in the current browser. // disableDeepLinking: false, - // The deeplinking config. - // For information about the properties of - // deeplinking.[ios/android].dynamicLink check: - // https://firebase.google.com/docs/dynamic-links/create-manually - // deeplinking: { - // - // // The desktop deeplinking config. - // desktop: { - // appName: 'Jitsi Meet' - // }, - // // If true, any checks to handoff to another application will be prevented - // // and instead the app will continue to display in the current browser. - // disabled: false, - - // // whether to hide the logo on the deep linking pages. - // hideLogo: false, - - // // The ios deeplinking config. - // ios: { - // appName: 'Jitsi Meet', - // // Specify mobile app scheme for opening the app from the mobile browser. - // appScheme: 'org.jitsi.meet', - // // Custom URL for downloading ios mobile app. - // downloadLink: 'https://itunes.apple.com/us/app/jitsi-meet/id1165103905', - // dynamicLink: { - // apn: 'org.jitsi.meet', - // appCode: 'w2atb', - // customDomain: undefined, - // ibi: 'com.atlassian.JitsiMeet.ios', - // isi: '1165103905' - // } - // }, - - // // The android deeplinking config. - // android: { - // appName: 'Jitsi Meet', - // // Specify mobile app scheme for opening the app from the mobile browser. - // appScheme: 'org.jitsi.meet', - // // Custom URL for downloading android mobile app. - // downloadLink: 'https://play.google.com/store/apps/details?id=org.jitsi.meet', - // // Android app package name. - // appPackage: 'org.jitsi.meet', - // fDroidUrl: 'https://f-droid.org/en/packages/org.jitsi.meet/', - // dynamicLink: { - // apn: 'org.jitsi.meet', - // appCode: 'w2atb', - // customDomain: undefined, - // ibi: 'com.atlassian.JitsiMeet.ios', - // isi: '1165103905' - // } - // } - // }, - // A property to disable the right click context menu for localVideo // the menu has option to flip the locally seen video for local presentations // disableLocalVideoFlip: false, @@ -1168,8 +978,7 @@ ${ANALYTICS_SETTINGS} // Disables all invite functions from the app (share, invite, dial out...etc) // disableInviteFunctions: true, - // Disables storing the room name to the recents list. When in an iframe this is ignored and - // the room is never stored in the recents list. + // Disables storing the room name to the recents list // doNotStoreRoom: true, // Deployment specific URLs. @@ -1179,35 +988,22 @@ ${ANALYTICS_SETTINGS} // userDocumentationURL: 'https://docs.example.com/video-meetings.html', // // If specified a 'Download our apps' button will be displayed in the overflow menu with a link // // to the specified URL for an app download page. - // downloadAppsUrl: 'https://docs.example.com/our-apps.html', + // downloadAppsUrl: 'https://docs.example.com/our-apps.html' // }, // Options related to the remote participant menu. // remoteVideoMenu: { - // // Whether the remote video context menu to be rendered or not. - // disabled: true, // // If set to true the 'Kick out' button will be disabled. // disableKick: true, // // If set to true the 'Grant moderator' button will be disabled. - // disableGrantModerator: true, - // // If set to true the 'Send private message' button will be disabled. - // disablePrivateChat: true, + // disableGrantModerator: true // }, - // Endpoint that enables support for salesforce integration with in-meeting resource linking - // This is required for: - // listing the most recent records - salesforceUrl/records/recents - // searching records - salesforceUrl/records?text=\${text} - // retrieving record details - salesforceUrl/records/\${id}?type=\${type} - // and linking the meeting - salesforceUrl/sessions/\${sessionId}/records/\${id} - // - // salesforceUrl: 'https://api.example.com/', - // If set to true all muting operations of remote participants will be disabled. // disableRemoteMute: true, // Enables support for lip-sync for this client (if the browser supports it). - // enableLipSync: false, + // enableLipSync: false /** External API url used to receive branding specific information. @@ -1236,7 +1032,7 @@ ${ANALYTICS_SETTINGS} // For a list of all possible theme tokens and their current defaults, please check: // https://github.com/jitsi/jitsi-meet/tree/master/resources/custom-theme/custom-theme.json // For a short explanations on each of the tokens, please check: - // https://github.com/jitsi/jitsi-meet/blob/master/react/features/base/ui/Tokens.ts + // https://github.com/jitsi/jitsi-meet/blob/master/react/features/base/ui/Tokens.js // IMPORTANT!: This is work in progress so many of the various tokens are not yet applied in code // or they are partially applied. customTheme: { @@ -1250,15 +1046,15 @@ ${ANALYTICS_SETTINGS} field02Hover: 'red', action01: 'green', action01Hover: 'lightgreen', - disabled01: 'beige', + action02Disabled: 'beige', success02: 'cadetblue', - action02Hover: 'aliceblue', + action02Hover: 'aliceblue' }, typography: { labelRegular: { fontSize: 25, lineHeight: 30, - fontWeight: 500, + fontWeight: 500 } } } @@ -1266,24 +1062,12 @@ ${ANALYTICS_SETTINGS} */ dynamicBrandingUrl: "${DYNAMIC_BRANDING_URL}", - // Options related to the participants pane. - // participantsPane: { - // // Hides the moderator settings tab. - // hideModeratorSettingsTab: false, - // // Hides the more actions button. - // hideMoreActionsButton: false, - // // Hides the mute all button. - // hideMuteAllButton: false, - // }, - // Options related to the breakout rooms feature. // breakoutRooms: { // // Hides the add breakout room button. This replaces \`hideAddRoomButton\`. // hideAddRoomButton: false, - // // Hides the auto assign participants button. - // hideAutoAssignButton: false, // // Hides the join breakout room button. - // hideJoinRoomButton: false, + // hideJoinRoomButton: false // }, // When true the user cannot add more images to be used as virtual background. @@ -1312,7 +1096,7 @@ ${ANALYTICS_SETTINGS} // If a label's id is not in any of the 2 arrays, it will not be visible at all on the header. // conferenceInfo: { // // those labels will not be hidden in tandem with the toolbox. - // alwaysVisible: ['recording', 'raised-hands-count'], + // alwaysVisible: ['recording', 'local-recording', 'raised-hands-count'], // // those labels will be auto-hidden in tandem with the toolbox buttons. // autoHide: [ // 'subject', @@ -1321,9 +1105,7 @@ ${ANALYTICS_SETTINGS} // 'e2ee', // 'transcribing', // 'video-quality', - // 'insecure-room', - // 'highlight-moment', - // 'top-panel-toggle', + // 'insecure-room' // ] // }, @@ -1350,28 +1132,23 @@ ${ANALYTICS_SETTINGS} // is not persisting the local storage inside the iframe. // useHostPageLocalStorage: true, - // Etherpad ("shared document") integration. + // etherpad ("shared document") integration. // + // If set, add a "Open shared document" link to the bottom right menu that // will open an etherpad document. // etherpad_base: 'https://your-etherpad-installati.on/p/', - // To enable information about dial-in access to meetings you need to provide - // dialInNumbersUrl and dialInConfCodeUrl. - // dialInNumbersUrl returns a json array of numbers that can be used for dial-in. - // {"countryCode":"US","tollFree":false,"formattedNumber":"+1 123-456-7890"} - // dialInConfCodeUrl is the conference mapper converting a meeting id to a PIN used for dial-in - // or the other way around (more info in resources/cloud-api.swagger) - // List of undocumented settings used in jitsi-meet /** _immediateReloadThreshold debug debugAudioLevels deploymentInfo + dialInConfCodeUrl + dialInNumbersUrl dialOutAuthUrl dialOutCodesUrl - dialOutRegionUrl disableRemoteControl displayJids externalConnectUrl @@ -1454,6 +1231,7 @@ ${ANALYTICS_SETTINGS} // 'liveStreaming.unavailableTitle', // shown when livestreaming service is not reachable // 'lobby.joinRejectedMessage', // shown when while in a lobby, user's request to join is rejected // 'lobby.notificationTitle', // shown when lobby is toggled and when join requests are allowed / denied + // 'localRecording.localRecording', // shown when a local recording is started // 'notify.chatMessages', // shown when receiving chat messages while the chat window is closed // 'notify.disconnected', // shown when a participant has left // 'notify.connectedOneMember', // show when a participant joined @@ -1463,12 +1241,10 @@ ${ANALYTICS_SETTINGS} // 'notify.leftTwoMembers', // show when two participants left simultaneously // 'notify.leftThreePlusMembers', // show when more than 2 participants left simultaneously // 'notify.grantedTo', // shown when moderator rights were granted to a participant - // 'notify.hostAskedUnmute', // shown to participant when host asks them to unmute // 'notify.invitedOneMember', // shown when 1 participant has been invited // 'notify.invitedThreePlusMembers', // shown when 3+ participants have been invited // 'notify.invitedTwoMembers', // shown when 2 participants have been invited // 'notify.kickParticipant', // shown when a participant is kicked - // 'notify.linkToSalesforce', // shown when joining a meeting with salesforce integration // 'notify.moderationStartedTitle', // shown when AV moderation is activated // 'notify.moderationStoppedTitle', // shown when AV moderation is deactivated // 'notify.moderationInEffectTitle', // shown when user attempts to unmute audio during AV moderation @@ -1484,7 +1260,6 @@ ${ANALYTICS_SETTINGS} // 'notify.raisedHand', // shown when a partcipant used raise hand, // 'notify.startSilentTitle', // shown when user joined with no audio // 'notify.unmute', // shown to moderator when user raises hand during AV moderation - // 'notify.videoMutedRemotelyTitle', // shown when user's video is muted by a remote party, // 'prejoin.errorDialOut', // 'prejoin.errorDialOutDisconnected', // 'prejoin.errorDialOutFailed', @@ -1497,12 +1272,9 @@ ${ANALYTICS_SETTINGS} // 'toolbar.noAudioSignalTitle', // shown when a broken mic is detected // 'toolbar.noisyAudioInputTitle', // shown when noise is detected for the current microphone // 'toolbar.talkWhileMutedPopup', // shown when user tries to speak while muted - // 'transcribing.failedToStart', // shown when transcribing fails to start + // 'transcribing.failedToStart' // shown when transcribing fails to start // ], - // List of notifications to be disabled. Works in tandem with the above setting. - // disabledNotifications: [], - // Prevent the filmstrip from autohiding when screen width is under a certain threshold // disableFilmstripAutohiding: false, @@ -1510,90 +1282,19 @@ ${ANALYTICS_SETTINGS} // // Disables user resizable filmstrip. Also, allows configuration of the filmstrip // // (width, tiles aspect ratios) through the interfaceConfig options. // disableResizable: false, + // } - // // Disables the stage filmstrip - // // (displaying multiple participants on stage besides the vertical filmstrip) - // disableStageFilmstrip: false, - - // // Default number of participants that can be displayed on stage. - // // The user can change this in settings. Number must be between 1 and 6. - // stageFilmstripParticipants: 1, - - // // Disables the top panel (only shown when a user is sharing their screen). - // disableTopPanel: false, - - // // The minimum number of participants that must be in the call for - // // the top panel layout to be used. - // minParticipantCountForTopPanel: 50, - // }, - - // Tile view related config options. - // tileView: { - // // The optimal number of tiles that are going to be shown in tile view. Depending on the screen size it may - // // not be possible to show the exact number of participants specified here. - // numberOfVisibleTiles: 25, - // }, // Specifies whether the chat emoticons are disabled or not // disableChatSmileys: false, - // Settings for the GIPHY integration. - // giphy: { - // // Whether the feature is enabled or not. - // enabled: false, - // // SDK API Key from Giphy. - // sdkKey: '', - // // Display mode can be one of: - // // - tile: show the GIF on the tile of the participant that sent it. - // // - chat: show the GIF as a message in chat - // // - all: all of the above. This is the default option - // displayMode: 'all', - // // How long the GIF should be displayed on the tile (in milliseconds). - // tileTime: 5000, - // // Limit results by rating: g, pg, pg-13, r. Default value: g. - // rating: 'pg', - // // The proxy server url for giphy requests in the web app. - // proxyUrl: 'https://giphy-proxy.example.com', - // }, + // Allow all above example options to include a trailing comma and + // prevent fear when commenting out the last value. + makeJsonParserHappy: 'even if last key had a trailing comma' - // Logging - // logging: { - // // Default log level for the app and lib-jitsi-meet. - // defaultLogLevel: 'trace', - // // Option to disable LogCollector (which stores the logs on CallStats). - // //disableLogCollector: true, - // // Individual loggers are customizable. - // loggers: { - // // The following are too verbose in their logging with the default level. - // 'modules/RTC/TraceablePeerConnection.js': 'info', - // 'modules/statistics/CallStats.js': 'info', - // 'modules/xmpp/strophe.util.js': 'log', - // }, - - // Application logo url - // defaultLogoUrl: 'images/watermark.svg', - - // Settings for the Excalidraw whiteboard integration. - // whiteboard: { - // // Whether the feature is enabled or not. - // enabled: true, - // // The server used to support whiteboard collaboration. - // // https://github.com/jitsi/excalidraw-backend - // collabServerBaseUrl: 'https://excalidraw-backend.example.com', - // }, + // no configuration value should follow this line. }; -// Temporary backwards compatibility with old mobile clients. -config.flags = config.flags || {}; -config.flags.sourceNameSignaling = true; -config.flags.sendMultipleVideoStreams = true; -config.flags.receiveMultipleVideoStreams = true; - -// Set the default values for JaaS customers -if (enableJaaS) { - config.dialInNumbersUrl = 'https://conference-mapper.jitsi.net/v1/access/dids'; - config.dialInConfCodeUrl = 'https://conference-mapper.jitsi.net/v1/access'; - config.roomPasswordNumberOfDigits = 10; // skip re-adding it (do not remove comment) -} +/* eslint-enable no-unused-vars, no-var */ EOF )" diff --git a/type/__jitsi_meet_domain/files/config.js.sh.orig b/type/__jitsi_meet_domain/files/config.js.sh.orig index 422d2f1..0976642 100644 --- a/type/__jitsi_meet_domain/files/config.js.sh.orig +++ b/type/__jitsi_meet_domain/files/config.js.sh.orig @@ -1,28 +1,4 @@ -/* eslint-disable comma-dangle, no-unused-vars, no-var, prefer-template, vars-on-top */ - -/* - * NOTE: If you add a new option please remember to document it here: - * https://jitsi.github.io/handbook/docs/dev-guide/dev-guide-configuration - */ - -var subdir = ''; -var subdomain = ''; - -if (subdomain) { - subdomain = subdomain.substr(0, subdomain.length - 1).split('.') - .join('_') - .toLowerCase() + '.'; -} - -// In case of no ssi provided by the webserver, use empty strings -if (subdir.startsWith('