BigBlueButton

From

Jump to: navigation, search

Contents

BigBlueButton

BigBlueButton is a web conferencing server that takes advantage of several other open source servers. It is a complex package that I prefer to run on its own Ubuntu server (either on a standalone machine, in a separate partition, or within a virtual machine). This is necessary partly because BigBlueButton runs either on a 32-bit Ubuntu Jaunty 9.04 OS or on a 32-bit or 64-bit Lucid 10.04 OS currently, and I use a more recent edition of the (K)Ubuntu OS for everything else.

Also, the default configuration of BigBlueButton uses ports for its components that might occasionally conflict with other servers. Rather than reconfigure all the other servers (to avoid the possibility of port conflicts with BigBlueButton), it is easier to install (and easier to maintain) BigBlueButton if it is in a self-contained environment.

If BigBlueButton is to be used only for a webinar once-in-a-while, it might be easiest to set it up in its own partition. (A full BBB installation uses 2 Gb hard disk space, so a 4 Gb partition ought to be sufficient. If plenty of hard disk space is available, use 8 Gb for the partition.) Install the Ubuntu server (or desktop) OS within that partition first. (See this section for details on a method to accomplish this.) Then install BigBlueButton.

Installing in a virtual machine (such as VirtualBox, VMWare, QEMU, or Xen) makes sense if the computer host has lots of computing capacity (3 Gb of RAM or greater and a powerful CPU) and a large hard drive. (BigBlueButton recommends dedicating at least 1 Gb RAM to it on a 2 GHz dual-core processor. A full installation requires 2 Gb, so a 4 Gb virtual hard drive ought to be sufficient. If plenty of hard disk space is available, use 8 Gb for the virtual hard drive.) Installation in a virtual machine can be accomplished using the installation method outlined below (after installing an Ubuntu OS within the virtual machine), or a VMWare appliance can be used (for those who have installed a VMWare Player).

If a spare computer is available and frequent usage is anticipated, installing on a standalone computer (as the server) would be most economical (and easiest to maintain) in the long run.

As always, I recommend a test system and a production system. These can be parallel installations on separate partitions (or within separate virtual machines), for example, of which only one at a time is running.

The following instructions are for a new installation, including the Ubuntu server OS, within one of these three environments.

Install Ubuntu server

BigBlueButton provides packages for the 32-bit Jaunty (9.04) edition or for the 32-bit or 64-bit Lucid (10.04) editions. Install your desired server version (Ubuntu server 9.04 or Ubuntu server 10.04). (Jaunty uses the ext3 filesystem by default, so I would probably stick with that if using that version.) I do not recommend installing any additional packages. BigBlueButton will install all the additional packages that it needs (through its own installation script) itself.

  • Update and upgrade the basic server:
sudo apt-get update
sudo apt-get upgrade
  • To speed bootup, edit the Grub timeout to be one second (Note: Jaunty 9.04 uses Grub Legacy, not Grub2).
sudo nano /boot/grub/menu.lst

Change to

timeout 1

instead of the 10 second (timeout 10) that is the default.

Sort out webserver conflicts

BigBlueButton uses Nginx as a webserver instead of Apache2. (Nginx is used by many high-volume server sites such as Sourceforge, Hulu, Github, Wordpress, and TorrentReactor).

  • If installing Ubuntu server for the first time, do not install the full LAMP (Linux, Apache2, MySQL, PHP) stack as an option, since Apache installation is not needed. BigBlueButton will install the individual MySQL and PHP components during its own installation.
  • If you are installing BigBlueButton on an Ubuntu server that is already running Apache, you must decide on a port scheme so that the two webservers do not conflict.

Changing the Apache listening port

The Nginx webserver (used by BigBlueButton) is installed so that it uses the standard webserver port 80. Apache2, if installed, also uses this standard webserver port by default. It is possible to edit an Apache2 configuration file, however, so that it listens on a non-standard port:

