calcom / cal.com

Scheduling infrastructure for absolutely everyone.
https://cal.com
Other
31.06k stars 7.47k forks source link

[CAL-3105] BigBlueButton Integration #1985

Open philippdormann opened 2 years ago

philippdormann commented 2 years ago

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

milospuac commented 2 years ago

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

noonscoomo commented 2 years ago

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.

saschafoerster commented 2 years ago

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

Buda9 commented 1 year ago

+1 for this feature request

PeerRich commented 1 year ago

/bounty 200

algora-pbc[bot] commented 1 year ago

šŸ’Ž $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

rjackson commented 1 year ago

Iā€™d be happy to take a look at this one.

/attempt #1985

tcchawla commented 1 year ago

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

algora-pbc[bot] commented 1 year ago

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.

rjackson commented 1 year ago

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 :)

tcchawla commented 1 year ago

Thanks @rjackson I will take up this issue

il3ven commented 1 year ago

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.

Buda9 commented 1 year ago

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

il3ven commented 1 year ago

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.

saschafoerster commented 1 year ago

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.

il3ven commented 1 year ago

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.

Thedineshk24 commented 1 year ago

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

saschafoerster commented 1 year ago

'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

muellerlukas commented 1 year ago

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:

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

ffdixon commented 1 year ago

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

saschafoerster commented 1 year ago

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

0xJaskeerat commented 1 year ago

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

iSatVeerSingh commented 1 year ago

Is this issue still unresolved? Please tell me.

nicktrn commented 1 year ago

Still WIP but almost there.

edit: Can now be tested by some brave volunteers!

Buda9 commented 12 months ago

Hey guys, any news with this?

abeatbeyondlab commented 9 months ago

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

PeerRich commented 8 months ago

/bounty 50

nicktrn commented 7 months ago

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.

mokkin commented 6 months ago

/bounty 100

algora-pbc[bot] commented 6 months ago

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

aialok commented 3 months ago

Is this issue is still available to work on?

mokkin commented 3 months ago

Is this issue is still available to work on?

Of course, it would be great :)

aialok commented 3 months ago

will the bounty be rewarded for the same?

Asmitpadia commented 2 months ago

/attempt #1985

algora-pbc[bot] commented 2 months ago

šŸ’” @abnud11 submitted a pull request that claims the bounty. You can visit your bounty board to reward.