Nextcloud App for BigBlueButton integration

Looking forward to this. Nextcloud Talk works well for individual calls, but an integrated solution for conferences/presentations would be very welcome.

1 Like

I was asked by two school about exactly the same.
Right now my sister who is a teacher uses a nextcloud instance with the talk application. It works, but especially for the calls moderating possibilities would make live a lot easier. Especially when you have a class of 20 8 year old pupils (muting everybody, unmute only one at a time, etc.). I’ve also looked into the usual suspects, xmpp, jitsi meeting, rocket chat, matrix. But all of them are missing moderation capabilities.
So I’m also looking right now if it’s possible to integrate the BigBlueButton or maybe Apache Openmeeting into nextcloud. The newest version of apache openmeeting doesn’t need flash anymore. But as it seems it’s only a Milestone version yet. So I guess BigBlueButton would be the better choice.
@oppitza How far did you get?
Unfortunately I can’t offer my programing skills, since I’ve already got way too many projects going. I’m doing this one here more as a kind of favor.

Just my 2 cents before I go to bed
About the classrooms. If BBB supports LDAP, SAML2 or OpenId Connect one could propably map the user groups to classrooms in BBB and roles (viewer, moderator) ?
I didn’t have time yet to look further into BBB. But at least into Nextcloud it’s relatively easy to integrate LDAP and/or SAML 2. It wouldn’t be a direct Nextcloud integration, but at least they would use the same Authentication Backend. When using SSO (SAML or OpenId Connect) one could even integrate BBB as a iFrame into Nextcloud (There’s an app for that), and only would need to log into nextcloud.

Hi, our plattform is up and running. The integration between NC and BBB works but is in an early stage and we are planning to refactor it with the support from the NC community.
Please see www.vicole.de (Sorry its only in German). We also have a demo system running. See https://www.vicole.de/demo/
The big advantage of BBB is that it has the features needed for teaching like mute/unmute.
Pls contact our team at info@vicole.de
Where are you based?
Regards
Armin

3 Likes

Another option would be to integrate Kurento Media Server (just the same BigBlueButton uses) into Talk if somebody wants to tackle that:

cool. I’ll look into it, but tomorrow, it’s quite late right now.
Well the schools I’m talking about are in Switzerland, but right now I am in Colombia ;-).
But german is no problem.
Meanwhile I had more time to look at BBB and realized my first idea how to tackle the problem won’t work in any way possible since BBB works quite different than most chat programs I’ve seen so far. I’m looking forward to see how you’ve solved it.

Hi! … my 2 cents

  1. cent: please take a look at this CfP https://www.cei.int/news/8810/covid-19-extraordinary-call-for-proposals-launched-600000-eur-for-projects-in-field-of-healthcare
    … we have NextCloud and BigBlueButton as separate services and would also like to connect them (we are public research institute) … it’s possible to make a proposal so we could get the funding for it.

  2. These efforts should also enhance this library: https://github.com/bigbluebutton/bigbluebutton-api-php

2 Likes

Hi alen

I’ve just contacted vicole.
Anyway, if you look at
https://github.com/bigbluebutton/bigbluebutton-api-php/wiki/API-Join
it seems like it should be pretty easy integrating BBB into nextcloud. You basically just need a few lines of code, and create rooms and rights based on groups. Like each class is a group which has a room, depending if a user is teacher or student he’ll get different rights in BBB.
At least the theory looks like that :wink:

Hi Armin, RMM!

@oppitza … I’ve check out the demo… it’s great and I have a bit different use case but generally feature requirements are similar. I’m cannot join in programming part currently but I would really like to collaborate regarding the user interface… You demo is a great proof of concept but I would like to see a deeper integration (join meetings from Talk or other apps) and meetings administration features (manage meetings, scheduling, recordings management etc.).

My case is a research institute and we provide the Nextcloud service for our researchers to collaborate around their research projects, sharing data and documentation and communicate via Talk or via BigBlueButton larger sessions (webinars, meetings).

Maybe you should create an app according to Nextcloud dev principles https://docs.nextcloud.com/server/latest/developer_manual//app/index.html
… then we can collaborate through issues there.

Also, it is possible that we participate in funding the development.

So, lets make a team of interested parties and start collaboration.

Best,
Alen
alen@irb.hr

1 Like

Hello everyone,

My first post :slight_smile: Here is an idea:

Since NC Talk works well for 2-4 users (and is maintained), why not start with that, use the BB PHP API whenever video / audio calls are concerned. I am sure it is a bit harder than I make it sound, but much of the UI of Talk is mature. The chat would continue to go through NC back-end (since it works there is no reason to mess with it).

Thoughts?

We got it working! We need help to release it.

  1. We want to release it to the community, but don’t have enough experience to package it (and frankly, others would be better at it)
  2. Right now the parameters are hard-coded (BigBlueButton URL and secret) we need to update the settings page and pull values into the code
  3. We use an iframe to load BBB, so need to add the domain of BBB to /lib/public/AppFramework/Http/ContentSecurityPolicy.php – there has to be a better way
  4. Some code cleanup is needed to remove webrtc from JS and from signaling in PHP

Any takers to help?

On another note, while it is an achievement to use PHP for WebRTC audio / video signalling, it has high latency (not a persistent server), has limited scalability, and uses too much CPU power on the NC server. A bad idea! Now that this is working I don’t see how we would go back.

7 Likes

If you can publish your code on Github or Gitlab other people could help you out.

Dear Nextcloud community;
thanks for all your feedback so far. As already said our platform for live classroom is up and running (see demo at www.vicole.de ). The platform is based on Nextcloud and BigBlueButton and we are planning to release a Nextcloud app for this in the near future.

Please stay tuned and stay safe.

6 Likes

@oppitza,

Great! The Talk UI is very nice and maintains conversation history. As well, given it is integrated into NC (e.g. projects, tags, side file chat) and is developed by NC itself, I would recommend we use this as a starting platform. No need to reinvent the well.

We are going into production shortly.

Our repo is ready for primetime and used in production
Looking forward to contributions from the community

9 Likes

You should activate issues on your fork.

Thanks - done!

WOOOOOOOW!

guys (especially @oppitza and @ramezrafla and all the other guys here):

YOU absolutely rock!

thank you for your ideas and contributions. :heavy_heart_exclamation:

3 Likes

Thanks!

It’s production-ready. All you need are:

  1. BBB server
  2. Access to config.php to set BBB parameters (we are adding shortly settings to the admin page)

It supports both full-fledged conversation with BBB and file-based conversations on the side with the built-in signalling server (less attendees so works well)

Let me know if you face any issues or need help.

@oppitza, you should give it a spin. Will make things easier in the future in terms of maintainability and integration in the calendar / tasks etc.

4 Likes

While this is cool, this seems like a rather basic modification and could maybe be better done inside NC-Talk?

How about a admin setting is added to choose the regular Spreed backend or as optional alternatives BBB or Jitsi-Meet iframes?

That would actually also help with the community unrest about the non open-source scaleable backend for NC-Talk :slight_smile:

@Krischan
I agree that this is the best way forward. However, I am not holding my breath.

It took me 3 work days with limited knowledge of NC and Vue (We are a ReactJS house) to get it done. It would have taken NC much less I am sure. Why haven’t they done it so far? Not long …

Why haven’t they?