Conférence vidéo BigBlueButton

Ce plugin intègre une instance Discourse avec BigBlueButton, un outil de visioconférence open source conçu pour l’apprentissage en ligne. Vous devrez disposer d’un serveur exécutant une instance de BBB pour l’utiliser ; consultez http://docs.bigbluebutton.org pour plus de détails. Comparé à Zoom, Jitsi et Whereby, BigBlueButton offre une meilleure compatibilité avec les navigateurs. Selon mes tests, il fonctionne immédiatement sur tous les navigateurs modernes, y compris Safari sur iOS et Chrome sur Android.

Captures d’écran


Pour ajouter une visioconférence à un sujet ou un message, utilisez le bouton « Ajouter BigBlueButton » dans le menu déroulant des options lors de la rédaction :

Fonctionnalités

  • Prise en charge de plusieurs salles
  • Les utilisateurs du personnel et les utilisateurs d’un groupe configurable sont reconnus comme modérateurs dans les réunions BBB
  • Les administrateurs peuvent choisir d’intégrer la réunion dans Discourse (via iframe) ou de rediriger vers une page complète (avec des options distinctes pour mobile et ordinateur de bureau)
  • Affiche les avatars des utilisateurs déjà présents dans la visioconférence à côté du bouton de connexion

Remarques

Je tiens à remercier @Stephen de m’avoir orienté vers BigBlueButton et d’avoir testé et fourni des retours sur les premières versions du plugin.

41 « J'aime »

Un travail vraiment incroyable ici. Tant d’établissements d’enseignement utilisent BBB, et le moment choisi pour cette intégration est parfait.

15 « J'aime »

Très opportun. Nous utilisons notre forum openmod comme vitrine pour nos webinaires interactifs récemment mis en place, en ne faisant la publicité des URL des webinaires que dans des sujets privés. Ce n’est pas totalement infaillible, mais nous nous efforçons de maintenir notre communauté du forum propre. Je suis donc très intéressé par ces développements. @pmusaraj : merci !

4 « J'aime »

Tous les trois groupes de bénévoles que j’assiste actuellement en cette période difficile sont passés à l’utilisation de BigBlueButton.

Une grande partie de cette transition a été rendue possible grâce à ce plugin. Le passage d’un sujet Discourse à la conférence est totalement fluide et nous ne rencontrons aucun des problèmes habituels.

Cela me simplifie la vie de 1000 fois puisque je n’ai plus besoin d’assurer le support technique.

Encore merci @pmusaraj !

9 « J'aime »

Merci beaucoup pour votre travail sur ce projet. Je l’ai testé et il fonctionne très bien.

Cependant, je vous soumets ici quelques suggestions pour le rendre plus simple à utiliser. Je suppose un cas d’usage où un membre du personnel du forum n’est pas très familier avec les mécanismes internes de BigBlueButton et dont la seule expérience préalable consiste à utiliser l’interface de BigBlueButton pour créer des salles (Greenlight).

Cela dit, voici mes suggestions :

  1. Expliquer dans le message original comment créer des boutons « Démarrer la conférence »
    Après l’installation, il m’a fallu un certain temps pour comprendre qu’il fallait ajouter un bouton BigBlueButton via les « options » (icône d’engrenage) dans l’éditeur de texte. Mentionner cela dans les instructions pourrait éviter certaines confusions.

  2. Faciliter la création des mots de passe

    • Boutons pour générer des mots de passe aléatoires : Nous savons tous que les gens sont paresseux et qu’ils choisiront probablement un mot de passe simple. Ainsi, on pourrait offrir aux utilisateurs une option encore plus simple qui les rend paradoxalement plus sûrs.
    • Étiqueter les mots de passe comme « (facultatif) » (solution alternative) : si ce champ n’est pas défini, générer automatiquement un mot de passe aléatoire. Cependant, l’utilisateur doit toujours être informé par une note qu’un mot de passe aléatoire sera créé à la place.
  3. Envisager de masquer les options de mot de passe sous « avancé »
    Je suppose que ces options pourraient même être masquées, car la plupart des gens voudront probablement simplement créer une salle depuis Discourse sans la connecter à une salle créée avec une autre application.

  4. Éviter le jargon technique

    • Je sais que Discourse mentionne toujours les iframes, mais un utilisateur moyen ne sait pas ce que c’est. Si l’étiquette était changée en « Afficher dans le message », cela serait plus clair.
    • « ID de réunion » est du jargon propre à BigBlueButton. Pour la plupart des utilisateurs, je pense que « nom de la réunion » serait préférable. On pourrait ajouter en dessous, en gris, une instruction expliquant qu’il s’agit de l’« ID de réunion ».

L’image ci-dessous illustre certaines des « fonctionnalités » expliquées plus haut. (Il s’agit simplement d’une maquette sans fonctionnalité).

Mais encore une fois, c’est déjà un plugin très appréciable, en particulier pour les personnes travaillant dans l’éducation. Merci encore !

6 « J'aime »

