backend integration into Redis, Mongo, Etherpad, Freeswitch for non evasive functionality.

45 views
Skip to first unread message

DistanceLearning.cloud

unread,
Apr 18, 2023, 1:52:17 PM4/18/23
to BigBlueButton-dev
@Les,  i moved this into a seperate thread to get it out of 2.7 features discussion

To answer your questions,  a lot of neat integrations, can be accomplished without touching the core server and client codebase.

The first is to run some meetings, and observe these 

Redis  use >redis-cli type monitor<cr> and you will see all of the events flowing between the different subsystems of BBB.     Once you see all the events you can subscribe to just the ones you want.   If you watch you can even form messages and send events back thru and mimic any part of bbb.

Mongo  use the mongo shell client, or a mongo desktop client Studio3T and connect the mongo database and see all the collections and states.
Example get the users/meetings for metrics
users=$(mongo --quiet mongodb://127.0.1.1:27017/meteor --eval "db.users.count({loggedOut:false})")
meetings=$(mongo --quiet mongodb://127.0.1.1:27017/meteor --eval "db.meetings.find()" | grep "meetingEnded\" : false," | wc -l)

Freeswitch use fscli -x or direct ESL to bridge calls, record invidual media streams


Greenlight  add backend postgres calls to add users/rooms/telco pins etc.


We have used  a combination of these in past.

1) to allow telephone users to be able to raise hand when on dialin,  for example pressing 5,  sends the raiseHand.  pressing 5 again removes.  etc.. We monitor and send events from freeswitch/redis/mongo
2) Identify a caller id on incoming call, and change the the caller name base on a callback ti database.
3) capture raw video frames when a camera turns on, and send to facial recognition 
4) autoplay external videos and flip slides, start a poll etc.
5) turn on/off recordings in running meeting from LMS portal

most of these are a few dozen lines of bash, a little ruby which can be added as a systemd service to make all work.

Would be glad to help anyone looking to do neat projects like this in the dev forum as a way to learn myself. Lots of ways to do something, and it is not always something that would make a core feature.

Biggest thing, is define the requirements and post under a single thread, suggest how you think it should done.  lots of smart developers in the forums these days...

regards.
Stephen







Reply all
Reply to author
Forward
0 new messages