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
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..4eb210c 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
@@ -53,8 +53,8 @@ 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 \
- imagemagick xpdf-utils
+ wget unzip gosu locales \
+ imagemagick xpdf-utils curl
# set locale
RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen
@@ -94,8 +94,9 @@ 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
ENTRYPOINT ["/entrypoint.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 3d2053a..0000000
--- a/mod/bbb-web/bigbluebutton.properties
+++ /dev/null
@@ -1,369 +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
-
-#----------------------------------------------------
-# 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_
-
-#----------------------------------------------------
-# 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
-
-#----------------------------------------------------
-# 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 8197ecd..4762952 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
@@ -28,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
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