sudo nano /etc/apache2/ports.conf

and the port number 80 changed to a different port number (such as 82). Then reload Apache2:

sudo /etc/init.d/apache2 restart

This avoids conflicts while installing and testing BigBlueButton. (Of course, for the most part, any servers using Apache2 will be non-functional unless all corresponding virtual host settings are also changed.)

Later, I usually prefer to set the BigBlueButton listening port to 81 and return the Apache2 listening port to 80.

Install BigBlueButton

32-bit Jaunty (9.04)

  • Retrieve and add the BigBlueButton repository key:
wget http://archive.bigbluebutton.org/bigbluebutton.asc 
sudo apt-key add bigbluebutton.asc 
  • Add the BigBlueButton Repositories to your repository list:
echo "deb http://archive.bigbluebutton.org/ bigbluebutton main" | sudo tee /etc/apt/sources.list.d/bigbluebutton.list
sudo apt-get update 
  • Install BigBlueButton:
sudo apt-get install bigbluebutton
  • Install desktop sharing:
sudo apt-get install bbb-apps-deskshare

32-bit or 64-bit Lucid (10.04)

  • Retrieve and add the BigBlueButton repository key:
wget http://archive.bigbluebutton.org/bigbluebutton.asc 
sudo apt-key add bigbluebutton.asc 
  • Add the BigBlueButton Repositories to your repository list:
  echo "deb http://archive.bigbluebutton.org/lucid bigbluebutton-lucid main" | sudo tee /etc/apt/sources.list.d/bigbluebutton.list
  • Ensure the multiverse is in the souces list (needed for msttcorefonts):
  echo "deb http://us.archive.ubuntu.com/ubuntu/ lucid multiverse" | sudo tee -a /etc/apt/sources.list
  • Update the software lists:
  sudo apt-get update
  • Install asterisk (you can hit enter for the prompt for dialing prefix):
  sudo apt-get install asterisk
  • Install BigBlueButton
  sudo apt-get install bigbluebutton
  • Restart BigBlueButton:
  sudo bbb-conf --restart
  sudo bbb-conf --check

Ensure port availablility

BigBlueButton components use port 1935 for RTMP (streaming video), 9123 for desktop sharing (with Xuggler), and port 80 for the Nginx webserver.

Internally, the Red5 Flash server uses port 5080, the Tomcat6 java server uses port 8080, Asterisk uses UDP port 5060 for the SIP interface (plus SIP ports 6079-6099 and RTP ports 3000-3029). The Asterisk Management Interface uses port 5038.

For this reason, during installation and troubleshooting, it is best not to use a firewall with BigBlueButton, and it should be placed in a DMZ. (The UFW firewall installed with Ubuntu Jaunty 9.04 is not enabled by default, so this is not problematic initially.)

A server in the DMZ is at increased risk of hacking, so this is another significant reason to keep BigBlueButton quarantined within its own dedicated server environment (machine/partition/virtual machine).

Once installation is complete and tested, a firewall is probably a good idea, especially if you are hosting BBB on the same machine as other servers.

Check the server's current IP address

Usually this will be the IP address of the server on the LAN. To display:

ifconfig

Set a static IP address

The Ubuntu server(/desktop) on which BigBlueButton is installed should have a static IP address so that it can reliably be located on the network. If on a LAN, this will be a static LAN IP address (such as 192.168.0.55), to which the router must forward the appropriate ports.

Test BigBlueButton

If the LAN IP address of the BigBlueButton server is shown by ifconfig to be, for example, 192.168.0.55, then access the server from another computer on the LAN by logging in from any web browser to:

http://192.168.0.55

Big Blue Button should now be fully functional.

Change the host location of the BigBlueButton server

A utility exists to quickly change the server_name of the Nginx (and other BigBlueButton) configuration files. The server_name can be an IP address (such as 68.67.66.65) or a URL (such as bigbluebutton.mydomain.org).

