cal.com icon indicating copy to clipboard operation
cal.com copied to clipboard

[CAL-3105] BigBlueButton Integration

Open philippdormann opened this issue 2 years ago β€’ 35 comments

Is your proposal related to a problem?

No, this is a new feature request

Describe the solution you'd like

App Integration for BigBlueButton using the BigBlueButton API

CAL-3105

philippdormann avatar Feb 26 '22 12:02 philippdormann

Thanks for reaching out and your suggestion. Our team will look into this

milospuac avatar Mar 01 '22 08:03 milospuac

We (infra.run) support this request. Such an integration would help a lot to enable both, cal.com and BBB, to the business world with focus on open-source-software.

noonscoomo avatar Mar 02 '22 12:03 noonscoomo

I can just add a +1 and a link to the documentation of the API in the hope of someone picking it up: https://docs.bigbluebutton.org/dev/api.html

saschafoerster avatar Apr 16 '22 11:04 saschafoerster

+1 for this feature request

Buda9 avatar May 15 '23 21:05 Buda9

/bounty 200

PeerRich avatar May 17 '23 18:05 PeerRich

πŸ’Ž $50 bounty β€’ Cal.com, Inc.

Steps to solve:

  1. Submit work: Create a pull request including /claim #1985 in the PR body to claim the bounty
  2. Receive payment: 100% of the bounty is received 2-5 days post-reward. Make sure you are eligible for payouts

Thank you for contributing to calcom/cal.com!

Add a bounty β€’ Share on socials

algora-pbc[bot] avatar May 17 '23 18:05 algora-pbc[bot]

I’d be happy to take a look at this one.

/attempt #1985

rjackson avatar May 17 '23 18:05 rjackson

Hello @philippdormann @PeerRich, I would like to work on this issue. /attempt #1985

tcchawla avatar May 19 '23 17:05 tcchawla

Note: The user @rjackson is already attempting to complete issue #1985 and claim the bounty. If you attempt to complete the same issue, there is a chance that @rjackson will complete the issue first, and be awarded the bounty. We recommend discussing with @rjackson and potentially collaborating on the same solution versus creating an alternate solution.

algora-pbc[bot] avatar May 19 '23 18:05 algora-pbc[bot]

I've not managed to get a BigBlueButton test environment up and running yet, so quite happy for you to take this one on @tcchawla if you're all ready to go :)

rjackson avatar May 20 '23 14:05 rjackson

Thanks @rjackson I will take up this issue

tcchawla avatar May 20 '23 16:05 tcchawla

I have been looking into implementing this feature request. There is a something I can't figure out. BigBlueButton doesn't allow to schedule meetings [ref]. Therefore, we can't have a Google Meet like app.

Also, the BigBlueButton server doesn't maintain any users. In order to create meetings using API we will need complete access to the server using a shared secret [ref]. I believe people will be hesitant to share that.

From what I have found, the clients/frontends to the BigBlueButton such as GreenLight may maintain users, schedule meetings etc but not BigBlueButton's server itself.

I propose that instead of having a Google Meet like app we go for a facetime like app. The user can give cal.com a permanent join link. GreenLight has such a link and I expect many other clients to have it too. We can also generalize this app.

I am new to cal.com and BigBlueButton so please excuse me if I got something wrong.

il3ven avatar May 27 '23 15:05 il3ven

That's correct regarding scheduled meetings. This is their google group. Perhaps you could ask for advice there?

Buda9 avatar May 27 '23 19:05 Buda9

That's correct regarding scheduled meetings. This is their google group. Perhaps you could ask for advice there?

I'm not sure what to ask. As far as scheduling meetings is concerned I think we have consensus that it is not possible.

il3ven avatar May 28 '23 14:05 il3ven

I just had a short look: Of course I would give the BBB secret to Cal.com to create meetings, if that helps.

I saw some parameters in the API calls that could allow to keep a meeting alive for a longer time or even forever, but that might habe side effects. Would that may be a possible path?

Of course an "easy starter implementation" would be the Facetime way, just add link to a room generated with Greenlight that is always the same. That would be fine. In the room settings of Greenlight you can then only let people in after "knocking at the door", so the room is not entered to early. The larger implementation could also allow recordings.

saschafoerster avatar May 29 '23 12:05 saschafoerster

I saw some parameters in the API calls that could allow to keep a meeting alive for a longer time or even forever, but that might habe side effects. Would that may be a possible path?

The FAQ mentions that meetings are kept in memory. A meeting will expire if no user join in meetingExpireIfNoUserJoinedInMinutes mins. meetingExpireIfNoUserJoinedInMinutes is configurable using the API. However, I doubt that keeping a meeting in memory using meetingExpireIfNoUserJoinedInMinutes for a week is a good idea.

il3ven avatar May 30 '23 08:05 il3ven

hey, anybody had built this feature?, if not I'd love try this

Thedineshk24 avatar Jun 14 '23 08:06 Thedineshk24

's correct regarding scheduled meetings. This is their google group. Perhaps you could ask for advice there?

