+49 241 149 46 0 information@plesnik.de

Was ist BigBlueButton?

 

BigBlueButton ist ein Open-Source-Tool zur Realisierung von Webinaren und/oder Videokonferenzen mithilfe eigener Hardware.

Dabei ist es möglich gleichzeitig sowohl Webcam und Mikrofon zu teilen, als auch eine Präsentation vorzustellen. Zusätzlich ist auch der Chat während der gesamten Zeit einsehbar, was die Kommunikation zwischen Präsentator und Zuschauer erheblich vereinfacht.

Schritt 1: Vorraussetzungen des Servers prüfen

Zuerst stellen Sie sicherstellen, dass alle Anforderungen an die Hardware und das System durch den Server erfüllt sind. Es wird empfohlen BigBlueButton auf einem physikalischen „Bare-Metal“-Gerät zu installieren, in unseren Tests funktionierte eine VM (virtuelle Maschine) jedoch ebenso einwandfrei.

  • System: Ubuntu 14.04 64-Bit 
    Es ist zwingend erforderlich diese Version zu verwenden. Ihr BigBlueButton wird unter 13.04 / 16.04 oder 16.10 nicht funktionieren. Prüfen Sie die Version mit folgenden Befehlen

    $ cat /etc/lsb-release
    DISTRIB_ID=Ubuntu
    DISTRIB_RELEASE=14.04
    DISTRIB_CODENAME=trusty
    DISTRIB_DESCRIPTION=“Ubuntu 14.04.X LTS“

    $ uname -m
    x86_64

  • CPU: 2,6GHz Quad-Core CPU oder schneller
  • HDD: min. 50GB Kapazität (zur Videoaufnahme der Konferenzen min. 500GB)
    50 GB sind für den einfachen Gebrauch durchaus ausreichend. Wenn Sie Ihre Webinare / Konferenzen jedoch für späterere Verwendung aufzeichnen wollen, empfiehlt sich eine Festplatte mit einer Kapazität von über 500GB.
  • Sprachset: en_US.UTF-8
    Unter einer anderen Sprachversion wird Ihr BigBlueButton nicht funktionieren. Nutzen Sie den folgenden Befehl, um zu prüfen, welche Sprache Ihr System verwendet:

    $ cat /etc/default/locale
    LANG=“en_US.UTF-8″

    Sollte eine andere Ausgabe, als oben genannte erscheinen, muss das Sprachset manuell installiert werden:

    $ apt-get install language-pack-en
    $ update-locale LANG=en_US.UTF-8

  • freie Ports: TCP: 80, 1935, 9123, UDP: 16384 – 32768
  • Netzwerk: min. 100 MBit/s
  • Versionsname: „trusty multiverse“ 
    In der sources.list muss es einen Eintrag „multiverse“ geben. Prüfen lässt sich dies mit dem Befehl:

    $ grep „multiverse“ /etc/apt/sources.list

    Dort sollte es einen unkommentierten Eintrag geben, der in etwa so aussieht: „deb http://archive.ubuntu.org/ubuntu trusty multiverse„. Wichtig ist hierbei die Schlüsselwörtchen „trusty multiverse„. Gibt es keinen solchen Eintrag führen Sie die folgenden Befehle aus.

    $ echo „deb http://us.archive.ubuntu.com/ubuntu/ trusty multiverse“ | sudo tee -a /etc/apt/sources.list
    $ apt-get update
    $ apt-get dist-upgrade

Schritt 2: Server für die Installation vorbereiten

Zusätzlich zu den grundsätzlichen Vorraussetzungen müssen einige Vorbereitungen für die eigentliche Installation getroffen werden.

Ubuntu 14.04 installiert standardmäßig LibreOffice4.2.x, aufgrund von erhöhter Stabilität wird für BigBlueButton allerdings LibreOffice4.4 empfohlen. Dieses lässt sich recht einfach mit den folgenden Befehlen manuell installieren:

$ apt-get install software-properties-common
$ add-apt-repository ppa:libreoffice/libreoffice-4-4

Darüber hinaus werden ECDSA-Schlüssel benötigt, um die Tonverbindung zwischen Teilnehmerbrowser und BigBlueButton-Server herstellen zu können. Diese werden mit folgendem Befehl hinzugefügt:

$ add-apt-repository -y ppa:ondrej/php

Anschließend muss man dem Server Zugriff auf die BigBlueButton-Paketdatendepots (Repositories) geben. Dazu werden die folgenden Befehle verwendet.

$ wget http://ubuntu.bigbluebutton.org/bigbluebutton.asc -0- | apt-key add –
$ echo „deb http://ubuntu.bigbluebutton.org/trusty-1-0/ bigbluebutton-trusty main“ | tee /etc/apt/sources.list.d/bigbluebutton.list
$ apt-get update