Je viens d’envoyer un e-mail à BigBlueButton pour voir si cette intégration peut être répertoriée sur leur site web BigBlueButton LMS Integrations | Designed for Schools | BigBlueButton.

Si j’ai des mises à jour, je les publierai ici.

2 « J'aime »

Merci pour votre retour @core (et pour la publicité). J’ai mis en œuvre certains des points pertinents proposés dans votre message.

La génération de mots de passe est désormais aléatoire et masquée pour l’utilisateur. (Les utilisateurs avancés peuvent modifier le markdown et changer les mots de passe s’ils le souhaitent.) J’ai également mis à jour le message d’origine avec une capture d’écran et une description expliquant comment accéder au bouton dans le menu des options.

Je ne vais pas apporter ce changement. Je sais que iframe est un terme technique, mais dans ce cas, je ne pense pas que le modifier soit utile ; je trouve que l’utilisation de « dans le message » serait plus confuse. Cependant… vous pouvez personnaliser cette étiquette sur votre propre instance, sous Personnaliser > Texte, filtré par « bbb.modal ». Comme dans cette capture d’écran :

5 « J'aime »

Ta solution me semble parfaite. Le minimalisme fait vraiment la différence. Et merci d’avoir pris le temps :slight_smile:

C’est un excellent compromis. Merci !

1 « J'aime »

@pmusaraj Toujours pas de réponse pour l’ajout du plugin Discourse sur le site de BBB. Je vais tenter ma chance sur leur liste de diffusion dans les prochains jours.

1 « J'aime »

@pmusaraj Ma demande pour rejoindre la liste de diffusion a été rejetée (je ne sais pas pourquoi). Je me trouve donc un peu sans options pour les contacter concernant l’intégration. J’avais aussi pensé à ouvrir un problème sur GitHub, mais cela pourrait être assez gênant car cela ne concerne pas la base de code de BBB.


Édité : apparemment, cela aurait dû être publié sur la liste bigbluebutton-users. C’est pourquoi ma demande a dû être rejetée.

1 « J'aime »

Avez-vous suivi les instructions du texte de description ? J’ai noté votre intégration et je l’ajoute à une liste de cas similaires que j’ai observés. Mon intention est de créer une page communautaire dans la documentation afin de partager les réalisations que nous avons développées.

2 « J'aime »

Je l’ai manqué. Désolé. Mais c’est super de voir que cela a tout de même atteint les contributeurs ! Merci d’avoir pris des nouvelles !

Superbe plugin, merci !
Comment ouvrir une réunion existante (planifiée par un autre outil) ? Comment trouver l’ID de réunion ? Peu importe ce que j’insère dans ce champ, une nouvelle réunion est toujours lancée.

Cela ressemble davantage à une question pour la BBB, mais en théorie, si vous utilisez le même ID de salle que l’autre outil, la même réunion devrait se charger.

1 « J'aime »

Je l’ai déjà fait une fois, mais c’était un peu compliqué. Il faut utiliser l’API BBB.

Je vais essayer de rédiger un guide à ce sujet dans quelques jours.

Le problème principal est peut-être que l’outil le plus couramment utilisé (Greenlight) n’affiche pas vraiment ces informations de bas niveau.

3 « J'aime »

Merci, ce serait super !

1 « J'aime »

« Ajouter BigBlueButton » à une conférence déjà existante

Ce plugin crée automatiquement une salle pour vous lorsque vous cliquez sur « Ajouter BigBlueButton ». Cependant, vous souhaiterez peut-être utiliser une salle déjà existante (créée avant que vous n’ayez installé ce plugin). Voici deux exemples de situations où cela peut être utile.

  • Vous avez déjà créé une salle (par exemple avec Greenlight) et vous souhaitez permettre aux personnes de rejoindre également depuis Discourse.

  • Permettre également aux personnes de rejoindre via un lien : lors de l’utilisation de Greenlight (l’interface par défaut), un lien partageable est généré pour rejoindre l’appel. Grâce à cela, les utilisateurs peuvent rejoindre soit via Discourse, soit via ce lien.

:warning: Il s’agit d’un processus assez intrusif, assurez-vous donc vraiment de comprendre ce que vous faites.

Instructions

Il est probable que l’interface que vous utilisez (Greenlight ?) ne vous fournisse pas d’informations de bas niveau comme l’ID de réunion ou attendeePW (qui est différent du code d’accès de la salle – je sais, c’est confus). Pour obtenir ces informations, nous devrons donc utiliser l’API de BBB afin de lister toutes les informations relatives aux réunions.

Remarque : il existe peut-être une meilleure méthode, mais je n’en ai pas connaissance. N’hésitez pas à me le faire savoir si c’est le cas.

Prérequis

  • Accès au terminal du serveur BBB (via SSH, par exemple)
  • Connaissances de base en Python (pour vérifier mon code)
  • Compréhension des risques de sécurité liés à l’utilisation de l’API BBB

1. Obtenir le secret BBB et le point de terminaison de l’API

