mirror of
https://gitcode.com/GitHub_Trending/ji/jitsi-meet.git
synced 2025-12-30 03:12:29 +00:00
On web we detect if we run on an iframe, and on mobile we detect if the app is one of ours.
253 lines
7.7 KiB
TypeScript
253 lines
7.7 KiB
TypeScript
import { isEmbedded } from '../util/embedUtils';
|
|
|
|
import extraConfigWhitelist from './extraConfigWhitelist';
|
|
import isEmbeddedConfigWhitelist from './isEmbeddedConfigWhitelist';
|
|
|
|
/**
|
|
* The config keys to whitelist, the keys that can be overridden.
|
|
* Whitelisting a key allows all properties under that key to be overridden.
|
|
* For example whitelisting 'p2p' allows 'p2p.enabled' to be overridden, and
|
|
* overriding 'p2p.enabled' does not modify any other keys under 'p2p'.
|
|
* The whitelist is used only for config.js.
|
|
*
|
|
* @type Array
|
|
*/
|
|
export default [
|
|
'_desktopSharingSourceDevice',
|
|
'_peerConnStatusOutOfLastNTimeout',
|
|
'_peerConnStatusRtcMuteTimeout',
|
|
'analytics.disabled',
|
|
'analytics.rtcstatsEnabled',
|
|
'analytics.watchRTCEnabled',
|
|
'audioLevelsInterval',
|
|
'audioQuality',
|
|
'autoKnockLobby',
|
|
'apiLogLevels',
|
|
'avgRtpStatsN',
|
|
'backgroundAlpha',
|
|
'brandingRoomAlias',
|
|
'breakoutRooms',
|
|
'bridgeChannel',
|
|
'buttonsWithNotifyClick',
|
|
|
|
/**
|
|
* The display name of the CallKit call representing the conference/meeting
|
|
* associated with this config.js including while the call is ongoing in the
|
|
* UI presented by CallKit and in the system-wide call history. The property
|
|
* is meant for use cases in which the room name is not desirable as a
|
|
* display name for CallKit purposes and the desired display name is not
|
|
* provided in the form of a JWT callee. As the value is associated with a
|
|
* conference/meeting, the value makes sense not as a deployment-wide
|
|
* configuration, only as a runtime configuration override/overwrite
|
|
* provided by, for example, Jitsi Meet SDK for iOS.
|
|
*
|
|
* @type string
|
|
*/
|
|
'callDisplayName',
|
|
'callFlowsEnabled',
|
|
|
|
/**
|
|
* The handle
|
|
* ({@link https://developer.apple.com/documentation/callkit/cxhandle}) of
|
|
* the CallKit call representing the conference/meeting associated with this
|
|
* config.js. The property is meant for use cases in which the room URL is
|
|
* not desirable as the handle for CallKit purposes. As the value is
|
|
* associated with a conference/meeting, the value makes sense not as a
|
|
* deployment-wide configuration, only as a runtime configuration
|
|
* override/overwrite provided by, for example, Jitsi Meet SDK for iOS.
|
|
*
|
|
* @type string
|
|
*/
|
|
'callHandle',
|
|
|
|
/**
|
|
* The UUID of the CallKit call representing the conference/meeting
|
|
* associated with this config.js. The property is meant for use cases in
|
|
* which Jitsi Meet is to work with a CallKit call created outside of Jitsi
|
|
* Meet and to be adopted by Jitsi Meet such as, for example, an incoming
|
|
* and/or outgoing CallKit call created by Jitsi Meet SDK for iOS
|
|
* clients/consumers prior to giving control to Jitsi Meet. As the value is
|
|
* associated with a conference/meeting, the value makes sense not as a
|
|
* deployment-wide configuration, only as a runtime configuration
|
|
* override/overwrite provided by, for example, Jitsi Meet SDK for iOS.
|
|
*
|
|
* @type string
|
|
*/
|
|
'callUUID',
|
|
|
|
'cameraFacingMode',
|
|
'conferenceInfo',
|
|
'channelLastN',
|
|
'connectionIndicators',
|
|
'constraints',
|
|
'deeplinking.disabled',
|
|
'deeplinking.desktop.enabled',
|
|
'defaultLocalDisplayName',
|
|
'defaultRemoteDisplayName',
|
|
'desktopSharingFrameRate',
|
|
'desktopSharingSources',
|
|
'disable1On1Mode',
|
|
'disableAEC',
|
|
'disableAGC',
|
|
'disableAP',
|
|
'disableAddingBackgroundImages',
|
|
'disableAudioLevels',
|
|
'disableBeforeUnloadHandlers',
|
|
'disableCameraTintForeground',
|
|
'disableChatSmileys',
|
|
'disableDeepLinking',
|
|
'disabledNotifications',
|
|
'disabledSounds',
|
|
'disableFilmstripAutohiding',
|
|
'disableInitialGUM',
|
|
'disableInviteFunctions',
|
|
'disableIncomingMessageSound',
|
|
'disableJoinLeaveSounds',
|
|
'disableLocalVideoFlip',
|
|
'disableModeratorIndicator',
|
|
'disableNS',
|
|
'disablePolls',
|
|
'disableProfile',
|
|
'disableReactions',
|
|
'disableReactionsModeration',
|
|
'disableRecordAudioNotification',
|
|
'disableRemoteControl',
|
|
'disableRemoteMute',
|
|
'disableResponsiveTiles',
|
|
'disableRtx',
|
|
'disableSelfDemote',
|
|
'disableSelfView',
|
|
'disableSelfViewSettings',
|
|
'disableShortcuts',
|
|
'disableShowMoreStats',
|
|
'disableRemoveRaisedHandOnFocus',
|
|
'disableSpeakerStatsSearch',
|
|
'speakerStatsOrder',
|
|
'disableSimulcast',
|
|
'disableThirdPartyRequests',
|
|
'disableTileView',
|
|
'disableTileEnlargement',
|
|
'disableVirtualBackground',
|
|
'displayJids',
|
|
'doNotStoreRoom',
|
|
'doNotFlipLocalVideo',
|
|
'dropbox.appKey',
|
|
'e2eeLabels',
|
|
'e2ee',
|
|
'e2eping',
|
|
'enableCalendarIntegration',
|
|
'enableDisplayNameInStats',
|
|
'enableEmailInStats',
|
|
'enableEncodedTransformSupport',
|
|
'enableInsecureRoomNameWarning',
|
|
'enableLobbyChat',
|
|
'enableOpusRed',
|
|
'enableRemb',
|
|
'enableSaveLogs',
|
|
'enableTalkWhileMuted',
|
|
'enableNoAudioDetection',
|
|
'enableNoisyMicDetection',
|
|
'enableTcc',
|
|
'faceLandmarks',
|
|
'feedbackPercentage',
|
|
'filmstrip',
|
|
'flags',
|
|
'forceTurnRelay',
|
|
'gatherStats',
|
|
'giphy',
|
|
'googleApiApplicationClientID',
|
|
'gravatar.disabled',
|
|
'hiddenPremeetingButtons',
|
|
'hideConferenceSubject',
|
|
'hideDisplayName',
|
|
'hideDominantSpeakerBadge',
|
|
'hideRecordingLabel',
|
|
'hideParticipantsStats',
|
|
'hideConferenceTimer',
|
|
'hideAddRoomButton',
|
|
'hideEmailInSettings',
|
|
'hideLobbyButton',
|
|
'iAmRecorder',
|
|
'iAmSipGateway',
|
|
'ignoreStartMuted',
|
|
'inviteAppName',
|
|
'liveStreaming.enabled',
|
|
'liveStreamingEnabled',
|
|
'lobby',
|
|
'localRecording',
|
|
'localSubject',
|
|
'logging',
|
|
'mainToolbarButtons',
|
|
'maxFullResolutionParticipants',
|
|
'mouseMoveCallbackInterval',
|
|
'notifications',
|
|
'notificationTimeouts',
|
|
'notifyOnConferenceDestruction',
|
|
'openSharedDocumentOnJoin',
|
|
'opusMaxAverageBitrate',
|
|
'p2p.backToP2PDelay',
|
|
'p2p.codecPreferenceOrder',
|
|
'p2p.enabled',
|
|
'p2p.iceTransportPolicy',
|
|
'p2p.mobileCodecPreferenceOrder',
|
|
'p2p.mobileScreenshareCodec',
|
|
'participantMenuButtonsWithNotifyClick',
|
|
'participantsPane',
|
|
'pcStatsInterval',
|
|
'preferBosh',
|
|
'preferVisitor',
|
|
'prejoinConfig.enabled',
|
|
'prejoinConfig.hideDisplayName',
|
|
'prejoinConfig.hideExtraJoinButtons',
|
|
'prejoinPageEnabled',
|
|
'raisedHands',
|
|
'recordingService',
|
|
'requireDisplayName',
|
|
'remoteVideoMenu',
|
|
'roomPasswordNumberOfDigits',
|
|
'readOnlyName',
|
|
'recordings.recordAudioAndVideo',
|
|
'recordings.showPrejoinWarning',
|
|
'recordings.showRecordingLink',
|
|
'recordings.suggestRecording',
|
|
'replaceParticipant',
|
|
'resolution',
|
|
'screenshotCapture',
|
|
'securityUi',
|
|
'speakerStats',
|
|
'startAudioMuted',
|
|
'startAudioOnly',
|
|
'startLastN',
|
|
'startScreenSharing',
|
|
'startSilent',
|
|
'startVideoMuted',
|
|
'startWithAudioMuted',
|
|
'startWithVideoMuted',
|
|
'stereo',
|
|
'subject',
|
|
'testing',
|
|
'toolbarButtons',
|
|
'toolbarConfig',
|
|
'tileView',
|
|
'transcribingEnabled',
|
|
'transcription',
|
|
'useHostPageLocalStorage',
|
|
'useTurnUdp',
|
|
'videoQuality',
|
|
'visitors.enableMediaOnPromote',
|
|
'watchRTCConfigParams.allowBrowserLogCollection',
|
|
'watchRTCConfigParams.collectionInterval',
|
|
'watchRTCConfigParams.console',
|
|
'watchRTCConfigParams.debug',
|
|
'watchRTCConfigParams.keys',
|
|
'watchRTCConfigParams.logGetStats',
|
|
'watchRTCConfigParams.rtcApiKey',
|
|
'watchRTCConfigParams.rtcPeerId',
|
|
'watchRTCConfigParams.rtcRoomId',
|
|
'watchRTCConfigParams.rtcTags',
|
|
'watchRTCConfigParams.rtcToken',
|
|
'webrtcIceTcpDisable',
|
|
'webrtcIceUdpDisable',
|
|
'whiteboard.enabled'
|
|
].concat(extraConfigWhitelist).concat(isEmbedded() ? isEmbeddedConfigWhitelist : []);
|