Um die einzelnen Komponenten des BigBlueButton-Webinares zu nutzen (Audio, Video, Bildschirmübertragung) muss „ffmpeg“ installiert werden. Dazu eine Datei „install-ffmpeg.sh“ anlegen und mit folgendem Inhalt füllen:

sudo apt-get install build-essential git-core checkinstall yasm texi2html libvorbis-dev libx11-dev libvpx-dev libxfixes-dev zlib1g-dev pkg-config netcat libncurses5-dev
FFMPEG_VERSION=2.3.3
cd /usr/local/src
if [ ! -d „/usr/local/src/ffmpeg-${FFMPEG_VERSION}“ ]; then
  sudo wget „http://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2“
  sudo tar -xjf „ffmpeg-${FFMPEG_VERSION}.tar.bz2“
fi
cd „ffmpeg-${FFMPEG_VERSION}“
sudo ./configure –enable-version3 –enable-postproc –enable-libvorbis –enable-libvpx
sudo make
sudo checkinstall –pkgname=ffmpeg –pkgversion=“5:${FFMPEG_VERSION}“ –backup=no –deldoc=yes –default

Dieses Script muss mit „$ chmod +x install-ffmpeg.sh“ ausführbar gemacht werden und anschließend mit „$ ./install-ffmpeg.sh“ gestartet werden. Nach der Installation sollte man mit dem Befehl „$ ffmpeg – version“ prüfen, ob das Script richtig ausgeführt wurde.

Schritt 3: BigBlueButton installieren

Die eigentliche Installation des BigBlueButton-Servers gestaltet sich recht simpel: Es muss lediglich ein Befehl ausgeführt werden

$ apt-get install bigbluebutton

Während der Installation muss man einmal mit Eingeben eines ‚Y‘ bestätigen, dass man das Paket installieren muss. Eine Fehlermeldung „Error: FreeSWITCH didn’t start“ können wir ignorieren.

Anschließend muss die Datei /etc/ImageMagick/policy.xml geöffnet werden um zu prüfen, ob folgende Einträge vorhanden sind: 

 

  <policy< span=""> domain="coder" rights="none" pattern="EPHEMERAL" />
  <policy< span=""> domain="coder" rights="none" pattern="URL" />
  <policy< span=""> domain="coder" rights="none" pattern="HTTPS" />
  <policy< span=""> domain="coder" rights="none" pattern="MVG" />
  <policy< span=""> domain="coder" rights="none" pattern="MSL" />
  <policy< span=""> domain="coder" rights="none" pattern="TEXT" />
  <policy< span=""> domain="coder" rights="none" pattern="SHOW" />
  <policy< span=""> domain="coder" rights="none" pattern="WIN" />
  <policy< span=""> domain="coder" rights="none" pattern="PLT" /> 

  

Um später bei Tests und Problemen eine einfachere Handhabung zu ermöglichen, installieren wir außerdem noch die beiden Hilfsprogramme „bbb-demo“ und „bbb-check“. Dazu lediglich die beiden Befehle ausführen

$ apt-get install bbb-demo
$ apt-get install bbb-check

Anschließend aktivieren wir noch WebRTC audio, starten den BigBlueButton-Server sauber neu und führen den Selbsttest aus:

$ bbb-conf –enablewebrtc
$ bbb-conf –clean

$ bbb-conf –check

Nun sollte Ihr BigBlueButton-Server bereits funktionsfähig sein. Testen können Sie dies über „http://IP_des_BBB-Servers/demo“.

Wenn Sie hier auf Probleme stoßen, kann es sein, dass etwas die Verbindung blockiert. Versuchen Sie die Seite von einem Gerät zu erreichen, dass sich nicht „hinter Ihrer Firewall“ befindet. 

Schritt 4: HTTPS einrichten

Um den BigBlueButton-Server auch per HTTPS erreichen zu können (und damit Chrome-Nutzer auch ihr Mikrofon teilen können) müssen jedoch noch einige weitere Dinge eingerichtet werden.

Zuerst sollte man den BigBlueButton-Server so einrichten, dass statt einer IP ein DNS-Name verwendet wird. Wir verwenden als Beispiel „bbbServer.domain.de„. Vorrausgesetzt ist hier, dass Sie Zugriff auf die Domain haben und die SubDomain auf die externe IP-Adresse des BigBlueButton-Server verweist. Anschließend konfigurieren Sie den BigBlueButton-Dienst diese Domain auch zu verwenden. Dazu den folgenden Befehl ausführen:

$ bbb-conf –setip bbbServer.domain.de

Wie für jede Verbindung über SSL wird auch für den BigBlueButton-Server ein SSL-Zertifikat benötigt. Dabei ist es unwichtig, ob Sie ein bereits vorhandenes (Wildcard-) Zertifikat verwenden oder sich ein neues ausstellen lassen. 

