9 mai 2021
C’est probablement la fonctionnalité la plus tape-à-l’œil du XMPP, la possibilité de passer des appels audio et vidéo. Globalement, c’est le client qui fait tout le travail. Le serveur, lui, ne fait qu’aider les clients à se trouver. Pour cela, il propose un service TURN [1]/STUN [2].
Cette fonctionnalité nécessite d’avoir une version d’ejabberd supérieure à 20.04. Mais si vous avez fait votre mise à jour en Bullseye (voir XMPP - Votre serveur local) vous devriez être au moins en version 21.01.
Ici, vous avez principalement une traduction/adaptation de ce que vous trouverez là [3].
Redirigez les ports 3478 et 5349 de votre routeur vers ceux de votre serveur.
Reprenez la configuration d’ejabberd comme suit.
Notez bien que, comme dans les articles précédent, vous devrez adapter l’IP 176.190.83.229 par votre IP publique et l’IP 192.168.1.43 par votre IP privée.
listen:
...
-
port: 3478
ip: "::"
transport: udp
module: ejabberd_stun
use_turn: true
## The server's public IPv4 address:
turn_ipv4_address: "176.190.83.229"
## The server's public IPv6 address:
# turn_ipv6_address: "2001:db8::3"
-
port: 5349
transport: tcp
module: ejabberd_stun
use_turn: true
tls: true
turn_min_port: 49152
turn_max_port: 65535
ip: 192.168.1.43
ipv4_address: 176.190.83.229
Reprenez la configuration d’ejabberd comme suit.
Notez bien que, comme dans les articles précédent, vous devrez adapter l’IP 176.190.83.229 par votre IP publique et l’IP 192.168.1.43 par votre IP privée. Pas grand chose à préciser de plus...
modules:
...
mod_stun_disco:
credentials_lifetime: 12h
services:
-
host: 176.190.83.229
port: 3478
type: stun
transport: udp
restricted: false
-
host: 176.190.83.229
port: 3478
type: turn
transport: udp
restricted: true
-
host: xmpp.poivron-robotique.fr
port: 5349
type: stuns
transport: tcp
restricted: false
-
host: xmpp.poivron-robotique.fr
port: 5349
type: turns
transport: tcp
restricted: true
Enfin, entrez les champs DNS requis. Contrairement aux fois précédentes, nous n’utiliserons pas des champs de type A ou AAAA, mais des champs SRV qui demandent quelques informations supplémentaires. Vous devrez précisez :
– le service : _stun, _stuns, _turn ou _turns
– le protocole : _udp ou _tcp
– la cible : xmpp.poivron-robotique.fr (dans notre cas)
– le port : 5349 ou 3478
– la priorité : 0
– le poids : 0
Vous devez créer les enregistrements suivants :
_stun._udp IN SRV 0 0 3478 example.com.
_stun._tcp IN SRV 0 0 3478 example.com.
_turn._udp IN SRV 0 0 3478 example.com.
_turn._tcp IN SRV 0 0 3478 example.com.
_stuns._tcp IN SRV 0 0 5349 example.com.
_turns._tcp IN SRV 0 0 5349 example.com.
Assurez-vous que vos clients XMPP supportent tous les deux l’audio et la vidéo. Si les deux clients sont en ligne en même temps, la fonctionnalité d’appel devrait aparaitre, vous laissant le choix entre audio et audio + vidéo.