sudo bbb-conf --setip bigbluebutton.mydomain.org

If it doesn't seem to work, try a clean restart of the BigBlueButton system:

sudo bbb-conf --clean

Changing the BBB listening port

If BBB is working satisfactorily using the default settings, it is then possible to change the listening port as well as the hostname/IP address at which it will be located.

  • If the port listening port has been changed to 81 (see above), then use the command:
 sudo bbb-conf --setip bigbluebutton.mydomain.org:81
  • Also change the Nginx webserver listening port (see below).
  • Reboot the server.
  • Now the BigBlueButton server can be accessed:
http://bigbluebutton.mydomain.org:81

Change the virtual host configuration file of Nginx

Nginx is the web server used by BigBlueButton. It is similar to Apache in many ways. Virtual host configuration files are stored in /etc/nginx/sites-available (and the virtual host configuration file made active by linking it into the /etc/nginx/sites-enabled folder).

BigBlueButton uses an Nginx virtual host configuration folder at /etc/nginx/sites-available/bigbluebutton (which is already linked into the sites-enabled folder). This can be edited (and must be edited if the "bbb-conf --setip" utility in the previous section is used to change the BBB listening port).

sudo nano /etc/nginx/sites-available/bigbluebutton
  • To change the listening port, edit the line
listen 80;

to the port that should be listened on (in my example 81). Do not use 8080, since it is already used.

listen 81; 
  • If you intend to use Apache2 on this server (and will always use Nginx on port 81), then also edit the default Nginx configuration file:
 sudo nano /etc/nginx/sites-available/default

so that it also listens on port 81:

listen 81;
  • Restart Nginx:
sudo /etc/init.d/nginx restart
  • Check the changed settings:
bbb-conf --check
  • Reboot the server.

Using BigBlueButton with Moodle

If Moodle and BigBlueButton are hosted within the same LAN (or on the same physical machine), then the webservers (that they use) ought to be on different listening ports. Moodle uses Apache2, and I find it easiest to leave this at port 80; I assign port 81 to Nginx (and BigBlueButton).

In my set up, I use the same URL for both Moodle and BigBlueButton:

http://smartestowl.mydomain.org

for Moodle and

http://smartestowl.mydomain.org:81

for BigBlueButton.

Install BBB <-> Moodle API

  • Download the API from DualCode into the /usr/share/moodle/mod folder and unzip:
sudo wget http://www.dualcode.com/bigbluebutton/bigbluebutton.zip
sudo unzip bigbluebutton.zip
  • Copy the bigbluebutton/mod/bigbluebutton folder (and its contents) into the /usr/share/moodle/mod folder:
