bigbluebutton-Github/bigbluebutton-web/grails-app/conf/bigbluebutton.properties

460 lines
18 KiB
Properties
Raw Normal View History

#
# BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
#
# Copyright (c) 2012 BigBlueButton Inc. and by respective authors (see below).
#
# This program is free software; you can redistribute it and/or modify it under the
# terms of the GNU Lesser General Public License as published by the Free Software
# Foundation; either version 3.0 of the License, or (at your option) any later
# version.
#
# BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License along
# with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
#
#
# These are the default properites for BigBlueButton Web application
# Default loglevel.
appLogLevel=DEBUG
#----------------------------------------------------
# Directory where BigBlueButton stores uploaded slides
presentationDir=/var/bigbluebutton
#----------------------------------------------------
# Directory where ImageMagick's convert executable is located
imageMagickDir=/usr/bin
#----------------------------------------------------
# Executable for presentation checker
presCheckExec=/usr/share/prescheck/prescheck.sh
2020-03-03 01:40:01 +08:00
#----------------------------------------------------
# Skip Office doc conversion pre-check. Attempt to convert
# Office doc to PDF right away.
2020-03-03 01:42:43 +08:00
skipOfficePrecheck=true
#----------------------------------------------------
# Executable for presentation office conversion
presOfficeConversionExec=/usr/share/bbb-libreoffice-conversion/convert.sh
#----------------------------------------------------
# These will be copied in cases where the conversion process
# fails to generate a slide from the uploaded presentation
BLANK_PRESENTATION=/usr/share/bigbluebutton/blank/blank-presentation.pdf
BLANK_THUMBNAIL=/usr/share/bigbluebutton/blank/blank-thumb.png
BLANK_PNG=/usr/share/bigbluebutton/blank/blank-png.png
BLANK_SVG=/usr/share/bigbluebutton/blank/blank-svg.svg
#----------------------------------------------------
# Number of minutes the conversion should take. If it takes
# more than this time, cancel the conversion process.
maxConversionTime=5
#----------------------------------------------------
# Maximum number of pages allowed for an uploaded presentation (default 100).
maxNumPages=200
2017-11-28 06:03:50 +08:00
#----------------------------------------------------
# Maximum file size for an uploaded presentation (default 30MB).
maxFileSizeUpload=30000000
#----------------------------------------------------
# Maximum allowed number of place object tags in generated svg, if exceeded the conversion will fallback to full BMP (default 800)
placementsThreshold=800
# Maximum allowed number of bitmap images in generated svg, if exceeded the conversion will fallback to full BMP (default 800)
imageTagThreshold=800
#------------------------------------
# Number of threads in the pool to do the presentation conversion.
#------------------------------------
numConversionThreads=5
#------------------------------------
# Number of threads to process file uploads
#------------------------------------
numFileProcessorThreads=2
#------------------------------------
# Timeout(secs) to wait for pdf to svg conversion (timeout for each tool called during the process)
#------------------------------------
svgConversionTimeout=60
#------------------------------------
# pdfFonts is used to detect whether PDF contains text with font Type 3
# it is also used to check if the pdf has some problem to be opened (timeout) and abort the conversion if so
# Configuration for pdfFonts Timeout(secs) and Max number of attempts
#------------------------------------
pdfFontsTimeout=3
maxNumberOfAttemptsForPdfFonts=3
#------------------------------------
# Presentation resolution, in PPI (will be set to generated svg)
#------------------------------------
svgPresentationResolutionPpi=300
#------------------------------------
# Force conversion of slides to PNG before converting to SVG
## Experimental - this option might be removed in next releases
## This will solve problems like reported in issue #8835
## Disabled by default as it can affect the quality in zoom
#------------------------------------
forceRasterizeSlides=false
#------------------------------------
# Presentation will be resized to this width (in pixels) when rasterizing (converting to PNG)
## Applied in these situations:
## a) the source can't be converted directly to SVG ;
## b) option "forceRasterizeSlides" is defined as true ;
## To disable this constraint (and keep source resolution) define this property as 0.
#------------------------------------
pngWidthRasterizedSlides=2048
#------------------------------------
# Timeout(secs) to wait for conversion script execution
#------------------------------------
officeToPdfConversionTimeout=60
#------------------------------------
# Max concurrent of conversion script execution
#------------------------------------
officeToPdfMaxConcurrentConversions=4
#----------------------------------------------------
# Additional conversion of the presentation slides to PNG
# to be used in the IOS mobile client
generatePngs=false
pngSlideWidth=1200
# Default number of digits for voice conference users joining through the PSTN.
defaultNumDigitsForTelVoice=5
2018-09-11 19:51:03 +08:00
#----------------------------------------------------
# Maximum image resolution, if image exceeds this limit it will be resized
maxImageWidth=2048
maxImageHeight=1536
2018-09-11 19:51:03 +08:00
#----------------------------------------------------
# Configuration for large PDF, 14 MB by default, if bigger it will be analysed during the conversion process
bigPdfSize=14000000
2020-03-02 00:24:20 +08:00
# The maximum allowed page size for PDF files exceeding the 'pdfCheckSize' value, 2 MB by default
maxBigPdfPageSize=2000000
#----------------------------------------------------
# Default dial access number
defaultDialAccessNumber=613-555-1234
# Default Guest Policy
# Valid values are ALWAYS_ACCEPT, ALWAYS_DENY, ASK_MODERATOR
#
defaultGuestPolicy=ALWAYS_ACCEPT
# Enables or disables authenticated guest
authenticatedGuest=true
#---------------------------------------------------
# Default Meeting Layout
# Valid values are CUSTOM_LAYOUT, SMART_LAYOUT, PRESENTATION_FOCUS, VIDEO_FOCUS
defaultMeetingLayout=CUSTOM_LAYOUT
#
#----------------------------------------------------
# Default welcome message to display when the participant joins the web
# conference. This is only used for the old scheduling which will be
# removed in the future. Use the API to create a conference.
#
# If the message contains characters not in ISO-8859-1 character sets
# they must be properly escaped to unicode characters. An easy way to
# do this is running the native2ascii command setting UTF8 encoding and
# passing this file's path as input and output parameters, e.g.:
#
# native2ascii -encoding UTF8 bigbluebutton.properties bigbluebutton.properties
#
2022-05-09 03:49:03 +08:00
defaultWelcomeMessage=Welcome to <b>%%CONFNAME%%</b>!<br><br>For help on using BigBlueButton see these (short) <a href="https://bigbluebutton.org/teachers/tutorials/"><u>tutorial videos</u></a>.<br><br>To join the audio bridge click the speaker button. Use a headset to avoid causing background noise for others.
2021-07-19 03:24:51 +08:00
defaultWelcomeMessageFooter=This server is running <a href="https://bigbluebutton.org/" target="_blank"><u>BigBlueButton</u></a>.
# Default maximum number of users a meeting can have.
# Current default is 0 (meeting doesn't have a user limit).
defaultMaxUsers=0
# Maximum number of sessions that each user (extId) can open simultaneously in the same meeting
# when the limit is exceeded, the oldest session will be ended
# if 0, there's no limit
# if 1, limit to only one concurrent access per user
maxUserConcurrentAccesses=3
# Default duration of the meeting in minutes.
# Current default is 0 (meeting doesn't end).
defaultMeetingDuration=0
# Number of minutes to logout client if user
# isn't responsive
clientLogoutTimerInMinutes=0
2017-07-16 10:10:04 +08:00
# End meeting if no user joined within
# a period of time after meeting created.
meetingExpireIfNoUserJoinedInMinutes=5
# Number of minutes to end meeting when
# the last user left.
meetingExpireWhenLastUserLeftInMinutes=1
# User inactivity audit timer interval.
userInactivityInspectTimerInMinutes=0
# Number of minutes to consider a user inactive.
# iSend warning message to client to check if really inactive.
userInactivityThresholdInMinutes=30
# Number of minutes for user to respond to inactivity
# warning before being logged out.
userActivitySignResponseDelayInMinutes=5
# Disable recording by default.
# true - don't record even if record param in the api call is set to record
# false - when record param is passed from api, override this default
disableRecordingDefault=false
# Start recording when first user joins the meeting.
# For backward compatibility with 0.81 where whole meeting
# is recorded.
autoStartRecording=false
# Allow the user to start/stop recording.
allowStartStopRecording=true
# Whether media (audio, cameras and screen sharing) should be captured on their
# full duration if the meeting is recorded (recorded=true). Effectively ignores
# the meeting's current recording state (paused/running).
recordFullDurationMedia=false
# Number of minutes that Learning Dashboard will be available after the end of the meeting
# if 0, the Learning Dashboard will keep available permanently
# this is the default value, can be customized using the create API
learningDashboardCleanupDelayInMinutes=2
# Allow webcams streaming reception only to and from moderators
2020-03-03 01:42:43 +08:00
webcamsOnlyForModerator=false
# Per meeting camera share limit
# if 0, there's no limit
meetingCameraCap=0
2022-07-08 03:23:58 +08:00
# Per user camera share limit
# if 0, there's no limit
userCameraCap=3
# Maximum number of cameras pinned simultaneously
maxPinnedCameras=3
# Mute the meeting on start
muteOnStart=false
2019-04-11 04:55:24 +08:00
# Unmute users
# Gives moderators permisson to unmute other users
allowModsToUnmuteUsers=false
2019-04-11 04:55:24 +08:00
# Eject user webcams
# Gives moderators permisson to close other users' webcams
allowModsToEjectCameras=false
# Saves meeting events even if the meeting is not recorded
defaultKeepEvents=false
Patch of improvements for bbb-web This patch includes two improvements made for bbb-web. It tries to better isolate the sessionToken's handling and session's validation, including logs for each one of these steps; and removes maxParticipats control from registered users (that are no longer removed from bbb-web collections) binding it to joined users or users that reached the enter API call. The following adds more details about this last one: User's regular flow to join a meeting goes around an API join call -> redis register event -> redirect to client page -> API enter call -> redis join event. When the guest policy is ASK_MODERATOR, non-moderators are registered and redirected to a guest lobby that polls for her/his guest status and only enters the meeting after a moderator approval. Using registered users as control to check how many participants are in a meeting is problematic because non-approved guests are counted as participants and bbb-web has to find out when to ditch registered users records to make a seat in a meeting available again. In other words, a meeting with maxParicipants of 5 can get it's joins locked with a moderator and 4 waiting guests or bbb-web can wrongly drop a registered user record on a reconnection inducing weird 401 responses from the API. This change proposes to control maxParticipants both at join and enter API calls monitoring the number of redis joined users. This also includes an extra buffer to capture users that called the enter API but still don't have an user joined event. User left events are now handled different holding the user data before removing from the joined users collection and only releasing after verifying that the user didn't reconnected. Both user left timeout `usersTimeout` and entered user timeout `enteredUsersTimeout` can be configured at properties.
2020-09-27 01:52:50 +08:00
# Timeout (millis) to remove a joined user after her/his left event without a rejoin
# e.g. regular user left event
# Default 60s
usersTimeout=60000
# Timeout (millis) to remove guest users that stopped fetching for her/his status
# e.g. guest that closed the waiting page before being approved
# Default 30s
waitingGuestUsersTimeout=30000
Patch of improvements for bbb-web This patch includes two improvements made for bbb-web. It tries to better isolate the sessionToken's handling and session's validation, including logs for each one of these steps; and removes maxParticipats control from registered users (that are no longer removed from bbb-web collections) binding it to joined users or users that reached the enter API call. The following adds more details about this last one: User's regular flow to join a meeting goes around an API join call -> redis register event -> redirect to client page -> API enter call -> redis join event. When the guest policy is ASK_MODERATOR, non-moderators are registered and redirected to a guest lobby that polls for her/his guest status and only enters the meeting after a moderator approval. Using registered users as control to check how many participants are in a meeting is problematic because non-approved guests are counted as participants and bbb-web has to find out when to ditch registered users records to make a seat in a meeting available again. In other words, a meeting with maxParicipants of 5 can get it's joins locked with a moderator and 4 waiting guests or bbb-web can wrongly drop a registered user record on a reconnection inducing weird 401 responses from the API. This change proposes to control maxParticipants both at join and enter API calls monitoring the number of redis joined users. This also includes an extra buffer to capture users that called the enter API but still don't have an user joined event. User left events are now handled different holding the user data before removing from the joined users collection and only releasing after verifying that the user didn't reconnected. Both user left timeout `usersTimeout` and entered user timeout `enteredUsersTimeout` can be configured at properties.
2020-09-27 01:52:50 +08:00
# Timeout (millis) to remove users that called the enter API but did not join
# e.g. user's client hanged between the enter call and join event
# Default 45s
enteredUsersTimeout=45000
#----------------------------------------------------
# This URL is where the BBB client is accessible. When a user successfully
# enters a name and password, she is redirected here to load the client.
# Do not commit changes to this field.
2019-06-24 06:23:35 +08:00
bigbluebutton.web.serverURL=http://bigbluebutton.example.com
#----------------------------------------------------
# Assign URL where the logged-out participant will be redirected after sign-out.
# If "default", it returns to bigbluebutton.web.serverURL
bigbluebutton.web.logoutURL=default
# The url of the BigBlueButton HTML5 client. Users will be redirected here when
# successfully joining the meeting.
defaultHTML5ClientUrl=${bigbluebutton.web.serverURL}/html5client/join
# Graphql websocket url (it's necessary to change for cluster setup)
# Using `serverURL` as default, so `https` will be automatically replaced by `wss`
graphqlWebsocketUrl=${bigbluebutton.web.serverURL}/v1/graphql
useDefaultLogo=false
defaultLogoURL=${bigbluebutton.web.serverURL}/images/logo.png
# Allow requests without JSESSIONID to be handled (default = false)
allowRequestsWithoutSession=false
# Timeout (seconds) to invalidate inactive HTTP sessions.
# Default: 4 hours.
# For more info, refer to javax.servlet.http.HttpSession#setMaxInactiveInterval 's spec
defaultHttpSessionTimeout=14400
# The url for where the guest will poll if approved to join or not.
defaultGuestWaitURL=${bigbluebutton.web.serverURL}/html5client/guestWait
# The default avatar image to display.
useDefaultAvatar=false
defaultAvatarURL=${bigbluebutton.web.serverURL}/html5client/resources/images/avatar.png
2018-02-09 11:22:11 +08:00
apiVersion=2.0
# Salt which is used by 3rd-party apps to authenticate api calls
2018-06-30 03:27:23 +08:00
securitySalt=330a8b08c3b4c61533e1d0c5ce1ac88f
# List of supported hash algorithms for validating checksums (comma-separated)
# Available options: sha1, sha256, sha384, sha512
supportedChecksumAlgorithms=sha1,sha256,sha384,sha512
2022-10-21 14:50:23 +08:00
2020-07-24 13:42:51 +08:00
# Directory where we drop the <meeting-id-recorded>.done file
recordStatusDir=/var/bigbluebutton/recording/status/recorded
redisHost=127.0.0.1
redisPort=6379
2019-05-01 03:30:59 +08:00
redisPassword=
redisKeyExpiry=1209600
# The directory where the published/unpublised recordings are located. This is for
# the get recording* api calls
publishedDir=/var/bigbluebutton/published
unpublishedDir=/var/bigbluebutton/unpublished
2018-06-30 03:27:23 +08:00
captionsDir=/var/bigbluebutton/captions
2023-02-24 23:50:44 +08:00
# when set to true, a single call of getRecordings with no specified meetingID will return a (potentially massive) response listing all recordings on the system
allowFetchAllRecordings=true
# The directory where the pre-built configs are stored
configDir=/var/bigbluebutton/configs
# Disable this option to avoid overriding client settings through /create call
allowOverrideClientSettingsOnCreateCall=true
# The directory to export Json with Meeting activities (used in Learning Dashboard)
learningDashboardFilesDir=/var/bigbluebutton/learning-dashboard
# If the API is enabled.
serviceEnabled = true
# Test voiceBridge number
testVoiceBridge=99999
testConferenceMock=conference-mock-default
#------------------------------------------------------
# These properties are used to test the conversion process.
# Conference name folder in ${presentationDir} (see above)
beans.presentationService.testConferenceMock=${testConferenceMock}
# Conference room folder in ${presentationDir}/${testConferenceMock}
beans.presentationService.testRoomMock=conference-mock-default
# Uploaded presentation name
beans.presentationService.testPresentationName=appkonference
# Uploaded presentation file
beans.presentationService.testUploadedPresentation=appkonference.txt
# Default Uploaded presentation file
# to disable default presentation set its value to null
beans.presentationService.defaultUploadedPresentation=${bigbluebutton.web.serverURL}/default.pdf
# Discard default presentation (default.pdf) when Pre-upload Slides are sent within the create call (default true)
beans.presentationService.preUploadedPresentationOverrideDefault=true
presentationBaseURL=${bigbluebutton.web.serverURL}/bigbluebutton/presentation
# Comma separated list of supported protocols for hosts to download presentations from
# By default only HTTPS is supported. To enable support for all protocols (NOT RECOMMENDED) use 'all' instead
insertDocumentSupportedProtocols=https
# Comma separated list of hosts that presentations CANNOT be downloaded from
2023-05-16 23:17:30 +08:00
# By default localhost is blocked (i.e. all IPs related to localhost will be blocked and cannot be used for presentation download)
insertDocumentBlockedHosts=localhost
#----------------------------------------------------
# The URL where the presentations will be loaded from.
#----------------------------------------------------
beans.presentationService.presentationBaseUrl=${presentationBaseURL}
#----------------------------------------------------
# Inject values into grails service beans
beans.presentationService.presentationDir=${presentationDir}
#----------------------------------------------------
# Specify which IPs can do cross domain requests
accessControlAllowOrigin=${bigbluebutton.web.serverURL}
#----------------------------------------------------
# The lapsus of seconds for polling the BBB Server in order to check if it's down.
# After 5 tries if there isn't response, it will be declared down
checkBBBServerEvery=10
# Default settings for breakout rooms
breakoutRoomsRecord=false
breakoutRoomsPrivateChatEnabled=true
# Default Lock Settings
lockSettingsDisableCam=false
lockSettingsDisableMic=false
lockSettingsDisablePrivateChat=false
lockSettingsDisablePublicChat=false
lockSettingsDisableNotes=false
lockSettingsHideUserList=false
lockSettingsLockOnJoin=true
lockSettingsLockOnJoinConfigurable=false
lockSettingsHideViewersCursor=false
lockSettingsHideViewersAnnotation=false
defaultTextTrackUrl=${bigbluebutton.web.serverURL}/bigbluebutton
# Param to end the meeting when there are no moderators after a certain period of time.
# Needed for classes where teacher gets disconnected and can't get back in. Prevents
# students from running amok.
endWhenNoModerator=false
2021-05-18 04:52:59 +08:00
# Number of minutes to wait for moderator rejoin before end meeting (if `endWhenNoModerator` enabled)
endWhenNoModeratorDelayInMinutes=1
2021-10-30 04:20:19 +08:00
2022-02-07 21:22:52 +08:00
# List of features to disable (comma-separated)
# Available options:
# chat, sharedNotes, polls, screenshare, externalVideos, presentation, downloadPresentationWithAnnotations
# learningDashboard, layouts, captions, liveTranscription, virtualBackgrounds, customVirtualBackgrounds
2023-08-01 04:07:41 +08:00
# breakoutRooms, importSharedNotesFromBreakoutRooms, importPresentationWithAnnotationsFromBreakoutRooms,
# downloadPresentationOriginalFile, downloadPresentationConvertedToPdf
disabledFeatures=
2022-02-07 21:22:52 +08:00
2022-03-11 04:17:57 +08:00
# Notify users that recording is on
notifyRecordingIsOn=false
2021-10-30 04:20:19 +08:00
# Allow endpoint with current BigBlueButton version
allowRevealOfBBBVersion=false
2023-01-05 19:24:42 +08:00
# legacy method for disabling of the learning analytics dashboard; please use disabledFeatures=learningDashboard
2023-01-10 01:51:01 +08:00
learningDashboardEnabled=true
# legacy method for disabling of the breakout rooms; please use disabledFeatures=breakoutRooms
2023-01-10 01:51:01 +08:00
breakoutRoomsEnabled=true
# legacy, please use maxUserConcurrentAccesses instead
allowDuplicateExtUserid=true