Skip to main content
Version: 3.0

new-features

BigBlueButton 3.0 runs on Ubuntu 22.04

Overview

This document is still a draft, BigBlueButton 3.0 is under development

BigBlueButton 3.0 offers users improved usability, increased engagement, and more performance.

  • Usability - making common functions (such as raise hand) easier
  • Engagement - giving the instructor more ways to engage students
  • Performance - increasing overall performance and scalability

Here's a breakdown of what's new in 3.0.

Usability

Upgraded whiteboard

We have done significant work to adopt the newly released version 2 of tl;draw. It comes with even more tools and capabilities and has allowed us to embark on more ambitious whiteboard projects, for example a prototype of an Infinite Canvas.

New layouts for specific integration scenarios

Several new layouts have been added ("Cameras Only", "Presentation Only", and "Participants and Chat Only") to address various use cases of hybrid education - for example splitting views of the BigBlueButton session to be visible on different physical screens.

Improved Away Mode

We have made changes so that when you set yourself as being Away, your microphone is now automatically muted, your webcam is also muted (blank).

set yourself away

When you return and unmute yourself this counts as disabling Away mode. The control for toggling away mode is now positioned in the Reactions bar.

set yourself active

Away mode also is recorded in the public chat area.

away public chat

Leave Meeting Button

A contribution from community member Jan Kessler, the direct Leave Meeting button was first introduced in BigBlueButton 2.7.5. Starting with BigBlueButton 3.0 we are making it enabled by default.

leave the meeting red button

Viewers can leave the meeting by using this new red button, previously hidden near the Setting menu. For moderators, the button includes the option to end the meeting as well.

Better looking polling results

We have enhanced the view of the polling results that appear over the whiteboard. It is now much more intuitive to read.

better polling results

Engagement

Behind the scene

Introduction of plugins

We have made significant changes to the architecture of BigBlueButton and have introduced support to plugins -- optional custom modules included in the client which allow expanding the capabilities of BigBlueButton. A data channel is provided to allow for data exchange between clients. See the HTML5 Plugin SDK for examples and more information.

At the moment of writing these documentation, the official list of plugins includes:

Replaced Akka framework with Pekko

Following the license change of Akka back in September 2022 we considered several options and decided to replace our use of Akka with Apache Pekko More on the transition: https://github.com/bigbluebutton/bigbluebutton/pull/18694

Override client settings through API /create call

Administrators will appreciate that we now allow passing of custom client settings through the meeting create API call. You no longer need separate servers to accommodate for sessions requiring vastly different settings.yml configuration

Major strides in replacing Meteor

For years we have discussed internally the topic of replacing Meteor.js with other technologies in order to improve scalability, performance, etc. In the last year we have introduced several different new components to replace Meteor. The work is underway, it will span into BigBlueButton 3.0, 3.1, possibly 3.2 too. These new components are: bbb-graphql-server, bbb-graphql-middleware, bbb-graphql-actions, database Postgres, GraphQL server Hasura.

Note: The services bbb-html5-backend and bbb-html5-frontend have been removed and bbb-html5 modified heavily as a result of the change in architecture.

The whiteboard was improved

We upgraded tl;draw from version 1 to version 2.0.0-alpha.19 (the last version on Apache 2.0 licence). That was quite a significant task but brought better performance, better looks, improved stylus support and many more. Note that we have forked tldraw's project as of their version 2.0.0-alpha.19 to ensure we remain on the Apache 2.0 license. We will be maintaining the fork so that BigBlueButton has a stable whiteboard in the future.

Support for Collabora Online as Document Converter

 Collabora Productivity contributed the support for an alternative conversion script where Collabora Online (deployed locally [as a docker container] or running remotely) can be used for document conversion. For more information check the pull request

Experimental

Upgraded components

Under the hood, BigBlueButton 3.0 installs on Ubuntu 22.04 64-bit, and the following key components have been upgraded ...

For full details on what is new in BigBlueButton 3.0, see the release notes.

Recent releases:

Other notable changes

Removal of Kurento

We have removed all use of Kurento Media Server. For the live media transmission we still rely on mediasoup. For the recording portion we make use of our own component bbb-webrtc-recorder. BigBlueButton 3.0 is the first release where we do not even install Kurento.

Select Random User feature removed and is now a plugin

The functionality Select Random User which used to be part of the BigBlueButton core was removed. A plugin with the same functionality was developed and made public.

Upgrade of config editing tool yq

We have upgraded yq from version 3.4.1 (which was no longer maintained) to 4.16.2. This is a major jump and the syntax used is quite different as well. We went through all internal uses of yq - packaging, bbb-install.sh, bbb-conf and others and updated the syntax. However, if you have custom scripts, you may have to rework the syntax too. Here is a guide.

Improved support for various SHA algorithms for checksum calculation

In BigBlueButton 2.6.17/2.7.5/3.0.0-alpha.5 we added a new configuration property for bbb-apps-akka package under services called checkSumAlgorithmForBreakouts. By default the value is "sha256". It controls the algorithm for checksum calculation for the breakout rooms join link. In case you overwrite bbb-web's supportedChecksumAlgorithms property removing sha256 you will need to set a supported algorithm here too. For example if you want to only use sha512, set supportedChecksumAlgorithms=sha512 in /etc/bigbluebutton/bbb-web.properties and also set checkSumAlgorithmForBreakouts="sha512" in /etc/bigbluebutton/bbb-apps-akka.conf and then restart BigBlueButton.

Deprecating join parameter defaultLayout, replacing with userdata-bbb_default_layout.

In BigBlueButton 3.0.0-alpha.5 we replaced the JOIN parameter defaultLayout with the JOIN parameter userdata-bbb_default_layout. If none provided the meetingLayout (passed on CREATE) will be used. If none passed, and if none passed there, the defaultMeetingLayout from bbb-web will be used.

Recording event TranscriptUpdatedRecordEvent blocked

In BigBlueButton 2.7.5/3.0.0-alpha.5 we stopped propagating the events.xml event TranscriptUpdatedRecordEvent due to some issues with providing too much and too repetitive data.

Changes to events.xml

Retired events

  • DeskShareNotifyViewersRTMPRecordEvent
  • DeskshareStartRtmpRecordEvent
  • DeskshareStopRtmpRecordEvent
  • TranscriptUpdatedRecordEvent

bbb-web properties changes

  • allowOverrideClientSettingsOnCreateCall=false added
  • sessionsCleanupDelayInMinutes=60 added
  • graphqlWebsocketUrl=${bigbluebutton.web.serverURL}/graphql added
  • defaultAllowPromoteGuestToModerator=false added

Removed support for POST requests on join endpoint and Content-Type headers are now required

In BigBlueButton 2.6.18/2.7.8 POST requests are no longer allowed for the join endpoint. To ensure they are validated properly, a Content-Type header must also be provided for POST requests that contain data in the request body. Endpoints now support a limited set of content types that includes text/xml, application/xml, application/x-www-form-url-encoded, and multipart/form-data. By default each endpoint only supports application/x-www-form-urlencoded and multipart/form-data, but individual endpoints can override this and define their own set of supported content types. The create endpoint supports all of the four previously listed content types while insertDocument supports only text/xml and application/xml. Any requests with a content type that differs from the set supported by the target endpoint will be rejected with a new unsupportedContentType error.

Development

For information on developing in BigBlueButton, see setting up a development environment for 3.0.

The build scripts for packaging 3.0 (using fpm) are located in the GitHub repository here.

Contribution

We welcome contributors to BigBlueButton 3.0! The best ways to contribute at the current time are: