#
# 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 .
#
#
# These are the default properties 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
#----------------------------------------------------
# Skip Office doc conversion pre-check. Attempt to convert
# Office doc to PDF right away.
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
#----------------------------------------------------
# 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
#------------------------------------
# Presentation upload and conversion timeouts in milliseconds
#------------------------------------
extractTimeoutInMs=10000
pngCreationExecTimeoutInMs=10000
thumbnailCreationExecTimeoutInMs=10000
pdfPageDownscaleExecTimeoutInMs=10000
officeDocumentValidationExecTimeoutInMs=25000
textFileCreationExecTimeoutInMs=60000
presDownloadReadTimeoutInMs=60000
#------------------------------------
# Presentation upload and conversion timeouts in seconds
#------------------------------------
pngCreationConversionTimeout=7
pngCreationWait=7
pdfToSvgTimeout=60
imageResizeWait=7
officeDocumentValidationTimeout=20
presOfficeConversionTimeout=60
pdfPageCountWait=5
#----------------------------------------------------
# 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
#----------------------------------------------------
# Maximum image resolution, if image exceeds this limit it will be resized
maxImageWidth=2048
maxImageHeight=1536
#----------------------------------------------------
# Configuration for large PDF, 14 MB by default, if bigger it will be analysed during the conversion process
bigPdfSize=14000000
# 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
# Allows moderators to promote guests to moderators when authenticatedGuest is enabled
defaultAllowPromoteGuestToModerator=false
#---------------------------------------------------
# Default Meeting Layout
# Accepted values are the standard layouts: CUSTOM_LAYOUT, SMART_LAYOUT, PRESENTATION_FOCUS, VIDEO_FOCUS
# but also several layouts which are not meant to be selectable via UI: CAMERAS_ONLY, PARTICIPANTS_CHAT_ONLY, PRESENTATION_ONLY
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
#
defaultWelcomeMessage=Welcome to %%CONFNAME%%!
For help on using BigBlueButton see these (short) tutorial videos.
To join the audio bridge click the speaker button. Use a headset to avoid causing background noise for others.
defaultWelcomeMessageFooter=This server is running BigBlueButton.
# 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
# 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 remain available permanently.
# Below is the default value, it can be customized using the create API.
learningDashboardCleanupDelayInMinutes=2
# Allow webcams streaming reception only to and from moderators
webcamsOnlyForModerator=false
# Per meeting camera share limit
# if 0, there's no limit
meetingCameraCap=0
# 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
# Unmute users
# Gives moderators permission to unmute other users
allowModsToUnmuteUsers=false
# Eject user webcams
# Gives moderators permission to close other users' webcams
allowModsToEjectCameras=false
# Saves meeting events even if the meeting is not recorded
defaultKeepEvents=false
# 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
# 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.
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
# 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}/graphql
# Graphql API url (it's necessary to change for cluster setup)
graphqlApiUrl=${bigbluebutton.web.serverURL}/api/rest
# This parameter defines the duration (in minutes) to wait before removing user sessions after a meeting has ended.
# During this delay, users can still access information indicating that the "Meeting has ended".
# Setting this value to 0 will result in the sessions being kept alive indefinitely (permanent availability).
sessionsCleanupDelayInMinutes=60
useDefaultLogo=false
useDefaultDarkLogo=false
defaultLogoURL=${bigbluebutton.web.serverURL}/images/logo.png
defaultDarkLogoURL=${bigbluebutton.web.serverURL}/images/darklogo.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 default avatar image to display.
useDefaultAvatar=false
defaultAvatarURL=${bigbluebutton.web.serverURL}/html5client/resources/images/avatar.png
defaultBotAvatarURL=${bigbluebutton.web.serverURL}/html5client/resources/images/bot-avatar.png
# The default webcam background image to display.
useDefaultWebcamBackground=false
defaultWebcamBackgroundURL=${bigbluebutton.web.serverURL}/html5client/resources/images/virtual-backgrounds/board.jpg
apiVersion=2.0
# Salt which is used by 3rd-party apps to authenticate api calls
securitySalt=330a8b08c3b4c61533e1d0c5ce1ac88f
# List of supported hash algorithms for validating checksums (comma-separated)
# Available options: sha1, sha256, sha384, sha512
supportedChecksumAlgorithms=sha1,sha256,sha384,sha512
# Directory where we drop the .done file
recordStatusDir=/var/bigbluebutton/recording/status/recorded
redisHost=127.0.0.1
redisPort=6379
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
captionsDir=/var/bigbluebutton/captions
# 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
# Enable this option to allow overriding client settings through /create call
allowOverrideClientSettingsOnCreateCall=false
# 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
# By default localhost is blocked (i.e. all IPs related to localhost will be blocked and cannot be used for presentation download)
insertDocumentBlockedHosts=localhost
# Indicates whether uploaded presentation files should be scanned for viruses. By default, files are not scanned.
scanUploadedPresentationFiles=false
#----------------------------------------------------
# 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
# Number of minutes to wait for moderator rejoin before end meeting (if `endWhenNoModerator` enabled)
endWhenNoModeratorDelayInMinutes=1
# List of features to disable (comma-separated)
# https://docs.bigbluebutton.org/3.0/development/api/#create
# Available options:
# chat, sharedNotes, polls, screenshare, externalVideos, layouts, captions, liveTranscription,
# breakoutRooms, importSharedNotesFromBreakoutRooms, importPresentationWithAnnotationsFromBreakoutRooms,
# presentation, downloadPresentationWithAnnotations, downloadPresentationOriginalFile, downloadPresentationConvertedToPdf,
# learningDashboard, learningDashboardDownloadSessionData,
# virtualBackgrounds, customVirtualBackgrounds,
disabledFeatures=
# Notify users that recording is on
notifyRecordingIsOn=false
# Allow endpoint with current BigBlueButton version
allowRevealOfBBBVersion=false
# legacy method for disabling of the learning analytics dashboard; please use disabledFeatures=learningDashboard
learningDashboardEnabled=true
# legacy method for disabling of the breakout rooms; please use disabledFeatures=breakoutRooms
breakoutRoomsEnabled=true
# legacy, please use maxUserConcurrentAccesses instead
allowDuplicateExtUserid=true
# list of plugins manifests (json array)
# e.g: [{url: "https://plugin_manifest.json"}]
pluginManifests=