diff --git a/type/__jitsi_meet_domain/files/config.js.sh b/type/__jitsi_meet_domain/files/config.js.sh index 446c7fc..248e90b 100644 --- a/type/__jitsi_meet_domain/files/config.js.sh +++ b/type/__jitsi_meet_domain/files/config.js.sh @@ -18,14 +18,11 @@ var config = { // Domain for authenticated users. Defaults to . // authdomain: '${JITSI_HOST}', - // Call control component (Jigasi). - // call_control: 'callcontrol.${JITSI_HOST}', - // Focus component domain. Defaults to focus.. // focus: 'focus.${JITSI_HOST}', // XMPP MUC domain. FIXME: use XEP-0030 to discover it. - muc: 'conference.${JITSI_HOST}' + muc: 'conference.${JITSI_HOST}' }, // BOSH URL. FIXME: use XEP-0156 to discover it. @@ -98,6 +95,11 @@ var config = { // input and will suggest another valid device if one is present. enableNoAudioDetection: true, + // Enabling this will show a "Save Logs" link in the GSM popover that can be + // used to collect debug information (XMPP IQs, SDP offer/answer cycles) + // about the call. + // enableSaveLogs: false, + // Enabling this will run the lib-jitsi-meet noise detection module which will // notify the user if there is noise, other than voice, coming from the current // selected microphone. The purpose it to let the user know that the input could @@ -124,8 +126,8 @@ var config = { // Valid values are in the range 6000 to 510000 // opusMaxAverageBitrate: 20000, - // Enables redundancy for Opus - // enableOpusRed: false + // Enables support for opus-red (redundancy for Opus). + // enableOpusRed: false, // Video @@ -243,6 +245,12 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // 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 @@ -264,9 +272,16 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // // the available bandwidth calculated by the browser, but it will be capped by the values specified here. // // This is currently not implemented on app based clients on mobile. // maxBitratesVideo: { - // low: 200000, - // standard: 500000, - // high: 1500000 + // VP8 : { + // low: 200000, + // standard: 500000, + // high: 1500000 + // }, + // VP9: { + // low: 100000, + // standard: 300000, + // high: 1200000 + // } // }, // // // The options can be used to override default thresholds of video thumbnail heights corresponding to @@ -280,9 +295,13 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // // at least 360 pixels tall. If the thumbnail height reaches 720 pixels then the application will switch to // // the high quality. // minHeightForQualityLvl: { - // 360: 'standard, + // 360: 'standard', // 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 // }, // // Options for the recording limit notification. @@ -303,18 +322,11 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // Disables or enables RTX (RFC 4588) (defaults to false). // disableRtx: false, - // Disables or enables TCC (the default is in Jicofo and set to true) - // (draft-holmer-rmcat-transport-wide-cc-extensions-01). This setting - // affects congestion control, it practically enables send-side bandwidth - // estimations. + // Disables or enables TCC support in this client (default: enabled). // enableTcc: true, - // Disables or enables REMB (the default is in Jicofo and set to false) - // (draft-alvestrand-rmcat-remb-03). This setting affects congestion - // control, it practically enables recv-side bandwidth estimations. When - // both TCC and REMB are enabled, TCC takes precedence. When both are - // disabled, then bandwidth estimations are disabled. - // enableRemb: false, + // Disables or enables REMB support in this client (default: enabled). + // enableRemb: true, // Enables ICE restart logic in LJM and displays the page reload overlay on // ICE failure. Current disabled by default because it's causing issues with @@ -324,26 +336,22 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // TCC sequence numbers starting from 0. // enableIceRestart: false, - // Defines the minimum number of participants to start a call (the default - // is set in Jicofo and set to 2). - // minParticipants: 2, + // Enables forced reload of the client when the call is migrated as a result of + // the bridge going down. Currently enabled by default as call migration through + // session-terminate is causing siganling issues when Octo is enabled. + // enableForcedReload: true, // Use TURN/UDP servers for the jitsi-videobridge connection (by default // we filter out TURN/UDP because it is usually not needed since the // bridge itself is reachable via UDP) // useTurnUdp: false - // Enables / disables a data communication channel with the Videobridge. - // Values can be 'datachannel', 'websocket', true (treat it as - // 'datachannel'), undefined (treat it as 'datachannel') and false (don't - // open any channel). - // openBridgeChannel: true, - openBridgeChannel: 'websocket', - - // UI // + // Disables responsive tiles. + // disableResponsiveTiles: false, + // Hides lobby button // hideLobbyButton: false, @@ -354,6 +362,13 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // will be joined when no room is specified. enableWelcomePage: true, + // Disable app shortcuts that are registered upon joining a conference + // disableShortcuts: false, + + // Disable initial browser getUserMedia requests. + // This is useful for scenarios where users might want to start a conference for screensharing only + // disableInitialGUM: false, + // Enabling the close page will ignore the welcome page redirection when // a call is hangup. // enableClosePage: false, @@ -364,17 +379,12 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // Default language for the user interface. defaultLanguage: '${DEFAULT_LANGUAGE}', - // If true all users without a token will be considered guests and all users - // with token will be considered non-guests. Only guests will be allowed to - // edit their profile. - enableUserRolesBasedOnToken: false, + // Disables profile and the edit of all fields from the profile settings (display name and email) + // disableProfile: false, // Whether or not some features are checked based on token. // enableFeaturesBasedOnToken: false, - // Enable lock room for all moderators, even when userRolesBasedOnToken is enabled and participants are guests. - // lockRoomGuestEnabled: false, - // When enabled the password used for locking a room is restricted to up to the number of digits specified // roomPasswordNumberOfDigits: 10, // default: roomPasswordNumberOfDigits: false, @@ -390,6 +400,13 @@ $(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. // prejoinPageEnabled: false, + // If etherpad integration is enabled, setting this to true will + // automatically open the etherpad when a participant joins. This + // does not affect the mobile app since opening an etherpad + // obscures the conference controls -- it's better to let users + // choose to open the pad on their own in that case. + // openSharedDocumentOnJoin: false, + // If true, shows the unsafe room name warning label when a room name is // deemed unsafe (due to the simplicity in the name) and a password is not // set or the lobby is not enabled. @@ -399,6 +416,28 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // Document should be focused for this option to work // enableAutomaticUrlCopy: false, + // Base URL for a Gravatar-compatible service. Defaults to libravatar. + // gravatarBaseURL: 'https://seccdn.libravatar.org/avatar/', + + // Moved from interfaceConfig(TOOLBAR_BUTTONS). + // The name of the toolbar buttons to display in the toolbar, including the + // "More actions" menu. If present, the button will display. Exceptions are + // "livestreaming" and "recording" which also require being a moderator and + // some other values in config.js to be enabled. Also, the "profile" button will + // not display for users with a JWT. + // Notes: + // - it's impossible to choose which buttons go in the "More actions" menu + // - it's impossible to control the placement of buttons + // - 'desktop' controls the "Share your screen" button + // - if \`toolbarButtons\` is undefined, we fallback to enabling all buttons on the UI + // toolbarButtons: [ + // 'microphone', 'camera', 'closedcaptions', 'desktop', 'embedmeeting', 'fullscreen', + // 'fodeviceselection', 'hangup', 'profile', 'chat', 'recording', + // 'livestreaming', 'etherpad', 'sharedvideo', 'shareaudio', 'settings', 'raisehand', + // 'videoquality', 'filmstrip', 'invite', 'feedback', 'stats', 'shortcuts', + // 'tileview', 'select-background', 'download', 'help', 'mute-everyone', 'mute-video-everyone', 'security' + // ], + // Stats // @@ -422,6 +461,10 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // Enables sending participants' emails (if available) to callstats and other analytics // enableEmailInStats: false, + // 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 + // feedbackPercentage: 100, + // Privacy // @@ -459,7 +502,7 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // 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 + // preferH264: true, // Provides a way to set the video codec preference on the p2p connection. Acceptable // codec values are 'VP8', 'VP9' and 'H264'. @@ -501,7 +544,7 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // 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. - // rtcstatsPolIInterval: 1000 + // rtcstatsPolIInterval: 1000, // Array of script URLs to load as lib-jitsi-meet "analytics handlers". // scriptURLs: [ @@ -524,6 +567,10 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // Decides whether the start/stop recording audio notifications should play on record. // disableRecordAudioNotification: false, + // Disables the sounds that play when other participants join or leave the + // conference (if set to true, these sounds will not be played). + // disableJoinLeaveSounds: false, + // Information for the chrome extension banner // chromeExtensionBanner: { // // The chrome extension to be installed address @@ -583,6 +630,10 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // the menu has option to flip the locally seen video for local presentations // disableLocalVideoFlip: false, + // A property used to unset the default flip state of the local video. + // When it is set to 'true', the local(self) video will not be mirrored anymore. + // doNotFlipLocalVideo: false, + // Mainly privacy related settings // Disables all invite functions from the app (share, invite, dial out...etc) @@ -610,6 +661,9 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) // 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 + /** External API url used to receive branding specific information. If there is no url set or there are missing fields, the defaults are applied. @@ -625,12 +679,35 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) logoImageUrl: 'https://example.com/logo-img.png' } */ - brandingDataUrl: "$(if [ -n "${BRANDING_JSON}" ]; then printf "/branding.json"; fi)", + dynamicBrandingUrl: "${DYNAMIC_BRANDING_URL}", + + // Sets the background transparency level. '0' is fully transparent, '1' is opaque. + // backgroundAlpha: 1, // The URL of the moderated rooms microservice, if available. If it // is present, a link to the service will be rendered on the welcome page, // otherwise the app doesn't render it. - // moderatedRoomServiceUrl: 'https://moderated.${JITSI_HOST}', + // moderatedRoomServiceUrl: 'https://moderated.jitsi-meet.example.com', + + // If true, tile view will not be enabled automatically when the participants count threshold is reached. + // disableTileView: true, + + // Hides the conference subject + // hideConferenceSubject: true, + + // Hides the conference timer. + // hideConferenceTimer: true, + + // Hides the participants stats + // hideParticipantsStats: true, + + // Sets the conference subject + // subject: 'Conference Subject', + + // This property is related to the use case when jitsi-meet is used via the IFrame API. When the property is true + // jitsi-meet will use the local storage of the host page instead of its own. This option is useful if the browser + // is not persisting the local storage inside the iframe. + // useHostPageLocalStorage: true, // List of undocumented settings used in jitsi-meet /** @@ -678,15 +755,75 @@ $(if [ -n "${VIDEO_CONSTRAINTS}" ]; then echo "${VIDEO_CONSTRAINTS},"; fi) disableAP disableHPF disableNS - enableLipSync enableTalkWhileMuted forceJVB121Ratio + forceTurnRelay hiddenDomain ignoreStartMuted - nick - startBitrate + websocketKeepAlive + websocketKeepAliveUrl */ + /** + Use this array to configure which notifications will be shown to the user + The items correspond to the title or description key of that notification + Some of these notifications also depend on some other internal logic to be displayed or not, + so adding them here will not ensure they will always be displayed + + A falsy value for this prop will result in having all notifications enabled (e.g null, undefined, false) + */ + // notifications: [ + // 'connection.CONNFAIL', // shown when the connection fails, + // 'dialog.cameraNotSendingData', // shown when there's no feed from user's camera + // 'dialog.kickTitle', // shown when user has been kicked + // 'dialog.liveStreaming', // livestreaming notifications (pending, on, off, limits) + // 'dialog.lockTitle', // shown when setting conference password fails + // 'dialog.maxUsersLimitReached', // shown when maximmum users limit has been reached + // 'dialog.micNotSendingData', // shown when user's mic is not sending any audio + // 'dialog.passwordNotSupportedTitle', // shown when setting conference password fails due to password format + // 'dialog.recording', // recording notifications (pending, on, off, limits) + // 'dialog.remoteControlTitle', // remote control notifications (allowed, denied, start, stop, error) + // 'dialog.reservationError', + // 'dialog.serviceUnavailable', // shown when server is not reachable + // 'dialog.sessTerminated', // shown when there is a failed conference session + // 'dialog.sessionRestarted', // show when a client reload is initiated because of bridge migration + // 'dialog.tokenAuthFailed', // show when an invalid jwt is used + // 'dialog.transcribing', // transcribing notifications (pending, off) + // 'dialOut.statusMessage', // shown when dial out status is updated. + // 'liveStreaming.busy', // shown when livestreaming service is busy + // 'liveStreaming.failedToStart', // shown when livestreaming fails to start + // '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.disconnected', // shown when a participant has left + // 'notify.grantedTo', // shown when moderator rights were granted to a participant + // '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.mutedRemotelyTitle', // shown when user is muted by a remote party + // 'notify.mutedTitle', // shown when user has been muted upon joining, + // 'notify.newDeviceAudioTitle', // prompts the user to use a newly detected audio device + // 'notify.newDeviceCameraTitle', // prompts the user to use a newly detected camera + // 'notify.passwordRemovedRemotely', // shown when a password has been removed remotely + // 'notify.passwordSetRemotely', // shown when a password has been set remotely + // 'notify.raisedHand', // shown when a partcipant used raise hand, + // 'notify.startSilentTitle', // shown when user joined with no audio + // 'prejoin.errorDialOut', + // 'prejoin.errorDialOutDisconnected', + // 'prejoin.errorDialOutFailed', + // 'prejoin.errorDialOutStatus', + // 'prejoin.errorStatusCode', + // 'prejoin.errorValidation', + // 'recording.busy', // shown when recording service is busy + // 'recording.failedToStart', // shown when recording fails to start + // 'recording.unavailableTitle', // shown when recording service is not reachable + // '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 + // ] // Allow all above example options to include a trailing comma and // prevent fear when commenting out the last value. diff --git a/type/__jitsi_meet_domain/files/config.js.sh.orig b/type/__jitsi_meet_domain/files/config.js.sh.orig index da2bff5..9d49d52 100644 --- a/type/__jitsi_meet_domain/files/config.js.sh.orig +++ b/type/__jitsi_meet_domain/files/config.js.sh.orig @@ -6,29 +6,26 @@ var config = { hosts: { // XMPP domain. - domain: 'jitsi-meet.example.org', + domain: 'jitsi-meet.example.com', // When using authentication, domain for guest users. // anonymousdomain: 'guest.example.com', // Domain for authenticated users. Defaults to . - // authdomain: 'jitsi-meet.example.org', - - // Call control component (Jigasi). - // call_control: 'callcontrol.jitsi-meet.example.org', + // authdomain: 'jitsi-meet.example.com', // Focus component domain. Defaults to focus.. - // focus: 'focus.jitsi-meet.example.org', + // focus: 'focus.jitsi-meet.example.com', // XMPP MUC domain. FIXME: use XEP-0030 to discover it. - muc: 'conference.jitsi-meet.example.org' + muc: 'conference.jitsi-meet.example.com' }, // BOSH URL. FIXME: use XEP-0156 to discover it. - bosh: '//jitsi-meet.example.org/http-bind', + bosh: '//jitsi-meet.example.com/http-bind', // Websocket URL - // websocket: 'wss://jitsi-meet.example.org/xmpp-websocket', + // websocket: 'wss://jitsi-meet.example.com/xmpp-websocket', // The name of client node advertised in XEP-0115 'c' stanza clientNode: 'http://jitsi.org/jitsimeet', @@ -36,7 +33,7 @@ var config = { // 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-meet.example.org', + // focusUserJid: 'focus@auth.jitsi-meet.example.com', // Testing / experimental features. @@ -94,6 +91,11 @@ var config = { // input and will suggest another valid device if one is present. enableNoAudioDetection: true, + // Enabling this will show a "Save Logs" link in the GSM popover that can be + // used to collect debug information (XMPP IQs, SDP offer/answer cycles) + // about the call. + // enableSaveLogs: false, + // Enabling this will run the lib-jitsi-meet noise detection module which will // notify the user if there is noise, other than voice, coming from the current // selected microphone. The purpose it to let the user know that the input could @@ -120,8 +122,8 @@ var config = { // Valid values are in the range 6000 to 510000 // opusMaxAverageBitrate: 20000, - // Enables redundancy for Opus - // enableOpusRed: false + // Enables support for opus-red (redundancy for Opus). + // enableOpusRed: false, // Video @@ -193,9 +195,9 @@ var config = { // appKey: '' // Specify your app key here. // // A URL to redirect the user to, after authenticating // // by default uses: - // // 'https://jitsi-meet.example.org/static/oauth.html' + // // 'https://jitsi-meet.example.com/static/oauth.html' // redirectURI: - // 'https://jitsi-meet.example.org/subfolder/static/oauth.html' + // 'https://jitsi-meet.example.com/subfolder/static/oauth.html' // }, // When integrations like dropbox are enabled only that will be shown, // by enabling fileRecordingsServiceEnabled, we show both the integrations @@ -238,6 +240,12 @@ var config = { // 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 @@ -259,9 +267,16 @@ var config = { // // the available bandwidth calculated by the browser, but it will be capped by the values specified here. // // This is currently not implemented on app based clients on mobile. // maxBitratesVideo: { - // low: 200000, - // standard: 500000, - // high: 1500000 + // VP8 : { + // low: 200000, + // standard: 500000, + // high: 1500000 + // }, + // VP9: { + // low: 100000, + // standard: 300000, + // high: 1200000 + // } // }, // // // The options can be used to override default thresholds of video thumbnail heights corresponding to @@ -275,9 +290,13 @@ var config = { // // at least 360 pixels tall. If the thumbnail height reaches 720 pixels then the application will switch to // // the high quality. // minHeightForQualityLvl: { - // 360: 'standard, + // 360: 'standard', // 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 // }, // // Options for the recording limit notification. @@ -298,18 +317,11 @@ var config = { // Disables or enables RTX (RFC 4588) (defaults to false). // disableRtx: false, - // Disables or enables TCC (the default is in Jicofo and set to true) - // (draft-holmer-rmcat-transport-wide-cc-extensions-01). This setting - // affects congestion control, it practically enables send-side bandwidth - // estimations. + // Disables or enables TCC support in this client (default: enabled). // enableTcc: true, - // Disables or enables REMB (the default is in Jicofo and set to false) - // (draft-alvestrand-rmcat-remb-03). This setting affects congestion - // control, it practically enables recv-side bandwidth estimations. When - // both TCC and REMB are enabled, TCC takes precedence. When both are - // disabled, then bandwidth estimations are disabled. - // enableRemb: false, + // Disables or enables REMB support in this client (default: enabled). + // enableRemb: true, // Enables ICE restart logic in LJM and displays the page reload overlay on // ICE failure. Current disabled by default because it's causing issues with @@ -319,26 +331,22 @@ var config = { // TCC sequence numbers starting from 0. // enableIceRestart: false, - // Defines the minimum number of participants to start a call (the default - // is set in Jicofo and set to 2). - // minParticipants: 2, + // Enables forced reload of the client when the call is migrated as a result of + // the bridge going down. Currently enabled by default as call migration through + // session-terminate is causing siganling issues when Octo is enabled. + // enableForcedReload: true, // Use TURN/UDP servers for the jitsi-videobridge connection (by default // we filter out TURN/UDP because it is usually not needed since the // bridge itself is reachable via UDP) // useTurnUdp: false - // Enables / disables a data communication channel with the Videobridge. - // Values can be 'datachannel', 'websocket', true (treat it as - // 'datachannel'), undefined (treat it as 'datachannel') and false (don't - // open any channel). - // openBridgeChannel: true, - openBridgeChannel: 'websocket', - - // UI // + // Disables responsive tiles. + // disableResponsiveTiles: false, + // Hides lobby button // hideLobbyButton: false, @@ -349,6 +357,13 @@ var config = { // will be joined when no room is specified. enableWelcomePage: true, + // Disable app shortcuts that are registered upon joining a conference + // disableShortcuts: false, + + // Disable initial browser getUserMedia requests. + // This is useful for scenarios where users might want to start a conference for screensharing only + // disableInitialGUM: false, + // Enabling the close page will ignore the welcome page redirection when // a call is hangup. // enableClosePage: false, @@ -359,17 +374,12 @@ var config = { // Default language for the user interface. // defaultLanguage: 'en', - // If true all users without a token will be considered guests and all users - // with token will be considered non-guests. Only guests will be allowed to - // edit their profile. - enableUserRolesBasedOnToken: false, + // Disables profile and the edit of all fields from the profile settings (display name and email) + // disableProfile: false, // Whether or not some features are checked based on token. // enableFeaturesBasedOnToken: false, - // Enable lock room for all moderators, even when userRolesBasedOnToken is enabled and participants are guests. - // lockRoomGuestEnabled: false, - // When enabled the password used for locking a room is restricted to up to the number of digits specified // roomPasswordNumberOfDigits: 10, // default: roomPasswordNumberOfDigits: false, @@ -385,6 +395,13 @@ var config = { // When 'true', it shows an intermediate page before joining, where the user can configure their devices. // prejoinPageEnabled: false, + // If etherpad integration is enabled, setting this to true will + // automatically open the etherpad when a participant joins. This + // does not affect the mobile app since opening an etherpad + // obscures the conference controls -- it's better to let users + // choose to open the pad on their own in that case. + // openSharedDocumentOnJoin: false, + // If true, shows the unsafe room name warning label when a room name is // deemed unsafe (due to the simplicity in the name) and a password is not // set or the lobby is not enabled. @@ -394,6 +411,28 @@ var config = { // Document should be focused for this option to work // enableAutomaticUrlCopy: false, + // Base URL for a Gravatar-compatible service. Defaults to libravatar. + // gravatarBaseURL: 'https://seccdn.libravatar.org/avatar/', + + // Moved from interfaceConfig(TOOLBAR_BUTTONS). + // The name of the toolbar buttons to display in the toolbar, including the + // "More actions" menu. If present, the button will display. Exceptions are + // "livestreaming" and "recording" which also require being a moderator and + // some other values in config.js to be enabled. Also, the "profile" button will + // not display for users with a JWT. + // Notes: + // - it's impossible to choose which buttons go in the "More actions" menu + // - it's impossible to control the placement of buttons + // - 'desktop' controls the "Share your screen" button + // - if `toolbarButtons` is undefined, we fallback to enabling all buttons on the UI + // toolbarButtons: [ + // 'microphone', 'camera', 'closedcaptions', 'desktop', 'embedmeeting', 'fullscreen', + // 'fodeviceselection', 'hangup', 'profile', 'chat', 'recording', + // 'livestreaming', 'etherpad', 'sharedvideo', 'shareaudio', 'settings', 'raisehand', + // 'videoquality', 'filmstrip', 'invite', 'feedback', 'stats', 'shortcuts', + // 'tileview', 'select-background', 'download', 'help', 'mute-everyone', 'mute-video-everyone', 'security' + // ], + // Stats // @@ -417,6 +456,10 @@ var config = { // Enables sending participants' emails (if available) to callstats and other analytics // enableEmailInStats: false, + // 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 + // feedbackPercentage: 100, + // Privacy // @@ -441,7 +484,7 @@ var config = { // The STUN servers that will be used in the peer to peer connections stunServers: [ - // { urls: 'stun:jitsi-meet.example.org:3478' }, + // { urls: 'stun:jitsi-meet.example.com:3478' }, { urls: 'stun:meet-jit-si-turnrelay.jitsi.net:443' } ] @@ -455,7 +498,7 @@ var config = { // 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 + // preferH264: true, // Provides a way to set the video codec preference on the p2p connection. Acceptable // codec values are 'VP8', 'VP9' and 'H264'. @@ -497,7 +540,7 @@ var config = { // 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. - // rtcstatsPolIInterval: 1000 + // rtcstatsPolIInterval: 1000, // Array of script URLs to load as lib-jitsi-meet "analytics handlers". // scriptURLs: [ @@ -520,6 +563,10 @@ var config = { // Decides whether the start/stop recording audio notifications should play on record. // disableRecordAudioNotification: false, + // Disables the sounds that play when other participants join or leave the + // conference (if set to true, these sounds will not be played). + // disableJoinLeaveSounds: false, + // Information for the chrome extension banner // chromeExtensionBanner: { // // The chrome extension to be installed address @@ -579,6 +626,10 @@ var config = { // the menu has option to flip the locally seen video for local presentations // disableLocalVideoFlip: false, + // A property used to unset the default flip state of the local video. + // When it is set to 'true', the local(self) video will not be mirrored anymore. + // doNotFlipLocalVideo: false, + // Mainly privacy related settings // Disables all invite functions from the app (share, invite, dial out...etc) @@ -606,6 +657,9 @@ var config = { // 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 + /** External API url used to receive branding specific information. If there is no url set or there are missing fields, the defaults are applied. @@ -621,12 +675,35 @@ var config = { logoImageUrl: 'https://example.com/logo-img.png' } */ - // brandingDataUrl: '', + // dynamicBrandingUrl: '', + + // Sets the background transparency level. '0' is fully transparent, '1' is opaque. + // backgroundAlpha: 1, // The URL of the moderated rooms microservice, if available. If it // is present, a link to the service will be rendered on the welcome page, // otherwise the app doesn't render it. - // moderatedRoomServiceUrl: 'https://moderated.jitsi-meet.example.org', + // moderatedRoomServiceUrl: 'https://moderated.jitsi-meet.example.com', + + // If true, tile view will not be enabled automatically when the participants count threshold is reached. + // disableTileView: true, + + // Hides the conference subject + // hideConferenceSubject: true, + + // Hides the conference timer. + // hideConferenceTimer: true, + + // Hides the participants stats + // hideParticipantsStats: true, + + // Sets the conference subject + // subject: 'Conference Subject', + + // This property is related to the use case when jitsi-meet is used via the IFrame API. When the property is true + // jitsi-meet will use the local storage of the host page instead of its own. This option is useful if the browser + // is not persisting the local storage inside the iframe. + // useHostPageLocalStorage: true, // List of undocumented settings used in jitsi-meet /** @@ -674,15 +751,75 @@ var config = { disableAP disableHPF disableNS - enableLipSync enableTalkWhileMuted forceJVB121Ratio + forceTurnRelay hiddenDomain ignoreStartMuted - nick - startBitrate + websocketKeepAlive + websocketKeepAliveUrl */ + /** + Use this array to configure which notifications will be shown to the user + The items correspond to the title or description key of that notification + Some of these notifications also depend on some other internal logic to be displayed or not, + so adding them here will not ensure they will always be displayed + + A falsy value for this prop will result in having all notifications enabled (e.g null, undefined, false) + */ + // notifications: [ + // 'connection.CONNFAIL', // shown when the connection fails, + // 'dialog.cameraNotSendingData', // shown when there's no feed from user's camera + // 'dialog.kickTitle', // shown when user has been kicked + // 'dialog.liveStreaming', // livestreaming notifications (pending, on, off, limits) + // 'dialog.lockTitle', // shown when setting conference password fails + // 'dialog.maxUsersLimitReached', // shown when maximmum users limit has been reached + // 'dialog.micNotSendingData', // shown when user's mic is not sending any audio + // 'dialog.passwordNotSupportedTitle', // shown when setting conference password fails due to password format + // 'dialog.recording', // recording notifications (pending, on, off, limits) + // 'dialog.remoteControlTitle', // remote control notifications (allowed, denied, start, stop, error) + // 'dialog.reservationError', + // 'dialog.serviceUnavailable', // shown when server is not reachable + // 'dialog.sessTerminated', // shown when there is a failed conference session + // 'dialog.sessionRestarted', // show when a client reload is initiated because of bridge migration + // 'dialog.tokenAuthFailed', // show when an invalid jwt is used + // 'dialog.transcribing', // transcribing notifications (pending, off) + // 'dialOut.statusMessage', // shown when dial out status is updated. + // 'liveStreaming.busy', // shown when livestreaming service is busy + // 'liveStreaming.failedToStart', // shown when livestreaming fails to start + // '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.disconnected', // shown when a participant has left + // 'notify.grantedTo', // shown when moderator rights were granted to a participant + // '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.mutedRemotelyTitle', // shown when user is muted by a remote party + // 'notify.mutedTitle', // shown when user has been muted upon joining, + // 'notify.newDeviceAudioTitle', // prompts the user to use a newly detected audio device + // 'notify.newDeviceCameraTitle', // prompts the user to use a newly detected camera + // 'notify.passwordRemovedRemotely', // shown when a password has been removed remotely + // 'notify.passwordSetRemotely', // shown when a password has been set remotely + // 'notify.raisedHand', // shown when a partcipant used raise hand, + // 'notify.startSilentTitle', // shown when user joined with no audio + // 'prejoin.errorDialOut', + // 'prejoin.errorDialOutDisconnected', + // 'prejoin.errorDialOutFailed', + // 'prejoin.errorDialOutStatus', + // 'prejoin.errorStatusCode', + // 'prejoin.errorValidation', + // 'recording.busy', // shown when recording service is busy + // 'recording.failedToStart', // shown when recording fails to start + // 'recording.unavailableTitle', // shown when recording service is not reachable + // '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 + // ] // Allow all above example options to include a trailing comma and // prevent fear when commenting out the last value. diff --git a/type/__jitsi_meet_domain/man.rst b/type/__jitsi_meet_domain/man.rst index 862701a..a1a05ea 100644 --- a/type/__jitsi_meet_domain/man.rst +++ b/type/__jitsi_meet_domain/man.rst @@ -76,8 +76,8 @@ video-constraints branding-json - Path to a JSON file that will be served as the `brandingDataUrl`. - For information on the format see `brandingDataUrl` in + Path to a JSON file that will be served as the `dynamicBrandingUrl`. + For information on the format see `dynamicBrandingUrl` in `__jitsi_meet_domain/files/config.js.sh`. If not set, no branding will be set up. diff --git a/type/__jitsi_meet_domain/manifest b/type/__jitsi_meet_domain/manifest index 40b07b0..3b6e5c4 100755 --- a/type/__jitsi_meet_domain/manifest +++ b/type/__jitsi_meet_domain/manifest @@ -36,6 +36,10 @@ if [ -z "${JITSI_HOST}" ]; then JITSI_HOST="${__target_host}" fi +if [ -n "${BRANDING_JSON}" ]; then + DYNAMIC_BRANDING_URL="/branding.json" +fi + # # Deal with certbot #