Retrouvez cet article dans : Linux Magazine 107
Le choix d’une solution open source de visiophonie ou de web conférence permettant de garder le contrôle et la propriété des données n’est pas très aisé, surtout si l’on y ajoute une contrainte de non-intrusion sur le poste client. Petit tour d’horizon et mini-howto d’installation d’une solution retenue pour nos tests.
Tous les centres de support en ligne vous le confirmeront, c’est du poste client que les difficultés les plus délicates à surmonter naissent. Comment faire pour concilier des besoins de vidéoconférence toujours grandissants avec les optimisations des coûts de communication et de supports informatiques de nos établissements (et entreprises) ?
Le premier réflexe, qui consiste à se retourner vers les normes officielles ou du marché, ne répond pas réellement à notre problématique. En effet, soit vous embrassez la norme H323 et ses dérivés en sacrifiant à la contrainte de non-intrusion sur les postes clients. Dans ce cas, attention à la facture tant en termes d’infrastructure que de support informatique. Vous avez certainement en mémoire l’excellente présentation d’Asterisk dans ce magazine [1] ; si non, je vous invite à le découvrir. Soit vous abandonnez tout réel contrôle de l’infrastructure et des données qui y transitent avec une solution comme Skype [2] qui, j’en profite pour vous le rappeler, " mutualise " pour son propre compte l’infrastructure accessible à la machine où il réside.
Ajoutons une touche d’Open Source et de cross-plateforme (il serait de bon ton que notre solution ne soit pas limitée en termes de système d’exploitation des postes clients) : que nous reste-t-il ?
Les deux projets qui ont attiré notre attention dans ce contexte particulier sont Dimdim et OpenMeetings. Ils s’appuient tous les deux sur Red5, le serveur Flash de la communauté open source. Bien que ces solutions reposent sur le plugin Flash des navigateurs des clients, c’est un moindre mal en termes " d’intrusion dans le poste client [3] " par rapport aux solutions s’appuyant sur H323.
Dimdim semble plus abouti (ce projet est également le plus ancien), mais il souffre de limitations bloquantes pour nos besoins qui sont certainement liés aux positionnements légèrement différents des deux projets. En effet, Dimdim cible très clairement les web conférences alors qu’OpenMeetings est plus polyvalent. La limitation d’un seul flux vidéo à un instant donné, combiné à l’impossibilité de passer la main entre les participants à une conférence, a disqualifié Dimdim à nos yeux.
OpenMeetings nous semble prometteur bien que très jeune ; et répond à nos problématiques dans des contextes différents :
Pour ESIEE-Paris, ce besoin est motivé par la mise à disposition d’une plateforme de télé-médecine dans le cadre de projets de recherche sur le maintien à domicile de patients atteints de la maladie d’Alzheimer [4].
Pour l’ESCP-EAP, les besoins sont :
De pouvoir réaliser des entretiens, à distance, avec des candidats aux différents concours d’entrée. La non-intrusion sur le poste client est donc primordiale. La fonctionnalité d’enregistrement des sessions est également utile dans ce contexte.
De mettre à disposition une plateforme de visioconférence sur le web pour les réunions internes de cet établissement dont une des particularités est de posséder cinq campus de par l’Europe (à Paris, Londres, Berlin, Madrid et Turin).
Quelques précisions sur les plateformes utilisées pour la réalisation de nos tests dans les deux écoles mentionnées :
ESIEE - PARISÂ :
serveur : machine virtuelle sous Xen 3.2, 1xCPU 3,6Ghz, 1020Mb de mémoire, 4Gb de disque.
système d’exploitation : Debian/Gnu Linux Sid 64b
Le choix d’une machine virtuelle est motivé par la rapidité et la souplesse de mise en œuvre.
ESCP-EAPÂ :
serveur : Core2duo 6750 2.6Go , 2Go RAM
système d’exploitation : Debian/Gnu Linux Etch 32b
Passons à l’installation et la configuration d’une plateforme de test d’OpenMeeting (enfin, direz-vous ;)
|
1 |
Mini-Howto d’installation et configuration d’OpenMeeting en version 0.5Final |
La première étape consiste à configurer le serveur de bases de données MySQL (il est également possible d’utiliser PostgreSQL) qui servira entre autres à la gestion des comptes et de la configuration :
Installation de MySQLÂ :
|
# apt-get install mysql-server mysql-client |
Il n’a pas été spécifié de mot de passe pour le root de MySQL en phase de test. Pour une configuration plus opérationnelle, il est souhaitable d’en mettre un. Il faudra donc dans ce cas utiliser la directive -p <rootpassword> des commandes MySQL.
Création de la base MySQL pour OpenMeeting :
|
# mysql -e "create database openmeetings" |
Vérification des bases de données existantes :
|
# mysqlshow |
Ajout d’un utilisateur <mysqluser> sur cette base openmeetings :
|
# mysql --user=root mysql # mysql> GRANT ALL PRIVILEGES ON openmeetings.* TO ‘<mysqluser>’@’localhost’ IDENTIFIED BY ‘<mysqluser_password>’; |
Test du compte :
|
# mysql --user=<mysqluser> \ |
II faut ensuite installer les outils de gestion de documents et d’images. Il s’agit d’outiller la plateforme de web conférence pour être en mesure de reconnaître et d’utiliser les formats bureautiques standards.
Installation et configuration d’Open Office Service sur la distribution Debian/(K)Ubuntu (Voir également http://code.google.com/p/openmeetings/wiki/OpenOfficeConverter)
1. # apt-get install openoffice.org
2. Si la version d’OpenOffice est inférieure à 2.3, il faut installer le paquet xvfb pour tourner sans display, ni session X (utile sur un serveur ;-) :
|
# apt-get install xvfb xfonts-base xbase-clients |
Édition du fichier /usr/lib/openoffice/share/registry/data/org/openoffice/Setup.xcu.
Après la directive <node oor:name="Office">, insertion des lignes suivantes :
|
<prop oor:name="ooSetupConnectionURL" oor:type="xs:string"> <value>socket,host=localhost,port=8100;urp</value> </prop> |
3. Si la version d’OpenOffice est supérieure ou égale à 2.3, ajoutez le paquet headless qui n’est pas inclus automatiquement pour réaliser le même tache sans session X.
|
# apt-get install openoffice.org-headless |
Lançons le service de conversion de document pour tester:
Avec OpenOffice < 2.3Â :
|
xvfb-run -a /usr/lib/openoffice/program/soffice -headless -nologo -norestore -nofirststartwizard |
Avec OpenOffice >= 2.3Â :
|
soffice -headless -nologo -norestore -accept="socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" |
Vérification de l’écoute du service d’OpenOffice sur le port 8100 :
|
netstat –nutpl | grep 8100 Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address tcp 0 0 127.0.0.1:8100 0.0.0.0:* State PID/Program name LISTEN 4277/soffice.bin |
Installation d’ImageMagick :
|
# apt-get install imagemagick |
Installation de GhostScript :
|
# apt-get install gs-esp |
Installation des SWFTools (version de Debian en Sid, car le package n’est pas dans la Etch) :
|
# apt-get install swftools |
Pour une version de Debian Etch, ajout des bibliothèques utiles à SWFTools :
|
# apt-get install gs-gpl libart-2.0-2 libt1-5 libungif4g |
Puis téléchargement manuel du paquet de la Sid :
|
# wget http://ftp.it.debian.org/debian/pool/main/s/ \swftools/swftools_0.8.1-1_i386.deb |
et installation :
|
# dpkg -i swftools_0.8.1-1_i386.deb |
Ces étapes étant terminées, il faut ensuite installer et configurer le serveur Red5 version 0.6.3. L’installation de la version 0.7.0 est à proscrire, car est incompatible avec la version 05Final d’OpenMeetings (cf. sources openmeetings/WEB-INF/web.xml).
Avant tout, installez l’environnement Java :
|
# apt-get install sun-java5-jre sun-java5-bin \ |
Installation du serveur Red5 v0.6.3Â :
|
# wget http://dl.fancycode.com/red5/0.6.3/debian/red5_ \ # dpkg -i red5_0.6.3-1_all.deb |
Test de l’installation du serveur Red5 :
|
# export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun/ # cd /usr/lib/red5 # ./red5.sh |
Vérification du fonctionnement avec les démonstrations en ligne en utilisant votre navigateur préféré (avec le plugin Flash récent installé) :
|
http://<nom_de_la_machine>:5080/demos/ |
Arrêt du serveur red5 (kill ou contrôle C du shell)
Les pré-requis étant installés, passons maintenant à l’installation d’OpenMeetings à proprement parler :
Récupération du package :
|
# wget http://openmeetings.googlecode.com/files/ \openmeetings05Final.zip |
Décompression du package OpenMeetings dans le répertoire webapps des applications Red5 :
|
# unzip openmeetings05Final.zip -d /usr/lib/red5/webapps/ |
Limitez le niveau de logs pour réduire le nombre de messages (ces messages peuvent toutefois être utiles lors de développements ou de modifications sur l’application elle-même). Pour cela, éditez le fichier /usr/lib/red5/conf/log4j.properties et remplacez
|
log4j.rootCategory=DEBUG, CONSOLE |
par :
|
log4j.rootCategory=ERROR, CONSOLE. |
Configuration de l’accès à la base MySQL (ou PostgresQL) :
|
# cd /usr/lib/red5/webapps/openmeetings/conf # cp mysql_hibernate.cfg.xml hibernate.cfg.xml # vi hibernate.cfg.xml |
Il faut conserver la connexion via localhost, car MySQL n’est accédé qu’en local (c’est mieux pour la sécurité), mais précisez l’utilisateur et le mot de passe créés dans la base openmeetings, c’est-à -dire <mysqluser>/<mysqluser_password>.
Changement des droits sur les scripts d’OpenMeetings :
|
# cd /usr/lib/red5/webapps/openmeetings/jod # chmod +x ./*.sh |
Lancement du serveur Red5Â :
|
# export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun/ # cd /usr/lib/red5 # ./red5.sh |
Configuration de la base d’OpenMeetings en utilisant votre navigateur :
|
http://<nom_de_la_machine>:5080/openmeetings/Install |
Utilisez le compte MySQL <mysqluser>/<mysqluser_password> et répondez aux questions des deux écrans de configuration. Cet accès à la configuration de la base ne sera ensuite plus possible. En cas d’erreur de configuration, il faudra réinitialiser la base MySQL, supprimer le répertoire /usr/lib/red5/webapps/openmeetings pour reprendre l’installation d’OpenMeetings.
|
Attention |
|
Attention à la configuration du mail. Celui-ci est utilisé pour les envois d’invitations. Il faut bien vérifier qu’il est accessible par l’utilisateur défini. Faites également attention à la possibilité d’auto-inscription si votre serveur est accessible de l’extérieur. |
Enfin, il est souhaitable de personnaliser le script de démarrage en ajoutant le lancement et l’arrêt des services de conversion de document d’OpenOffice tel qu’indiqué précédemment.
Pour que le service Red5 démarre correctement (/etc/init.d/red5 start), il faut préciser les chemins de la machine virtuelle Java et de la bibliothèque de red5 dans /etc/default/red5.
Exemple :
|
# cat /etc/default/red5 export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun/ CLASSPATH=/usr/lib/red5/red5.jar |
Si red5 n’est utilisé que pour openmeeting, nous ne pouvons que vous conseiller de retirer les applications de tests/démos venant avec red5.
|
mv $RED5-HOME/webapps/* $RED5-HOME/webapps.OFF |
Un peu de Qos pour finir ?
Comme toute application audio/vidéo, OpenMeetings nécessite de la bande passante. Quelques règles de bon sens permettent d’améliorer les performances globales, en particulier pour les postes clients raccordés en Wifi. La mise en place de la QoS permet de réserver la bande passante nécessaire au fonctionnement fluide et synchronisé de l’application. Il n’y a rien de plus désagréable que de constater un décalage entre son et image.
Cas du poste client unique :
Arrêtez, dans la mesure du possible, toute application superflue consommant de la bande passante (Skype, P2P...). Configurez votre poste pour réserver de la bande passante :
Windows : utilisez un outil de QoS type " Traffic shapper ".
Linux : utilisez le script qos4openmeetings.sh (http://openmeetings.googlecode.com/svn/branches/dev/xmlcrm/java/QoS/qos4openmeetings.sh)
Cas d’un poste raccordé sur un Lan :
L’arrêt d’applications consommant de la bande passante reste une bonne pratique. Mettre en place la Qos sur la passerelle internet. Si celle-ci est une machine sous Debian/Ubuntu, installez les scripts fournis par OpenMeetings (:
1. Copiez le fichier qos4openmeetings.sh (http://openmeetings.googlecode.com/svn/branches/dev/xmlcrm/java/QoS/qos4openmeetings.sh) dans le répertoire /etc/network/if-pre-up.d/.
2. Éditez le fichier qos4openmeetings.sh et modifiez les valeurs des variables :
DEV : nom de l’interface réseau connectée à Internet (eth0 par exemple) ;
RATEUP : la bande passante maximum pour l’upload (kbit/s). Rappel : la bande passante d’OpenMeetings est de 10kB/s ou 16kB/s. La valeur par défaut (128) correspond donc.
VOIPIPSÂ : adresse IP de votre serveur Red5/OpenMeetings.
1. Positionnez les droits d’exécution sur le fichier :
|
# chmod +x /etc/network/if-pre-up.d/qos4openmeetings.sh |
2. Exécutez :
|
# /etc/network/if-pre-up.d/qos4openmeetings.sh |
|
2 |
Quelles utilisations ? Premier retour d’expérimentations |
ESIEE – PARIS :
Cette plate-forme a été testée dans le cadre d’un projet de recherche avec l’Hôpital Broca. Les utilisateurs sont des personnes âgées. Au cours de la maladie d’Alzheimer, la détérioration cognitive, en particulier les difficultés de communication, retentit sur les activités de vie quotidienne, et s’accompagne d’une perte d’autonomie croissante. De nombreux patients éprouvent des difficultés pour téléphoner par exemple, car cet acte complexe met en jeu plusieurs fonctions cognitives.
L’informatique peut toutefois être considérée comme nouveau type d’aidant. Dans le contexte des outils destinés à la communication, nous proposons un système de visiophonie pour des sujets ambulatoires ayant des troubles cognitifs. Ce système a pour but d’offrir la possibilité de communiquer avec son entourage et avec les aidants professionnels, et est conçu de façon à s’adapter à l’évolution des déficits du patient. Cette aide augmenterait l’estime et la confiance des patients, permettant de faire décroître leur anxiété et leur dépression.
L’interface actuelle ne correspond pas aux besoins des personnes âgées. Celles-ci manifestent d’emblée une certaine résistance vis-à -vis de ce dispositif, mais, après l’essai, les réticences diminuent. Dans l’ensemble, la communication visuelle et auditive avec leur correspondant les satisfait, mais la communication écrite (échanges de messages, fichiers…) les obligeant à se servir de la souris et du clavier leur est trop compliquée.
Un des développements à réaliser autour d’OpenMeetings dans le cadre de ce projet de recherche est de réaliser une interface simplifiée qui permettrait, par exemple, de mettre le correspondant en communication avec un seul clic de souris tout en gardant la possibilité d’utiliser toutes les fonctions pour les aidants.
ESCP-EAPÂ :
Cette plate-forme est testée pour les besoins internes de tenues de réunions de l’établissement entre les différents campus de l’école. Les fonctionnalités attendues sont alors :
Une bonne réactivité du serveur assurant la fluidité des flux pour permettre la tenue des réunions.
Un outil de partage d’écran. Très basique pour l’instant, car il ne s’agit que d’un applet Java sur le poste du modérateur de la réunion qui prend régulièrement des copies de l’écran " partagé " pour diffusion aux participants.
La possibilité de diffuser des documents bureautiques standards.
D’autre part, la possibilité d’utilisation d’OpenMeetings pour des entretiens préalables aux concours d’entrées de l’école ou plus simplement pour enrichir les échanges des demandes d’informations de candidats potentiels sera également le motif d’une série de tests. Pour cela, la capacité d’enregistrement des entretiens est un atout qui devrait jouer en faveur de ce projet.
Les premiers retours sur ces tests à ESCP-EAP sont :
L’ajout d’une fonctionnalité de travail à plusieurs sur le document " partagé " pour améliorer la tenue des réunions.
La possibilité de redimensionner les fenêtres vidéo (fonctionnalité acceptée par le porteur du projet M. Wagner Sebastian).
L’intégration avec un annuaire de type OpenLDAP pour la gestion des comptes et des groupes (qui est aussi dans la longue liste des améliorations acceptées).
|
Notes |
|
[1] GNU/Linux Magazine n°94 [2] Cf. Présentation de Philippe BIONDI et Fabrice DESCLAUX (EADS) intitulée " Silver Needle in the Skype " : http://www.secdev.org/conf/skype_BHEU06.pdf [3] L’installation de logiciels sur les machines des utilisateurs d’un service en ligne est qualifiée ici " d’intrusion ". Que ce soit en raison de l’impossibilité par l’utilisateur final d’installer un quelconque logiciel sur la machine qui lui est attribuée (cf. politiques de sécurité des établissements et entreprises) ou qu’il s’agisse d’une machine personnelle qui, à la suite de l’installation des outils préconisés par vos soins, vous retombe sur les bras, car elle " fonctionnait très bien avant ", les difficultés et problèmes potentiels sont pléthores dès qu’il faut " toucher " aux machines des utilisateurs finaux ; surtout quand nous les espérons nombreux comme c’est le cas avec un service en ligne. [4] Cf. http://tandem.memosyn.org, http://quovadis.ibisc.univ-evry.fr, http://companionable.net |
|
Ressources |
|
Red5 : http://osflash.org/red5 OpenMeetings : http://code.google.com/p/openmeetings/ Dimdim : http://www.dimdim.com/opensource/dimdim_open_source_community_edition.html QoS : http://en.wikipedia.org/wiki/Quality_of_service |
Retrouvez cet article dans : Linux Magazine 107


