Overview

This page contains a description of Mconf-Live, Mconf’s web conference client that is based on BigBlueButton1, and highlights how Mconf is contributing to the development of BigBlueButton. We want to make clear that Mconf not only uses this excellent open source web conference software but that we are also doing everything we can to help in its development.

So what exactly is Mconf-Live?

It is a version of BigBlueButton customized for Mconf, and by “customized” we mean that it was not only configured, but developed for Mconf. It includes, for instance, new modules that do not exist in BigBlueButton (see below the list of modules implemented by Mconf), new API methods that are used for load balancing and monitoring, several configurations, and branding elements for Mconf.

Mconf-Live will always based in the latest version of BigBlueButton, except during a brief period of time right after a new version of BigBlueButton is released while Mconf is being adapted to this recently released version. Technical information about the current version of Mconf-Live will always be available and up to date in our wiki page.

Contributions to BigBlueButton

Most of the features implemented on Mconf-Live are intended to be integrated back in the core of BigBlueButton, if possible and applicable. Sometimes, however, it doesn’t happen, since Mconf naturally has some requirements that might not be shared with BigBlueButton.

The list below includes the most relevant features developed by Mconf for Mconf-Live that might or might not have been integrated into BigBlueButton.

(2015) Refactoring of the video dock (in BigBlueButton 0.9)

The video dock was refactored visually and internally. Previously, each video window had its own border (i.e. it was an internal window inside the video dock). With this refactoring, the internal borders were removed, giving the entire video dock a cleaner look.

Moreover, each video now shows the user’s name in a bar at the top of the video, that is highlighted whenever the user is talking. Together with the overlay buttons that appear when the mouse is moved over a video, this makes a “video only meeting” a lot more practical: the video dock can be maximized and it will contain most of the controls needed to manage the meeting.

This improvement not only changes the visual of the video dock, but also improves performance. It removed a small “interface lock” that would happen whenever someone started sharing a new video and caused the entire client to freeze for a few seconds.

(2014) Option to download the presentation and chat

With this feature, whenever a presenter uploads a presentation, they can choose whether this presentation will be “downloadable” or not. If it is, all participants will have the option to download the presentation at any time during the meeting.

Moreover, the chat window now has a button, shown when the mouse is moved over the chat, that allows any participant to download the chat at any time during the meeting.

Both features were created in order to give participants more control over the content shared during a meeting, specially in cases when meetings are not recorded and the content is then lost when the meeting ends.

(2014) More options for user status/moods

Mconf-Live adds several new status options or moods for users to set, a part from the default “raise hand”. Some of the options available are: “I agree”, “I disagree”, “speak louder”, “I’ll be right back”, and others.

These new statuses can be used in a similar way to how statuses or moods work in instant messaging applications and social networks and can be very useful in some scenarios, such as viewers given silent and non-intrusive feedback to a presenter during a presentation.

(2014) Options to promote and demote users inside the conference

In BigBlueButton, user roles are decided before a user joins a web conference. These roles are decided by the application that is creating the meeting (e.g. the Moodle plugin) and passed to BigBlueButton using the API. When users join the conference, they will either be moderators or participants and will stay with the same role for the entire meeting.

With this improvement, now moderators can turn participants into moderators from within the conference. Moderators can also demote other moderators, making them participants. There’s no limit in the number of moderators in a room, so a moderator could, for example, make all other participants moderators, regardless of their initial role.

This adds a lot of flexibility to the roles in a meeting. A professor, for example, could promote a student to moderator, so that this student would help him control the session.

(2014) Listen only mode (in BigBlueButton 0.81)

The listen only mode allows users to connect to a conference and listen to the conference without having to share their microphone. Before the listen only mode, users were forced to share their microphone to be able to listen to a conference.

This mode is specially important to improve the performance of the server when processing the audio of meetings. The listen only mode generates a single audio stream that is sent to all participants that opted to listen only, reducing the overheard of audio mixing in the server. The more users in the listen only mode, the more the overhead is reduced, making it very useful in meetings that follow the webinar style.

(2014) The webhooks module (in the labs of BigBlueButton 0.9)

The webhooks module is a non-default module (a module in labs) in Mconf-Live/BigBlueButton that allows external applications to register a URL that will receive all kinds of events that happened in the server. An example would be the Moodle integration registering a callback so that it receives a notification when a meeting starts or finishes in the BigBlueButton server.

This module allows external applications to change the “polling model” used previously, in which the application has to make an API request whenever it wants information from the web conference server, to an “event-based model”, in which the web conference server will notify the external application when something happens.

The documentation of this module can be found at: http://docs.bigbluebutton.org/labs/webhooks.html

(2013) Multiple cameras

Mconf-Live allows a single client to share multiple cameras. This is specially useful in scenarios where a physical conference rooms has multiple cameras set up (e.g. one focused on the presenter, one focused on the participants). With this improvement, they can all be shared by a single user in the conference.

(2013) The video dock module (integrated into BigBlueButton 0.8)

