I. Présentation

Dimdim est une application intranet-internet de réunion à distance, à l’instar de logiciels comme Netmeeting ou Ekiga. Ainsi, il est possible de diffuser la voix de trois personnes au maximum sur tous les clients, ou de voir la caméra du maître de conférence. Ce dernier peut choisir, en outre, d’afficher :

  • son écran
  • un tableau blanc
  • un document au format PDF
  • un document au format PowerPoint
Source

Comme toujours, un dessin valant mieux qu'un long discours, voici un screenshot de la page principale du maître de conférence (ici je j'ai pas de webcam, normalement, elle devrait apparaître en bas à gauche de l'écran :

Vous pouvez également voir quelques vidéos de démonstration de Dimdim sur la page dédiée du site officiel. Attention touefois, les vidéos présentées sont celles de la version 5 qui n'est pas Open Source. Nous installerons la version 4.5. Les différences sont minimes (quelques widgets, des plus pour facebook, ...).

II. Open Source ?

Cette partie est un petit coup de gueule contre Dimdim (et je suis loin d'être le seul à le penser) ainsi que mon histoire avec Dimdim. Si vous voulez juste connaitre la procédure d'installation, rendez-vous directement au chapitre suivant.

Dimdim est, à l'origine, une solution commerciale. Il existe plusieurs versions :

  • Une version 5 gratuite (non libre) accessible sur le site de Dimdim uniquement limitée à 20 personnes simultanées
  • Une version 5 Pro (19$ par mois) accessible sur le site de Dimdim uniquement limitée à 50 personnes simultanées
  • Une version 5 Entreprise à (11400$ par an) accessible sur le site de Dimdim uniquement limitée à 1000 personnes simultanées
  • Une version 4.5 Open Source (sous licence GPL) qui n'est pas bridée au niveau des utilisateurs (mais à d'autres niveaux)
L'offre semble toute trouvée, une version Open Source, gratuite et sans limitations, pourquoi s'en priver. Telle était donc la mission de mon stage (entre autres) : Installer cette version Open Source de Dimdim sur un serveur Debian Lenny. C'est à ce moment que tout se complique !
Leur politique est claire : Nous voulons bien vous mettre à disposition une version Open Source mais nous n'assurons absolument aucun support technique (ce qui est compréhensible).
Je me rends donc sur la page Sourceforge du projet Dimdim Open Source afin d'aller chercher un paquet Debian (enfin je pensais en trouver un).

Là, première désillusion, aucun paquet Debian n'est disponible, uniquement un paquet prévu pour CentOS (RPM) de la version 4.5 (la dernière version Open Source), une image vmware de cette même version (basée sur CentOS également) et les sources de la version 4.1 !
"Euh...ouai, c'est tout ?"

Bon, je me décide à télécharger les sources de la 4.1 (cette version ne doit pas être trop différente de la version 4.5 me dis-je). Je télécharge donc l'archive, l'extrait sur mon serveur, et là, la cerise sur le gâteau : aucune doc, aucun readme, aucune procédure d'installation, bref, rien de rien ! Je savais qu'ils n'assuraient aucun support mais là, j'ai été vraiment déçu.

Je vais chercher de l'aide sur le forum Open Source du site Dimdim : rien ! A chaque question du genre : "Comment compiler et installer les sources", les réponses étaient toujours : "Ne t'embête pas avec les sources, utilise l'image vmware, elle fonctionne très bien" ou, venant des personnes de chez Dimdim, "utilisez notre version gratuite sur notre site Web, tout fonctionne". Bref, moi je dis que quitte à mettre à disposition une version Open Source, autant qu'ils le fassent bien non ? Pour moi, ils ont mis à disposition cette version uniquement pour se faire un peu de publicité...
Voila un peu le contexte des mes premiers jours avec Dimdim, comme vous pouvez le voir, ce n'était pas très du tout encourageant !
Mes recherches sur Internet n'ont également rien données. Bref, j'étais la, avec mes sources sans aucun support !
Je précise que ces sources n'étaient pas celles habituelles (du genre ./configure, make, make install). Dimdim étant un mélange de plusieurs technologies avec beaucoup de logiciels embarqués différents (Tomcat car beaucoup de Java, Nginx pour faire office de reverse proxy, perl, python, ...). Bref, une grosse galère !

Après des heures et des heures de recherches infructueuses, je télécharge le paquet RPM à l'origine prévu pour CentOS que je converti grâce au logiciel alien. J'obtiens donc un paquet deb que j'arrive à installer. Malheureusement, tous les liens sont différents (car prévus pour CentOS) et, pour couronner le tout, je n'ai que très très peu de logs !
J'ai donc, après une semaine de recherches, de modifications, de réinstallation, mis en place l'image vmware fonctionnelle pour pouvoir comparer les fichiers entre les deux versions...Un vrai travail de fourmis !