sudo mkdir /usr/share/moodle/mod/bigbluebutton
sudo cp -r bigbluebutton/mod/bigbluebutton/* /usr/share/moodle/mod/bigbluebutton/
  • Copy the bigbluebutton/lang folder contents into the /usr/share/moodle/lang folder:
sudo cp -r bigbluebutton/lang/* /usr/share/moodle/lang/
  • Remove the original files:
sudo rm bigbluebutton.zip
sudo rm -r bigbluebutton/*
sudo rmdir bigbluebutton
  • Login to the Moodle site (as an administrator) and load the module:
Moodle -> Site Administration -> Notifications (Make sure to click on Notifications)
-> Activities -> Manage Activities -> BigBlueButton -> Settings
-> Input the IP address/URL of your BigBlueButton server. Do not enter the leading http:// .
-> Input the Security Salt from your BigBlueButton server. This is in a file called “bigbluebutton.properties” on the BigBlueButton server. On my Ubuntu server I found it at
/var/lib/tomcat6/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties

The security salt string can be found:

beans.dynamicConferenceService.securitySalt=your_number_here

Input that long string of numbers and letters to the field in Moodle.

-> Put a star in the Meeting IDs field. That will allow an unlimited number of rooms to be created. You can also put any number here to restrict how many rooms on your BigBlueButton server you want running at any one time. (This can eventually become important for performance reasons.)
  • In the (Course) Weekly Outline:

-> Add an activity... -> BigBlueButton ->

and set the desired passwords for the meeting, etc.

Add BigBlueButton API to Drupal6

  • BigBlueButton is a standalone videoconferencing server. Install the BigBlueButton API that is able to call the BBB server from within Drupal:
cd /etc/drupal/6/sites/all/modules
sudo wget http://ftp.drupal.org/files/projects/bbb-6.x-1.x-dev.tar.gz
sudo tar zxvf bbb-6.x-1.x-dev.tar.gz
sudo rm bbb-6.x-1.x-dev.tar.gz
Note: If you wish this module to be available to only one subsite, then install it instead into the /etc/drupal/6/sites/mysite_x/modules folder.
Note: You must update and adjust permissions after module installation.
Drupal -> Administer -> Modules -> Big Blue Button -> select the Big Blue Button module functions you intend to use
  • Test the BigBlueButton settings:
Drupal -> Site administration -> BigBlueButton Conferencing -> Test connection.
  • Change the URL to the address of your BBB server (e.g. http://mybbbsite.dyndns.org:81/bigbluebutton/) and the Security Salt (found in bigbluebutton.properties on the BBB server in the
/var/lib/tomcat6/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties
configuration file, in the setting:
beans.dynamicConferenceService.securitySalt=your_security_salt_number_here
  • Create a new content type named Teleconference:
Drupal -> Administer -> Content management -> Content types -> Add content type

-> Name: Teleconference -> Type: teleconference -> Big Blue Button settings -> Treat this node type as conference: (ticked) -> Show links to join / start a meeting beneath the node: (ticked) -> Display meeting status on node: (ticked) -> Save content type

  • Create a new node of content type Teleconference:

Drupal -> Create content -> Teleconference -> Conference settings -> ...

Changing the BBB security salt

In general this is not necessary. However, if you think your BigBlueButton system may have been compromised in some way, the security salt (which keeps passwords and communications safe) can be changed.

  • Generate a new Universal Unique ID (UUID), which is basically a long string of random numbers with dashes. This random number will serve as the security salt key:
uuidgen
  • Copy the string (including dashes) several places, replacing the existing security salt (if any) at each location:
  • /var/lib/tomcat6/webapps/bigbluebutton/demo/bbb_api_conf.jsp
sudo gedit /var/lib/tomcat6/webapps/bigbluebutton/demo/bbb_api_conf.jsp
  • /var/lib/tomcat6/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties
sudo gedit /var/lib/tomcat6/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties
  • Do a clean restart of the BigBlueButton server:
sudo bbb-conf --clean

BBB - Standalone authentification with Apache2 web serving

bbb-conf - setip bbb_url.com:81
    • In the file /etc/nginx/sites-enabled/default
Change port 80 to port 81
  • Install apache2
apt-get install apache2
    • Create this file:
/etc/apache2/sites-available/bbb-redirect
    • Add the following line to this file : /etc/apache2/sites-available/bbb-redirect
Redirect / http://bbb_url.com:81/bigbluebutton/conference
  • Restart apache2
/etc/init.d/apache2 restart
  • Copy /var/lib/tomcat6/webapps/bigbluebutton/demo to /var/lib/tomcat6/webapps/bigbluebutton/conference
cp -R /var/lib/tomcat6/webapps/bigbluebutton/demo /var/lib/tomcat6/webapps/bigbluebutton/conference
  • In this folder /var/lib/tomcat6/webapps/bigbluebutton/conference
    • Copy demo3.jsp to index.jsp
cp demo3.jsp index.jsp
  • Customize index.jsp as you wish. (you need basic knowledge with java and html)
  • Restart tomcat6
/etc/init.d/tomcat6 restart

Voila!, the BBB server should be accessible with authentication.

Personal tools
Sponsor
     Asus 1015E