Accédez à un shell (via SSH) sur le serveur BBB en cours d’exécution et exécutez :

sudo bbb-conf --secret

Cela vous fournira une URL et un Secret. Ils vous seront utiles ultérieurement.

:warning: Toute personne disposant de ce secret peut effectuer des actions malveillantes sur votre serveur ! Gardez-le donc en sécurité.

2. Créer un script Python 3 pour obtenir les informations de la réunion

Ci-dessous se trouve un simple script Python 3 qui prend votre URL et votre Secret (obtenus à l’étape 1) et génère l’API permettant d’obtenir les informations sur les réunions :

:warning: Ne copiez pas aveuglément des scripts aléatoires trouvés sur Internet (celui-ci inclus !). Vérifiez-le pour vous assurer qu’il est logique et, si nécessaire, consultez la documentation de l’API.

import hashlib
from urllib.parse import urljoin

# Insérez vos variables ici
base_url = "COLLEZ_ICI_VOTRE_URL" + "api/"
secret = "COLLEZ_ICI_VOTRE_SECRET"

# Générer la somme de contrôle de sécurité
plaintext = "getMeetings" + secret
sha1 = hashlib.sha1()
sha1.update(plaintext.encode('utf-8'))
checksum = sha1.hexdigest()

# Obtenir l'URL de l'API pour lister les informations des réunions
url = urljoin(base_url, "getMeetings?checksum=" + checksum)
print("Ouvrez l'URL suivante pour voir les informations de la réunion")
print(url)

Remplacez COLLEZ_ICI_VOTRE_URL par l’URL de l’API obtenue précédemment et COLLEZ_ICI_VOTRE_SECRET par votre secret, puis exécutez le script.

À la fin, il devrait afficher une URL du type https://example.com/bigbluebutton/api/getMeetings?checksum=20e928e8928e8e9f919928e829d999df82882818.

:warning: Toute personne disposant de cette URL peut effectuer des actions malveillantes !

Elle peut voir toutes les réunions en cours, le nombre d’utilisateurs dans chacune d’elles, ainsi que récupérer les identifiants pour y participer.

3. Ouvrir l’URL

Ouvrez-la en mode navigation privée pour vous assurer que l’URL n’est pas enregistrée dans l’historique du navigateur, en raison de l’avertissement ci-dessus.

Démarrez simplement la réunion que vous souhaitez ajouter et actualisez la page contenant l’URL de l’API. Vous devriez alors voir quelque chose comme :

<response>
<returncode>SUCCESS</returncode>
<meetings>
<meeting>
<meetingName>Votre nom de salle</meetingName>
<meetingID>XXXXXXXXXXXXXXXXXXXXXXXXXXX</meetingID>
...
<attendeePW>YYYYYYY</attendeePW>
<moderatorPW>ZZZZZZZ</moderatorPW>
...

Repérez simplement les lignes situées sous la réunion que vous souhaitez et notez :

  • meetingID
  • attendeePW
  • moderatorPW

Une fois ces informations obtenues, supprimez tous les fichiers et fermez tous les onglets ayant accès à l’API.
Nous ne voulons aucun incident de sécurité !

4. « Ajouter BigBlueButton » à votre publication

Au lieu d’utiliser l’interface habituelle « Ajouter BigBlueButton », collez simplement le suivant dans votre publication :

[wrap=discourse-bbb meetingID="XXXXX" attendeePW="YYYYY" moderatorPW="ZZZZZ"  mobileIframe="false" desktopIframe="false"][/wrap] 

Et remplacez les valeurs par celles obtenues à l’étape 3 :

  • XXXXX par le contenu de meetingID
  • YYYYY par le contenu de attendeePW
  • ZZZZZZ par le contenu de moderatorPW

Ensuite, enregistrez la publication.

6. Cela devrait maintenant fonctionner \o/

Vous devriez maintenant pouvoir rejoindre la réunion à la fois via Discourse et via l’autre interface que vous utilisiez. Si c’était Greenlight, vous pouvez également rejoindre via le lien désormais.

3 « J'aime »

Bonjour,

Excellent travail sur ce plugin, nous l’adorons absolument !

J’ai remarqué quelques points qui nécessitent encore d’être corrigés, je les consigne donc ici :

  1. Le partage d’écran ne fonctionne pas
    (Il n’y a aucune fenêtre contextuelle pour demander les autorisations, le processus échoue simplement)

  2. Lorsque vous intégrez la session via un iframe, vous n’avez pas la possibilité d’enregistrer la réunion

Je me demandais s’il existe un endroit pour signaler ces problèmes ? Il semble que les issues soient désactivées sur le dépôt GitHub.

Le partage d’écran fonctionne, nous l’utilisons largement. Chrome ne permet pas le partage d’écran vers un iframe pour des raisons de confidentialité et de sécurité.

Chrome n’apprécie pas le partage d’écran vers une iframe pour des raisons de confidentialité et de sécurité.

Je suppose que c’est la raison pour laquelle cela ne fonctionne pas non plus dans Firefox..