Im nächsten Schritt muss dieses Zertifikat, sowie der dazugehörige Key für nginx (der benötigte Webserver) eingebunden werden. Dazu folgende Befehle ausführen:

$ mkdir /etc/nginx/ssl

$ cat >/etc/nginx/ssl/bbbServer.domain.de.key << ‚END‘
Hier den Inhalt der erhaltenen .key-Datei einfügen
END
$ chmod 0600 /etc/nginx/ssl/bbbServer.domain.de.key

$ cat >/etc/nginx/ssl/bbbServer.domain.de.crt<< ‚END‘
Hier den Inhalt der erhaltenen .crt-Datei einfügen
END

Anschließend generieren wir noch einen 2048-bit Diffie-Hellmann-Schlüssel, um einige Protokolle tiefergreifend zu schützen.

$ openssl dhparam -out /etc/nginx/ssl/dhp-2048.pem 2048

Nun können wir nginx konfigurieren das SSL-Zertifikat auch zu nutzen. Dazu in der Datei /etc/nginx/sites-available/bigbluebutton unter listen [::]:80; folgende Zeilen hinzufügen:

listen 443 ssl;
  listen [::]:443 ssl;
  ssl_certificate /etc/nginx/ssl/bbbServer.domain.de.crt;
  ssl_certificate_key /etc/nginx/ssl/bbbServer.domain.de.key;
  ssl_session_cache shared:SSL:10m;
  ssl_session_timeout 10m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers „ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS:!AES256“;
  ssl_prefer_server_ciphers on;
  ssl_dhparam /etc/nginx/ssl/dhp-2048.pem;

Anschließend müssen auch noch einige Einstellungen für FreeSWITCH und WebRTC abgeändert werden. Dazu in der Datei /opt/freeswitch/conf/sip_profiles/external.xml nach einer Zeile suchen, die „ws-binding“ beinhaltet und diese abändern, sodass dort folgendes steht

 

In der Datei /etc/bigbluebutton/nginx.sip das Protokoll und den Port der Variable „proxy_pass“ ändern, sodass der Abschnitt wiefolgt aussieht:

location /ws {
  proxy_pass https://:7443;
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection „Upgrade“;
  proxy_read_timeout 6h;
  proxy_send_timeout 6h;
  client_body_timeout 6h;
  send_timeout 6h;

}

Zusätzlich muss der Parameter „wsServers:“ in den beiden Dateien /var/www/bigbluebutton/client/lib/bbb_webrtc_bridge_sip.js und /var/www/bigbluebutton/check/resources/lib/bbb_webrtc_bridge_sip.js angepasst werden. Dort lediglich „ws durch „wss“ ersetzen.

Um den BigBlueButton-Dienst für HTTPS zu konfigurieren, muss als nächstes in der Datei /var/lib/tomcat7/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties der Eintrag für bigbluebutton.web.serverURL ebenfalls auf https://bbbServer.domain.de geändert werden

Ds gleiche muss jetzt noch in der Datei /var/www/bigbluebutton/client/conf/config.xml getan werden. Da es dort jedoch einige Einträge zu ändern gibt, erledigen wir dies mit folgendem kurzen Script:

$ sed -e ’s|http://|https://|g‘ -i /var/www/bigbluebutton/client/conf/config.xml

Anschließend auch den Demo-Dienst für HTTPS konfigurieren, dazu die Datei /var/lib/tomcat7/webapps/demo/bbb_api_conf.jsp aufrufen und in der Zeile für die URL des Demo Servers ebenfalls http durch https ersetzen. 

Zum Schluss den BigBlueButton-Server neustarten mit „bbb-conf –restart„.

Schritt 5: In der Firewall die benötigten Ports freigeben

Für explizite Anleitungen zur Freigabe von Ports durch eine Firewall bitte das jeweilige Handbuch zurate ziehen. Hier wird lediglich das grundsätzliche Prinzip erläutert.

Stellen Sie zunächst sicher, dass ihr Domain-Provider die benötigte Sudomain auf eine eigene externe IP-Adresse weiterleitet. 

Anschließend muss die externe IP-Adresse von der Firewall automatisch auf die interne IP-Adresse des BigBlueButton-Servers weitergeleitet werden.

Zusätzlich müssen Sie an dieser externen IP-Adresse die Ports 80, 443, 1935, 7443 und 9123, über TCP freigeben und die Ports 16384 – 32768 über UDP.

Jetzt sollte der BigBlueButton-Server über https://bbbServer.domain.de/demo zu Testzwecken bereits erreichbar sein.

Schritt 6: BigBlueButton-Server mit WordPress verbinden (optional)

Im WordPress-Plugin für BigBlueButton einfach die IP-Adresse / Domain des eigenen Servers angeben und mit dem Sicherheitsschlüssel (SALT) autorisieren. 

Jetzt können Sie Räume anlegen und diese mit Moderator- und/oder Teilnehmerpasswort sichern.