Visioconférence avec BigBlueButton

BigBlueButton est un projet Open Source de visioconférence, qui réunit et fait fonctionner ensemble plusieurs composants, dont :
- nginx, un serveur HTTP d’origine russe, et le 3ème le plus utilisé sur le Web à la date de rédaction de cet article, derrière Apache et Microsoft IIS. Ce serveur nginx est souvent utilisé pour des sites développés avec Ruby on Rails;
- Asterisk, célèbre PABX open source,
- Red5, serveur Flash libre similaire à Flash Media Server, et qui supporte des applications écrites non seulement en Java, mais aussi par exemple en Python ou en Ruby;
- Tomcat, MySQL, OpenOffice notamment, et au total une quinzaine de composants dans la version 0.71 de BigBlueButton.

BigBlueButton permet des visioconférences avec une organisation en rôles : « Viewer », « Presenter », « Moderator », mais peut aussi être utilisé, plus simplement, en tant qu’alternative à divers systèmes de « Chat Video » tels que ceux proposés par Skype, Facebook, Google, ou Apple. L’économie du projet BigBlueButton repose sur une formation et un support avancé payants. L’objet de cet article n’est donc pas de remplacer une documentation sur BigBlueButton, mais seulement d’indiquer quelques opérations simples permettant de mettre en oeuvre ce système et d’organiser des visioconférences basiques.

BigBlueButton peut être installé de différentes manières, y compris à partir des sources. Le plus classique est d’installer BigBlueButton sur une distribution Linux Ubuntu, mais une machine virtuelle VMWare est aussi disponible pour tester BigBlueButton. Ce qui suit concerne la mise en oeuvre de cette machine virtuelle VMWare.

L’installation de cette machine virtuelle nécessite un serveur DHCP, et se déroule presque entièrement automatiquement, après la validation de quelques écrans initiaux. Cette installation prend toutefois un certain temps, du fait de nombreux téléchargements. A l’issue de cette étape, aucune interface graphique n’est installée et, à la console, le clavier est en qwerty : les réfractaires au paramétrage de Linux pourront avantageusement utiliser putty…

Le premier « login » se fait avec le nom « firstuser » et le mot de passe « default », et déclenche aussitôt la demande d’un nouveau mot de passe à choisir pour cet utilisateur « firstuser ». On peut relever que la bash, pour ce compte, est paramétré pour afficher l’adresse ip de la machine virtuelle, information utile.
L’activation du compte « root » se fait selon la procédure classique sous Ubuntu : « sudo passwd root ».

Si on souhaite installer les VMware Tools, il faut d’abord installer les « kernel headers» :
- la commande « bbb-conf –check » retourne (entre autres informations) la version du noyau utilisé : 2.6.32-32-generic.pae pour BigBlueButton 0.71a,
- la commande « apt-get install linux-headers-2.6.32-32-generic.pae » installe les headers correspondants;
- il faut aussi ajouter un « hardware CD/DVD Drive » à cette machine virtuelle;
- ceci fait, l’installation des VMware Tools se fait classiquement : voir par exemple cet article, utilisable aussi pour Ubuntu.

 

Si on désire attribuer une adresse ip statique à cette machine virtuelle, la procédure est la suivante :

a) Editer avec « vi » le fichier : /etc/network/interfaces
Sous la ligne « auto eth0 », supprimer ou mettre en commentaire la ligne « iface eth0 inet dhcp » et ajouter les lignes suivantes :
iface eth0 inet static
address abc.def.ghi.jkl (l’adresse ip statique de cette machine virtuelle)
netmask 255.255.255.0
network abc.def.ghi.0
broadcast abc.def.ghi.255
gateway abc.def.ghi.xyz (l’adresse de la passerelle vers internet)

b) Editer avec « vi » le fichier : /etc/resolv.conf
Ajuster la ligne « nameserver abc.def.ghi.uvw » (l’adresse du serveur ou du relais DNS utilisé)

c) Redémarrer la machine virtuelle : « shutdown –r now »

d) Se logger en « root » et saisir : « bbb-conf –setip abc.def.ghi.jkl » (l’adresse ip de cette machine virtuelle)

Il est prudent d’effectuer enfin la commande « bbb-conf –clean », qui, comme son nom le suggère, « fait le ménage » dans les différents fichiers de configuration du système BigBlueButton, notamment après un changement d’adresse ip. L’usage de cette commande, couplée à « bbb-conf –check », peut permettre aussi de résoudre un éventuel problème d’absence de son pendant une visioconférence, dû à un paramétrage erroné du serveur Asterisk : on est alors guidé vers la ligne du fichier de configuration où corriger l’adresse ip fausse.

 

La mise en oeuvre d’un serveur BigBlueButton derrière un accès Internet, pour qu’il puisse être utilisé de l’extérieur, ne pose pas de problème particulier :
- il faut ouvrir, en entrée, les ports tcp 1935, tcp 9123 et tcp 80;
- la commande « bbb-conf –setip nom » est nécessaire, où « nom » est le nom de domaine utilisé, de l’extérieur, pour accéder au serveur BigBlueButton. Ceci est indépendant de son adresse ip, vers laquelle le routeur d’accès à internet redirigera les requêtes venant de l’extérieur : cette commande est nécessaire pour configurer correctement les fichiers de paramétrage des différents composants de BigBlueButton.
Il en résulte, dans une telle situation, que les clients internes de ce serveur BigBlueButton devront eux aussi passer par cette url extérieure, et ne pas se connecter à ce serveur, en interne, par son adresse ip.
- le port 80 est celui utilisé défaut par les API de BigBlueButton, et il peut être changé par la commande « bbb-conf –setip nom:zz », où « nom » est le nom de domaine utilisé pour accéder au serveur BigBlueButton et « zz » le port d’écoute voulu.
En cas d’utilisation de BigBlueButton par son adresse ip exclusivement, la syntaxe de cette commande de changement de port devient « bbb-conf –setip abc.def.ghi.jkl:zz », où « abc.def.ghi.jkl » est son adresse ip.

 

Les visioconférences mises en oeuvre par BigBlueButton sont organisées autour de « meetings », qu’un client peut rejoindre, muni :
- du mot de passe permettant d’accéder à ce « meeting »,
- d’un pseudo, libre et non contrôlé, qui lui permet de se distinguer des autres participants, pendant la durée de cette visioconférence.

Les créations et suppressions de « meetings », ainsi que les actions de se joindre à un meeting ou de le quitter, sont permises par l’emploi des différentes API de BigBlueButton. Ces API retournent généralement des flux XML, de sorte que leur mise en oeuvre passe par un minimum de développement informatique, par exemple sous forme de pages Web codées en PHP.
De telles utilisations de ces API sont aisées à trouver sur internet, y compris sous forme de plugins pour Drupal ou WordPress. En s’inspirant du code de ces plugins, on peut y ajouter une surveillance de l’utilisation des « meetings » gérés par ces plugins, avec notification (par exemple par e-mail) des démarrages ou des fins de visioconférences.