1 BigBlueButton_Debian_Squeeze
Anthony Callegaro edited this page 2012-05-25 15:07:34 +00:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

How to install BigBlueButton on Debian Squeeze

This small tutorial is to give a step by step procedure to install a BigBlueButton 0.71a server on Debian Squeeze 32bit. I based it on the official tutorial which is clearly over complicated (compiled things from source), have some bogus instructions (ie. add Ubuntus multiverse to a debian server), etc.

  1. Install

This is the procedure I followed which, I think, is much easier :

  • Install pre-requisites with necessary workaround for packaging bugs :

    • Install sudo
      All script are Ubuntufied so you will have to install sudo or some scripts (bbb-conf) wont work correctly. aptitude install sudo

    • Install libmpfr
      libmpfr has been superseded by libmpfr4 and so is no longer available in Debian Squeeze. swftools depends on it but the version in Lenny is a little bit too old (2.3.1), so instead of compiling the source and making a new package, as indicated in the official how to, well just resolve the dependencies by using the one from ubuntu : aptitude install libgmp3c2 wget http://ubuntu.mirror.cambrium.nl/ubuntu//pool/main/m/mpfr/libmpfr1ldbl_2.4.2-3ubuntu1_i386.deb dpkg -i libmpfr1ldbl_2.4.2-3ubuntu1_i386.deb

    • Another workaround to avoid errors later on : mkdir -p /var/www/nginx-default/ touch /var/www/nginx-default/50x.html

  • Now you can install BigBlueButton aptitude install bbb-freeswitch-config bbb-client bigbluebutton

  • Configure BigBlueButton and start it : bbb-conf --clean bbb-conf --check bbb-conf --setip YOUR_IP

You can now go to http://YOUR_IP and try the demo.

  1. Tips and tricks

BigBlueButton is a fantastic tool that works incredibly well, but it is still quite young, and is not yet very flexible in term of configuration. So here are some tips that I collected, hoping they will save you some hours of hair pulling.

2.1. Firewall setup

BigBlueButton require to open 3 ports : 80, 1935, 9123. You can also open only port 80 and so tunnel everything through it, but you will most likely get bitten by this bug which is a known Linux/Mac Adobe Flash bug . Basically you will be connected, and you will be able to do things but the session will re-initalise every 20-30 seconds. This bug doesnt affect Windows users and is supposed to be solved in Flashplayer 11.0.1.3 beta for Linux and Mac.

2.2. Redmine integration

BigBlueButton does not provide any administration GUI beside the demo, it is up to you to use their API, to create meetings. As we are already using Redmine I tried Redmines BigBlueButton plugin. :

cd /usr/local/share/redmine
ruby script/plugin install http://github.com/amartel/redmine_bbb.git

After restarting your Redmine instance, you will have a new plugin available in Administration ->Plugins. Then you need to give users BigBlueButton roles (create, join, moderate). Finally you need to go to a project settings and activate the BigBlueButton module to enable the “create meeting” link on the overview page.

2.3. Put BigBlueButton server behind a firewall or on a VPN

If you put your BigBlueButton server on a VPN or behind a firewall and you want to configure a public access, the configuration can be very tricky. Here is an example config providing that you have the following topology :

WEB      <=>      Redmine/Web Server       <=>       BigBlueButton server
          ExtIP : bigbluebutton.mydomain.com         IP : 192.168.1.10

BigBlueButton requires to have an IP that resolves to the same name as configured so either you can put a record in an internal DNS or add the following to its /etc/hosts :

vi /etc/hosts
-> 192.168.1.10 bigbluebutton.mydomain.com
bbb-conf --setip bigbluebutton.mydomain.com

It will throw a message that the IP does not match but this is ok.

# IP does not match:
#                           IP from ifconfig: 192.168.1.10
#   /etc/nginx/sites-available/bigbluebutton: bigbluebutton.mydomain.com

On the Redmine/Web server :

  • Forward port 9123 to BigBlueButtons server port 9123
  • Forward port 1935 to BigBlueButtons server port 1935
  • Configure a new vhost called bigbluebutton.mydomain.com that does a proxy pass to 192.168.1.10
  • DO NOT TRY to put it on a subfolder (ie. mydomain.com/bbb) if you dont want to have to modify lots of bigblubuttons source code.

In Redmine ->Administration ->Plugins ->BigBlueButton put the following (no trailing slash or else you will hit 403 errors) :

As we have an internal VPN with its own DNS, I do not know if you require to add BigBlueButtons IP to the web servers /etc/hosts file as well.

Beware that BigBlueButtons configuration is extremely sensitive, a slight change in the above and it might not work. If you encounter any issue with the above do not hesitate to ping us on IRC, to send us an email or to contact the bigbluebutton crew.

2.4. End meeting after every participants logged out

You can do this easily by modifying the configuration :

vi /var/lib/tomcat6/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties
-> beans.dynamicConferenceService.minutesElapsedBeforeMeetingExpiration=0

I found during my testing that the delay before the meeting is actually closed can vary from a few seconds to a few minutes, but it does work.