owned this note
owned this note
Published
Linked with GitHub
Kickoff session: https://demo.bigbluebutton.org/rooms/ggu-sze-sqf-bxr/join
# Project worksheet for 19th BigBlueButton Developer Summit (Brazil, 2024)
Hi everyone!
Let's collaborate here using HackMD on the projects we want to do this developer summit (April 22th to April 26th).
List the projects you are interested in seeing developed -- we'll likely have more projects than people, but let's capture all of the ideas.
As with past summits, we'll form groups around the projects, sprint (hack) on them for the week, learn along the way, and give presentations starting at 14:00 on Friday, April 26th.
Many of these projects will be using the latest build of BigBlueButton 3.0-dev.
Here are some of the main project -- feel free to add your own or sign-up for an existing project.
Plese edit/correct any information you see in the document.
# Conference Participants
## In Person
From Blindside Networks (Canada)
- Anton Georgiev
- Fred Dixon
From iMDT (Brazil)
- André Castro
- Anton Barboza De Sa
- Gabriel Luiz Porfirio
- Guilherme Pereira Leme
- Gustavo Trott
- João Victor
- Ramón Souza
- Tainan Felipe Pauli De Almeida
- Tiago Daniel Jacobs
From Mconf (Brazil)
- Átila Uebel
- Arthur Böckmann Grossi
- Bruno Guilherme Valentini
- Felipe Cecagno
- Júlia Palma Rathke
- Lucas Fialho Zawacki
- Paulo Renato Lanzarin
- Rafaela Caroline Mônaco
From Element.io
- Timo Kandra
## Attending Remotely
From RIADVICE (Tunisia)
- Ghazi Triki
From aufKurs.de (Germany)
- Tim Korn (partially attending)
From Blindside Networks (Canada)
- Kert Browne
From University of Mainz (Germany)
- Jan Kessler
- Malte
From Mconf (São Tomé)
- Germano Caumo Carniel
From fairkom (Austria)
- Roland Alton
- Martin Klampfer (Tue)
# Projects
## Integration with Element
Element.io are the creators of the Matrix Protocol. Element is the most popular Matrix client.
There are two variants to integration of BigBlueButton with Element.
1. Launch into a BigBlueButton from within Element
2. Enable BigBlueButton to join a Matrix channel and continue the discussion within BigBlueButton.
We will be focussing on (1).
Initial session recording https://pro.fairteaching.net/p/6a0479531fc476b0b782d5cd763c49fa85c4f640-1713815682648
- Phase 1: get again work the old dimension setup from HU berlin, may be the preferable solution if users are federated and use different clients, integrate widget without dimension.
- Phase 2: sync RTC session state, show this information to join any call, even parallel calls in one room, we do that to add widget link, is directly integrated without dimension, we need then a JWT proxy server, we may use the wrapper for jitsi, we go with the smart ownership concept: one owner one membership event. non-element participants would not sync the state
- Phase 3: livekit integration - get audio/video with joining native RTC sessions
Members: Timo Kandra, Roland Alton, Jan Krammer, Martin Klampfer
## Away Mode Improvements
- Mute microphone + camera when away.
- Disable away when microphone is unmuted.
- Avoid changing users userlist position when it is away.
- Find a new place for the "Set yourself to away" button (discuss with design team)
Members: Ramon
## Automated Testing
### Create Plugin Tests
Create tests to ensure that new versions of BigBlueButton will work with the [plugin SDK samples](https://github.com/bigbluebutton/bigbluebutton-html-plugin-sdk/tree/main/samples), and also with the [official plugins](https://github.com/bigbluebutton/plugins).
Members: Anton B.
### Enhance Failed Test Messages
Members: Gabriel
### Host Test Reports Externally
Allow developers to access test results directly from the pull request
Members: Anton B.
## Removal of Meteor collections
Remove all usages of server-side Meteor collections in BigBlueButton 3.0
Members: Tainan, João Victor
## BigBlueButton 3.0 stress tests
Determine user capacity and system bottlenecks.
Members: Tiago
## Support Multiple Connections per User
Handle cases where a user opens multiple browser tabs of the same session
Ideas:
- ensure same `userId` for a given `externalUserId`
- use `userId+sessionToken` as identifier for media, as userId will be duplicated
- when duplicate a tab, tell user that sessionToken is already in use and offer to create a new session
Members: Gustavo, Paulo
## Run BigBlueButton on ARM server
Explore how far we can go running BBB on an ARM server.
Members: Anton G
## Containerization / Kubernetes
We want to explore the possibilities of running BigBlueButton under Kubernetes. [This article](
https://medium.com/l7mp-technologies/kubernetes-the-next-step-for-webrtc-fb8d8a33f24e) outlines the major technical challanges as well as ways to overcome them: Media Gateways.
This project can be split in two major domains:
#### Containerization efforts
This can be done with docker-compose and without the complexity of a full Kubernetes setup. No Kubernetes knowledge is required, but basic understanding of containerization is helpful.
- Bring the Container images up-to-date with BBB 3.0 (Update existing ones, add GraphQL, etc)
- Alan has already started: https://github.com/bigbluebutton/docker/pull/313
#### K8S specific work
Which this only takes off where the above has produced up-to-date pods, research can already start with this:
- Explore [Stunner](https://github.com/l7mp/stunner), a k8s ingress gateway
- looks good, exposes only one UDP port for all media and acts as TURN for all users
- Explore how LiveKit works in containerized environments, particulary so that not all worker nodes require public IPs and the number of required ports is limited
- Check the [Jitsi Kubernetes](https://github.com/jitsi-contrib/jitsi-kubernetes) project
- Check cloud-native TURN implementations
- Check if LiveKit can run on a single port per connection
- Unfortunately not, see https://docs.livekit.io/realtime/self-hosting/ports-firewall/#Ports
Once the Containerization efforts are complete, a helm or kustomize chart needs to be written, which can largely be converted from the docker compose file.
After this summit, this effort aims to provide a clearer picture on how Kubernetes can provide benefits over a VM-based deployment in terms of
- Maintenance
- General scalability
- Ad-hoc (e.g. per meeting) scalability
- Reliability
- we need for production root-less images
It will most likely not result in a full BBB 3.0 in Kubernetes, but pave a significant part of the way.
Members: Danimo
## LiveKit (part 2)
Continue work on the LiveKit integration for BigBlueButton, initiated at the 18th BigBlueButton Developer Summit.
The goal to achieve an initial, experimental LiveKit integration merged into the v3.0.x release (behind feature flags)
Priorities include:
- Merging a MVP integration for audio into v3.0.x-release.
- Laying out a public roadmap for LiveKit integration and transition.
Members: Paulo
## Tagged Server Support in Greenlight
Since Scalelite now supports tagging of servers and a corresponding meta parameter in the create call, the aim is to prototype support for the feature in Greenlight.
Members: Jan
## Plugin Improvements
### Core Improvements and Official Plugins
- Review and improve pull requests about data channels + sub-data channels.
- Review, improve and merge the first official plugins:
- share-link
- pick random user
- decrease volume on speak
- Review and improve documentation
Members: Guilherme, Tiago
### New plugin: Personal notes
Add a floating window for writing personal notes during the meeting (persisted to the server).
Members: Tiago
### New plugin: Code Syntax Highlighting in Chat Messages
We want to create a plugin that renders code in chat messages, just like github does in issues.
Members: André
### New plugin: Typed captions
We want to drop typed captions from core and write it as a plugin.
Members: Guilherme
### New plugin: Interpretation
fairkom had developed fairblue as an HTML5 replacement for interpreters in multilingual conferences, has been maintained up to BBB 2.5.
Now we aim at a rewrite fairblue as a stand-alone service which is using the plugin SDK.
To achieve this we need additional plugin hooks see https://github.com/bigbluebutton/bigbluebutton/issues/20016
Meta-Issue for relaunch of fairblue https://git.fairkom.net/hosting/chat/fairblue/-/issues/160
Members: Martin Klampfer, Roland Alton, Guilherme, Anton
### New plugin: YYY
Members:
...
### Hybrid Teaching Plugin
We want to further improve the prototype we developed at the Dev Summit in Berlin 2023.
Members: Daniel Schreiber
### PHP Library Improvements
The official PHP library is now popuplar with its 468k downloads. It needs a more detailed documentation that covers all its possiblities. Also it needs to cover 2.7 and 3.0 API.
## Design UX and UI
### Redesign of the User Interface
One of our biggest challenges of de UX is the features dicoverability. We want to improve the users experiences by designing a prototype of a new UIwich is ease-to-use bay teachers and students.
Members: Bruno, Júlia, Rafaela & Tyler
## Post to bigbluebutton-dev
The BigBlueButton project is holding its 19th Developer Summit this week in Balneário Camboriú, Brazil (April 22 - 26th).
At the summit, the core developers from around the world have been working together to advance our mission: to build the world's most effective virtual classroom measured in learning outcomes.
Here's a video of the activity of the developers and designers working together
https://youtu.be/U883xHbL2Vo
We welcome everyone in our community to join us for live demos tomorrow at 17:00 UTC
Time: Friday, April 26, 17:00 UTC
Location: https://conference.meetbbb.org/rooms/vdo-o5x-tmg-dok
The demos will be 5 - 10 minutes long and cover the following areas
- BigBlueButton Project Update (Fred Dixon)
- Supporting VIP meetings in ScaleLite (Jan Kessler)
- Hybrid Teaching Plugin Update (Timo Nogueira Brockmeyer)
- An update on integration with LiveKit (Paulo Renato Lanzarin)
- Prototype integration of BigBlueButton with Element Matrix Client (Timo Kandra)
- Progress made for a [Matrix bot](https://git.fairkom.net/hosting/chat/matrix-bigbluebutton-bot) being [refactored in golang](https://git.fairkom.net/hosting/chat/matrix-bigbluebutton-bot-go) to launch a BBB conference (Martin Klampfer, Roland Alton)
- Architecture plan for [language interpretation service](https://git.fairkom.net/hosting/chat/fairblue/-/issues/160) for BBB 3+ (Martin Klampfer, Roland Alton)
- Demo of support for LTI 1.3 (Jesus Federico, Mariam Almalki)
- Stress testing BigBlueButton 3.0
- lambda strategy: Chrome headless and the full client loading (Tiago Jacobs)
- jmeter strategy: just websocket connection, acting like a client, to profile how messages degrade under load (Felipe Cecagno)
- Progress on refactoring BigBlueButton to use GraphQL (Tainan Felipe Pauli De Almeida)
- Away Mode Improvements (Ramón Souza)
- Improving quality of BigBlueButton through CI testing (Anton Barboza De Sa, Gabriel Luiz Porfirio)
- Plugin for highlighted source code (André Castro)
- Plugin for integrating with H5P (Guilherme Pereira Leme)
- Enabling joining from multiple browser tabs or devices (Gustavo Trott, Tiago Jacobs)
- Exploring running BigBlueButton under Kubernetes (Daniel Molkentin)
- Experiences using the new plugin architecture for BigBlueButton 3.0 (Lucas Fialho Zawacki)
- Prototype of Breakout Vision using tldraw 2.0 (Kert Brown)
- A new design for the BigBlueButton UI (Rafaela Caroline Mônaco, Júlia Palma Rathke, Bruno Guilherme Valentini)
Feel free to share the above information with others and invite anyone interested in the BigBlueButton project to attend the live demos.