Conferencia de video BigBlueButton

Este plugin integra una instancia de Discourse con BigBlueButton, una herramienta de videoconferencia de código abierto diseñada para el aprendizaje en línea. Necesitará tener un servidor ejecutando una instancia de BBB para usarlo; consulte http://docs.bigbluebutton.org para más detalles. En comparación con Zoom, Jitsi y Whereby, BigBlueButton tiene un mejor soporte para navegadores; en mis pruebas funcionó de inmediato en todos los navegadores modernos, incluyendo Safari en iOS y Chrome en Android.

Capturas de pantalla


Para agregar una videoconferencia a un tema o publicación, utilice el botón “Agregar BigBlueButton” desde el menú desplegable de opciones al redactar:

Características

  • Soporta múltiples salas
  • Los usuarios del personal y los usuarios de un grupo configurable son reconocidos como moderadores en las reuniones de BBB
  • Los administradores pueden elegir incrustar la reunión en Discourse (mediante iframe) o redirigir a una página completa (con opciones separadas para móviles y escritorio)
  • Muestra los avatares de los usuarios que ya están en la videoconferencia junto al botón para unirse

Notas

Quisiera agradecer a @Stephen por indicarme BigBlueButton y por probar y proporcionar comentarios sobre las primeras versiones del plugin.

41 Me gusta

¡Realmente un trabajo increíble aquí. Tantas instituciones educativas usando BBB, y el momento para esta integración es perfecto.

15 Me gusta

Muy oportuno. Hemos estado utilizando nuestro foro openmod como pantalla para nuestros recientemente establecidos webinars interactivos, anunciando solo las URL de los webinars en temas privados. No es completamente a prueba de fugas, pero nos esforzamos mucho por mantener limpia nuestra comunidad del foro. Por lo tanto, estoy muy interesado en estos desarrollos. @pmusaraj: ¡gracias!

4 Me gusta

Los tres grupos de voluntarios a los que estoy ayudando actualmente en este momento difícil han pasado a utilizar BigBlueButton.

Gran parte de esa transición ha sido posible gracias a este complemento. El paso de un tema en Discourse a la conferencia es totalmente fluido y no estamos experimentando los problemas habituales.

Me facilita la vida 1000 veces al no tener que hacer de soporte técnico.

¡Gracias de nuevo @pmusaraj!

9 Me gusta

Muchas gracias por trabajar en esto. Lo he probado y funciona genial.

Sin embargo, traigo aquí algunas sugerencias para hacerlo más sencillo de usar. Asumo el caso de uso en el que un miembro del personal del foro no está muy familiarizado con los aspectos internos de BigBlueButton y su única experiencia previa es el uso de la interfaz de BigBlueButton para crear salas (Greenlight).

Dicho esto, aquí están mis sugerencias:

  1. Explicar en el mensaje original cómo se crean los botones “Iniciar conferencia”
    Después de instalarlo, me llevó bastante tiempo darme cuenta de que para añadir un botón de BigBlueButton tenía que hacerlo a través de las “opciones” (icono de engranaje) en el editor de texto. Quizás mencionarlo en las instrucciones podría evitar cierta confusión.

  2. Hacer que las contraseñas sean más fáciles de crear

    • botones para generar contraseñas aleatorias: Todos sabemos que la gente es perezosa y probablemente elegirán una contraseña sencilla. Por lo tanto, se podría ofrecer al usuario una opción aún más perezosa que en realidad los haga más seguros.
    • etiquetar las contraseñas como “(opcional)” (solución alternativa) y, cuando no se establezca, generar una contraseña aleatoria. Sin embargo, el usuario debe ser informado mediante una nota de que se creará una contraseña aleatoria en su lugar.
  3. Considerar ocultar las opciones de contraseñas bajo “avanzado”
    Supongo que estas opciones incluso podrían estar ocultas, ya que la mayoría de las personas probablemente solo quieran crear una sala desde dentro de Discourse y no conectarla con una sala creada en otra aplicación.

  4. No mencionar jerga técnica

  • Sé que Discourse siempre menciona el iframe, pero un usuario promedio no sabe qué es. Si la etiqueta cambiara a “Mostrar dentro del mensaje”, sería más claro.
  • “ID de reunión” es la jerga de BigBlueButton. Para la mayoría de los usuarios, supongo que “nombre de la reunión” sería mejor. Y quizás añadir debajo una instrucción en gris explicando que se trata del “ID de reunión”.

La imagen de abajo explica algunas de las “características” mencionadas a continuación. (Es solo un boceto sin funcionalidad).

