Mise en place de la visio Join The Room
Join The Room est une application simple de visio conférence exploitant la technologie WebRTC. Plusieurs composants sont nécessaires pour avoir un système autonome:
- Un serveur web pour fournir les fichiers de Join the Room (c'est uniquement des fichiers statics)
- Un serveur de signalement SignalMaster
- Un serveur STUN/STURN
Le tout sera déployé sur une machine sous Fedora 20 (je préfère en général utiliser CentOS 6, mais nous auront besoin du module apache mod_proxywstunnel pour faire un ProxyPass de websocket et ce module n'est pas fournit dans la version 2.2 d'aache sur CentOS 6)
Installation minimale
La première chose à faire est d'installer une Fedora (l'installation minimale suffira)
Installer SignalMaster
SignalMaster est une appli écrite en nodejs, on va donc commencer par installer les dépendances:
yum install nodejs npm git
Puis installer l'appli elle même
cd /opt/ git clone https://github.com/andyet/signalmaster.git cd signalmaster npm install
Maintenant que l'application est installée, on va mettre en place le nécessaire pour la gérer via systemd
useradd signalmaster cat <<'EOF' > /etc/systemd/system/signalmaster.service [Service] ExecStart=/usr/bin/node /opt/signalmaster/server.js Restart=always StandardOutput=syslog SyslogIdentifier=SignalMaster User=signalmaster Group=signalmaster [Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl enable signalmaster systemctl start signalmaster
Installer Join the Room
yum install httpd mod_ssl
cd /opt git clone https://github.com/yatendra/jointheroom.git
cat<<'EOF' > /etc/httpd/conf.d/jointheroom.conf <Directory /opt/jointheroom> Options None DirectoryIndex index.shtml index.htm index.html Require all granted </Directory> <VirtualHost *:80> ServerName visio.firewall-services.com DocumentRoot /opt/jointheroom RewriteEngine on RewriteRule ^/(.*|$) https://%{HTTP_HOST}/$1 [L,R] </VirtualHost> <VirtualHost *:443> ServerName visio.firewall-services.com SSLEngine on DocumentRoot /opt/jointheroom #RewriteEngine on ProxyPass /socket.io/1/websocket ws://localhost:8888/socket.io/1/websocket ProxyPassReverse /socket.io/1/websocket ws://localhost:8888/socket.io/1/websocket ProxyPass /socket.io/ http://localhost:8888/socket.io/ ProxyPassReverse /socket.io/ http://localhost:8888/socket.io/ <Location /socket.io/> Require all granted </Location> </VirtualHost> EOF cat <<'EOF' > /etc/httpd/conf.modules.d/00-proxy_ws.conf LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so EOF systemctl enable httpd.service systemctl start httpd.service
Installer le serveur STUN/TURN
Allez sur http://turnserver.open-sys.org/downloads/ et récupérer la dernière version pré-compilé pour notre Fedoa, à ce jour, c'est la version 3.2.2.7
yum -y install wget tar wget wget http://turnserver.open-sys.org/downloads/v3.2.2.7/turnserver-3.2.2.7-Fedora20-x86_64.tar.gz tar xvzf turnserver-3.2.2.7-Fedora20-x86_64.tar.gz cd turnserver-3.2.2.7/ yum localinstall ./*.rpm
- Configurez le démon:
cp -a /etc/turnserver/turnserver.conf /etc/turnserver/turnserver.conf.orig cat <<'EOF' > /etc/turnserver/turnserver.conf userdb /etc/turnserver/turnuserdb.conf verbose fingerprint lt-cred-mech no-sslv2 no-loopback-peers # Ajustez cette valeur realm firewall-services.com # decommentez et ajustez les chemins pour les connexions TLS #cert /etc/pki/tls/certs/xxx.firewall-services.com.crt #pkey /etc/pki/tls/private/xxx.firewall-services.com.key proc-user turnserver proc-group turnserver EOF cat <<'EOF' >> /etc/turnserver/turnuserdb.conf jointheroom:secret EOF
Ajustez Join The Room
IL ne reste plus qu'à ajuster 1 fichier dans l'application pour utiliser vos propres serveurs de signalement et STUN/TURN:
- Dans /opt/jointheroom/js/appObject.js ligne 14, changez
url: "http://signalmaster.herokuapp.com",
en
url: "https://visio.firewall-services.com", peerConnectionConfig: { iceServers: [ {"url": "stun:visio.firewall-services.com:3478"}, {"url":"turn:visio.firewall-services.com", "username":"jointheroom", "credential":"secret"} ] },