Bon, je vous passe les autres détails, j'ai mis pas loin de deux semaines à temps plein pour obtenir un Dimdim fonctionnel sous Debian. Comme j'aurais vraiment voulu avoir un tutoriel digne de ce nom, j'ai décidé de vous en faire un (c'est pas gentil ça) :)
Ce tutoriel est très complet, il explique toutes les étapes, pas à pas, d'une installation Dimdim sur une Debian Lenny. Je l'ai utilisé trois fois pour une installation sur un système vièrge et ai donc pu le paufiner pour que tout fonctionne parfaitement.

III. Installation

! ! My english version of this how-to was added here, you can correct it if you see some mistakes ! !

Prérequis

Quelques logiciels supplémentaires sont nécessaires à l'utilisation de Dimdim. Voici ces différents logiciels et la manière de les installer :

  • Openoffice.org 3

Rendez-vous sur la page de téléchargement officielle d'OpenOffice :

http://download.openoffice.org/other.html

Puis téléchargez un paquet DEB, par exemple, à cette adresse :

http://download.services.openoffice.org/files/localized/fr/3.2.0/OOo_3.2.0_LinuxIntel_install_fr_deb.tar.gz

On enregistre cette archive dans notre répertoire personnel (par exemple) puis :

su (nous allons faire toute l'installation de Dimdim en root)
cd ~ (le chemin doit être celui où se trouve votre paquet DEB)
tar xvf Ooo_3.0.1_LinuxIntel_install_fr_deb.tar.gz
cd OOO300_m15_native_packed-1_fr.9379/DEBS/
dpkg -i *.deb


  • Java v1.6

apt-get install sun-java6-bin

Nous allons ensuite modifier les variables d'environnement de notre système

echo "JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.12" >> /root/.bashrc
echo "export JAVA_HOME" >> /root/.bashrc

Déconnectez-vous de root et reconnectez-vous (afin d'initialiser la variable JAVA_HOME)

echo "PATH=$JAVA_HOME/bin:$PATH" >> /root/.bashrc
echo "export PATH" >> /root/.bashrc

Déconnectez-vous de root et reconnectez-vous (afin de ré-initialiser la variable PATH)

Tapez la commande "env", vous devez avoir ces lignes :
PATH=/usr/lib/jvm/java-6-sun-1.6.0.12/bin:/bin:.........
JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.12


  • Autres programmes

apt-get install gawk
apt-get install python-uno python2.5-dev
apt-get install unzip
apt-get install openoffice.org-java-common openoffice.org-headless
apt-get install binutils build-essential


Modules Python

Nous allons ajouter quelques modules nécessaires pour l'utilisation de Dimdim :

  • CherryPy

Répertoire de téléchargement : http://download.cherrypy.org/cherrypy/

wget http://download.cherrypy.org/cherrypy/3.1.0/CherryPy-3.1.0.zip
unzip CherryPy-3.1.0.zip
cd CherryPy-3.1.0
chmod +x *
python2.5 setup.py install
python2.5
>>>import cherrypy
>>>

Ctrl+D

  • Flup

Répertoire de téléchargement : http://www.saddi.com/software/flup/dist/

wget http://www.saddi.com/software/flup/dist/flup-1.0.tar.gz
tar xvf flup-1.0.tar.gz
cd flup-1.0
chmod +x *
python2.5 ez_setup.py -U setuptools
python2.5 setup.py install
python2.5
>>>import flup
>>>

Ctrl+D

  • Pycurl

Répertoire de téléchargement : http://curl.haxx.se/download/

wget http://curl.haxx.se/download/curl-7.19.0.tar.gz
tar xvf curl-7.19.0.tar.gz
cd curl-7.19.0
./configure
make
make install

ln -s /usr/local/lib/libcurl.so.4 /usr/lib/libcurl.so.4 (le fichier peut déjà être présent, dans ce cas, il faut effacer l'ancienne librairie et mettre le lien de la nouvelle)
easy_install-2.5 pycurl
cd ..
python2.5
>>>import pycurl
>>>

Ctrl+D

  • demjson

Répertoire de téléchargement : http://deron.meranda.us/python/demjson/dist/

wget http://deron.meranda.us/python/demjson/dist/demjson-1.3.tar.gz
tar xvf demjson-1.3.tar.gz
cd demjson-1.3
chmod +x *
python2.5 setup.py install
python2.5
>>>import demjson
>>>

Ctrl+D


Téléchargement et installation de Dimdim

Bien que nous soyons sur une Debian, nous allons télécharger le paquet RPM pour CentOS et non les sources du logiciel.

Répertoire de téléchargement : http://sourceforge.net/project/showfiles.php?group_id=176809&package_id=301331

Rendez-vous donc à cette adresse : http://sourceforge.net/project/showfiles.php?group_id=176809&package_id=301331&release_id=644543
afin de télécharger cette archive :

Dimdim_RPM_Package_CentOS_5.2_v4.5.zip

unzip Dimdim_RPM_Package_CentOS_5.2_v4.5.zip
apt-get install alien

cd Dimdim_RPM_Package_v4.5/
alien Dimdim-4.5_SF_i386.rpm
dpkg -i dimdim_4.5-2_i386.deb
mv /usr/local/dimdim-4.5/ /usr/local/dimdim
cd /usr/local/dimdim/
tar xvf CobrowsingManager.tar.gz


Modifiactions et derniers réglages

  • Attributions des droits d'exécution

chmod +x /usr/local/dimdim/ConferenceServer/apache-tomcat-5.5.17/bin/*
chmod +x /usr/local/dimdim/red5/*
chmod +x /usr/local/dimdim/red5/conf/*
chmod +x /usr/local/dimdim/nginx/sbin/*
chmod +x /usr/local/dimdim/DTP3/Reflector/*
chmod +x /usr/local/dimdim/Mediaserver/mods/*
chmod +x /usr/local/dimdim/Mediaserver/www/pages/*
chmod +x /usr/bin/*
chmod +x /usr/lib/*
chmod +x /usr/local/share/*
chmod +x CobrowsingManager/cob/*
chmod +x StartDimdim.sh
chmod +x StopDimdim.sh
chmod +x Config-ipaddress.pl

  • Modifications des fichiers


/usr/local/dimdim/Mediaserver/mods/toolkit/osconfig.py

Remplacer : return os.path.dirname('/opt/openoffice.org2.4/program/')
Par : return os.path.dirname('/opt/openoffice.org3/program/')

/usr/local/dimdim/ConferenceServer/apache-tomcat-5.5.17/conf/wrapper.conf

Remplacer : wrapper.java.command=DIMDIM_JAVA_HOME/bin/java
Par : wrapper.java.command=/usr/lib/jvm/java-6-sun-1.6.0.12/bin/java

/usr/local/dimdim/ConferenceServer/apache-tomcat-5.5.17/conf/server.xml

Remplacer : <Connector port="DIMDIM_PORT_NUMBER" maxHttpHeaderSize="8192"
Par : <Connector address="127.0.0.1" port="40000" maxHttpHeaderSize="8192"

/usr/local/dimdim/StopDimdim.sh

Remplacer : cd /usr/local/dimdim-4.5/ConferenceServer/apache-tomcat-5.5.17/bin/
Par : cd /usr/local/dimdim/ConferenceServer/apache-tomcat-5.5.17/bin/

/usr/local/dimdim/StartDimdim.sh

Remplacer : cd /usr/local/dimdim-4.5/ConferenceServer/apache-tomcat-5.5.17/bin/
Par : cd /usr/local/dimdim/ConferenceServer/apache-tomcat-5.5.17/bin/

/usr/local/dimdim/Mediaserver/mods/interface.py

Remplacer : #!/usr/bin/python2
Par : #!/usr/bin/python2.5

/usr/local/dimdim/CobrowsingManager/cob/startCobServer.sh

Remplacer : /usr/local/bin/python2.5
Par : /usr/bin/python2.5

  • Dernières modifications

ln -s /usr/lib/libpcre.so.3 /usr/lib/libpcre.so.0
cp Mediaserver/mods/spawn-fcgi DTP3/Reflector/spawn-fcgi

Vérifions nos binaires d'OpenOffice (pour le partage des PPT):
ls -l /usr/bin/so*

Nous devrions avoir uniquement cette ligne :
lrwxrwxrwx 1 root root 40 nov 27 13:04 /usr/bin/soffice.bin -> /opt/openoffice.org3/program/soffice.bin

Il se peut que cette ligne soit présente :
lrwxrwxrwx 1 root root 40 nov 27 13:04 /usr/bin/soffice -> /opt/openoffice.or.........

Dans ce cas, supprimez cette ligne :

rm /usr/bin/soffice

Et ajoutez la nouvelle :

ln -s /opt/openoffice.org3/program/soffice.bin /usr/bin/soffice.bin

Tapez ces commandes pour le partage des PDF

cd ThirdPartyPackages/
tar xvf swftools.tar.gz
cp swftools/pdf2swf /usr/bin/
cp swftools/libs/* /usr/lib/
cp swftools/swfdump /usr/bin/
cp swftools/swfextract /usr/bin/
cp -r swftools/swffonts/fonts/ /usr/local/share/swftools/

Utilisez enfin le fichier Config-ipaddress.pl :

  • En réseau local (sans firewall) : ./Config-ipaddress.pl 192.168.1.2 80 (ip privée, port)
  • A travers un Firewall : ./Config-ipaddress.pl http://url 80 192.168.1.2 (url publique, port, ip privée)


Attention à bien débloquer les ports 80 et 1935 sur votre Firewall.

Conclusion

La configuration principale de Dimdim se fait ensuite dans le fichier suivant :
/usr/local/dimdim/ConferenceServer/apache-tomcat-5.5.17/webapps/dimdim/WEB-INF/classes/resources/dimdim.properties

Merci à F Maussion pour son script concernant l'installation de la version 3.5 (je me suis permis de reprendre les lignes de chmod).


Pour ceux qui veulent une version française de Dimdim, j'ai fait une traduction quasi-complète, disons que les 3/4 sont traduits. C'était suffisant pour moi. L'archive est disponible ici : dimdim_french.tar.gz. Attention, je ne suis pas responsable des éventuels problèmes que vous pourrez rencontrer, faites une sauvegarde de vos fichiers d'origine avant tout modification.


! ! My english version of this how-to was added here, you can correct it if you see some mistakes ! !