Pour l’utilisation des applications Wazo, il est nécessaire d’avoir un service STUN / TURN.
Qu’est-ce qu’un service STUN / TURN
- STUN: Session Traversal Utilities for NAT - est utilisé pour identifier l’adresse IP externe d’un client derrière un NAT et permettre à deux clients de communiquer ensemble.
- TURN: Traversal Using Relay around NAT - est utilisé pour relayer la communication et permettre à un client derrière une topologie réseau complexe (ex: réseau mobile) de communiquer sans problème. Il agit donc comme intermédiaire dans une communication.
L’utilisation avec Wazo
- Wazo Mobile: La complexité du réseau mobile et les multiples NAT qui le compose, rend obligatoire l’utilisation d’un service TURN pour le bon fonctionnement des communications de l’application.
- Wazo Web/Desktop et Extensions: La présence d’un NAT dans la quasi-totalité des réseaux, nécessite l’utilisation d’un service STUN.
- Wazo EUC Stack: La présence un NAT devant la Stack nécessite l'utilisation d'un service STUN pour connaître son IP publique.
Méthodes de déploiement
- Installation d’un serveur STUN / TURN dans votre infrastructure
- Utiliser un fournisseur de service STUN / TURN payant
Installation d’un serveur STUN/TURN
L’installation du serveur STUN/TURN est basée en utilisant le logiciel coTURN, une solution FOSS éprouvée.
Pré-requis:
Matériel
Configuration matérielle minimale requise pour l’installation sous Debian 11:
- 1 CPU
- 1 Go de RAM
- Disque de 8 Go
- Bande passante métrée : 250Mb/s
La bande passante réseau requise dépend beaucoup de l'utilisation prévue du serveur (nombre de communications simultanées utilisant le service TURN), il est donc important de métrer cette dernière.
À titre d’exemple, une configuration ayant une connexion de 250Mb/s avec des communications uniquement en G711 pourrait supporter environ 1000 communications simultanées. Étant donné que toutes les communications passent par ce serveur, l’utilisation de vidéo viendrait réduire considérablement ce nombre.
Réseau
Les ports suivant sont nécessaire et doivent être accessible par les applications Wazo, et donc ouvert dans votre pare-feu
3478 TCP
: Port d'écoute STUN/TURN49152-65535 UDP
: Plage de ports RTP (UDP) ouvert généralement par défaut
Note: Ces valeurs peuvent être modifiées dans le fichier de configuration. N’oubliez pas d’adapter votre pare-feu en conséquence.
Installation
Le logiciel coTURN est disponible via les paquets de la distribution:
apt update && apt install coturn
Configuration
coTURN
Sauvegarder le fichier de configuration original:
mv /etc/turnserver.conf /etc/turnserver.conf.bak
Créer et éditer le fichier de configuration /etc/turnserver.conf
avec le contenu suivant:
####################### # Basic configuration # ####################### listening-port=3478 fingerprint server-name=<votre-domaine.example.com> listening-ip=<host-ip> # Necessaire lorsque le serveur est derriere un NAT #external-ip=<IP-publique>/<IP-privee> ###################### # Auth configuration # ###################### lt-cred-mech user=<votre_utilisateur>:<votre_password> realm=server-stun1
# (Optimization): Useful when a session switch networks and stale (ex: Mobile/Wi-Fi) stale-nonce=300 max-allocate-lifetime=1800 no-multicast-peers # Run server in 'normal' 'moderate' verbose mode. verbose
Valeurs à modifier:
server-name
: Nom de domaine de votre serveurlistening-ip
: IP sur lequel va écouter le serveuruser
: Utilisateur et mot de passe pour utiliser le TURNexternal-ip
: Uniquement lorsque le serveur est derrière un NAT porteur d’une configuration IP privée sur la carte réseau principale, dé-commenter et modifier la ligne
Redémarrer le service pour appliquer la configuration:
systemctl restart coturn
Pour plus d’information concernant les paramètres disponibles, consulter:
Essayer le serveur
Pour valider l’installation, vous pouvez utiliser: https://icetest.info/
-
Une requête STUN devrait contenir des
srflx
:... srflx udp 203.0.113.42:5503 0.0.0.0:0 ...
203.0.113.42
: Correspond à l’IP publique du navigateur
-
Un requête TURN devrait contenir en plus des
relay
... relay udp 198.51.100.1:59602 198.51.100.1:59602 ...
198.51.100.1
: Correspond à l’IP publique du serveur TURN
Note: Lors d’une requête TURN, il est normal d’avoir également un retour du STUN (
srflx
)