From 5464ee6c1a812f657410cde2934b69ff98eefdfd Mon Sep 17 00:00:00 2001 From: chandi Date: Sun, 6 Sep 2020 18:36:02 +0200 Subject: [PATCH] apply v2.3-alpha-2 changes --- bbb-webrtc-sfu | 2 +- mod/core/Dockerfile | 17 ++++-- mod/core/bbb-transcode-akka/application.conf | 48 --------------- mod/core/web/bigbluebutton.properties | 17 +++++- mod/fsesl-akka/Dockerfile | 2 +- mod/html5/Dockerfile | 6 +- mod/html5/settings.yml | 64 +++++++++++++++++--- mod/nginx/Dockerfile | 2 +- mod/nginx/bbb/notes.nginx | 28 +++++---- mod/recordings/Dockerfile | 2 +- mod/webhooks/Dockerfile | 2 +- 11 files changed, 105 insertions(+), 85 deletions(-) delete mode 100644 mod/core/bbb-transcode-akka/application.conf diff --git a/bbb-webrtc-sfu b/bbb-webrtc-sfu index 9aa9f02..400fe63 160000 --- a/bbb-webrtc-sfu +++ b/bbb-webrtc-sfu @@ -1 +1 @@ -Subproject commit 9aa9f02f07b70f01eed149296b42db4859f2fa04 +Subproject commit 400fe636e63563437fb112c2df0261d6be9f103e diff --git a/mod/core/Dockerfile b/mod/core/Dockerfile index eb9f7de..a2b34a1 100644 --- a/mod/core/Dockerfile +++ b/mod/core/Dockerfile @@ -17,8 +17,7 @@ RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSI # RUN apt-get install -y tcpdump telnet htop vim # -- Install Dependencies -RUN (echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections) \ - && apt-get install -y supervisor apt-transport-https equivs libreoffice haveged ttf-mscorefonts-installer fonts-crosextra-carlito fonts-crosextra-caladea fonts-noto net-tools +RUN apt-get install -y supervisor apt-transport-https equivs haveged fonts-crosextra-carlito fonts-crosextra-caladea fonts-noto net-tools # bbb repo & packages RUN LC_CTYPE=C.UTF-8 add-apt-repository ppa:bigbluebutton/support @@ -32,11 +31,20 @@ RUN equivs-control redis-server.control \ && dpkg -i /*.deb \ && rm /*.deb +RUN equivs-control bbb-libreoffice-docker.control \ + && sed -i 's//bbb-libreoffice-docker/g' bbb-libreoffice-docker.control \ + && equivs-build bbb-libreoffice-docker.control \ + && dpkg -i /*.deb \ + && rm /*.deb + +RUN echo '#!/bin/bash\necho "mocking: systemctl $@"' > /usr/bin/systemctl && chmod +x /usr/bin/systemctl + # this variable is not used, but it triggers # rebuilding from here on if changed -ENV VERSION v2.3-alpha-1 +ENV VERSION v2.3-alpha-2 -RUN apt-get update && apt-get install -y bbb-web bbb-apps-akka bbb-transcode-akka +RUN apt-get update && apt-get install -y openjdk-8-jre-headless poppler-utils imagemagick +RUN apt-get update && apt-get install -y bbb-web bbb-apps-akka # add blank presentation files and allow conversation to pdf/svg RUN mkdir -p /usr/share/bigbluebutton/blank \ @@ -53,7 +61,6 @@ COPY web/bigbluebutton.properties /usr/share/bbb-web/WEB-INF/classes/bigbluebutt COPY web/turn-stun-servers.xml /usr/share/bbb-web/WEB-INF/classes/spring/turn-stun-servers.xml.tmpl COPY bbb-apps-akka/application.conf /usr/share/bbb-apps-akka/conf/application.conf.tmpl -COPY bbb-transcode-akka/application.conf /etc/bbb-transcode-akka/application.conf COPY web-run.sh /usr/share/bbb-web/run-prod.sh # add default presentation thumbnail diff --git a/mod/core/bbb-transcode-akka/application.conf b/mod/core/bbb-transcode-akka/application.conf deleted file mode 100644 index a965980..0000000 --- a/mod/core/bbb-transcode-akka/application.conf +++ /dev/null @@ -1,48 +0,0 @@ -akka { - actor { - debug { - receive = on - } - } - loggers = ["akka.event.slf4j.Slf4jLogger"] - loglevel = INFO - stdout-loglevel = "INFO" - - redis-subscriber-worker-dispatcher { - mailbox-type = "akka.dispatch.SingleConsumerOnlyUnboundedMailbox" - # Throughput defines the maximum number of messages to be - # processed per actor before the thread jumps to the next actor. - # Set to 1 for as fair as possible. - throughput = 512 - } -} - - -redis { - host="redis" - port=6379 - password="" - # recording keys should expire in 14 days - keyExpiry=1209600 -} - -videoconference { - #The image to use in the videoconference window and/or when the webuser has no video - videoconf-logo-image-path = /usr/share/red5/webapps/sip/WEB-INF/mconf-videoconf-logo.gif - - #Enable username subtitle on video-conf-logo (the one shown in sip-phone when - #webconference's talker has no video ) - enable-user-video-subtitle = true - - #To change the sip video resolution, edit below: - #IMPORTANT: For now, we only accept these 3 resolutions: 160x120, 320x240, 640x480 - sip-video-resolution=640x480 -} - -transcoder { - #The path where ffmpeg is installed - ffmpeg-path = /usr/bin/ffmpeg - - #The path where ffprobe is installed - ffprobe-path = /usr/bin/ffprobe -} diff --git a/mod/core/web/bigbluebutton.properties b/mod/core/web/bigbluebutton.properties index d7068a0..8301163 100644 --- a/mod/core/web/bigbluebutton.properties +++ b/mod/core/web/bigbluebutton.properties @@ -48,6 +48,21 @@ presCheckExec=/usr/share/prescheck/prescheck.sh # 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 @@ -217,7 +232,7 @@ muteOnStart=false allowModsToUnmuteUsers=false # Saves meeting events even if the meeting is not recorded -keepEvents=false +keepEvents=true # Timeout (millis) to remove a joined user after her/his left event without a rejoin # e.g. regular user left event diff --git a/mod/fsesl-akka/Dockerfile b/mod/fsesl-akka/Dockerfile index a0acd9c..e887cf1 100644 --- a/mod/fsesl-akka/Dockerfile +++ b/mod/fsesl-akka/Dockerfile @@ -2,7 +2,7 @@ FROM openjdk:8u252-jdk-slim-buster RUN apt update && apt-get install -y subversion -ENV TAG v2.3-alpha-1 +ENV TAG v2.3-alpha-2 RUN cd / \ diff --git a/mod/html5/Dockerfile b/mod/html5/Dockerfile index 7692695..7a5c0cd 100644 --- a/mod/html5/Dockerfile +++ b/mod/html5/Dockerfile @@ -11,10 +11,10 @@ RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSI && rm dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz USER meteor -ENV METEOR_VERSION 1.9 +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-alpha-1 +ENV TAG v2.3-alpha-2 RUN cd ~ \ && svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/bigbluebutton-html5 \ && mv ~/bigbluebutton-html5 ~/source \ @@ -41,4 +41,4 @@ COPY settings.yml /app/programs/server/assets/app/config/settings.yml.tmpl ENTRYPOINT ["/entrypoint.sh"] # lets set the tag again, so that it is include in the image for later version retrieval -ENV TAG v2.3-alpha-1 +ENV TAG v2.3-alpha-2 diff --git a/mod/html5/settings.yml b/mod/html5/settings.yml index add96ee..60bd6a9 100644 --- a/mod/html5/settings.yml +++ b/mod/html5/settings.yml @@ -9,9 +9,9 @@ public: skipCheck: {{ .Env.DISABLE_ECHO_TEST }} clientTitle: {{ .Env.CLIENT_TITLE }} appName: BigBlueButton HTML5 Client - bbbServerVersion: 2.2 + bbbServerVersion: 2.3-dev copyright: "©2020 BigBlueButton Inc." - html5ClientBuild: 1114 + html5ClientBuild: 1250 helpLink: https://bigbluebutton.org/html5/ lockOnJoin: true cdn: "" @@ -23,13 +23,19 @@ public: allowUserLookup: false enableNetworkInformation: false enableLimitOfViewersInWebcam: false - enableMultipleCameras: false + enableMultipleCameras: true enableTalkingIndicator: true mirrorOwnWebcam: false viewersInWebcam: 8 ipv4FallbackDomain: "" allowLogout: true allowFullscreen: true + preloadNextSlides: 2 + mutedAlert: + enabled: true + interval: 200 + threshold: -50 + duration: 4000 remainingTimeThreshold: 30 remainingTimeAlertThreshold: 1 # Warning: increasing the limit of breakout rooms per meeting @@ -45,8 +51,8 @@ public: chatPushAlerts: false userJoinAudioAlerts: false userJoinPushAlerts: false - raiseHandAudioAlerts: false - raiseHandPushAlerts: false + raiseHandAudioAlerts: true + raiseHandPushAlerts: true fallbackLocale: en overrideLocale: null audio: @@ -84,7 +90,7 @@ public: accesskey: A descId: openActions branding: - displayBrandingArea: false + displayBrandingArea: true connectionTimeout: 60000 showHelpButton: true effectiveConnection: @@ -98,6 +104,16 @@ public: packetLostThreshold: 10 kurento: wsUrl: wss://{{ .Env.DOMAIN }}/bbb-webrtc-sfu + # Valid for video-provider. Time (ms) before its WS connection times out + # and tries to reconnect. + wsConnectionTimeout: 4000 + cameraTimeouts: + # Base camera timeout: used as the camera *sharing* timeout and + # as the minimum camera subscribe reconnection timeout + baseTimeout: 15000 + # Max timeout: used as the max camera subscribe reconnection timeout. Each + # subscribe reattempt increases the reconnection timer up to this + maxTimeout: 60000 chromeDefaultExtensionKey: akgoaoikmbmhcopjgakkcepdgdgkjfbc chromeDefaultExtensionLink: https://chrome.google.com/webstore/detail/bigbluebutton-screenshare/akgoaoikmbmhcopjgakkcepdgdgkjfbc chromeExtensionKey: KEY @@ -124,6 +140,17 @@ public: # hidden: whether this profile will be hidden in the video preview dropdown # constraints: a video media constraints dictionary (without the video key) cameraProfiles: + # id: unique identifier of the profile + # name: name of the profile visible to users + # default: if this is the default profile which is pre-selected + # bitrate: the average bitrate for used for a webcam stream + # constraints: + # # Optional constraints put on the requested video a browser MAY honor + # # For a detailed list on possible values see: + # # https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints + # # Examples: + # width: requested width of the camera stream + # frameRate: requested framerate - id: low-u30 name: low-u30 bitrate: 30 @@ -172,10 +199,16 @@ public: name: High default: false bitrate: 500 + constraints: + width: 1280 + frameRate: 15 - id: hd name: High definition default: false bitrate: 800 + constraints: + width: 1280 + frameRate: 30 enableScreensharing: true enableVideo: true enableVideoMenu: true @@ -220,7 +253,7 @@ public: clearUsersInSeconds: 180 pongTimeInSeconds: 15 allowOutsideCommands: - toggleRecording: true + toggleRecording: false toggleSelfVoice: false poll: enabled: true @@ -444,9 +477,20 @@ public: - pencil - hand clientLog: - server: { enabled: false, level: info } - console: { enabled: true, level: debug } - external: { enabled: false, level: info, url: https://LOG_HOST/html5Log, method: POST, throttleInterval: 400, flushOnClose: true, logTag: "" } + server: + enabled: false + level: info + console: + enabled: true + level: debug + external: + enabled: false + level: info + url: https://LOG_HOST/html5Log + method: POST + throttleInterval: 400 + flushOnClose: true + logTag: "" private: app: host: 0.0.0.0 diff --git a/mod/nginx/Dockerfile b/mod/nginx/Dockerfile index 97a0877..5ac1ed0 100644 --- a/mod/nginx/Dockerfile +++ b/mod/nginx/Dockerfile @@ -2,7 +2,7 @@ FROM nginx:1.19-alpine RUN apk add subversion -ENV TAG v2.2.20 +ENV TAG v2.3-alpha-2 # get bbb-playback-presentation web files RUN mkdir /www \ diff --git a/mod/nginx/bbb/notes.nginx b/mod/nginx/bbb/notes.nginx index a802dc0..9ff4a13 100644 --- a/mod/nginx/bbb/notes.nginx +++ b/mod/nginx/bbb/notes.nginx @@ -2,13 +2,15 @@ location /pad/p/ { rewrite /pad/p/(.*) /p/$1 break; rewrite ^/pad/p$ /pad/p/ permanent; - proxy_pass http://etherpad:9001; - proxy_pass_header Server; - proxy_redirect / /pad; - proxy_set_header Host $host; + proxy_pass http://etherpad:9001/p; + proxy_pass_header Server; + proxy_redirect /p /pad/p; + proxy_set_header Host $host; proxy_buffering off; - proxy_set_header X-Forwarded-Proto https; # for EP to set secure cookie flag when https is used + proxy_set_header X-Real-IP $remote_addr; # http://wiki.nginx.org/HttpProxyModule + proxy_set_header X-Forwarded-For $remote_addr; # EP logs to show the actual remote IP + proxy_set_header X-Forwarded-Proto $scheme; # for EP to set secure cookie flag when https is used proxy_http_version 1.1; auth_request /bigbluebutton/connection/checkAuthorization; @@ -16,12 +18,12 @@ location /pad/p/ { } location /pad { - rewrite /pad/(.*) /$1 break; - rewrite ^/pad$ /pad/ permanent; - proxy_pass http://etherpad:9001/; - proxy_pass_header Server; - proxy_redirect / /pad/; - proxy_set_header Host $host; + rewrite /pad/(.*) /$1 break; + rewrite ^/pad$ /pad/ permanent; + proxy_pass http://etherpad:9001/; + proxy_pass_header Server; + proxy_redirect / /pad/; + proxy_set_header Host $host; proxy_buffering off; } @@ -31,11 +33,11 @@ location /pad/socket.io/socket.io.js { proxy_set_header Host $host; proxy_buffering off; } - + location /pad/socket.io { rewrite /pad/socket.io/(.*) /socket.io/$1 break; proxy_pass http://etherpad:9001/; - proxy_redirect / /pad/; + proxy_redirect / /pad/; proxy_set_header Host $host; proxy_buffering off; proxy_set_header X-Real-IP $remote_addr; # http://wiki.nginx.org/HttpProxyModule diff --git a/mod/recordings/Dockerfile b/mod/recordings/Dockerfile index 5f7f5c2..eff7980 100644 --- a/mod/recordings/Dockerfile +++ b/mod/recordings/Dockerfile @@ -40,7 +40,7 @@ RUN mkdir -p \ /var/log/bigbluebutton \ /var/log/bigbluebutton/presentation -ENV TAG v2.2.31 +ENV TAG v2.3-alpha-2 # add bbb-record-core (lib, scripts and Gemfile) RUN cd /usr/local/bigbluebutton/core \ diff --git a/mod/webhooks/Dockerfile b/mod/webhooks/Dockerfile index 6b8d5d2..201aa68 100644 --- a/mod/webhooks/Dockerfile +++ b/mod/webhooks/Dockerfile @@ -13,7 +13,7 @@ RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSI USER webhooks -ENV TAG v2.3-alpha-1 +ENV TAG v2.3-alpha-2 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/bbb-webhooks /app \ && rm -rf /app/.svn \ && cd /app && npm install --production