Sommaire |
---|
Info |
---|
Documentation en cours de rédaction, reposant sur un processus nécessitant des travaux complémentaires. Ne peut être utilisée en l'état en production. Cette documentation ne concerne que Bien que le système puisse être utilisé depuis la version 3.6.0 de Pod, il est recommandé d'utiliser à minima la version 3.68.0 et supérieure 2 de Pod : de grosses modifications ont été apportées. Il ne faut pas confondre ce système avec l'ancien système utilisé pour Pod v2, devenu obsolète. |
Contexte et solution apportée
...
C'est cette fonctionnalité de publication RTMP du SIPMediaGW que nous utilisons dans le ce contexte de mode webinaire, avec diffusion en direct sur Pod.
Installation
Pour ma part, voici comment j'ai installé SIPMediaGW sur une machine virtuelle à l'université de Montpellier.
La machine virtuelle
Je suis parti d'une VM tournant sous ubuntu/focal64, avec 8 vCPU / 6 Go RAM.
Info |
---|
Il faut savoir qu'un serveur SIPMediaGW ne gère qu'un seul flux (pour en gérer plusieurs, il est nécessaire d'installer plusieurs serveurs). D'après ce que j'ai pu voir, il n'est pas nécessaire d'avoir une VM avec 8 vCPU : 6 (voire même 4) suffisent largement. |
Installation et configuration
Le site de référence : https://github.com/Renater/SIPMediaGW
Pré-requis
Bloc de code |
---|
# Création d'un user : vagrant
adduser vagrant
usermod -aG wheel vagrant
# Installation de git
sudo apt-get install git |
Installation effective
Bloc de code |
---|
# Récupération de la dernière version de SIPMediaGW depuis Git, dans le répertoire applicatif /sipmediagw
cd /
sudo git clone https://github.com/Renater/SIPMediaGW.git sipmediagw
chown vagrant:vagrant /sipmediagw/ -R
cd /sipmediagw/deploy/
# Penser à mettre l'adresse IP publique de votre serveur
HOST_IP=1.2.3.4 ./provision.sh |
Veuillez remplacer 1.2.3.4 par l'adresse IP publique de votre serveur.
Configuration
Bloc de code |
---|
# Editer le fichier/sipmediagw/.env avec ses valeurs
MAIN_APP=streaming
BROWSE_FILE="bigbluebutton.py" |
Info |
---|
Au vue de cette configuration, il faut comprendre qu'un serveur SIPMediaGW ne peut qu'être utilisé que pour une seule fonction :
Dans le cadre de cette documentation, cela sera alors streaming. |
Par défaut, le jeton de sécurité est initialisé à 1234.
Pour modifier ce comportement, il est nécessaire de modifier le fichier /sipmediagw/HTTPLauncher.py :
Bloc de code |
---|
# Editer le fichier /sipmediagw/HTTPLauncher.py
allowedToken = '1234' |
Redémarrage du service
Bloc de code |
---|
# Redémarrer le service
sudo systemctl restart sipmediagw |
Vérification et exploitation
En réalisant ces étapes, différents services seront installés, à savoir :
- coturn
- kamailio
- homer
- sipmediagw
Pour de la publication RTMP, à priori, seul le service sipmediagw est nécessaire (à faire confirmer).
Voici quelques commandes utiles à l'exploitation de l'application SIPMediaGW:
Commandes | Commentaires |
---|---|
sudo systemctl restart sipmediagw | Redémarrage du service sipmediagw |
sudo systemctl status sipmediagw | Vérifie l'état du service sipmediagw. Remarque : au 1° démarrage, l'erreur suivante est normale: {'res':'error','type':'The gateway failed to launch'} |
sudo docker ps | Permet de voir les containers qui tournent, en particulier renater/sipmediagw:1.5.5 lors d'un webinaire |
sudo docker logs container_id | Permet de voir les logs de sipmediagw lors d'un webinaire container_id correspond à l'id du container renater/sipmediagw:1.5.5 |
Configuration et actions complémentaires dans Pod
...
- saisir l'adresse URL du flux RTMP, sous la forme rtmp://live.univ.fr/live/nom
- sélectionner un diffuseur Pod, qui pointe vers un flux HLS. Il est possible de choisir les paramètres de ce diffuseur.
- saisir l'adresse URL d'un serveur SIPMediaGW (cf. installation d'un serveur SIPMediaGW ci-dessus).
- saisir le jeton Bearer du serveur SIPMediaGW utilisé.
...
L'administration des passerelles de live
L'administration des directs (au sens sessions BigBlueButton)
...