VOIP, NAT et pétage de câble

Résolu/Fermé
Lordanonymous Messages postés 198 Date d'inscription jeudi 2 août 2012 Statut Membre Dernière intervention 21 mars 2019 - Modifié par Lordanonymous le 5/04/2015 à 19:17
Lordanonymous Messages postés 198 Date d'inscription jeudi 2 août 2012 Statut Membre Dernière intervention 21 mars 2019 - 28 juil. 2015 à 01:43
Bonjour.

Je viens à vous dans l'espoir de trouver une solution viable pour faire fonctionner un système de voix sur IP derrière un NAT en IPv4.

Actuellement, j'utilise un serveur Prosody (hébergé dans ma cave sous Debian 8) et des clients Jitsi (Windows Mac et Linux à la fois) pour communiquer avec mes proches (tout le monde, serveur compris, est derrière un NAT).

Globalement cette installation fonctionne car on parvient à parler et même à organiser des conf call à plusieurs mais voila, ce fonctionnement est totalement aléatoire. Un coup on à pas de son (au moment de la connexion ZRTP), l'autre les appels sont en échec (ICE Failed) et bien souvent quand ça ne veux pas et bien ça ne veux pas. Cette situation est extrêmement dérangeante et j'avoue qu'il est particulièrement difficile dans ces condition de proposer une alternative viable au tout puissant Skype/NSA (qui reste le seul à fonctionner correctement).

Bien sûr j'ai testé du SIP avec un Asterisk mais le problème de fond n'est jamais résolut car tout ces désagrément reviennent d'une manière ou d'une autre (de plus je n'apprécie pas trop SIP/RTP et ses mots de passe qui traverse le réseau en claire...).

J'ai trouvé une piste de résolution consistant à installer un relais STUN avec Stuntman (http://www.stunprotocol.org) mais la procédure d'installation m'échappe complètement et aucun tuto ne traite du sujet (je précise que la compilation manuelle ne me fait pas peur car j'ai dompté postfix de cette manière xD). C'est sur ce point que j'aurai vraiment besoin d'une assistance.

J'ai vu passer la possibilité de mettre en place un proxy XMPP sour Prosody (Proxy65) mais je n'est pas réussi à le configurer (ça semble pourtant vraiment trivial mais ça ne fonctionne pas...) et de toute façon je doute de l'efficacité de la chose...

La mise en place d'un VPN + VLAN aurait put être une solution de contournement (puisque c'est ce que tout les prestataire de solution pro fournissent) mais franchement, en tant que particuliers, on a vraiment pas envie de s'enquiquiner avec tout ça : achat de poste téléphonique + équipement pour les VLAN et génération de certificat VPN sans parlé de la contrainte en bande passante de nos misérables lignes ADSL...

Au bout du compte je comprend petit à petit que le seul moyen de faire fonctionner tout ce bazars est de passer en IPv6 mais ce n'est franchement pas possible pour nous.

Je ne compte donc plus que sur STUN pour espérer faire fonctionner XMPP/Jingle à 90/100% un jour (ou éventuellement une solution miracle proposé par l'un d'entre vous).

Si quelqu'un pouvais m'aider à mettre ça en place ce serai vachement cool (je précise que j'écarte toute solution propriétaire et non auto-hébergeable pour des raisons idéologique et de vie privé) !

Merci.

1 réponse

Lordanonymous Messages postés 198 Date d'inscription jeudi 2 août 2012 Statut Membre Dernière intervention 21 mars 2019 142
28 juil. 2015 à 01:43
Je déterre ce post pour partager la solution que j'ai trouver il y a un petit moment déjà.
J'ai trouvé un serveur STUN/TURN qui fonctionne sous Debian et qui est très simple à mettre en place. Il s'agit de rfc5766-turn-server.

Je fait une procédure rapide pour ceux que ça intéresse.

INSTALLATION

Récupération du .deb sur le dépot de l'éditeur
wget https://rfc5766-turn-server.googlecode.com/files/turnserver-3.2.2.1-debian-wheezy-ubuntu-mint-x86-64bits.tar.gz

Dépaquetage de l'archive
tar xzvf turnserver-3.2.2.1-debian-wheezy-ubuntu-mint-x86-64bits.tar.gz

Installation des dépendances
aptitude install libevent-core-2.0-5 libevent-extra-2.0-5 libevent-openssl-2.0-5 libevent-pthreads-2.0-5 libhiredis0.10 libmysqlclient18 libpq5 mysql-common

Installation du service
dpkg -i turnserver-3.2.2.1-debian-wheezy-ubuntu-mint-x86-64bits/rfc5766-turn-server_3.2.2.1-1_amd64.deb

CONFIGURATION

rfc5766-turn-server peut gérer des comptes dans un fichier texte ou dans une base SQL (la première solution sera naturellement choisie car on ne va pas déployer une usine à gaze pour un truck aussi simple...).

Ajout d'un utilisateur
vim /etc/turnuserdb.conf

Indiquer les utilisateurs sous cette forme
Utilisateur:MotDePasse

Indiquer l'emplacement du fichier d'utilisateur dans le fichier de configuration général
vim /etc/turnserver.conf

Y insérer cette ligne
userdb=/etc/turnuserdb.conf

Enfin, activer le service dans /etc/default/rfc5766-turn-server
TURNSERVER_ENABLED=1

Et redémarrer le service
service rfc5766-turn-server restart

(Le service utilise le port 3478, à vous de gérer avec votre NAT...)

Note : Je crois savoir qu'on peut utiliser du chiffrement pour les échanges (à vrai dire je ne me suis pas trop intéressé à cette partie).

Voila, avec ça fini les galères de ICE Failed et autre joyeusetés. Ça marche impeccablement bien.

Vous pouvez installer plusieurs serveurs (chez vos correspondants par exemples ou sur des serveurs dédiés chez des hébergeurs) pour maximiser au mieux le taux de réussite des appels.

En espérant aider certains d'entre vous dans la même galère !
1