XMPP - Flux audio et vidéo

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].

 Routeur

Redirigez les ports 3478 et 5349 de votre routeur vers ceux de votre serveur.

 Listen

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.

/etc/ejabberd/ejabberd.yml - listen 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

 Modules

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...

/etc/ejabberd/ejabberd.yml - modules 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

 DNS

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.

 Testez !

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.


Commentaires

Il n'y a pas de commentaires

Ajouter un commentaire

Pseudo :
Mail :

Texte :

Copyright "POIVRON" 2011-2023, tous droits réservés
Administration du site