I asked in their Google Dev group: https://groups.google.com/g/bigbluebutton-dev/c/nSSYWXCsMoE

saschafoerster avatar Jun 16 '23 18:06 saschafoerster

Hey there,

Lukas/MuLu from the dev group. There are no planned meetings, consider BBB as stateless (execpt recordings). There is no GUI for joining or creating. You have to use the API or use an existing GUI like Greenlight.

Easiest thing you can do:

  • Build a wrapper that is reachable e.g. under "cal.com/joinbbb/ROOMID"
  • When called check if the meeting is running (API-Call: isMeetingRunning) and if not then start it with the name, presentation, CSS, ... what you want (API-Call: create)
  • Then you can build the Join-URL with the Name, Avatar, Role, etc. and redirect the user to this (API-Call: join)

And remember: BigBlueButton is not a plain "online meeting software". It is a Virtual Classroom software not directly intended for Webmeetings.

muellerlukas avatar Jun 17 '23 13:06 muellerlukas

Hi, I'm Fred, the co-founder of BigBlueButton Inc.

You're correct that BigBlueButton operates in a stateless manner. It doesn't have any pre-configured users, meetings, or schedules database within the server.

In this regard, the BigBlueButton server acts like a web server: you don't tell the web server that you intend to load a file at 2pm tomorrow. Instead, you simply request the file when needed, the server fulfills your request, and moves to the next request.

Similarly, the BigBlueButton API is utilized to create meetings, join users, and manage recordings. All the business logic -- such as scheduling -- is handled by an external, front-end application.

This stateless structure simplifies upgrading BigBlueButton. There's no need to update any user, meeting, or schedule databases when upgrading. It also eases the process of completely replacing your BigBlueButton server. The front-end communicates solely via the API, allowing you to upgrade, replace, or modify your BigBlueButton server without impacting the front-end.

When it comes to scheduling applications, some front-end logic is necessary to schedule meetings. The front-end keeps track of a meeting that is scheduled for 2pm tomorrow. When it's ready to start the meeting, such as when the user clicks the 'Start' button, the front-end sends a 'create' API request, and, if successful, returns a 'join' URL to the user's browser in response to clicking the 'Start' button.

Later, after the meeting is over and the user returns to the scheduler, the front-end can issue a 'get' recordings API call to check if any recordings are available. The API also includes calls to manage these recordings.

At its core, BigBlueButton is as a comprehensive web-conferencing system, with a special emphasis on virtual classrooms. This emphasis means it has a large suite of tools for applied learning, including breakout rooms, shared notes, polling, visual polling, and live analytics (in the Learning Analytics Dashboard) to aid educators in identifying struggling students.

BigBlueButton offers deep integrations with Canvas and Moodle, the latter being the world's most popular Learning Management System (LMS). All integrations use the same BigBlueButton API. The front-end GreenLight is a stand-alone interface to BigBlueButton, uses this API as well.

These tools are also applicable in a business context, where shared notes can function as a platform for agendas and note-taking, and the Learning Analytics Dashboard can be used for meeting attendance.

A discussion thread already exists in the bigbluebutton-dev mailing list. Cool. If you need further assistance, there are companies offering commercial support as well.

Regards,... Fred

ffdixon avatar Jun 17 '23 22:06 ffdixon

Another feedback from the mailing list:

hi Sascha, the code was not updated in a while, but you could have a look at it to get an idea how to schedule meetings in BBB. I think the api has not changed since scheduLight was developed and the main tasks still are the same. https://github.com/aau-zid/scheduLight

saschafoerster avatar Jun 19 '23 07:06 saschafoerster

/attempt https://github.com/calcom/cal.com/issues/1985

0xJaskeerat avatar Jul 28 '23 07:07 0xJaskeerat

Is this issue still unresolved? Please tell me.

iSatVeerSingh avatar Aug 16 '23 11:08 iSatVeerSingh

Still WIP but almost there.

edit: Can now be tested by some brave volunteers!

nicktrn avatar Aug 16 '23 13:08 nicktrn

Hey guys, any news with this?

Buda9 avatar Sep 08 '23 10:09 Buda9

hi guys bigbluebuttton is really an amazing software for business , any news? I would like to put is as default option for my cal.com link

abeatbeyondlab avatar Nov 22 '23 16:11 abeatbeyondlab

/bounty 50

PeerRich avatar Jan 04 '24 17:01 PeerRich

My suggestion would be for someone to pick this up from https://github.com/calcom/cal.com/pull/10803#issuecomment-1907982969.

I believe the hardest parts are already done. Feel free to ping if any questions arise.

nicktrn avatar Jan 24 '24 12:01 nicktrn

/bounty 100

mokkin avatar Feb 17 '24 18:02 mokkin

πŸ‘‹ Hi @mokkin, the slash command is reserved for Cal.com maintainers, but you can add a community bounty if you'd like!

algora-pbc[bot] avatar Feb 17 '24 21:02 algora-pbc[bot]