From 96182bcc7469c336bb43e13ed477c94e4468987b Mon Sep 17 00:00:00 2001 From: chandi Date: Sat, 27 Mar 2021 18:48:05 +0100 Subject: [PATCH] applied changes rom 2.3-alpha-8 and 2.3-beta-1 --- docker-compose.tmpl.yml | 3 + mod/apps-akka/Dockerfile | 8 +- mod/apps-akka/application.conf | 100 ------------------------- mod/apps-akka/bbb-apps-akka.conf | 14 ++++ mod/bbb-web/Dockerfile | 10 +-- mod/bbb-web/bigbluebutton.properties | 2 +- mod/etherpad/Dockerfile | 3 +- mod/etherpad/bbb-etherpad-plugin | 2 +- mod/etherpad/bbb-etherpad-skin | 2 +- mod/etherpad/settings.json | 22 +++++- mod/fsesl-akka/Dockerfile | 10 +-- mod/fsesl-akka/application.conf | 45 ------------ mod/fsesl-akka/bbb-fsesl-akka.conf | 18 +++++ mod/html5/Dockerfile | 4 +- mod/html5/settings.yml | 106 ++++++++++++++++++++------- mod/nginx/Dockerfile | 12 +-- mod/nginx/bbb/bbb-html5.nginx | 4 +- mod/nginx/bbb/notes.nginx | 2 +- mod/nginx/bbb/screenshare.nginx | 17 ----- mod/nginx/bbb/web.nginx | 8 ++ mod/nginx/bigbluebutton | 52 ++----------- mod/recordings/Dockerfile | 2 +- mod/webrtc-sfu/bbb-webrtc-sfu | 2 +- 23 files changed, 180 insertions(+), 268 deletions(-) delete mode 100644 mod/apps-akka/application.conf create mode 100644 mod/apps-akka/bbb-apps-akka.conf delete mode 100644 mod/fsesl-akka/application.conf create mode 100644 mod/fsesl-akka/bbb-fsesl-akka.conf delete mode 100644 mod/nginx/bbb/screenshare.nginx diff --git a/docker-compose.tmpl.yml b/docker-compose.tmpl.yml index 3678551..ce3b30e 100644 --- a/docker-compose.tmpl.yml +++ b/docker-compose.tmpl.yml @@ -111,6 +111,7 @@ services: DISABLE_SOUND_MUTED: ${DISABLE_SOUND_MUTED:-false} DISABLE_SOUND_ALONE: ${DISABLE_SOUND_ALONE:-false} SOUNDS_LANGUAGE: ${SOUNDS_LANGUAGE:-en-us-callie} + ESL_PASSWORD: ${FSESL_PASSWORD:-ClueCon} volumes: - ./conf/sip_profiles:/etc/freeswitch/sip_profiles/external - ./conf/dialplan_public:/etc/freeswitch/dialplan/public_docker @@ -218,6 +219,8 @@ services: build: mod/fsesl-akka depends_on: - redis + environment: + FSESL_PASSWORD: ${FSESL_PASSWORD:-ClueCon} networks: bbb-net: ipv4_address: 10.7.7.14 diff --git a/mod/apps-akka/Dockerfile b/mod/apps-akka/Dockerfile index 89bcf4c..eed2d15 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-alpha-7 +ENV TAG_COMMON_MESSAGE v2.3-beta-1 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-alpha-7 +ENV TAG v2.3-beta-1 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/akka-bbb-apps /source \ && rm -rf /source/.svn @@ -39,10 +39,10 @@ RUN groupadd -g 998 bigbluebutton \ && useradd -m -u 998 -g bigbluebutton bigbluebutton COPY --from=builder /bbb-apps-akka-0.0.4 /bbb-apps-akka -COPY application.conf /bbb-apps-akka/conf/application.conf.tmpl +COPY bbb-apps-akka.conf /etc/bigbluebutton/bbb-apps-akka.conf.tmpl COPY logback.xml /bbb-apps-akka/conf/logback.xml WORKDIR /bbb-apps-akka CMD dockerize \ - -template /bbb-apps-akka/conf/application.conf.tmpl:/bbb-apps-akka/conf/application.conf \ + -template /etc/bigbluebutton/bbb-apps-akka.conf.tmpl:/etc/bigbluebutton/bbb-apps-akka.conf \ gosu bigbluebutton /bbb-apps-akka/bin/bbb-apps-akka \ No newline at end of file diff --git a/mod/apps-akka/application.conf b/mod/apps-akka/application.conf deleted file mode 100644 index 5123331..0000000 --- a/mod/apps-akka/application.conf +++ /dev/null @@ -1,100 +0,0 @@ -akka { - actor { - debug { - # enable DEBUG logging of all AutoReceiveMessages (Kill, PoisonPill et.c.) - autoreceive = on - # enable DEBUG logging of actor lifecycle changes - lifecycle = on - } - } - loggers = ["akka.event.slf4j.Slf4jLogger"] - loglevel = "DEBUG" - - redis-publish-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-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="10.7.7.5" - port=6379 - password="" - # recording keys should expire in 14 days - keyExpiry=1209600 -} - -expire { - # time in seconds - lastUserLeft = 60 - neverJoined = 300 - maxRegUserToJoin = 300 -} - -services { - bbbWebAPI="https://{{ .Env.DOMAIN }}/bigbluebutton/api" - sharedSecret="{{ .Env.SHARED_SECRET }}" -} - -red5 { - deskshareip="{{ .Env.DOMAIN }}" - deskshareapp="video-broadcast" -} - -eventBus { - meetingManagerChannel = "MeetingManagerChannel" - outMessageChannel = "OutgoingMessageChannel" - incomingJsonMsgChannel = "IncomingJsonMsgChannel" - outBbbMsgMsgChannel = "OutBbbMsgChannel" -} - -http { - interface = "10.7.7.2" - port = 9999 -} - -services { - telizeHost = "www.telize.com" - telizePort = 80 -} - -apps { - checkPermissions = true - ejectOnViolation = false - endMeetingWhenNoMoreAuthedUsers = false - endMeetingWhenNoMoreAuthedUsersAfterMinutes = 2 -} - -voiceConf { - recordPath = "/var/freeswitch/meetings" - # Use ogg instead of wav to get smaller audio files. - # Valid values "wav", "ogg", "flac", "opus" - recordCodec = "opus" - # Interval seconds to check if FreeSWITCH is recording. - checkRecordingInterval = 23 - # Internval seconds to sync voice users status. - syncUserStatusInterval = 41 - # Voice users with no matching user record - ejectRogueVoiceUsers = true -} - -recording { - # set zero to disable chapter break - chapterBreakLengthInMinutes = 0 -} - -whiteboard { - multiUserDefault = false -} - diff --git a/mod/apps-akka/bbb-apps-akka.conf b/mod/apps-akka/bbb-apps-akka.conf new file mode 100644 index 0000000..a8c3499 --- /dev/null +++ b/mod/apps-akka/bbb-apps-akka.conf @@ -0,0 +1,14 @@ +// include default config from upstream +include "/bbb-apps-akka/conf/application.conf" + +redis { + host="10.7.7.5" +} + +services { + bbbWebAPI="https://{{ .Env.DOMAIN }}/bigbluebutton/api" + sharedSecret="{{ .Env.SHARED_SECRET }}" +} +http { + interface = "0.0.0.0" +} \ No newline at end of file diff --git a/mod/bbb-web/Dockerfile b/mod/bbb-web/Dockerfile index ca9b1f2..842ad63 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-alpha-7 +ENV TAG_COMMON_MESSAGE v2.3-beta-1 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_COMMON_MESSAGE/bbb-common-message /bbb-common-message \ && rm -rf /bbb-common-message/.svn @@ -15,18 +15,18 @@ RUN cd /bbb-common-message \ # install grails RUN cd /opt \ - && wget https://github.com/grails/grails-core/releases/download/v3.3.9/grails-3.3.9.zip \ + && wget -q https://github.com/grails/grails-core/releases/download/v3.3.9/grails-3.3.9.zip \ && unzip grails-3.3.9.zip ENV PATH="/opt/grails-3.3.9/bin:${PATH}" # install gradle RUN cd /opt \ - && wget https://services.gradle.org/distributions/gradle-6.7-bin.zip \ + && wget -q https://services.gradle.org/distributions/gradle-6.7-bin.zip \ && unzip gradle-6.7-bin ENV PATH="/opt/gradle-6.7/bin:${PATH}" # download bbb-common-web -ENV TAG_COMMON_WEB v2.3-alpha-7 +ENV TAG_COMMON_WEB v2.3-beta-1 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-alpha-7 +ENV TAG_WEB v2.3-beta-1 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_WEB/bigbluebutton-web /bbb-web \ && rm -rf /bbb-web/.svn diff --git a/mod/bbb-web/bigbluebutton.properties b/mod/bbb-web/bigbluebutton.properties index e9a32bd..3d2053a 100644 --- a/mod/bbb-web/bigbluebutton.properties +++ b/mod/bbb-web/bigbluebutton.properties @@ -226,7 +226,7 @@ muteOnStart=false allowModsToUnmuteUsers=false # Saves meeting events even if the meeting is not recorded -keepEvents=true +defaultKeepEvents=false # 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/etherpad/Dockerfile b/mod/etherpad/Dockerfile index 1a52570..16cae98 100644 --- a/mod/etherpad/Dockerfile +++ b/mod/etherpad/Dockerfile @@ -1,4 +1,4 @@ -FROM etherpad/etherpad:1.8.10 +FROM etherpad/etherpad:1.8.13 USER root @@ -10,6 +10,7 @@ USER etherpad RUN npm install \ git+https://git@github.com/pedrobmarin/ep_pad_ttl.git \ git+https://git@github.com/pedrobmarin/ep_redis_publisher.git \ + git+https://git@github.com/ether/ep_disable_chat.git \ # remove npm lockfile, because somehow it prevents etherpad from detecting the manual added plugin ep_bigbluebutton_patches && rm package-lock.json diff --git a/mod/etherpad/bbb-etherpad-plugin b/mod/etherpad/bbb-etherpad-plugin index 8f1ab56..dccf33f 160000 --- a/mod/etherpad/bbb-etherpad-plugin +++ b/mod/etherpad/bbb-etherpad-plugin @@ -1 +1 @@ -Subproject commit 8f1ab5687904c765afc21944c11356057ab22521 +Subproject commit dccf33f8e9ced8ee94520535b487f5f76fbe02f2 diff --git a/mod/etherpad/bbb-etherpad-skin b/mod/etherpad/bbb-etherpad-skin index eee0062..8328b77 160000 --- a/mod/etherpad/bbb-etherpad-skin +++ b/mod/etherpad/bbb-etherpad-skin @@ -1 +1 @@ -Subproject commit eee0062af8849d4ef031cadc688aa70afa7a11b1 +Subproject commit 8328b7744abe664e44b7802142eaa48fade63eae diff --git a/mod/etherpad/settings.json b/mod/etherpad/settings.json index 1d2a31b..98629fc 100644 --- a/mod/etherpad/settings.json +++ b/mod/etherpad/settings.json @@ -436,8 +436,8 @@ */ "ep_pad_ttl": { "ttl": 86400, // 24 hours - "timeout": 5, - "interval": 3600, // 1 hour + "timeout": 30, + "interval": 21600, // 6 hour }, /* @@ -458,6 +458,24 @@ }, */ + + /* + * From Etherpad 1.9.0 onwards, when Etherpad is in production mode commits from individual users are rate limited + * + * The default is to allow at most 10 changes per IP in a 1 second window. + * After that the change is rejected. + * + * See https://github.com/animir/node-rate-limiter-flexible/wiki/Overall-example#websocket-single-connection-prevent-flooding for more options + */ + "commitRateLimiting": { + // duration of the rate limit window (seconds) + "duration": 1, + + // maximum number of chanes per IP to allow during the rate limit window + "points": 100 + }, + + /* * Toolbar buttons configuration. * diff --git a/mod/fsesl-akka/Dockerfile b/mod/fsesl-akka/Dockerfile index c48c184..6f1ac3f 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-alpha-7 +ENV TAG_COMMON_MESSAGE v2.3-beta-1 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-alpha-7 +ENV TAG_FSESL v2.3-beta-1 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-alpha-7 +ENV TAG v2.3-beta-1 RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG/akka-bbb-fsesl /source \ && rm -rf /source/.svn @@ -47,10 +47,10 @@ RUN groupadd -g 1007 fsesl-akka \ && useradd -m -u 1007 -g fsesl-akka fsesl-akka COPY --from=builder /bbb-fsesl-akka-0.0.2 /bbb-fsesl-akka -COPY application.conf /bbb-fsesl-akka/conf/application.conf.tmpl +COPY bbb-fsesl-akka.conf /etc/bigbluebutton/bbb-fsesl-akka.conf.tmpl COPY logback.xml /bbb-fsesl-akka/conf/logback.xml WORKDIR /bbb-fsesl-akka CMD dockerize \ - -template /bbb-fsesl-akka/conf/application.conf.tmpl:/bbb-fsesl-akka/conf/application.conf \ + -template /etc/bigbluebutton/bbb-fsesl-akka.conf.tmpl:/etc/bigbluebutton/bbb-fsesl-akka.conf \ gosu fsesl-akka /bbb-fsesl-akka/bin/bbb-fsesl-akka \ No newline at end of file diff --git a/mod/fsesl-akka/application.conf b/mod/fsesl-akka/application.conf deleted file mode 100644 index 5a6b9e4..0000000 --- a/mod/fsesl-akka/application.conf +++ /dev/null @@ -1,45 +0,0 @@ -akka { - actor { - debug { - receive = on - } - } - loggers = ["akka.event.slf4j.Slf4jLogger"] - loglevel = "DEBUG" - stdout-loglevel = "DEBUG" - - 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 - } -} - - -freeswitch { - esl { - host="10.7.7.1" - port=8021 - password="ClueCon" - } - conf { - profile="cdquality" - } -} - -redis { - host="10.7.7.5" - port=6379 - password="" - # recording keys should expire in 14 days - keyExpiry=1209600 -} - -http { - interface = "127.0.0.1" - interface = ${?INTERFACE} - port = 8900 - port = ${?PORT} -} \ No newline at end of file diff --git a/mod/fsesl-akka/bbb-fsesl-akka.conf b/mod/fsesl-akka/bbb-fsesl-akka.conf new file mode 100644 index 0000000..59c2948 --- /dev/null +++ b/mod/fsesl-akka/bbb-fsesl-akka.conf @@ -0,0 +1,18 @@ +// include default config from upstream +include "/bbb-fsesl-akka/conf/application.conf" + + +freeswitch { + esl { + host="10.7.7.1" + password="{{ default .Env.FSESL_PASSWORD "ClueCon" }}" + } +} + +redis { + host="10.7.7.5" +} + +http { + interface = "0.0.0.0" +} \ No newline at end of file diff --git a/mod/html5/Dockerfile b/mod/html5/Dockerfile index 46e8907..991a256 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-alpha-7 +ENV TAG v2.3-beta-1 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-7 +ENV TAG v2.3-beta-1 diff --git a/mod/html5/settings.yml b/mod/html5/settings.yml index 862ae78..9fc6b9a 100644 --- a/mod/html5/settings.yml +++ b/mod/html5/settings.yml @@ -12,7 +12,7 @@ public: appName: BigBlueButton HTML5 Client bbbServerVersion: 2.3-dev-docker copyright: '©2021 BigBlueButton Inc.' - html5ClientBuild: "1394-docker" + html5ClientBuild: "1511-docker" helpLink: https://bigbluebutton.org/html5/ lockOnJoin: true cdn: '' @@ -22,6 +22,7 @@ public: # in some cases we want only custom logoutUrl to be used when provided on meeting create. Default value: true allowDefaultLogoutUrl: true allowUserLookup: false + enableGuestLobbyMessage: true enableNetworkInformation: false enableLimitOfViewersInWebcam: false enableMultipleCameras: true @@ -33,7 +34,7 @@ public: allowFullscreen: true preloadNextSlides: 2 mutedAlert: - enabled: false + enabled: true interval: 200 threshold: -50 duration: 4000 @@ -47,7 +48,8 @@ public: breakoutRoomLimit: {{ .Env.BREAKOUTROOM_LIMIT }} sendInvitationToIncludedModerators: false # https://github.com/bigbluebutton/bigbluebutton/pull/10826 - customHeartbeat: true + customHeartbeat: false + showAllAvailableLocales: false defaultSettings: application: animations: true @@ -57,7 +59,19 @@ public: userJoinPushAlerts: false raiseHandAudioAlerts: true raiseHandPushAlerts: true + guestWaitingAudioAlerts: true + guestWaitingPushAlerts: true + paginationEnabled: true + # fallbackLocale: if the locale the client is loaded in does not have a + # translation a string, it will use the translation from the locale + # specified in fallbackLocale. Note that fallbackLocale should be a + # 100% translated locale for best user experience fallbackLocale: en + # overrideLocale (default is null): if set (for example to 'de') will + # force all clients to display the German translations of the strings. + # Users can individually set their preferred locale through Settings, + # but on first page load overrideLocale will trump the browser's + # preferred locale overrideLocale: null #Audio constraints for microphone. Use this to control browser's #filters, such as AGC (Auto Gain Control) , Echo Cancellation, @@ -109,6 +123,9 @@ public: closePrivateChat: accesskey: G descId: closePrivateChat + raiseHand: + accesskey: R + descId: raiseHand openActions: accesskey: A descId: openActions @@ -142,11 +159,15 @@ public: # 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 - chromeExtensionLink: LINK screenshare: + mediaTimeouts: + maxConnectionAttempts: 2 + # Base screen media timeout (send|recv) + baseTimeout: 15000 + # Max timeout: used as the max camera subscribe reconnection timeout. Each + # subscribe reattempt increases the reconnection timer up to this + maxTimeout: 35000 + timeoutIncreaseFactor: 1.5 constraints: video: frameRate: @@ -156,11 +177,7 @@ public: max: 2560 height: max: 1600 - audio: false - chromeScreenshareSources: - - window - - screen - firefoxScreenshareSource: window + audio: true # cameraProfiles is an array of: # - id: profile identifier # name: human-readable profile name @@ -264,8 +281,11 @@ public: - threshold: 30 profile: low-u30 pagination: - # whether to globally enable or disable pagination. - enabled: true + # WARNING: the pagination.enabled setting has moved to + # public.app.defaultSettings.application.paginationEnabled + # paginationToggleEnabled: show a pagination toggle in settings for the + # user to enable/disable it + paginationToggleEnabled: true # how long (in ms) the negotiation will be debounced after a page change. pageChangeDebounceTime: 2500 # video page sizes for DESKTOP endpoints. It stands for the number of SUBSCRIBER streams. @@ -273,11 +293,46 @@ public: # A page size of 0 (zero) means that the page size is unlimited (disabled). desktopPageSizes: moderator: 0 - viewer: 0 + viewer: 5 # video page sizes for MOBILE endpoints mobilePageSizes: - moderator: 6 - viewer: 4 + moderator: 2 + viewer: 2 + paginationThresholds: + enabled: false + thresholds: + - users: 30 + desktopPageSizes: + moderator: 25 + viewer: 25 + - users: 40 + desktopPageSizes: + moderator: 20 + viewer: 20 + - users: 50 + desktopPageSizes: + moderator: 16 + viewer: 16 + - users: 60 + desktopPageSizes: + moderator: 14 + viewer: 12 + - users: 70 + desktopPageSizes: + moderator: 12 + viewer: 10 + - users: 80 + desktopPageSizes: + moderator: 10 + viewer: 8 + - users: 90 + desktopPageSizes: + moderator: 8 + viewer: 6 + - users: 100 + desktopPageSizes: + moderator: 6 + viewer: 4 syncUsersWithConnectionManager: enabled: false syncInterval: 60000 @@ -287,6 +342,7 @@ public: poll: enabled: true max_custom: 5 + allowDragAndDropFile: false captions: enabled: true enableDictation: false @@ -322,12 +378,6 @@ public: note: enabled: true url: https://{{ .Env.DOMAIN }}/pad - config: - showLineNumbers: false - showChat: false - noColors: true - showControls: true - rtl: false layout: autoSwapLayout: false hidePresentation: false @@ -337,7 +387,6 @@ public: stunTurnServersFetchAddress: '/bigbluebutton/api/stuns' cacheStunTurnServers: true fallbackStunServer: '' - recvonlyIceGatheringCheck: true mediaTag: '#remote-media' callTransferTimeout: 5000 callHangupTimeout: 2000 @@ -363,6 +412,8 @@ public: websocketKeepAliveDebounce: 10 #Trace sip/audio messages in browser. If not set, default value is false. traceSip: false + # SDP semantics: plan-b|unified-plan + sdpSemantics: 'unified-plan' stats: enabled: true interval: 2000 @@ -426,6 +477,8 @@ public: mime: image/jpeg - extension: .png mime: image/png + selectRandomUser: + enabled: true user: role_moderator: MODERATOR role_viewer: VIEWER @@ -514,7 +567,6 @@ public: - triangle - rectangle - pencil - - hand clientLog: server: enabled: false @@ -533,7 +585,7 @@ public: private: app: host: 0.0.0.0 - localesUrl: /locales + localesUrl: /locale-list pencilChunkLength: 100 loadSlidesFromHttpAlways: false etherpad: @@ -584,7 +636,7 @@ private: - browser: chromeMobileIOS version: Infinity - browser: firefox - version: 63 + version: 68 - browser: firefoxMobile version: 68 - browser: edge diff --git a/mod/nginx/Dockerfile b/mod/nginx/Dockerfile index f2ab6d5..42620e5 100644 --- a/mod/nginx/Dockerfile +++ b/mod/nginx/Dockerfile @@ -1,11 +1,6 @@ FROM node:14-alpine AS builder -RUN apk add subversion - -# -------------------- - -ENV TAG_PlAYBACK_LEGACY v2.3-alpha-6 -RUN svn checkout https://github.com/bigbluebutton/bigbluebutton/tags/$TAG_PlAYBACK_LEGACY/record-and-playback/presentation/playback/presentation /playback-legacy +RUN apk add subversion git # -------------------- @@ -16,15 +11,14 @@ ENV REACT_APP_BBB_PLAYBACK_BUILD=$TAG_PLAYBACK # for the latest bbb-playback version shipped with 2.3-alpha-6 # so we use the master branch # RUN svn checkout https://github.com/bigbluebutton/bbb-playback/tags/$TAG_PLAYBACK /bbb-playback -RUN svn checkout https://github.com/bigbluebutton/bbb-playback/trunk /bbb-playback +RUN git clone https://github.com/bigbluebutton/bbb-playback.git /bbb-playback && cd /bbb-playback && git checkout 4cec62c4f5332911ac035969b282a53d31374bce RUN cd /bbb-playback && npm install && npm run-script build # -------------------- FROM nginx:1.19-alpine -COPY --from=builder /playback-legacy/2.0 /www/presentation/2.0 -COPY --from=builder /bbb-playback/build /www/presentation/2.3 +COPY --from=builder /bbb-playback/build /www/playback/presentation/2.3 COPY ./bbb /etc/nginx/bbb COPY ./bigbluebutton /etc/nginx/conf.d/default.conf COPY ./nginx.conf /etc/nginx/nginx.conf \ No newline at end of file diff --git a/mod/nginx/bbb/bbb-html5.nginx b/mod/nginx/bbb/bbb-html5.nginx index fb45a3d..809635f 100644 --- a/mod/nginx/bbb/bbb-html5.nginx +++ b/mod/nginx/bbb/bbb-html5.nginx @@ -5,7 +5,9 @@ location @html5client { proxy_set_header Connection "Upgrade"; } -rewrite ^/html5client/(fonts|compatibility|resources|svgs)/(.*) /html5client/$1/$2; +location /html5client/locales { + alias /html5-static/app/locales; +} location /html5client/compatibility { alias /html5-static/app/compatibility; diff --git a/mod/nginx/bbb/notes.nginx b/mod/nginx/bbb/notes.nginx index 9ff4a13..0bd5da2 100644 --- a/mod/nginx/bbb/notes.nginx +++ b/mod/nginx/bbb/notes.nginx @@ -13,7 +13,7 @@ location /pad/p/ { 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; + auth_request /bigbluebutton/connection/validatePad; auth_request_set $auth_status $upstream_status; } diff --git a/mod/nginx/bbb/screenshare.nginx b/mod/nginx/bbb/screenshare.nginx deleted file mode 100644 index a8c9952..0000000 --- a/mod/nginx/bbb/screenshare.nginx +++ /dev/null @@ -1,17 +0,0 @@ - # Handle desktop sharing tunneling. Forwards - # requests to Red5 on port 5080. - location /screenshare { - proxy_pass http://core:5080; - proxy_redirect default; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - client_max_body_size 10m; - client_body_buffer_size 128k; - proxy_connect_timeout 90; - proxy_send_timeout 90; - proxy_read_timeout 90; - proxy_buffer_size 4k; - proxy_buffers 4 32k; - proxy_busy_buffers_size 64k; - proxy_temp_file_write_size 64k; - include fastcgi_params; - } diff --git a/mod/nginx/bbb/web.nginx b/mod/nginx/bbb/web.nginx index 6d67ba9..6f40531 100755 --- a/mod/nginx/bbb/web.nginx +++ b/mod/nginx/bbb/web.nginx @@ -88,6 +88,14 @@ proxy_set_header X-Original-URI $request_uri; } + location = /bigbluebutton/connection/validatePad { + internal; + proxy_pass http://core:8090; + proxy_pass_request_body off; + proxy_set_header Content-Length ""; + proxy_set_header X-Original-URI $request_uri; + } + location ~ "^/bigbluebutton\/textTrack\/(?[a-zA-Z0-9]+)\/(?[a-zA-Z0-9_-]+)\/(?.+)$" { # Workaround IE refusal to set cookies in iframe add_header P3P 'CP="No P3P policy available"'; diff --git a/mod/nginx/bigbluebutton b/mod/nginx/bigbluebutton index ac4a21b..45bb5f5 100644 --- a/mod/nginx/bigbluebutton +++ b/mod/nginx/bigbluebutton @@ -6,14 +6,14 @@ map $remote_addr $freeswitch_addr { upstream poolhtml5servers { zone poolhtml5servers 32k; least_conn; - server 10.7.7.200:4100 fail_timeout=3s fail_timeout=10s max_fails=4 backup; - server 10.7.7.201:4101 fail_timeout=2s fail_timeout=60s max_fails=2; - server 10.7.7.202:4102 fail_timeout=2s fail_timeout=60s max_fails=2; - server 10.7.7.203:4103 fail_timeout=2s fail_timeout=60s max_fails=2; - server 10.7.7.204:4104 fail_timeout=2s fail_timeout=60s max_fails=2; - server 10.7.7.205:4105 fail_timeout=2s fail_timeout=60s max_fails=2; - server 10.7.7.206:4106 fail_timeout=2s fail_timeout=60s max_fails=2; - server 10.7.7.207:4107 fail_timeout=2s fail_timeout=60s max_fails=2; + server 10.7.7.200:4100 fail_timeout=10s max_fails=4 backup; + server 10.7.7.201:4101 fail_timeout=120s max_fails=1; + server 10.7.7.202:4102 fail_timeout=120s max_fails=1; + server 10.7.7.203:4103 fail_timeout=120s max_fails=1; + server 10.7.7.204:4104 fail_timeout=120s max_fails=1; + server 10.7.7.205:4105 fail_timeout=120s max_fails=1; + server 10.7.7.206:4106 fail_timeout=120s max_fails=1; + server 10.7.7.207:4107 fail_timeout=120s max_fails=1; } server { @@ -28,42 +28,6 @@ server { return 302 /b; } - # Handle RTMPT (RTMP Tunneling). Forwards requests - # to Red5 on port 5080 - location ~ (/open/|/close/|/idle/|/send/|/fcs/) { - proxy_pass http://core:5080; - proxy_redirect off; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - - client_max_body_size 10m; - client_body_buffer_size 128k; - - proxy_connect_timeout 90; - proxy_send_timeout 90; - proxy_read_timeout 90; - - proxy_buffering off; - keepalive_requests 1000000000; - } - - # Handle desktop sharing tunneling. Forwards - # requests to Red5 on port 5080. - location /deskshare { - proxy_pass http://core:5080; - proxy_redirect default; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - client_max_body_size 10m; - client_body_buffer_size 128k; - proxy_connect_timeout 90; - proxy_send_timeout 90; - proxy_read_timeout 90; - proxy_buffer_size 4k; - proxy_buffers 4 32k; - proxy_busy_buffers_size 64k; - proxy_temp_file_write_size 64k; - include fastcgi_params; - } - # Include specific rules for record and playback include /etc/nginx/bbb/*.nginx; diff --git a/mod/recordings/Dockerfile b/mod/recordings/Dockerfile index b42d87e..e6b3fd7 100644 --- a/mod/recordings/Dockerfile +++ b/mod/recordings/Dockerfile @@ -39,7 +39,7 @@ RUN mkdir -p \ /usr/local/bigbluebutton/core \ /etc/bigbluebutton -ENV TAG v2.3-alpha-7 +ENV TAG v2.3-beta-1 # add bbb-record-core (lib, scripts and Gemfile) RUN cd /usr/local/bigbluebutton/core \ diff --git a/mod/webrtc-sfu/bbb-webrtc-sfu b/mod/webrtc-sfu/bbb-webrtc-sfu index a73429e..78823ae 160000 --- a/mod/webrtc-sfu/bbb-webrtc-sfu +++ b/mod/webrtc-sfu/bbb-webrtc-sfu @@ -1 +1 @@ -Subproject commit a73429ebb82827a6be9cfae7b22f154a47d4dcf4 +Subproject commit 78823ae5d673d8904145af7fa20130383a33b66f