Pero, de nuevo, ya es un plugin muy deseable, especialmente para personas que trabajan en educación. ¡Así que gracias de nuevo!

6 Me gusta

Acabo de enviar un correo electrónico a BigBlueButton para ver si esta integración puede aparecer en su sitio web BigBlueButton LMS Integrations | Designed for Schools | BigBlueButton.

Si tengo alguna actualización, la publicaré aquí.

2 Me gusta

Gracias por la retroalimentación, @core (y por la publicidad). He implementado algunos de los puntos reflexivos propuestos en tu publicación.

La generación de contraseñas ahora es aleatoria y está oculta para el usuario. (Los usuarios avanzados pueden modificar el markdown y cambiar las contraseñas si lo desean.) También actualicé la publicación original con una captura de pantalla y una descripción sobre cómo acceder al botón en el menú de opciones.

No voy a realizar este cambio. Sé que iframe es un término técnico, pero en este caso no creo que cambiarlo ayude; creo que sería más confuso usar “dentro del mensaje”. Sin embargo… puedes personalizar esta etiqueta en tu propia instancia, en Personalizar > Texto, filtrado por “bbb.modal”. Como en esta captura de pantalla:

5 Me gusta

Tu solución me parece perfecta. El minimalismo marca realmente la diferencia. Y gracias por tomarte el tiempo :slight_smile:

Ese es un gran compromiso. ¡Gracias!

1 me gusta

@pmusaraj aún no hay respuesta para agregar el plugin de Discourse en el sitio web de BBB. Intentaré mi suerte en su lista de correo en los próximos días.

1 me gusta

@pmusaraj Mi solicitud para unirme a la lista de correo fue rechazada (no tengo idea de por qué). Así que me quedo sin opciones para contactarlos sobre la integración. También pensé en abrir un problema en GitHub, pero podría ser bastante molesto ya que no se trata del código base de BBB.


edición: al parecer esto debería haberse publicado en la lista bigbluebutton-users. Por eso debo haber sido rechazado.

1 me gusta

¿Siguió las instrucciones del texto de la descripción? He tomado nota de su integración y la estoy agregando a una lista de similares que he visto. Mi plan es tener una página comunitaria en la documentación donde podamos compartir las cosas que hemos creado.

2 Me gusta

Se me pasó eso. Lo siento. ¡Pero es genial ver que llegó a los colaboradores de todos modos! ¡Gracias por interesarte!

¡Excelente complemento, gracias!
¿Cómo abro una reunión existente (programada con otra herramienta)? ¿Cómo descubro el ID de la reunión? Sea lo que sea que introduzca en este campo, siempre se inicia una nueva reunión.

Esto parece más una pregunta para BBB, pero en teoría, si usas el mismo ID de sala que la otra herramienta, debería cargar la misma reunión.

1 me gusta

Ya lo he hecho una vez, pero fue un poco complicado. Tienes que usar la API de BBB.

Intentaré hacer una guía sobre esto en unos días.

El problema principal es posiblemente que la herramienta más utilizada (Greenlight) no muestra realmente esa información de bajo nivel.

3 Me gusta

¡Gracias, sería genial!

1 me gusta

“Agregar BigBlueButton” a una conferencia ya existente

Este plugin crea automáticamente una sala para ti cuando haces clic en “Agregar BigBlueButton”. Sin embargo, es posible que prefieras utilizar una sala ya existente (creada antes de instalar este plugin). Aquí tienes dos ejemplos de por qué podrías querer hacerlo.

  • Ya has creado una sala (con Greenlight, por ejemplo) y deseas permitir que las personas también se unan desde Discourse.

  • Permitir también que las personas se unan mediante un enlace: Al usar Greenlight (la interfaz frontal predeterminada), se genera un enlace compartible para unirse a la llamada. De esta forma, las personas pueden unirse desde Discourse o mediante el enlace.

:warning: Este es un proceso bastante intrusivo, así que asegúrate realmente de entender lo que estás haciendo

Instrucciones

Lo más probable es que la interfaz frontal que estás utilizando (¿Greenlight?) no te proporcione información de bajo nivel como el ID de la reunión o attendeePW (que es diferente del código de acceso de la sala; lo sé, es confuso). Por lo tanto, para obtener esos datos, tendremos que utilizar la API de BBB para listar toda la información de las reuniones.

Nota: Puede haber una mejor manera de hacer esto, pero no estoy al tanto. Si ese es el caso, házmelo saber.

Requisitos previos

  • Acceso al servidor BBB mediante terminal (por ejemplo, vía SSH)
  • Conocimientos básicos de Python (para verificar mi código)
  • Comprensión de los riesgos de seguridad asociados con el uso de la API de BBB

