
Partager:
Ancien développeur éducateur @Vonage. Issu d'une formation PHP, mais pas limité à un seul langage. Joueur passionné et adepte du Raspberry pi. On le trouve souvent en train de faire du bloc dans des salles d'escalade.
Vidéo-conférence à source ouverte
Temps de lecture : 13 minutes
Qu'est-ce que Vonage Video (anciennement OpenTok / TokBox) ?
Vonage Video (anciennement TokBox / OpenTok) est une API qui permet aux entreprises de créer une expérience Video personnalisée au sein de n'importe quelle application mobile, web ou de bureau.
Cette API prend en charge tous les cas d'utilisation de la Video, tels que les consultations vidéo 1:1, les chats vidéo de groupe ou les diffusions à grande échelle à des milliers de personnes. Vous pouvez enregistrer n'importe quelle session et contrôler la manière de composer et d'envoyer ces fichiers en toute sécurité vers la méthode de stockage de votre choix. Les analyses vous permettent de consulter des résumés projet par projet dans les tableaux de bord ou de consulter des analyses spécifiques à une session grâce à l'API Advanced Insights API. L'API Video vous permet de vous appuyer sur nos capacités standard de chiffrement permanent et de conformité au GDPR pour offrir une gamme étendue d'options avancées de sécurité, de contrôle de pare-feu, d'isolation régionale et de certificat de conformité. Il existe de nombreuses autres fonctionnalités et services fournis dans le cadre du service Video de Vonage. Pour plus d'informations à ce sujet, veuillez vous rendre sur la page d'accueil.
Qu'est-ce que WebRTC ?
Web Real-Time Communication (WebRTC) est un projet gratuit et open-source qui permet aux navigateurs web et aux applications mobiles d'avoir une communication en temps réel avec des API. WebRTC permet à la communication audio et vidéo de fonctionner au sein de votre navigateur web en permettant à la communication de se produire directement entre pairs, ce qui supprime la nécessité d'installer des plugins ou de télécharger des applications natives.
Qu'est-ce que la conférence et l'enregistrement Open Source de Vonage ?
Vonage Open Source Conferencing and Recording est votre solution privée de vidéoconférence basée sur le web. Elle est basée sur la plateforme API Video de Vonage (anciennement API OpenTok) et utilise les SDK et API Video de Vonage. Vous pouvez déployer l'application sur vos serveurs pour que votre application de vidéoconférence fonctionne sur WebRTC.
Si vous souhaitez tester ce service sans héberger vos propres serveurs, nous vous invitons à vous rendre sur notre page de démonstration. Cette page de démonstration est hébergée par une version par défaut du paquetage Open Source Conferencing and Recording, qui peut être trouvé sur notre Dépôt Github.
Comment puis-je héberger mon propre logiciel de Video Conferencing ?
Conditions préalables
Installation
Pour faire fonctionner ce serveur, vous devrez cloner le dépôt et installer toutes les bibliothèques tierces requises. Dans votre terminal, exécutez les trois commandes ci-dessous :
Configuration minimale
Une fois que vous avez installé toutes les dépendances nécessaires, vous devez procéder à une certaine configuration. Le moins que vous ayez à faire est de définir votre clé et votre secret API, que vous pouvez obtenir à partir du tableau de bord Video de Vonage.
Pour commencer, vous devez créer un fichier config.json et la commande ci-dessous copiera pour vous un fichier config.json précompilé avec toutes les valeurs vides pour vous. Exécutez donc la commande :
Ouvrez ce fichier, et les premières lignes seront celles que vous voyez dans l'exemple ci-dessous :
{
"showTos": false,
"meetingsRatePerMinute": 30,
"OpenTok":{
"apiKey": "<key>",
"apiSecret": "<secret>",
"publisherResolution": "640x480"
},
...
}Veillez à remplacer <key> et <secret> par votre clé Video API et le secret API correspondant que vous avez récupéré sur le tableau de bord Video de Vonage.
Si vous ne souhaitez pas conserver les informations d'identification dans votre fichier config.json vous pouvez utiliser des variables d'environnement à la place. Vous pouvez définir les variables d'environnement à l'aide des commandes ci-dessous, en veillant à nouveau à remplacer <key> et <secret> par vos valeurs :
Exécution du serveur
Avant de lancer le serveur RTC, vous devez vous assurer que Redis fonctionne, donc dans votre terminal, entrez la commande suivante :
La commande de base pour lancer le serveur sur localhost avec tous les paramètres par défaut, y compris le port par défaut (8123), est la commande suivante :
Cependant, il existe d'autres drapeaux que vous pouvez ajouter à vos commandes pour une configuration plus personnalisée. Vous pouvez voir quelques exemples ci-dessous :
Si vous souhaitez utiliser SSL, le serveur s'attend à ce que le certificat SSL soit nommé serverCert.pem et que le fichier de clé privée SSL soit nommé serverKey.pem. Vous trouverez une paire de certificats SSL auto-signés pré-générés dans le répertoire sampleCerts dans le répertoire
Le drapeau -S indique au serveur qu'il doit permettre le lancement d'un serveur sécurisé, tandis que l'indicateur -C <dir> ainsi que le nom du répertoire indiquent au serveur où trouver les certificats. Pour exécuter le serveur à l'aide de ces certificats, vous devez entrer ce qui suit :
Pour obtenir des informations détaillées sur les options disponibles, exécutez node server -h.
Options de configuration supplémentaires
Il existe de nombreuses autres options de configuration pour répondre à vos besoins. Ces options peuvent être définies soit dans votre fichier config.json, soit en tant que variable d'environnement. Les clés de ces options sont spécifiées en premier pour chaque choix dans les exemples ci-dessous :
appName(config.json) /APP_NAME(variable d'environnement) -- Le nom de l'application affiché à divers endroits tout au long du cycle de vie de l'appel vidéo. La valeur par défaut est "Vonage Video Conferencing".introText(config.json) /INTRO_TEXT(variable d'environnement) -- Le texte affiché sous le nom de l'application dans la première page qui affiche leprecall. La valeur par défaut est "Welcome to Video Conferencing".showTos(config.json) /SHOW_TOS(variable d'environnement) -- Indique si l'application doit afficher la boîte de dialogue des conditions d'utilisation et demander à l'utilisateur d'accepter les conditions avant de rejoindre une salle. La valeur par défaut estfalse.meetingsRatePerMinute(config.json) /MEETINGS_RATE_PER_MINUTE(variable d'environnement) -- Détermine le nombre maximum de nouvelles réunions qui peuvent être créées en une minute. Les utilisateurs seront autorisés à rejoindre une réunion qui existe déjà. Dans le cas contraire, un message apparaîtra pour leur indiquer que le service n'est pas disponible pour le moment. Si la valeur est définie sur un nombre négatif, la limitation de débit sera désactivée et toutes les réunions seront autorisées. Si cette valeur est fixée à 0, toutes les nouvelles réunions seront rejetées. La valeur par défaut est -1.minMeetingNameLength(config.json) /MIN_MEETING_NAME_LENGTH(variable d'environnement) -- La longueur minimale des noms de réunion créés. La valeur par défaut, 0, indique qu'il n'y a pas de longueur minimale. (Vous pouvez la définir dans le fichier de configuration à l'aide de l'optionminMeetingNameLength). La valeur par défaut est 0.maxUsersPerRoom(config.json) /MAX_USERS_PER_ROOM(variable d'environnement) -- Le nombre maximum d'utilisateurs autorisés dans une salle en même temps. Mettez cette valeur à 0, la valeur par défaut, pour autoriser n'importe quel nombre d'utilisateurs. La valeur par défaut est 0.enableRoomLocking(config.json) /ENABLE_ROOM_LOCKING(variable d'environnement) -- Inclut ou non la commande Verrouiller la réunion dans le menu des options. Cette commande permet aux utilisateurs d'empêcher de nouveaux participants de se joindre à une réunion. La valeur par défaut esttrue.autoGenerateRoomName(config.json) /AUTO_GENERATE_ROOM_NAME(variable d'environnement) -- Génère ou non automatiquement le nom de la salle pour le compte de l'utilisateur. Si ce paramètre est activé, nous utiliserons haikunator pour générer les noms des nouvelles salles. S'il est désactivé, les utilisateurs seront invités à entrer un nom de salle/réunion lorsqu'ils visiteront la page d'accueil et ne pourront pas avancer tant qu'ils ne l'auront pas fait. La valeur par défaut esttrue.enableEmoji(config.json) /ENABLE_EMOJI(variable d'environnement) -- Active ou non la prise en charge des emoji dans le widget de chat textuel.
Personnalisation de l'interface utilisateur
Pour plus d'informations sur la personnalisation de l'interface utilisateur de Vonage Open Source Conferencing and Recording, voir PERSONNALISATION DE L'INTERFACE UTILISATEUR.
Comment fonctionne mon service ?
Il existe un point d'arrivée pour le contrôle de l'état de santé à /server/health. Vous pouvez charger cette URL pour vérifier si l'application peut se connecter à tous les services externes requis. En cas de succès, ce point de contrôle de l'état de santé envoie une réponse avec le code d'état HTTP 200 et le JSON similaire à ce qui suit :
{
"name": "opentok-rtc",
"version": "4.1.1",
"gitHash": "312903cd043d5267bc11639718c47a9b313c1663",
"opentok": true,
"googleAuth": true,
"status": "pass"
}Un exemple d'échec du bilan de santé sera similaire à ce qui suit :
{
"name": "opentok-rtc",
"version": "4.1.1",
"git_hash": "312903cd043d5267bc11639718c47a9b313c1663",
"opentok": false,
"error": "OpenTok API server timeout exceeded.",
"status": "fail"
}