Site Tools


Hotfix release available: 2025-05-14b "Librarian". upgrade now! [56.2] (what's this?)
Hotfix release available: 2025-05-14a "Librarian". upgrade now! [56.1] (what's this?)
New release available: 2025-05-14 "Librarian". upgrade now! [56] (what's this?)
Hotfix release available: 2024-02-06b "Kaos". upgrade now! [55.2] (what's this?)
Hotfix release available: 2024-02-06a "Kaos". upgrade now! [55.1] (what's this?)
New release available: 2024-02-06 "Kaos". upgrade now! [55] (what's this?)
Hotfix release available: 2023-04-04b "Jack Jackrum". upgrade now! [54.2] (what's this?)
Hotfix release available: 2023-04-04a "Jack Jackrum". upgrade now! [54.1] (what's this?)
New release available: 2023-04-04 "Jack Jackrum". upgrade now! [54] (what's this?)
Hotfix release available: 2022-07-31b "Igor". upgrade now! [53.1] (what's this?)
Hotfix release available: 2022-07-31a "Igor". upgrade now! [53] (what's this?)
New release available: 2022-07-31 "Igor". upgrade now! [52.2] (what's this?)
New release candidate 2 available: rc2022-06-26 "Igor". upgrade now! [52.1] (what's this?)
New release candidate available: 2022-06-26 "Igor". upgrade now! [52] (what's this?)
Hotfix release available: 2020-07-29a "Hogfather". upgrade now! [51.4] (what's this?)
New release available: 2020-07-29 "Hogfather". upgrade now! [51.3] (what's this?)
New release candidate 3 available: 2020-06-09 "Hogfather". upgrade now! [51.2] (what's this?)
New release candidate 2 available: 2020-06-01 "Hogfather". upgrade now! [51.1] (what's this?)
New release candidate available: 2020-06-01 "Hogfather". upgrade now! [51] (what's this?)
Hotfix release available: 2018-04-22c "Greebo". upgrade now! [50.3] (what's this?)
Hotfix release available: 2018-04-22b "Greebo". upgrade now! [50.2] (what's this?)
bigbluebutton_integration

Installing BigBlueButton

Please find the instructions to install bigbluebutton - installing_bigbluebutton

Integrating with the api

The integration with the API is taken care by the bigbluebutton rails plugin which can be found under the crossbow/trunk/vendor/plugins. This is taken from bigbluebutton-api-ruby gem(https://rubygems.org/gems/bigbluebutton-api-ruby) and modified to suit our purpose.

The current version of the gem only works with both version 0.7 and 0.8, We need to make some model chnages after switching the gem version.

The API request and response parameters can be found at http://code.google.com/p/bigbluebutton/wiki/API#API_Calls

With the latest release of bbb(0.7), the meeting information are not stored in the DB, rather maintained in redis server. So if the bbb system gets restarted all the information related to meeting will be lost.

To get around this problem, the meeting information shall be stored in the crossbow database (meetings table). With this approach a meeting can be scheduled in the future time. The owner of the meeting, can then start the meeting at the scheduled time. Once the meeting starts, the attendees can join the meeting.(In the UI we provide a button 'join Meeting' if 'isMeetingRunning' api call returns true).

Discussion

After a meeting has ended (either forcibly or after all participants have voluntarily left), a meeting only stays in memory for 60 minutes. After that it will no longer be returned from the getMeetings call, and you will not be able to call getMeetingInfo, etc, for that meeting. The number of minutes that it remains in memory is configurable. You can modify /var/lib/tomcat6/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties and change (or add) the line “beans.dynamicConferenceService.minutesElapsedBeforeMeetingExpiration=60”. If you add it, it should be added just before or after the line where your security salt is configured.

If we want to persist all of the meeting and attendee information, we can have a periodically running task that gets information through API and saves it in the database.

How to get the time spent by each attendee in the meeting ?

As of now, there is no way to get the time when an attendee has logged out of the meeting. BBB API says that there are planning to add attendee start time and end time in the response of getMeetingInfo API. But, this call only returns the attendees who are currently in the meeting. So, if the meeting has ended or any attendee has left the meeting before we query the data, the information is lost.

How to get the End time of meeting ?

As long as the meeting is available in the memory , we can get it through getMeetingInfo call.

Do we want to allow restart of the same meeting, after it is end ?

If yes, we can do it but each time a meeting is started it is a fresh meeting with respect to BBB and the previous meeting information is lost on BBB server. Each and every start should be tracked separately if we want to save that information. Also, When a meeting is forcebly ended by endMeeting API call, BBB does not allow to start a meeting with the same meeting ID till the meeting information is flushed out from memory. So, some time duration should be there before restart of the meeting.

Pre uploading Presentations

The presentations can be any document, pdf or ppt. We can specify in the create meeting request to load the presentations which will be displayed by default as soon as the meeting starts.

We can specify the presentation url or file itself in the encoded64 format and embed it in the post request request of the create meeting. The XML should look like below

<?xml version="1.0" encoding="UTF-8"?> 
<modules> 
    <module name="presentation"> 
        <document url="http://www.samplepdf.com/sample.pdf" /> 
        <document name="sample-presentation.pdf">JVBERi0xLjQKJ....
          [clipped here]
          ....0CiUlRU9GCg==
        </document> 
    </module> 
</modules> 

The bigbluebutton plugin takes care of this. We upload the files and save them in assets table. The models LiveEventPresentation and LiveEventAssociation are added to handle the presentations of a live event. We send the files to BBB server in base64 encoded format as it is faster.

Compiling client with flash player 11+ (11.2)

BBB client needs to be compiled for flash player 11.2+ to get h264 encoding features of flash player for video conferencing. Following steps are needed for that.

1. Change build.xml in bigbluebutton-client directory and replace 10.3 (or flash major version 10 and minor version 3) to 11.2 (major version 11, minor vesion 2) across the entire file. (Note - This change comes from svn. So, just verifying is enough in our case.)

2. Add flashplayer 11.2 swc to flexsdk.

wget http://download.macromedia.com/get/flashplayer/updaters/11/playerglobal11_2.swc

# Figure out flex_home_dir. Mostly it is /home/<bbbuser>/dev/tools/flex-4.5.0.20967 or the value in FLEX_HOME env variable.

mkdir flex_home_dir/frameworks/libs/player/11.2

mv playerglobal11_2.swc flex_home_dir/frameworks/libs/player/11.2/playerglobal.swc


chmod 775 flex_home_dir/frameworks/libs/player/11.2/playerglobal.swc

3. Run ant task in bigbluebutton-client directory.

DB schema

Table Name : meetings

Column_name type Description
id integer primary key
meeting_id varchar meeting_id (should be unique in the bbb )
meeting_name varchar name of the meeting
owner_id integer references user
moderate_password varchar the password to be used by the owner to start the meeting
attendee_password varchar the password to be used by the attendee to join the meeting
scheduled_start_time datetime the date when the meeting is scheduled
duration_in_min integer How long the meeting will last
welcome_message string Welcome message to be displayed on launch
dailin_number string Dial in number for conference
voice_bridge string Voice conference number that participants enter to join the voice conference
max_participants integer Maximum number of participants that can attend this meeting
create_at date_time created date
updated_at date_timeupdated date

Table Name : attendees

Column_name type Description
id integer primary key
meeting_id integer meeting id (references to meetings table
attendee_id integer user's id

Note: We can add two columns started_at and ended_at to both meetings and attendees tables if we want to fetch the actual meeting start and end times from bbb server and save.

bigbluebutton_integration.txt · Last modified: 2018/08/31 16:16 (external edit)