1. Obtener la clave secreta y el punto final de la API de BBB

Accede a una terminal (vía SSH) donde se está ejecutando el servidor BBB y ejecuta:

sudo bbb-conf --secret

Esto te proporcionará una URL y una Secret. Ambos serán útiles más adelante.

:warning: ¡Cualquiera que tenga esa clave secreta puede hacer cosas maliciosas en tu servidor! Así que manténla segura.

2. Crear un script en Python 3 para obtener la información de la reunión

A continuación, se muestra un sencillo script en Python 3 que toma tu URL y tu clave secreta (obtenidas en el paso 1) y genera la API para obtener la información de las reuniones:

:warning: No pegues simplemente scripts aleatorios que encuentres en internet (¡incluido este!). Revísalos, verifica que tengan sentido y, si es necesario, consulta la documentación de la API.

import hashlib
from urllib.parse import urljoin

# Inserta tus variables aquí
base_url = "PEGA_AQUI_TU_URL" + "api/"
secret = "PEGA_AQUI_TU_SECRET"

# Generar la suma de verificación de seguridad
plaintext = "getMeetings" + secret
sha1 = hashlib.sha1()
sha1.update(plaintext.encode('utf-8'))
checksum = sha1.hexdigest()

# Obtener la URL de la API para listar la información de las reuniones
url = urljoin(base_url, "getMeetings?checksum=" + checksum)
print("Abre la siguiente URL para ver la información de la reunión")
print(url)

Reemplaza PEGA_AQUI_TU_URL con la URL de la API obtenida anteriormente y PEGA_AQUI_TU_SECRET con tu clave secreta, y luego ejecuta el script.

Después de esto, debería imprimir una URL similar a: https://ejemplo.com/bigbluebutton/api/getMeetings?checksum=20e928e8928e8e9f919928e829d999df82882818

:warning: ¡Cualquiera que tenga esa URL puede hacer cosas maliciosas!

Pueden ver todas las reuniones en curso, cuántos usuarios hay en cada una y obtener las credenciales para unirse.

3. Abrir la URL

Ábrela en modo de navegación privada para asegurarte de que la URL no se guarde en el historial del navegador debido a la advertencia anterior.

Simplemente inicia la reunión que pretendes agregar y actualiza esa página con la URL de la API. Entonces deberías ver algo como:

<response>
<returncode>SUCCESS</returncode>
<meetings>
<meeting>
<meetingName>Tu nombre de sala</meetingName>
<meetingID>XXXXXXXXXXXXXXXXXXXXXXXXXXX</meetingID>
...
<attendeePW>YYYYYYY</attendeePW>
<moderatorPW>ZZZZZZZ</moderatorPW>
...

Simplemente busca las líneas debajo de la reunión que deseas y toma:

  • meetingID
  • attendeePW
  • moderatorPW

Una vez que hayas obtenido estos datos, borra todos los archivos y cierra todas las pestañas con acceso a la API.
¡No queremos ningún incidente de seguridad!

4. “Agregar BigBlueButton” a tu publicación

En lugar de agregarlo mediante la interfaz regular de “Agregar BigBlueButton”, simplemente pega lo siguiente en tu publicación:

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

Y reemplaza los valores con lo que obtuviste en el paso 3:

  • XXXXX con el contenido de meetingID
  • YYYYY con el contenido de attendeePW
  • ZZZZZZ con el contenido de moderatorPW

Luego, guarda la publicación.

6. Ahora debería funcionar \o/

Ahora deberías poder unirte tanto desde Discourse como desde la otra interfaz frontal que estabas utilizando. Si era Greenlight, ahora también puedes unirte mediante enlace.}

3 Me gusta

Hola,

¡Buen trabajo con el plugin, nos encanta!

He notado algunas cosas que aún necesitan ser arregladas, así que las estoy documentando aquí:

  1. La compartición de pantalla no funciona
    (No aparece ninguna ventana emergente para solicitar permisos, el proceso simplemente falla)

  2. Cuando incrustas la sesión en un iframe, no tienes la capacidad de grabar la reunión

Me preguntaba si hay algún lugar para reportar estos problemas. Parece que el repositorio de GitHub tiene los informes de problemas deshabilitados.

La compartición de pantalla sí funciona, la utilizamos ampliamente. Chrome no permite compartir la pantalla en un iframe por razones de privacidad y seguridad.

Chrome no permite compartir la pantalla en un iframe por razones de privacidad y seguridad.

Supongo que esa es la razón por la que tampoco funciona en Firefox.