“Video dock” is the name given to the module that groups all video windows inside a single window. Before the video dock every video inside BigBlueButton was independent and could be dragged around and resized. The problem was that whenever a user enabled his webcam, every other user in the conference would see a new window in the conference, and this window would be randomly positioned, forcing every user to resize and move this new window to an adequate place. It soon became clear that this “dragging and resizing” should be automatic, and so came the video dock.

Inside the video dock all the windows are organized automatically in a best-fit manner, optimizing the internal windows size. If an user wants to prioritize any of the internal windows, he could click on it to make it bigger than the others.

The video dock was proposed to the BigBlueButton developers community using the developers mailing list on this post and it has been presented as a new BigBlueButton module on their blog.

(2013) The layout manager (integrated into BigBlueButton 0.81)

This module was implemented to improve the way the windows are managed inside a web conference. Before the layout module, every internal window in a conference (the list of participants, the chat, the video dock, etc.) was completely independent from the other windows. This means that every single window had to be resized and positioned individually if the user wanted to change the layout of his conference. There was a single layout imposed when the conference started, and after it all resizing and positioning had to be done by the user. Another issue is that when the browser was resized the internal windows would not resize or reposition and the layout would quite often be non optimal (with too big or too small windows, with things out of place, and so on).

With the layout manager, the user can simply pick a layout from a list and all windows will be positioned and resized according to the layout picked. And whenever the browser is resized, the internal windows will also be resized and positioned, respecting the current layout!

Another feature of the layout manager is the possibility of locking a layout for all participants. With this feature, a moderator can impose a layout for all participants, and they will not be able to change their layout unless the moderator unlocks it. It that can be extremely useful in situations where the end users are not familiar with the system or when a teacher (moderator) wants to force his students to focus on the presentation, for example. Also, a layout may describe different configurations for moderators, viewers and presenter.

(2012) Shared notes

The shared notes module is a collaborative space where the users can edit and share a piece of text with everybody in the conference. It is commonly used to share a meeting’s agenda or to write down the decisions made during a conference.

This module was initially developed by the BigBlueButton developers and was already an experimental module when we started working on it for Mconf. The module had some synchronization and concurrency issues, that were solved and now the module is available in Mconf. This module will also probably be integrated into BigBlueButton in the future.

(2013) Authorization popup — the “guest” feature

The “guest” feature is how we call the feature that added an authorization popup to Mconf-Live. It’s purpose is to allow a moderator to control who can access the meeting from within a meeting. In BigBlueButton this decision can only be made before the user enters the meeting (what is usually done by the third-party applications that are integrated with BigBlueButton).

With the guest feature, when a guest user wants to join the meeting he will need the approval of a user with moderator privileges. If a meeting has a moderator, a guest pop-up window will appear in the top right side asking whether he allows the new user to enter the meeting or not. If there is no moderator in the meeting, the system stores the list of users that are waiting permission to enter and show it as soon as a moderator joins.

You can read more about the authorization popup at this blog post.

(2012) The first Android client (now deprecated in favor of the new Android/iOS client)

The mobile client for Android devices was 100% developed by Mconf and is also a big contribution to BigBlueButton, even though it does not include any development in the core of the web conference software. The application was received with a lot of enthusiasm by the developers of BigBlueButton and was Mconf’s first big contribution to the project.

The development of the Android client has been followed by the community through many posts on the BigBlueButton blog:

Mconf-Mobile was also presented on the On-line BigBlueButton Developers Summit by members of the Mconf team.

Honorable mentions

Apart from the features mentioned above, several other smaller features were also implemented by Mconf in BigBlueButton. Below is a non exhaustive list of these developments:

  • Possibility to specify in the configuration file which resolutions the user can use during the conference (integrated into BigBlueButton 0.8);
  • Improved the resize of video windows (integrated into BigBlueButton 0.8);
  • Implemented the presentation thumbnails in the playback page and parts of the video playback.

Plans for the future

There are several features in BigBlueButton that Mconf plans to develop (or to help in the development). Below is a non exhaustive list of these features:

  • A branding for Mconf: BigBlueButton is already modular enough to allow us to create a branding of it for Mconf (i.e. applying Mconf’s visual identity to Mconf-Live);
  • HTML5 client: Since the beginning of Mconf we’ve been interested in the development of an HTML5 client. The developers of BigBlueButton recently released information about the prototype of an HTML5 viewer and Mconf will probably be helping in its development in the future;
  • Improvements for slow networks: There are some problems that happen when users are in (very) slow networks, such as audio failures and big delays to propagate actions (e.g. change the slide in all clients when the presenter changes his slide). We believe that is possible to improve the system to behave better in these scenarios.

More…

Publications

As you can see at the Publications sections, we published a few works coauthored members of BigBlueButton, including a book chapter that gives a lot of details about Mconf and the collaboration with BigBlueButton at the time it was published.

Blog posts, mailing list messages and community calls

This section contains a collection of links pointing to blog posts, messages in mailing lists and recordings of meetings and community calls from BigBlueButton where Mconf (or the work done by Mconf members) is somehow mentioned.

1BigBlueButton and the BigBlueButton Logo are trademarks of BigBlueButton Inc.