From 35b96869bbff806745077bdb5c1a3b0409b58bd4 Mon Sep 17 00:00:00 2001 From: chandi Date: Fri, 2 Apr 2021 18:23:05 +0200 Subject: [PATCH 1/4] changes for BBB 2.3-beta-2 --- docker-compose.tmpl.yml | 18 +++++-------- mod/apps-akka/Dockerfile | 4 +-- mod/bbb-web/Dockerfile | 9 ++++--- mod/bbb-web/bigbluebutton.properties | 25 +++++++++--------- mod/bbb-web/entrypoint.sh | 7 ----- mod/bbb-web/office-convert.sh | 11 ++++++++ .../conf/sip_profiles/external-ipv6.xml | 2 +- mod/freeswitch/conf/sip_profiles/external.xml | 2 +- mod/fsesl-akka/Dockerfile | 6 ++--- mod/html5/Dockerfile | 2 +- mod/html5/settings.yml | 26 ++++++++++++++++--- mod/libreoffice/Dockerfile | 15 ----------- mod/libreoffice/entrypoint.sh | 21 --------------- mod/periodic/bbb-restart-kms | 2 +- mod/recordings/Dockerfile | 2 +- mod/recordings/bigbluebutton.yml | 6 +++++ mod/webrtc-sfu/bbb-webrtc-sfu | 2 +- 17 files changed, 74 insertions(+), 86 deletions(-) create mode 100755 mod/bbb-web/office-convert.sh delete mode 100644 mod/libreoffice/Dockerfile delete mode 100755 mod/libreoffice/entrypoint.sh diff --git a/docker-compose.tmpl.yml b/docker-compose.tmpl.yml index e1a4917..ec5a840 100644 --- a/docker-compose.tmpl.yml +++ b/docker-compose.tmpl.yml @@ -43,7 +43,6 @@ services: restart: unless-stopped depends_on: - redis - - libreoffice healthcheck: test: wget --no-verbose --tries=1 --spider http://10.7.7.2:8090/bigbluebutton/api || exit 1 start_period: 2m @@ -62,7 +61,6 @@ services: - bigbluebutton:/var/bigbluebutton - vol-freeswitch:/var/freeswitch/meetings - vol-kurento:/var/kurento - - vol-libreoffice:/var/tmp/soffice networks: bbb-net: ipv4_address: 10.7.7.2 @@ -238,17 +236,16 @@ services: bbb-net: ipv4_address: 10.7.7.15 - - libreoffice: - build: mod/libreoffice + jodconverter: + image: eugenmayer/jodconverter:rest restart: unless-stopped - volumes: - - vol-libreoffice:/var/tmp/soffice - tmpfs: - - /tmp + deploy: + resources: + limits: + memory: 512M networks: bbb-net: - ipv4_address: 10.7.7.7 + ipv4_address: 10.7.7.20 periodic: build: mod/periodic @@ -375,7 +372,6 @@ volumes: vol-freeswitch: vol-kurento: html5-static: - vol-libreoffice: {{ if isTrue .Env.ENABLE_HTTPS_PROXY }} ssl_data: {{end}} diff --git a/mod/apps-akka/Dockerfile b/mod/apps-akka/Dockerfile index eed2d15..7dd4e4f 100644 --- a/mod/apps-akka/Dockerfile +++ b/mod/apps-akka/Dockerfile @@ -3,7 +3,7 @@ FROM mozilla/sbt:8u181_1.2.7 AS builder RUN apt-get update && apt-get install -y subversion # download bbb-common-message -ENV TAG_COMMON_MESSAGE v2.3-beta-1 +ENV TAG_COMMON_MESSAGE v2.3-beta-2 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_COMMON_MESSAGE/bbb-common-message /bbb-common-message \ && rm -rf /bbb-common-message/.svn @@ -14,7 +14,7 @@ RUN cd /bbb-common-message \ # =================================================== -ENV TAG v2.3-beta-1 +ENV TAG v2.3-beta-2 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/akka-bbb-apps /source \ && rm -rf /source/.svn diff --git a/mod/bbb-web/Dockerfile b/mod/bbb-web/Dockerfile index 842ad63..87f43b1 100644 --- a/mod/bbb-web/Dockerfile +++ b/mod/bbb-web/Dockerfile @@ -3,7 +3,7 @@ FROM mozilla/sbt:8u181_1.2.7 AS builder RUN apt-get update && apt-get install -y subversion # download bbb-common-message -ENV TAG_COMMON_MESSAGE v2.3-beta-1 +ENV TAG_COMMON_MESSAGE v2.3-beta-2 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_COMMON_MESSAGE/bbb-common-message /bbb-common-message \ && rm -rf /bbb-common-message/.svn @@ -26,7 +26,7 @@ RUN cd /opt \ ENV PATH="/opt/gradle-6.7/bin:${PATH}" # download bbb-common-web -ENV TAG_COMMON_WEB v2.3-beta-1 +ENV TAG_COMMON_WEB v2.3-beta-2 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_COMMON_WEB/bbb-common-web /bbb-common-web \ && rm -rf /bbb-common-message/.svn @@ -35,7 +35,7 @@ RUN cd /bbb-common-web \ && ./deploy.sh # download bbb-web -ENV TAG_WEB v2.3-beta-1 +ENV TAG_WEB v2.3-beta-2 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_WEB/bigbluebutton-web /bbb-web \ && rm -rf /bbb-web/.svn @@ -54,7 +54,7 @@ FROM openjdk:8-jre-slim-buster RUN apt-get update && apt-get install -y \ wget unzip gosu socat locales \ - imagemagick xpdf-utils + imagemagick xpdf-utils curl # set locale RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen @@ -97,5 +97,6 @@ COPY entrypoint.sh /entrypoint.sh COPY bigbluebutton.properties /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties.tmpl COPY turn-stun-servers.xml /usr/share/bbb-web/WEB-INF/classes/spring/turn-stun-servers.xml.tmpl COPY logback.xml /usr/share/bbb-web/WEB-INF/classes/logback.xml +COPY office-convert.sh /usr/share/bbb-libreoffice-conversion/convert.sh ENTRYPOINT ["/entrypoint.sh"] diff --git a/mod/bbb-web/bigbluebutton.properties b/mod/bbb-web/bigbluebutton.properties index 3d2053a..5b0df04 100644 --- a/mod/bbb-web/bigbluebutton.properties +++ b/mod/bbb-web/bigbluebutton.properties @@ -49,19 +49,8 @@ presCheckExec=/usr/share/prescheck/prescheck.sh skipOfficePrecheck=true #---------------------------------------------------- -# Number of soffice processes that are running on this machine -sofficeManagers=4 - -#---------------------------------------------------- -# Port number of the first soffice process -sofficeBasePort=8201 - -#---------------------------------------------------- -# Working directory prefix for each soffice process. -# The value of this is appended with the number of the -# soffice process (starting at 1), padded to two digits -# (e.g. /var/tmp/soffice_01 for the first process). -sofficeWorkingDirBase=/var/tmp/soffice/instance_ +# Executable for presentation office conversion +presOfficeConversionExec=/usr/share/bbb-libreoffice-conversion/convert.sh #---------------------------------------------------- # These will be copied in cases where the conversion process @@ -109,6 +98,16 @@ numConversionThreads=5 #------------------------------------ numFileProcessorThreads=2 +#------------------------------------ +# Timeout(secs) to wait for conversion script execution +#------------------------------------ +officeToPdfConversionTimeout=60 + +#------------------------------------ +# Max concurrent of conversion script execution +#------------------------------------ +officeToPdfMaxConcurrentConversions=4 + #---------------------------------------------------- # Conversion of the presentation slides to SWF to be # used in the Flash client diff --git a/mod/bbb-web/entrypoint.sh b/mod/bbb-web/entrypoint.sh index 8197ecd..b7ee136 100755 --- a/mod/bbb-web/entrypoint.sh +++ b/mod/bbb-web/entrypoint.sh @@ -1,13 +1,6 @@ #!/bin/bash set -e -# forward libreoffice ports to this container -for i in `seq 1 4` ; do - let PORT=8200+${i} - echo "forward port $PORT to the libreoffice container" - socat TCP-LISTEN:$PORT,fork TCP:10.7.7.7:$PORT & -done - # create recording directory structure if it doesn't exist yet mkdir -p /var/bigbluebutton/recording/raw mkdir -p /var/bigbluebutton/recording/process diff --git a/mod/bbb-web/office-convert.sh b/mod/bbb-web/office-convert.sh new file mode 100755 index 0000000..395344c --- /dev/null +++ b/mod/bbb-web/office-convert.sh @@ -0,0 +1,11 @@ +#!/bin/bash +# This script receives two params +# Param 1: Input office file path (e.g. "/tmp/test.odt") +# Param 2: Output pdf file path (e.g. "/tmp/test.pdf") + +curl -v -X POST "http://jodconverter:8080/lool/convert-to/pdf" \ + -H "accept: application/octet-stream" \ + -H "Content-Type: multipart/form-data" \ + -F "data=@$1" > $2 + +exit 0 \ No newline at end of file diff --git a/mod/freeswitch/conf/sip_profiles/external-ipv6.xml b/mod/freeswitch/conf/sip_profiles/external-ipv6.xml index f1421ce..94339de 100644 --- a/mod/freeswitch/conf/sip_profiles/external-ipv6.xml +++ b/mod/freeswitch/conf/sip_profiles/external-ipv6.xml @@ -36,7 +36,7 @@ - + - + diff --git a/mod/fsesl-akka/Dockerfile b/mod/fsesl-akka/Dockerfile index 6f1ac3f..2bd5483 100644 --- a/mod/fsesl-akka/Dockerfile +++ b/mod/fsesl-akka/Dockerfile @@ -3,7 +3,7 @@ FROM mozilla/sbt:8u181_1.2.7 AS builder RUN apt-get update && apt-get install -y subversion # download bbb-common-message -ENV TAG_COMMON_MESSAGE v2.3-beta-1 +ENV TAG_COMMON_MESSAGE v2.3-beta-2 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_COMMON_MESSAGE/bbb-common-message /bbb-common-message \ && rm -rf /bbb-common-message/.svn @@ -13,7 +13,7 @@ RUN cd /bbb-common-message \ # =================================================== -ENV TAG_FSESL v2.3-beta-1 +ENV TAG_FSESL v2.3-beta-2 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_FSESL/bbb-fsesl-client /bbb-fsesl-client \ && rm -rf /bbb-fsesl-client/.svn @@ -21,7 +21,7 @@ RUN cd /bbb-fsesl-client \ && ./deploy.sh -ENV TAG v2.3-beta-1 +ENV TAG v2.3-beta-2 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/akka-bbb-fsesl /source \ && rm -rf /source/.svn diff --git a/mod/html5/Dockerfile b/mod/html5/Dockerfile index 991a256..93a1196 100644 --- a/mod/html5/Dockerfile +++ b/mod/html5/Dockerfile @@ -14,7 +14,7 @@ USER meteor ENV METEOR_VERSION 1.10.2 RUN curl -sL https://install.meteor.com?release=$METEOR_VERSION | sed s/--progress-bar/-sL/g | /bin/sh -ENV TAG v2.3-beta-1 +ENV TAG v2.3-beta-2 RUN cd ~ \ && svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/bigbluebutton-html5 \ && mv ~/bigbluebutton-html5 ~/source \ diff --git a/mod/html5/settings.yml b/mod/html5/settings.yml index 9fc6b9a..1e5019c 100644 --- a/mod/html5/settings.yml +++ b/mod/html5/settings.yml @@ -8,11 +8,19 @@ public: forceListenOnly: false skipCheck: {{ .Env.DISABLE_ECHO_TEST }} skipCheckOnJoin: false + # + # Allow users to change microphone/speaker dinamically + # The device is changed immediately, without the need to rejoin + # audio. Default value is true + # Firefox users: if no output devices is shown, you may set the flag + # "media.setsinkid.enabled" to make it work properly + # enableDynamicAudioDeviceSelection: true + # clientTitle: {{ .Env.CLIENT_TITLE }} appName: BigBlueButton HTML5 Client bbbServerVersion: 2.3-dev-docker copyright: '©2021 BigBlueButton Inc.' - html5ClientBuild: "1511-docker" + html5ClientBuild: "1551-docker" helpLink: https://bigbluebutton.org/html5/ lockOnJoin: true cdn: '' @@ -43,7 +51,7 @@ public: enableDebugWindow: true # Warning: increasing the limit of breakout rooms per meeting # can generate excessive overhead to the server. We recommend - # this value to be kept under 12. + # this value to be kept under 16. breakouts: breakoutRoomLimit: {{ .Env.BREAKOUTROOM_LIMIT }} sendInvitationToIncludedModerators: false @@ -163,10 +171,10 @@ public: mediaTimeouts: maxConnectionAttempts: 2 # Base screen media timeout (send|recv) - baseTimeout: 15000 + baseTimeout: 30000 # Max timeout: used as the max camera subscribe reconnection timeout. Each # subscribe reattempt increases the reconnection timer up to this - maxTimeout: 35000 + maxTimeout: 60000 timeoutIncreaseFactor: 1.5 constraints: video: @@ -355,6 +363,8 @@ public: time: 5000 chat: enabled: {{ .Env.CHAT_ENABLED }} + itemsPerPage: 100 + timeBetweenFetchs: 1000 bufferChatInsertsMs: 0 startClosed: {{ .Env.CHAT_START_CLOSED }} min_message_length: 1 @@ -418,7 +428,11 @@ public: enabled: true interval: 2000 length: 5 + timeout: 30000 log: false + notification: + warning: false + error: true jitter: - 10 - 20 @@ -427,6 +441,10 @@ public: - 0.05 - 0.1 - 0.2 + rtt: + - 500 + - 1000 + - 2000 level: - warning - danger diff --git a/mod/libreoffice/Dockerfile b/mod/libreoffice/Dockerfile deleted file mode 100644 index 3402042..0000000 --- a/mod/libreoffice/Dockerfile +++ /dev/null @@ -1,15 +0,0 @@ -FROM woahbase/alpine-libreoffice - -USER root - -RUN apk add --no-cache \ - su-exec \ - font-noto \ - font-noto-cjk - -# should use the same user ID as in `core` to avoid file permission issues -RUN addgroup -g 998 bigbluebutton && adduser -D -u 998 -G bigbluebutton bigbluebutton -COPY entrypoint.sh /entrypoint.sh - - -ENTRYPOINT /entrypoint.sh diff --git a/mod/libreoffice/entrypoint.sh b/mod/libreoffice/entrypoint.sh deleted file mode 100755 index 60767f6..0000000 --- a/mod/libreoffice/entrypoint.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -set -e - -for i in `seq 1 4` ; do - - SOFFICE_WORK_DIR="/var/tmp/soffice/instance_"`printf "%02d\n" ${i}` - mkdir -p $SOFFICE_WORK_DIR - chown bigbluebutton:bigbluebutton $SOFFICE_WORK_DIR - - # Initialize environment - su-exec bigbluebutton /usr/lib/libreoffice/program/soffice.bin -env:UserInstallation="file:///tmp/office_${i}/" || true -done - - -for i in `seq 1 4` ; do - let PORT=8200+${i} - echo "start libreoffice on port ${PORT}" - su-exec bigbluebutton /usr/lib/libreoffice/program/soffice.bin --accept="socket,host=0.0.0.0,port=$PORT,tcpNoDelay=1;urp;StarOffice.ServiceManager" --headless --invisible --nocrashreport --nodefault --nofirststartwizard --nolockcheck --nologo --norestore -env:UserInstallation="file:///tmp/office_${i}/" & -done - -wait $! diff --git a/mod/periodic/bbb-restart-kms b/mod/periodic/bbb-restart-kms index 6b30b9f..3787ade 100755 --- a/mod/periodic/bbb-restart-kms +++ b/mod/periodic/bbb-restart-kms @@ -12,7 +12,7 @@ if [ ! -f /tmp/bbb-kms-last-restart.txt ]; then exit fi -users=$(mongo --quiet mongodb://10.7.7.6:27017/meteor --eval "db.users.count({connectionStatus: 'online'})") +users=$(mongo --quiet mongodb://10.7.7.6:27017/meteor --eval "db.users.count()") echo "currently active users: $users" if [ "$users" -eq 0 ]; then diff --git a/mod/recordings/Dockerfile b/mod/recordings/Dockerfile index 27420db..9f7584a 100644 --- a/mod/recordings/Dockerfile +++ b/mod/recordings/Dockerfile @@ -45,7 +45,7 @@ RUN mkdir -p \ /usr/local/bigbluebutton/core \ /etc/bigbluebutton -ENV TAG v2.3-beta-1 +ENV TAG v2.3-beta-2 # add bbb-record-core (lib, scripts and Gemfile) RUN cd /usr/local/bigbluebutton/core \ diff --git a/mod/recordings/bigbluebutton.yml b/mod/recordings/bigbluebutton.yml index e22f41a..c023382 100644 --- a/mod/recordings/bigbluebutton.yml +++ b/mod/recordings/bigbluebutton.yml @@ -22,6 +22,12 @@ redis_port: 6379 # redis_workers_host: 127.0.0.1 # redis_workers_port: 6379 +# Set to true to insert recording process status into +# redis list with key "store_recording_status: true". +# This is useful if you want to track progress status +# and have another script process it. +store_recording_status: false + # Sequence of recording steps. Keys are the current step, values # are the next step(s). Examples: # current_step: next_step diff --git a/mod/webrtc-sfu/bbb-webrtc-sfu b/mod/webrtc-sfu/bbb-webrtc-sfu index 02adc81..c26960e 160000 --- a/mod/webrtc-sfu/bbb-webrtc-sfu +++ b/mod/webrtc-sfu/bbb-webrtc-sfu @@ -1 +1 @@ -Subproject commit 02adc818dcb18e2dd73ba043b92391820cd121ff +Subproject commit c26960e58779aa8508a8ae411e331c3744e5ca99 From 9993561b80169722691c58921de2f2fbdca3679a Mon Sep 17 00:00:00 2001 From: chandi Date: Fri, 2 Apr 2021 18:34:55 +0200 Subject: [PATCH 2/4] bbb-web: use overlay config --- mod/bbb-web/Dockerfile | 2 +- mod/bbb-web/bbb-web.properties | 20 ++ mod/bbb-web/bigbluebutton.properties | 368 --------------------------- mod/bbb-web/entrypoint.sh | 2 +- 4 files changed, 22 insertions(+), 370 deletions(-) create mode 100644 mod/bbb-web/bbb-web.properties delete mode 100644 mod/bbb-web/bigbluebutton.properties diff --git a/mod/bbb-web/Dockerfile b/mod/bbb-web/Dockerfile index 87f43b1..eb9eef4 100644 --- a/mod/bbb-web/Dockerfile +++ b/mod/bbb-web/Dockerfile @@ -94,7 +94,7 @@ COPY mocked-ps /usr/bin/ps # add entrypoint and templates COPY entrypoint.sh /entrypoint.sh -COPY bigbluebutton.properties /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties.tmpl +COPY bbb-web.properties /etc/bigbluebutton/bbb-web.properties.tmpl COPY turn-stun-servers.xml /usr/share/bbb-web/WEB-INF/classes/spring/turn-stun-servers.xml.tmpl COPY logback.xml /usr/share/bbb-web/WEB-INF/classes/logback.xml COPY office-convert.sh /usr/share/bbb-libreoffice-conversion/convert.sh diff --git a/mod/bbb-web/bbb-web.properties b/mod/bbb-web/bbb-web.properties new file mode 100644 index 0000000..1c7d96c --- /dev/null +++ b/mod/bbb-web/bbb-web.properties @@ -0,0 +1,20 @@ +defaultWelcomeMessage={{ .Env.WELCOME_MESSAGE }} +defaultWelcomeMessageFooter={{ .Env.WELCOME_FOOTER }} + +{{ if isTrue .Env.ENABLE_RECORDING }} +disableRecordingDefault=false +{{ else }} +disableRecordingDefault=true +{{ end }} + +bigbluebutton.web.serverURL=https://{{ .Env.DOMAIN }} + +securitySalt={{ .Env.SHARED_SECRET }} + +redisHost=redis + +{{ if isTrue .Env.DEV_MODE }} +beans.presentationService.defaultUploadedPresentation=https://test.bigbluebutton.org/default.pdf +{{else}} +beans.presentationService.defaultUploadedPresentation=${bigbluebutton.web.serverURL}/default.pdf +{{end}} diff --git a/mod/bbb-web/bigbluebutton.properties b/mod/bbb-web/bigbluebutton.properties deleted file mode 100644 index 5b0df04..0000000 --- a/mod/bbb-web/bigbluebutton.properties +++ /dev/null @@ -1,368 +0,0 @@ -# -# 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 properites for BigBlueButton Web application - -# Default loglevel. -appLogLevel=DEBUG - -#---------------------------------------------------- -# Directory where BigBlueButton stores uploaded slides -presentationDir=/var/bigbluebutton - -#---------------------------------------------------- -# Directory where SWFTOOLS (pdf2swf, jpeg2swf, png2swf) are located -swfToolsDir=/usr/bin - -#---------------------------------------------------- -# Directory where ImageMagick's convert executable is located -imageMagickDir=/usr/bin - -#---------------------------------------------------- -# Fonts directory passed into PDF2SWF to support highlighting of texts -# in the SWF slides. -fontsDir=/usr/share/fonts - -#---------------------------------------------------- -# 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_SLIDE=/usr/share/bigbluebutton/blank/blank-slide.swf -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 swf file size for load to the client (default 500000). -MAX_SWF_FILE_SIZE=500000 - -#---------------------------------------------------- -# Maximum allowed number of place object tags in the converted SWF, if exceeded the conversion will fallback to full BMP (default 800) -placementsThreshold=800 - -# Maximum allowed number of bitmap images in the converted SWF, if exceeded the conversion will fallback to full BMP (default 800) -imageTagThreshold=800 - -# Maximum allowed number of define text tags in the converted SWF, if exceeded the conversion will fallback to full BMP (default 200) -defineTextThreshold=2000 - -#------------------------------------ -# 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 conversion script execution -#------------------------------------ -officeToPdfConversionTimeout=60 - -#------------------------------------ -# Max concurrent of conversion script execution -#------------------------------------ -officeToPdfMaxConcurrentConversions=4 - -#---------------------------------------------------- -# Conversion of the presentation slides to SWF to be -# used in the Flash client -swfSlidesRequired=false - -#---------------------------------------------------- -# Additional conversion of the presentation slides to SVG -# to be used in the HTML5 client -svgImagesRequired=true - -#---------------------------------------------------- -# 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 - -#---------------------------------------------------- -# Configuration for large images, 2 MB by default, if bigger it will down-scaled -maxImageSize=2000000 - -#---------------------------------------------------- -# 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 - -# -#---------------------------------------------------- -# 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={{ .Env.WELCOME_MESSAGE }} -defaultWelcomeMessageFooter={{ .Env.WELCOME_FOOTER }} - -# Default maximum number of users a meeting can have. -# Current default is 0 (meeting doesn't have a user limit). -defaultMaxUsers=0 - -# 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 -{{ if isTrue .Env.ENABLE_RECORDING }} -disableRecordingDefault=false -{{ else }} -disableRecordingDefault=true -{{ end }} - -# 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 - -# Allow webcams streaming reception only to and from moderators -webcamsOnlyForModerator=false - -# Mute the meeting on start -muteOnStart=false - -# Unmute users -# Gives moderators permisson to unmute other users -allowModsToUnmuteUsers=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 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 sucessfully -# enters a name and password, she is redirected here to load the client. -# Do not commit changes to this field. -bigbluebutton.web.serverURL=https://{{ .Env.DOMAIN }} - - -#---------------------------------------------------- -# 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 - -# Allow requests without JSESSIONID to be handled (default = false) -allowRequestsWithoutSession=false - -# 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 - -# The URL of the default configuration -defaultConfigURL=${bigbluebutton.web.serverURL}/client/conf/config.xml - -apiVersion=2.0 - -# Salt which is used by 3rd-party apps to authenticate api calls -securitySalt={{ .Env.SHARED_SECRET }} - -# Directory where we drop the .done file -recordStatusDir=/var/bigbluebutton/recording/status/recorded - -redisHost=redis -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 - -# The directory where the pre-built configs are stored -configDir=/var/bigbluebutton/configs - -# 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 -{{ if isTrue .Env.DEV_MODE }} -beans.presentationService.defaultUploadedPresentation=https://test.bigbluebutton.org/default.pdf -{{else}} -beans.presentationService.defaultUploadedPresentation=${bigbluebutton.web.serverURL}/default.pdf -{{end}} - -presentationBaseURL=${bigbluebutton.web.serverURL}/bigbluebutton/presentation - -#---------------------------------------------------- -# 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 - -# The Red5 server where FS will publish as RTMP stream -screenshareRtmpServer={{ .Env.DOMAIN }} - -# The Red5 app that receives the published RTMP stream -screenshareRtmpBroadcastApp=video-broadcast - -# The suffix of our verto screenshare conference. -# Convention is {voiceConf}-SCREENSHARE -screenshareConfSuffix=-SCREENSHARE - -# Default settings for breakout rooms -breakoutRoomsEnabled=true -breakoutRoomsRecord=false -breakoutRoomsPrivateChatEnabled=true - -# Default Lock Settings -lockSettingsDisableCam=false -lockSettingsDisableMic=false -lockSettingsDisablePrivateChat=false -lockSettingsDisablePublicChat=false -lockSettingsDisableNote=false -lockSettingsHideUserList=false -lockSettingsLockedLayout=false -lockSettingsLockOnJoin=true -lockSettingsLockOnJoinConfigurable=false - -allowDuplicateExtUserid=true - -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 \ No newline at end of file diff --git a/mod/bbb-web/entrypoint.sh b/mod/bbb-web/entrypoint.sh index b7ee136..4762952 100755 --- a/mod/bbb-web/entrypoint.sh +++ b/mod/bbb-web/entrypoint.sh @@ -21,7 +21,7 @@ echo "$NUMBER_OF_BACKEND_NODEJS_PROCESSES" > /tmp/NUMBER_OF_BACKEND_NODEJS_PROCE cd /usr/share/bbb-web/ dockerize \ - -template /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties.tmpl:/usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties \ + -template /etc/bigbluebutton/bbb-web.properties.tmpl:/etc/bigbluebutton/bbb-web.properties \ -template /usr/share/bbb-web/WEB-INF/classes/spring/turn-stun-servers.xml.tmpl:/usr/share/bbb-web/WEB-INF/classes/spring/turn-stun-servers.xml \ gosu bigbluebutton java -Dgrails.env=prod -Dserver.address=0.0.0.0 -Dserver.port=8090 -Xms384m -Xmx384m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/bigbluebutton/diagnostics -cp WEB-INF/lib/*:/:WEB-INF/classes/:. org.springframework.boot.loader.WarLauncher From 588118de2aa10ff827aca264fe70358dbbbff2f7 Mon Sep 17 00:00:00 2001 From: chandi Date: Fri, 2 Apr 2021 18:42:36 +0200 Subject: [PATCH 3/4] bbb-web: remove socat dependency --- mod/bbb-web/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/bbb-web/Dockerfile b/mod/bbb-web/Dockerfile index eb9eef4..4eb210c 100644 --- a/mod/bbb-web/Dockerfile +++ b/mod/bbb-web/Dockerfile @@ -53,7 +53,7 @@ RUN unzip -q /bbb-web/build/libs/bigbluebutton-0.10.0.war -d /dist FROM openjdk:8-jre-slim-buster RUN apt-get update && apt-get install -y \ - wget unzip gosu socat locales \ + wget unzip gosu locales \ imagemagick xpdf-utils curl # set locale From 529166642943cf2bcc7078e1651778d9598d6ae9 Mon Sep 17 00:00:00 2001 From: chandi Date: Sun, 4 Apr 2021 22:32:56 +0200 Subject: [PATCH 4/4] Note on broken dial-in --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b5d2c9c..4081488 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,13 @@ # BigBlueButton 2.3 Docker -Version: 2.3-beta-1 | [Changelog](CHANGELOG.md) | [Issues](https://github.com/bigbluebutton/docker/issues) +Version: 2.3-beta-2 | [Changelog](CHANGELOG.md) | [Issues](https://github.com/bigbluebutton/docker/issues) ## Note Even though it seems to be stable so far, it is still a beta, which means that you can expect broken bits and pieces in some places. +### Known broken features +- Telephone dial-in [bigbluebutton#11860](https://github.com/bigbluebutton/bigbluebutton/issues/11860) + ## Features - Easy installation - Greenlight included