config.js 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628
  1. /* eslint-disable no-unused-vars, no-var */
  2. {{ $XMPP_DOMAIN := .Env.XMPP_DOMAIN | default "jitsi-meet.example.com" -}}
  3. {{ $XMPP_MUC_DOMAIN := .Env.XMPP_MUC_DOMAIN | default "conference.example.com" -}}
  4. {{ $CONFIG_RESOLUTION := .Env.CONFIG_RESOLUTION | default "720" -}}
  5. {{ $CONFIG_RESOLUTION_WIDTH := .Env.CONFIG_RESOLUTION_WIDTH | default "1280" -}}
  6. {{ $CONFIG_DISABLE_SIMULCAST := .Env.CONFIG_DISABLE_SIMULCAST | default "false" -}}
  7. {{ $CONFIG_ENABLE_REMB := .Env.CONFIG_ENABLE_REMB | default "true" -}}
  8. {{ $CONFIG_ENABLE_TCC := .Env.CONFIG_ENABLE_TCC | default "true" -}}
  9. {{ $ENABLE_RECORDING := .Env.ENABLE_RECORDING | default "false" | toBool -}}
  10. {{ $CONFIG_FILE_RECORDING_SERVICE_ENABLED := .Env.CONFIG_FILE_RECORDING_SERVICE_ENABLED | default "false" | toBool -}}
  11. {{ $CONFIG_FILE_RECORDING_SERVICE_SHARING_ENABLED := .Env.CONFIG_FILE_RECORDING_SERVICE_SHARING_ENABLED | default "false" | toBool -}}
  12. {{ $CONFIG_EXTERNAL_CONNECT := .Env.CONFIG_EXTERNAL_CONNECT | default "false" | toBool -}}
  13. {{ $XMPP_RECORDER_DOMAIN := .Env.XMPP_RECORDER_DOMAIN | default "recorder.example.com" -}}
  14. {{ $CONFIG_CHROME_MIN_EXT_VERSION := .Env.CONFIG_CHROME_MIN_EXT_VERSION | default "0.1" -}}
  15. {{ $CONFIG_ENABLE_USER_ROLES_BASED_ON_TOKEN := .Env.CONFIG_ENABLE_USER_ROLES_BASED_ON_TOKEN | default "false" -}}
  16. {{ $CONFIG_TESTING_OCTO_PROBABILITY := .Env.CONFIG_TESTING_OCTO_PROBABILITY | default "0" -}}
  17. {{ $CONFIG_TESTING_CAP_SCREENSHARE_BITRATE := .Env.CONFIG_TESTING_CAP_SCREENSHARE_BITRATE | default "1" -}}
  18. {{ $ENABLE_LIPSYNC := .Env.ENABLE_LIPSYNC | default "false" | toBool -}}
  19. {{ $ENABLE_SUBDOMAINS := .Env.ENABLE_SUBDOMAINS | default "false" | toBool -}}
  20. {{ $ENABLE_GUESTS := .Env.ENABLE_GUESTS | default "false" | toBool -}}
  21. {{ $ENABLE_AUTH := .Env.ENABLE_AUTH | default "false" | toBool -}}
  22. {{ $ENABLE_TRANSCRIPTIONS := .Env.ENABLE_TRANSCRIPTIONS | default "false" | toBool -}}
  23. {{ $CONFIG_ENABLE_STATS_ID := .Env.CONFIG_ENABLE_STATS_ID | default "false" | toBool -}}
  24. {{ $CONFIG_OPEN_BRIDGE_CHANNEL := .Env.CONFIG_OPEN_BRIDGE_CHANNEL | default "datachannel" -}}
  25. {{ $CONFIG_STEREO := .Env.CONFIG_STEREO | default "false" | toBool -}}
  26. {{ $CONFIG_ENABLE_TALK_WHILE_MUTED := .Env.CONFIG_ENABLE_TALK_WHILE_MUTED | default "false" | toBool -}}
  27. {{ $CONFIG_ENABLE_NO_AUDIO_DETECTION := .Env.CONFIG_ENABLE_NO_AUDIO_DETECTION | default "false" | toBool -}}
  28. {{ $CONFIG_ENABLE_CALENDAR := .Env.CONFIG_ENABLE_CALENDAR | default "false" | toBool -}}
  29. {{ $CONFIG_REQUIRE_DISPLAY_NAME := .Env.CONFIG_REQUIRE_DISPLAY_NAME | default "false" | toBool -}}
  30. {{ $CONFIG_REQUIRE_DISPLAY_NAME := .Env.CONFIG_REQUIRE_DISPLAY_NAME | default "false" | toBool -}}
  31. {{ $CONFIG_START_VIDEO_MUTED := .Env.CONFIG_START_VIDEO_MUTED | default 10 -}}
  32. {{ $CONFIG_START_AUDIO_MUTED := .Env.CONFIG_START_AUDIO_MUTED | default 10 -}}
  33. {{ $CONFIG_USE_STUN_TURN := .Env.CONFIG_USE_STUN_TURN | default "true" | toBool -}}
  34. {{ if $ENABLE_SUBDOMAINS -}}
  35. var subdomain = "<!--# echo var="subdomain" default="" -->";
  36. if (subdomain) {
  37. subdomain = subdomain.substr(0,subdomain.length-1).split('.').join('_').toLowerCase() + '.';
  38. }
  39. {{ end -}}
  40. var config = {
  41. // Configuration
  42. //
  43. // Alternative location for the configuration.
  44. // configLocation: './config.json',
  45. // Custom function which given the URL path should return a room name.
  46. // getroomnode: function (path) { return 'someprefixpossiblybasedonpath'; },
  47. // Connection
  48. //
  49. hosts: {
  50. // XMPP domain.
  51. domain: '{{ $XMPP_DOMAIN }}',
  52. {{ if $ENABLE_GUESTS -}}
  53. // When using authentication, domain for guest users.
  54. anonymousdomain: '{{ .Env.XMPP_GUEST_DOMAIN }}',
  55. {{ end -}}
  56. {{ if $ENABLE_AUTH -}}
  57. // Domain for authenticated users. Defaults to <domain>.
  58. authdomain: '{{ .Env.XMPP_DOMAIN }}',
  59. {{ end -}}
  60. // Focus component domain. Defaults to focus.<domain>.
  61. focus: 'focus.{{ $XMPP_DOMAIN }}',
  62. // XMPP MUC domain. FIXME: use XEP-0030 to discover it.
  63. {{ if $ENABLE_SUBDOMAINS -}}
  64. muc: 'conference.'+subdomain+'{{ $XMPP_DOMAIN }}'
  65. {{ else -}}
  66. muc: {{ $XMPP_MUC_DOMAIN }}'
  67. {{ end -}}
  68. },
  69. // BOSH URL. FIXME: use XEP-0156 to discover it.
  70. bosh: '{{ if .Env.CONFIG_BOSH_HOST }}https://{{ $.Env.CONFIG_BOSH_HOST }}{{ end }}/http-bind',
  71. {{ if .Env.ENABLE_WEBSOCKETS -}}
  72. websocket: 'wss://{{ if .Env.CONFIG_BOSH_HOST }}{{ .Env.CONFIG_BOSH_HOST }}{{end}}/xmpp-websocket',
  73. {{ end -}}
  74. // The name of client node advertised in XEP-0115 'c' stanza
  75. clientNode: 'http://jitsi.org/jitsimeet',
  76. // Testing / experimental features.
  77. testing: {
  78. // enable screensharing bitrate cap
  79. capScreenshareBitrate: {{ $CONFIG_TESTING_CAP_SCREENSHARE_BITRATE }},
  80. // enable octo
  81. octo: {
  82. probability: {{ $CONFIG_TESTING_OCTO_PROBABILITY }}
  83. },
  84. // Enables experimental simulcast support on Firefox.
  85. enableFirefoxSimulcast: false,
  86. // P2P test mode disables automatic switching to P2P when there are 2
  87. // participants in the conference.
  88. p2pTestMode: false
  89. // Enables the test specific features consumed by jitsi-meet-torture
  90. // testMode: false
  91. },
  92. // Disables ICE/UDP by filtering out local and remote UDP candidates in
  93. // signalling.
  94. // webrtcIceUdpDisable: false,
  95. // Disables ICE/TCP by filtering out local and remote TCP candidates in
  96. // signalling.
  97. // webrtcIceTcpDisable: false,
  98. // Media
  99. //
  100. // Audio
  101. // Disable measuring of audio levels.
  102. // disableAudioLevels: false,
  103. // Start the conference in audio only mode (no video is being received nor
  104. // sent).
  105. // startAudioOnly: false,
  106. // Every participant after the Nth will start audio muted.
  107. startAudioMuted: {{ $CONFIG_START_AUDIO_MUTED }},
  108. // Start calls with audio muted. Unlike the option above, this one is only
  109. // applied locally. FIXME: having these 2 options is confusing.
  110. // startWithAudioMuted: false,
  111. // Enabling it (with #params) will disable local audio output of remote
  112. // participants and to enable it back a reload is needed.
  113. // startSilent: false
  114. // Video
  115. // Sets the preferred resolution (height) for local video. Defaults to 720.
  116. resolution: {{ $CONFIG_RESOLUTION }},
  117. // w3c spec-compliant video constraints to use for video capture. Currently
  118. // used by browsers that return true from lib-jitsi-meet's
  119. // util#browser#usesNewGumFlow. The constraints are independency from
  120. // this config's resolution value. Defaults to requesting an ideal aspect
  121. // ratio of 16:9 with an ideal resolution of 720.
  122. constraints: {
  123. video: {
  124. aspectRatio: 16 / 9,
  125. height: {
  126. ideal: {{ $CONFIG_RESOLUTION }},
  127. max: {{ $CONFIG_RESOLUTION }},
  128. min: 180
  129. },
  130. width: {
  131. ideal: {{ $CONFIG_RESOLUTION_WIDTH }},
  132. max: {{ $CONFIG_RESOLUTION_WIDTH }},
  133. min: 320
  134. }
  135. }
  136. },
  137. // URL for pre-bind BOSH session setup service
  138. {{ if $CONFIG_EXTERNAL_CONNECT -}}
  139. {{ if $ENABLE_SUBDOMAINS -}}
  140. externalConnectUrl: '//{{ if .Env.CONFIG_BOSH_HOST }}{{ .Env.CONFIG_BOSH_HOST }}{{ end }}/<!--# echo var="subdir" default="" -->http-pre-bind',
  141. {{ else -}}
  142. externalConnectUrl: '//{{ if .Env.CONFIG_BOSH_HOST }}{{ .Env.CONFIG_BOSH_HOST }}{{ end }}/http-pre-bind',
  143. {{ end -}}
  144. {{ end -}}
  145. // Enable / disable simulcast support.
  146. disableSimulcast: {{ $CONFIG_DISABLE_SIMULCAST }},
  147. // Enable / disable layer suspension. If enabled, endpoints whose HD
  148. // layers are not in use will be suspended (no longer sent) until they
  149. // are requested again.
  150. // enableLayerSuspension: false,
  151. // Suspend sending video if bandwidth estimation is too low. This may cause
  152. // problems with audio playback. Disabled until these are fixed.
  153. disableSuspendVideo: true,
  154. // Every participant after the Nth will start video muted.
  155. startVideoMuted: {{ $CONFIG_START_VIDEO_MUTED }},
  156. // Start calls with video muted. Unlike the option above, this one is only
  157. // applied locally. FIXME: having these 2 options is confusing.
  158. // startWithVideoMuted: false,
  159. // If set to true, prefer to use the H.264 video codec (if supported).
  160. // Note that it's not recommended to do this because simulcast is not
  161. // supported when using H.264. For 1-to-1 calls this setting is enabled by
  162. // default and can be toggled in the p2p section.
  163. // preferH264: true,
  164. // If set to true, disable H.264 video codec by stripping it out of the
  165. // SDP.
  166. // disableH264: false,
  167. // Desktop sharing
  168. // The ID of the jidesha extension for Chrome.
  169. {{ if .Env.CONFIG_CHROME_EXT_ID }}
  170. desktopSharingChromeExtId: '{{.Env.CONFIG_CHROME_EXT_ID}}',
  171. {{ else }}
  172. desktopSharingChromeExtId: null,
  173. {{ end }}
  174. // Whether desktop sharing should be disabled on Chrome.
  175. // desktopSharingChromeDisabled: false,
  176. // The media sources to use when using screen sharing with the Chrome
  177. // extension.
  178. desktopSharingChromeSources: [ 'screen', 'window', 'tab' ],
  179. // Required version of Chrome extension
  180. desktopSharingChromeMinExtVersion: '{{ $CONFIG_CHROME_MIN_EXT_VERSION }}',
  181. // Whether desktop sharing should be disabled on Firefox.
  182. // desktopSharingFirefoxDisabled: false,
  183. // Optional desktop sharing frame rate options. Default value: min:5, max:5.
  184. // desktopSharingFrameRate: {
  185. // min: 5,
  186. // max: 5
  187. // },
  188. // Try to start calls with screen-sharing instead of camera video.
  189. // startScreenSharing: false,
  190. // Recording
  191. // Whether to enable file recording or not.
  192. {{ if $ENABLE_RECORDING }}
  193. hiddenDomain: '{{ $XMPP_RECORDER_DOMAIN }}',
  194. fileRecordingsEnabled: true,
  195. // Whether to enable live streaming or not.
  196. liveStreamingEnabled: true,
  197. {{ if .Env.CONFIG_DROPBOX_APPKEY }}
  198. // Enable the dropbox integration.
  199. dropbox: {
  200. // Specify your app key here.
  201. appKey: '{{ .Env.CONFIG_DROPBOX_APPKEY }}',
  202. {{ if .Env.CONFIG_DROPBOX_REDIRECT_URI }}
  203. // A URL to redirect the user to, after authenticating
  204. // by default uses:
  205. // 'https://jitsi-meet.example.com/static/oauth.html'
  206. redirectURI: '{{ .Env.CONFIG_DROPBOX_REDIRECT_URI }}'
  207. {{ end }}
  208. },
  209. {{ end }}
  210. {{ if $CONFIG_FILE_RECORDING_SERVICE_ENABLED }}
  211. // When integrations like dropbox are enabled only that will be shown,
  212. // by enabling fileRecordingsServiceEnabled, we show both the integrations
  213. // and the generic recording service (its configuration and storage type
  214. // depends on jibri configuration)
  215. fileRecordingsServiceEnabled: true,
  216. {{ end }}
  217. {{ if $CONFIG_FILE_RECORDING_SERVICE_SHARING_ENABLED }}
  218. // Whether to show the possibility to share file recording with other people
  219. // (e.g. meeting participants), based on the actual implementation
  220. // on the backend.
  221. fileRecordingsServiceSharingEnabled: true,
  222. {{ end }}
  223. {{ end }}
  224. {{ if $ENABLE_TRANSCRIPTIONS }}
  225. // Transcription (in interface_config,
  226. // subtitles and buttons can be configured)
  227. transcribingEnabled: true,
  228. {{ end }}
  229. // Misc
  230. // Default value for the channel "last N" attribute. -1 for unlimited.
  231. channelLastN: -1,
  232. // Disables or enables RTX (RFC 4588) (defaults to false).
  233. // disableRtx: false,
  234. // Disables or enables TCC (the default is in Jicofo and set to true)
  235. // (draft-holmer-rmcat-transport-wide-cc-extensions-01). This setting
  236. // affects congestion control, it practically enables send-side bandwidth
  237. // estimations.
  238. enableTcc: {{ $CONFIG_ENABLE_TCC }},
  239. // Disables or enables REMB (the default is in Jicofo and set to false)
  240. // (draft-alvestrand-rmcat-remb-03). This setting affects congestion
  241. // control, it practically enables recv-side bandwidth estimations. When
  242. // both TCC and REMB are enabled, TCC takes precedence. When both are
  243. // disabled, then bandwidth estimations are disabled.
  244. enableRemb: {{ $CONFIG_ENABLE_REMB }},
  245. // Defines the minimum number of participants to start a call (the default
  246. // is set in Jicofo and set to 2).
  247. // minParticipants: 2,
  248. {{ if $CONFIG_USE_STUN_TURN -}}
  249. // Use XEP-0215 to fetch STUN and TURN servers.
  250. useStunTurn: true,
  251. {{ else -}}
  252. // Skip STUN and TURN.
  253. useStunTurn: false,
  254. {{ end -}}
  255. // Enable IPv6 support.
  256. {{ if .Env.CONFIG_USE_IPV6 -}}
  257. useIPv6: true,
  258. {{ end -}}
  259. // Enables / disables a data communication channel with the Videobridge.
  260. // Values can be 'datachannel', 'websocket', true (treat it as
  261. // 'datachannel'), undefined (treat it as 'datachannel') and false (don't
  262. // open any channel).
  263. // openBridgeChannel: true,
  264. openBridgeChannel: '{{ $CONFIG_OPEN_BRIDGE_CHANNEL }}', // One of true, 'datachannel', or 'websocket'
  265. // UI
  266. //
  267. // Use display name as XMPP nickname.
  268. // useNicks: false,
  269. {{ if $CONFIG_REQUIRE_DISPLAY_NAME }}
  270. // Require users to always specify a display name.
  271. requireDisplayName: true,
  272. {{ else }}
  273. // No need to specify a display name.
  274. requireDisplayName: false,
  275. {{ end }}
  276. // Whether to use a welcome page or not. In case it's false a random room
  277. // will be joined when no room is specified.
  278. enableWelcomePage: true,
  279. // Enabling the close page will ignore the welcome page redirection when
  280. // a call is hangup.
  281. // enableClosePage: false,
  282. // Disable hiding of remote thumbnails when in a 1-on-1 conference call.
  283. // disable1On1Mode: false,
  284. // Default language for the user interface.
  285. // defaultLanguage: 'en',
  286. // If true all users without a token will be considered guests and all users
  287. // with token will be considered non-guests. Only guests will be allowed to
  288. // edit their profile.
  289. enableUserRolesBasedOnToken: {{ $CONFIG_ENABLE_USER_ROLES_BASED_ON_TOKEN }},
  290. // Whether or not some features are checked based on token.
  291. // enableFeaturesBasedOnToken: false,
  292. // Enable lock room for all moderators, even when userRolesBasedOnToken is enabled and participants are guests.
  293. // lockRoomGuestEnabled: false,
  294. // When enabled the password used for locking a room is restricted to up to the number of digits specified
  295. // roomPasswordNumberOfDigits: 10,
  296. // default: roomPasswordNumberOfDigits: false,
  297. // Message to show the users. Example: 'The service will be down for
  298. // maintenance at 01:00 AM GMT,
  299. // noticeMessage: '',
  300. // Enables calendar integration, depends on googleApiApplicationClientID
  301. // and microsoftApiApplicationClientID
  302. {{ if $CONFIG_ENABLE_CALENDAR }}
  303. enableCalendarIntegration: true,
  304. {{ end }}
  305. // Stats
  306. //
  307. // Whether to enable stats collection or not in the TraceablePeerConnection.
  308. // This can be useful for debugging purposes (post-processing/analysis of
  309. // the webrtc stats) as it is done in the jitsi-meet-torture bandwidth
  310. // estimation tests.
  311. // gatherStats: false,
  312. {{ if .Env.CONFIG_CALLSTATS_ID }}
  313. // To enable sending statistics to callstats.io you must provide the
  314. // Application ID and Secret.
  315. callStatsID: '{{ .Env.CONFIG_CALLSTATS_ID }}',
  316. {{ end }}
  317. {{ if .Env.CONFIG_CALLSTATS_ID }}
  318. callStatsSecret: '{{ .Env.CONFIG_CALLSTATS_SECRET }}',
  319. {{ end }}
  320. {{ if $CONFIG_ENABLE_STATS_ID }}
  321. // enables callstatsUsername to be reported as statsId and used
  322. // by callstats as repoted remote id
  323. enableStatsID: true,
  324. {{ end }}
  325. // enables sending participants display name to callstats
  326. // enableDisplayNameInStats: false
  327. // Privacy
  328. //
  329. // If third party requests are disabled, no other server will be contacted.
  330. // This means avatars will be locally generated and callstats integration
  331. // will not function.
  332. // disableThirdPartyRequests: false,
  333. // Peer-To-Peer mode: used (if enabled) when there are just 2 participants.
  334. //
  335. p2p: {
  336. // Enables peer to peer mode. When enabled the system will try to
  337. // establish a direct connection when there are exactly 2 participants
  338. // in the room. If that succeeds the conference will stop sending data
  339. // through the JVB and use the peer to peer connection instead. When a
  340. // 3rd participant joins the conference will be moved back to the JVB
  341. // connection.
  342. enabled: true,
  343. // Use XEP-0215 to fetch STUN and TURN servers.
  344. {{ if .Env.CONFIG_P2P_STUNTURN }}
  345. useStunTurn: true,
  346. {{ end }}
  347. // The STUN servers that will be used in the peer to peer connections
  348. stunServers: [
  349. { urls: 'stun:stun.l.google.com:19302' },
  350. { urls: 'stun:stun1.l.google.com:19302' },
  351. { urls: 'stun:stun2.l.google.com:19302' }
  352. ],
  353. // Sets the ICE transport policy for the p2p connection. At the time
  354. // of this writing the list of possible values are 'all' and 'relay',
  355. // but that is subject to change in the future. The enum is defined in
  356. // the WebRTC standard:
  357. // https://www.w3.org/TR/webrtc/#rtcicetransportpolicy-enum.
  358. // If not set, the effective value is 'all'.
  359. // iceTransportPolicy: 'all',
  360. // If set to true, it will prefer to use H.264 for P2P calls (if H.264
  361. // is supported).
  362. preferH264: true
  363. // If set to true, disable H.264 video codec by stripping it out of the
  364. // SDP.
  365. // disableH264: false,
  366. // How long we're going to wait, before going back to P2P after the 3rd
  367. // participant has left the conference (to filter out page reload).
  368. // backToP2PDelay: 5
  369. },
  370. analytics: {
  371. // The Google Analytics Tracking ID:
  372. {{ if .Env.CONFIG_GOOGLE_ANALYTICS_ID }}
  373. googleAnalyticsTrackingId: '{{ .Env.CONFIG_GOOGLE_ANALYTICS_ID }}',
  374. {{ end }}
  375. // The Amplitude APP Key:
  376. // amplitudeAPPKey: '<APP_KEY>'
  377. {{ if .Env.CONFIG_AMPLITUDE_ID }}
  378. amplitudeAPPKey: '{{ .Env.CONFIG_AMPLITUDE_ID }}',
  379. {{ end }}
  380. {{ if .Env.CONFIG_ANALYTICS_WHITELISTED_EVENTS }}
  381. whiteListedEvents: [ '{{ join "','" (splitList "," .Env.CONFIG_ANALYTICS_WHITELISTED_EVENTS) }}' ],
  382. {{ end }}
  383. // Array of script URLs to load as lib-jitsi-meet "analytics handlers".
  384. {{ if .Env.CONFIG_ANALYTICS_SCRIPT_URLS }}
  385. scriptURLs: [ '{{ join "','" (splitList "," .Env.CONFIG_ANALYTICS_SCRIPT_URLS) }}' ],
  386. {{ end }}
  387. // scriptURLs: [
  388. // "libs/analytics-ga.min.js", // google-analytics
  389. // "https://example.com/my-custom-analytics.js"
  390. // ],
  391. },
  392. // Information about the jitsi-meet instance we are connecting to, including
  393. // the user region as seen by the server.
  394. // deploymentInfo: {
  395. // shard: "shard1",
  396. // region: "europe",
  397. // userRegion: "asia"
  398. // }
  399. deploymentInfo: {
  400. environment: '{{ .Env.CONFIG_DEPLOYMENTINFO_ENVIRONMENT }}',
  401. envType: '{{ .Env.CONFIG_DEPLOYMENTINFO_ENVIRONMENT_TYPE }}',
  402. userRegion: '<!--# echo var="http_x_proxy_region" default="" -->',
  403. },
  404. // Local Recording
  405. //
  406. // localRecording: {
  407. // Enables local recording.
  408. // Additionally, 'localrecording' (all lowercase) needs to be added to
  409. // TOOLBAR_BUTTONS in interface_config.js for the Local Recording
  410. // button to show up on the toolbar.
  411. //
  412. // enabled: true,
  413. //
  414. // The recording format, can be one of 'ogg', 'flac' or 'wav'.
  415. // format: 'flac'
  416. //
  417. // }
  418. // Options related to end-to-end (participant to participant) ping.
  419. // e2eping: {
  420. // // The interval in milliseconds at which pings will be sent.
  421. // // Defaults to 10000, set to <= 0 to disable.
  422. // pingInterval: 10000,
  423. //
  424. // // The interval in milliseconds at which analytics events
  425. // // with the measured RTT will be sent. Defaults to 60000, set
  426. // // to <= 0 to disable.
  427. // analyticsInterval: 60000,
  428. // }
  429. // If set, will attempt to use the provided video input device label when
  430. // triggering a screenshare, instead of proceeding through the normal flow
  431. // for obtaining a desktop stream.
  432. // NOTE: This option is experimental and is currently intended for internal
  433. // use only.
  434. // _desktopSharingSourceDevice: 'sample-id-or-label'
  435. // If true, any checks to handoff to another application will be prevented
  436. // and instead the app will continue to display in the current browser.
  437. // disableDeepLinking: false
  438. // A property to disable the right click context menu for localVideo
  439. // the menu has option to flip the locally seen video for local presentations
  440. // disableLocalVideoFlip: false
  441. // Lipsync hack in jicofo, may not be safe
  442. {{ if $ENABLE_LIPSYNC -}}
  443. enableLipSync: true,
  444. {{ end }}
  445. {{ if .Env.CONFIG_START_BITRATE -}}
  446. startBitrate: '{{ .Env.CONFIG_START_BITRATE }}',
  447. {{ end }}
  448. {{ if $CONFIG_STEREO -}}
  449. stereo: true,
  450. {{ end }}
  451. {{ if $CONFIG_ENABLE_TALK_WHILE_MUTED -}}
  452. enableTalkWhileMuted: true,
  453. {{ end }}
  454. {{ if $CONFIG_ENABLE_NO_AUDIO_DETECTION -}}
  455. enableNoAudioDetection: true,
  456. {{ end }}
  457. {{ if .Env.CONFIG_GOOGLE_API_APP_CLIENT_ID -}}
  458. googleApiApplicationClientID: '{{ .Env.CONFIG_GOOGLE_API_APP_CLIENT_ID }}',
  459. {{ end }}
  460. {{ if .Env.CONFIG_MICROSOFT_API_APP_CLIENT_ID -}}
  461. microsoftApiApplicationClientID: '{{ .Env.CONFIG_MICROSOFT_API_APP_CLIENT_ID }}',
  462. {{ end }}
  463. {{ if .Env.CONFIG_CALLSTATS_CUSTOM_SCRIPT_URL -}}
  464. callStatsCustomScriptUrl: '{{ .Env.CONFIG_CALLSTATS_CUSTOM_SCRIPT_URL }}',
  465. {{ end }}
  466. {{ if .Env.ETHERPAD_URL_BASE }}
  467. etherpad_base: '{{ .Env.ETHERPAD_URL_BASE }}',
  468. {{ end }}
  469. {{ if .Env.CONFIG_DIALIN_NUMBERS_URL }}
  470. dialInNumbersUrl: '{{ .Env.CONFIG_DIALIN_NUMBERS_URL }}',
  471. {{ end }}
  472. {{ if .Env.CONFIG_CONFCODE_URL }}
  473. dialInConfCodeUrl: '{{ .Env.CONFIG_CONFCODE_URL }}',
  474. {{ end }}
  475. {{ if .Env.CONFIG_DIALOUT_CODES_URL }}
  476. dialOutCodesUrl: '{{ .Env.CONFIG_DIALOUT_CODES_URL }}',
  477. {{ end }}
  478. {{ if .Env.CONFIG_DIALOUT_AUTH_URL }}
  479. dialOutAuthUrl: '{{ .Env.CONFIG_DIALOUT_AUTH_URL }}',
  480. {{ end }}
  481. {{ if .Env.CONFIG_PEOPLE_SEARCH_URL }}
  482. peopleSearchUrl: '{{ .Env.CONFIG_PEOPLE_SEARCH_URL }}',
  483. {{ end }}
  484. {{ if .Env.CONFIG_PEOPLE_SEARCH_URL }}
  485. peopleSearchQueryTypes: ['user','conferenceRooms'],
  486. {{ end }}
  487. {{ if .Env.CONFIG_INVITE_SERVICE_URL }}
  488. inviteServiceUrl: '{{ .Env.CONFIG_INVITE_SERVICE_URL }}',
  489. {{ end }}
  490. {{ if .Env.CONFIG_INVITE_SERVICE_CALLFLOWS_URL }}
  491. inviteServiceCallFlowsUrl: '{{ .Env.CONFIG_INVITE_SERVICE_CALLFLOWS_URL }}',
  492. {{ end }}
  493. {{ if .Env.CONFIG_CHROME_EXTENSION_BANNER_JSON }}
  494. chromeExtensionBanner: {{ .Env.CONFIG_CHROME_EXTENSION_BANNER_JSON }},
  495. {{ end }}
  496. // List of undocumented settings used in jitsi-meet
  497. /**
  498. _immediateReloadThreshold
  499. autoRecord
  500. autoRecordToken
  501. debug
  502. debugAudioLevels
  503. disableRemoteControl
  504. displayJids
  505. firefox_fake_device
  506. iAmRecorder
  507. iAmSipGateway
  508. tokenAuthUrl
  509. */
  510. // List of undocumented settings used in lib-jitsi-meet
  511. /**
  512. _peerConnStatusOutOfLastNTimeout
  513. _peerConnStatusRtcMuteTimeout
  514. abTesting
  515. avgRtpStatsN
  516. callStatsConfIDNamespace
  517. desktopSharingSources
  518. disableAEC
  519. disableAGC
  520. disableAP
  521. disableHPF
  522. disableNS
  523. forceJVB121Ratio
  524. hiddenDomain
  525. ignoreStartMuted
  526. nick
  527. */
  528. };
  529. /* eslint-enable no-unused-vars, no-var */