Capítulo 3 GET POST

create – Crear reunión

El endpoint create aprovisiona una nueva reunión en el servidor BigBlueButton. Si ya existe una reunión con el mismo meetingID, el servidor devuelve los datos de la reunión existente en lugar de crear un duplicado (comportamiento idempotente).

Endpoint

POST GET

https://api-guide.bbbserver.com/bigbluebutton/api/create?<parameters>&checksum=replace-with-checksum

Parámetros obligatorios

Parámetro Tipo Descripción
meetingID String Identificador único de la reunión (de 2 a 256 caracteres, sin comas).
name String Nombre para mostrar de la reunión (de 2 a 256 caracteres). Obligatorio desde BBB 2.4.

Parámetros opcionales

General

Parámetro Tipo Predeterminado Descripción
attendeePW Deprecated String (auto) Contraseña para acceso de asistentes. Obsoleta desde BBB 3.0 — se genera automáticamente.
moderatorPW Deprecated String (auto) Contraseña para acceso de moderadores. Obsoleta desde BBB 3.0 — se genera automáticamente.
welcome String Mensaje de bienvenida que se muestra en el chat. Admite marcadores de posición: %%CONFNAME%%, %%DIALNUM%%, %%CONFNUM%%.
moderatorOnlyMessage String Mensaje visible solo para los moderadores en el chat.
dialNumber String Número de acceso telefónico para participación por teléfono.
voiceBridge String (auto) Cinco dígitos aleatorios (pueden empezar por 0, por ejemplo 07382), generados automáticamente. Deben ser únicos por reunión.
maxParticipants Number 0 (unlimited) Número máximo de participantes. En bbbserver.de este valor se utiliza para la reserva de capacidad (consulta las notas de bbbserver.de más abajo).
duration Number 0 (unlimited) Duración máxima en minutos. En BBB estándar la reunión termina automáticamente cuando se agota el tiempo. En bbbserver.de esto se usa solo para la planificación de capacidad (consulta las notas de bbbserver.de más abajo).
logoutURL String URL a la que se redirige al usuario después de cerrar sesión. BBB 3.0+
loginURL String URL puesta a disposición de los usuarios durante la reunión. BBB 3.0+
record Boolean false Habilitar la grabación de medios y eventos.
autoStartRecording Boolean false La grabación comienza automáticamente cuando se une la primera persona.
allowStartStopRecording Boolean true Permitir que los usuarios inicien y detengan manualmente la grabación.
recordFullDurationMedia Boolean false Grabar los medios durante toda la duración de la reunión. BBB 2.6.9+
muteOnStart Boolean true Silenciar a todos los participantes cuando se unan.
guestPolicy Enum ALWAYS_ACCEPT Política de invitados: ALWAYS_ACCEPT, ALWAYS_DENY o ASK_MODERATOR.
webVoice Undocumented String (= telVoice) Identificador de conferencia de voz para usuarios de VoIP. De forma predeterminada, usa el valor de telVoice si no se establece.
meetingEndedURL Undocumented String URL de devolución de llamada invocada cuando finaliza la reunión. A diferencia de meta_endCallbackUrl, esta permanece del lado del servidor y no se propaga al cliente ni a los metadatos de la grabación.
logoutTimer Undocumented Number 0 (disabled) Tiempo de espera en minutos antes del cierre de sesión automático.

Diseño y apariencia

Parámetro Tipo Predeterminado Descripción
meetingLayout Enum CUSTOM_LAYOUT Diseño predeterminado. Valores posibles: UNIFIED_LAYOUT, CUSTOM_LAYOUT, SMART_LAYOUT, PRESENTATION_FOCUS, VIDEO_FOCUS, CAMERAS_ONLY, PARTICIPANTS_AND_CHAT_ONLY, PRESENTATION_ONLY, MEDIA_ONLY.
logo String URL de una imagen de logotipo mostrada encima de la lista de participantes. BBB 2.4+
bannerText String Texto del banner mostrado en el cliente. BBB 2.0+
bannerColor String Color de fondo del banner como valor hexadecimal, p. ej. #FF0000. BBB 2.0+
darklogo Undocumented String URL de una imagen de logotipo para el modo oscuro. BBB 3.0+
copyright Undocumented String Texto de derechos de autor mostrado en el cliente. BBB 3.0+

Permisos y configuración de bloqueo

Parámetro Tipo Predeterminado Descripción
webcamsOnlyForModerator Boolean false Cámaras web visibles solo para los moderadores.
allowModsToUnmuteUsers Boolean false Permitir que los moderadores reactiven el micrófono de otros usuarios. BBB 2.2+
allowModsToEjectCameras Boolean false Permitir que los moderadores cierren las cámaras de otros usuarios. BBB 2.4+
allowPromoteGuestToModerator Boolean false Permitir ascender a los invitados al rol de moderador. BBB 2.7.9+
lockSettingsDisableCam Boolean false Bloquear el uso compartido de cámara para los asistentes. BBB 2.2+
lockSettingsDisableMic Boolean false Bloquear el micrófono para los asistentes (solo escucha). BBB 2.2+
lockSettingsDisablePrivateChat Boolean false Bloquear el chat privado para los asistentes. BBB 2.2+
lockSettingsDisablePublicChat Boolean false Bloquear el chat público para los asistentes. BBB 2.2+
lockSettingsDisableNotes Boolean false Bloquear las notas compartidas para los asistentes. BBB 2.2+
lockSettingsHideUserList Boolean false Ocultar la lista de participantes a los espectadores. BBB 2.2+
lockSettingsHideViewersCursor Boolean false Ocultar los cursores de otros espectadores en la pizarra. BBB 2.5+
lockSettingsHideViewersAnnotation Undocumented Boolean false Ocultar las anotaciones de la pizarra de otros espectadores. BBB 2.6+
lockSettingsLockOnJoin Boolean true Aplicar la configuración de bloqueo inmediatamente cuando un usuario se una. BBB 2.2+
lockSettingsLockOnJoinConfigurable Boolean false Habilitar la aplicación de la configuración lockSettingsLockOnJoin. BBB 2.2+

Cámara web

Parámetro Tipo Predeterminado Descripción
userCameraCap Number 3 Número máximo de cámaras web simultáneas por usuario. BBB 2.4.5+
meetingCameraCap Number 0 (unlimited) Número máximo de cámaras web simultáneas en la reunión. BBB 2.5+
maxPinnedCameras Undocumented Number 3 Número máximo de cámaras web fijadas. BBB 3.0+

Desactivación de funciones

Parámetro Tipo Predeterminado Descripción
disabledFeatures String Lista de funciones que se desactivarán, separadas por comas. BBB 2.5+
disabledFeaturesExclude String Lista de funciones que se volverán a habilitar para esta reunión, separadas por comas (anula los valores predeterminados del servidor). BBB 2.6.9+

Valores disponibles para disabledFeatures:

Valor Descripción
breakoutRoomsSalas de grupos
captionsSubtítulos
chatChat público y privado
privateChatSolo chat privado
deleteChatMessageEliminar mensajes del chat BBB 3.0+
editChatMessageEditar mensajes del chat BBB 3.0+
replyChatMessageResponder a mensajes del chat BBB 3.0+
chatMessageReactionsReacciones en los mensajes del chat BBB 3.0+
chatEmojiPickerSelector de emoji en el chat BBB 3.0+
downloadPresentationWithAnnotationsDescargar presentación anotada
downloadPresentationConvertedToPdfDescargar presentación convertida
downloadPresentationOriginalFileDescargar archivo original de la presentación
snapshotOfCurrentSlideInstantánea de la diapositiva actual
externalVideosCompartir video externo
importPresentationWithAnnotationsFromBreakoutRoomsImportar presentación desde salas para grupos pequeños
importSharedNotesFromBreakoutRoomsImportar notas compartidas desde salas para grupos pequeños
layoutsSelección de diseño (solo diseño predeterminado)
learningDashboardPanel de análisis del aprendizaje
learningDashboardDownloadSessionDataDescargar datos de sesión del panel
pollsEncuestas
screenshareCompartir pantalla
sharedNotesNotas compartidas
virtualBackgroundsFondos virtuales
customVirtualBackgroundsSubir fondos virtuales personalizados
liveTranscriptionTranscripción en vivo
presentationPresentación
cameraAsContentCámara como contenido
timerTemporizador
infiniteWhiteboardPizarra infinita BBB 3.0+
raiseHandLevantar la mano BBB 3.0+
userReactionsReacciones de usuario BBB 3.0+
reactionsReacciones de estado con emoji (diferentes de userReactions) BBB 3.0+
quizzesCuestionarios BBB 3.0+

Ciclo de vida de la reunión

Parámetro Tipo Predeterminado Descripción
endWhenNoModerator Boolean false Finalizar automáticamente la reunión cuando no haya ningún moderador presente. BBB 2.3+
endWhenNoModeratorDelayInMinutes Number 1 Retraso en minutos antes de la finalización automática cuando no haya ningún moderador presente. BBB 2.2+
meetingExpireIfNoUserJoinedInMinutes Number 5 Finalizar la reunión si nadie se une dentro de este número de minutos. BBB 2.5+
meetingExpireWhenLastUserLeftInMinutes Number 1 Finalizar la reunión X minutos después de que el último usuario se vaya. 0 = deshabilitado. BBB 2.5+
meetingKeepEvents Boolean false Mantener los eventos incluso si la reunión no se está grabando. BBB 2.3+
learningDashboardCleanupDelayInMinutes Number 2 Retraso antes de eliminar el panel de análisis de aprendizaje. BBB 2.4+
allowRequestsWithoutSession Boolean false Permitir unirse sin una cookie de sesión. BBB 2.4.3+

Presentación

Parámetro Tipo Predeterminado Descripción
preUploadedPresentation String URL de un archivo de presentación para precargar. BBB 2.7.2+
preUploadedPresentationName String Nombre de la presentación precargada. BBB 2.7.2+
preUploadedPresentationOverrideDefault Boolean true Suprime la presentación predeterminada (default.pdf). BBB 2.5+
maxNumPages Number 200 Número máximo de páginas por presentación. BBB 3.0+
presentationUploadExternalUrl String URL de una aplicación externa de selección de archivos. BBB 2.6+
presentationUploadExternalDescription String Descripción de la aplicación externa de carga. BBB 2.6+
presentationConversionCacheEnabled Boolean Habilita la caché de presentaciones al usar almacenamiento S3. BBB 3.0+

Grabación

Parámetro Tipo Predeterminado Descripción
notifyRecordingIsOn Boolean false Mostrar un cuadro de diálogo modal para el consentimiento de grabación. BBB 2.6+

Pizarra

Parámetro Tipo Predeterminado Descripción
multiUserWhiteboardEnabled Boolean Habilita automáticamente el acceso a la pizarra para todos los usuarios. El valor predeterminado es true en las salas de grupos. BBB 3.0+

Complementos

Parámetro Tipo Predeterminado Descripción
pluginManifests JSON Lista de manifiestos de complementos para la sesión. BBB 3.0+
pluginManifestsFetchUrl String URL de un archivo JSON que contiene URL de manifiestos de complementos. BBB 3.0+

Salas de grupos

Estos parámetros son relevantes al crear una reunión como sala de grupos:

Parámetro Tipo Predeterminado Descripción
isBreakout Boolean Debe ser true para salas de grupos.
parentMeetingID String ID de la reunión principal (obligatorio para las salas de grupos).
sequence Number Número de secuencia de la sala de grupos (obligatorio para las salas de grupos).
freeJoin Boolean Permitir que los participantes elijan libremente su sala de grupos.
breakoutRoomsPrivateChatEnabled Boolean true Habilitar el chat privado en las salas de grupos.
breakoutRoomsRecord Boolean false Grabar las salas de grupos.
breakoutRoomsCaptureSlides Boolean false Capturar las diapositivas de las salas de grupos cuando finalicen.
breakoutRoomsCaptureNotes Boolean false Capturar las notas de las salas de grupos cuando finalicen.
breakoutRoomsCaptureSlidesFilename String Nombre de archivo para las diapositivas capturadas.
breakoutRoomsCaptureNotesFilename String Nombre de archivo para las notas capturadas.
groups JSON Asignaciones de grupos predefinidas como un array JSON.

Formato para groups:

[
  {"id": "1", "name": "Group A", "roster": ["userId1", "userId2"]},
  {"id": "2", "name": "Group B", "roster": ["userId3"]},
  {"id": "3", "roster": []}
]

Anulación de la configuración del cliente

Parámetro Tipo Predeterminado Descripción
allowOverrideClientSettingsOnCreateCall Boolean false Habilita el parámetro clientSettingsOverride en el cuerpo POST. BBB 3.0+
clientSettingsOverride JSON Anula la configuración del cliente desde settings.yml. BBB 3.0+

El parámetro clientSettingsOverride está deshabilitado de forma predeterminada por motivos de seguridad. Sus valores tienen mayor prioridad que la configuración del lado del servidor, y el cuerpo POST no está protegido por checksum.

Ejemplo como XML en el cuerpo POST:

<modules>
  <module name="clientSettingsOverride">
    <![CDATA[
    {
      "public": {
        "app": {
          "appName": "My Conference",
                    "helpLink": "https://api-guide.bbbserver.com/help"
        }
      }
    }
    ]]>
  </module>
</modules>

Puentes

Parámetro Tipo Predeterminado Descripción
cameraBridge Undocumented String Punto de conexión para el puente de cámara.
screenShareBridge Undocumented String Punto de conexión para el puente de compartición de pantalla.
audioBridge Undocumented String Punto de conexión para el puente de audio.

Metaparámetros

Se pueden pasar metadatos arbitrarios como meta_<key>=<value>. Algunos metaparámetros tienen significados especiales:

Metaparámetro Descripción
meta_endCallbackUrl URL para una devolución de llamada GET cuando finaliza la reunión. Parámetros: meetingID, recordingmarks.
meta_bbb-recording-ready-url URL para una devolución de llamada POST cuando la grabación esté lista (firmada con JWT).
meta_analytics-callback-url URL para una devolución de llamada POST con datos analíticos al final de la reunión (JSON).
meta_bbb-anonymize-chat Anonimizar los remitentes del chat en las grabaciones (solo asistentes).
meta_bbb-anonymize-chat-moderators Anonimizar los remitentes del chat en las grabaciones (incluidos los moderadores).

Además de los parámetros meta_*, también se admiten parámetros plugin_*. Estos se procesan como metadatos del plugin y pueden reemplazar marcadores de posición en las URL del manifiesto del plugin. Undocumented

Ejemplo de solicitud

GET https://api-guide.bbbserver.com/bigbluebutton/api/create?name=Demo&meetingID=replace-with-meeting-id&attendeePW=replace-with-password&moderatorPW=replace-with-password&checksum=replace-with-checksum

Respuesta de ejemplo

<response>
  <returncode>SUCCESS</returncode>
        <meetingID>replace-with-meeting-id</meetingID>
    <internalMeetingID>replace-with-internal-meeting-id</internalMeetingID>
  <parentMeetingID>bbb-none</parentMeetingID>
        <attendeePW>replace-with-password</attendeePW>
        <moderatorPW>replace-with-password</moderatorPW>
  <createTime>1715261728123</createTime>
  <voiceBridge>70066</voiceBridge>
  <dialNumber>613-555-1234</dialNumber>
  <createDate>Thu May 09 13:35:28 UTC 2024</createDate>
  <hasUserJoined>false</hasUserJoined>
  <duration>0</duration>
  <hasBeenForciblyEnded>false</hasBeenForciblyEnded>
</response>

Si ya existe una reunión con el mismo ID, la respuesta incluye una advertencia de duplicado:

<response>
  <returncode>SUCCESS</returncode>
    <meetingID>replace-with-meeting-id</meetingID>
  <!-- ... same fields ... -->
  <messageKey>duplicateWarning</messageKey>
  <message>This conference was already in existence...</message>
</response>

Carga de presentaciones mediante cuerpo POST

Las presentaciones pueden enviarse como un cuerpo XML con la solicitud POST:

<modules>
  <module name="presentation">
        <document url="https://api-guide.bbbserver.com/files/slides.pdf" filename="slides.pdf"
              downloadable="true" removable="false" current="true"/>
        <document url="https://api-guide.bbbserver.com/files/extras.pdf" filename="extras.pdf"/>
    <document name="inline.pdf">
      JVBERi0xLjQK... (Base64-encoded content)
    </document>
  </module>
</modules>

Atributos por elemento <document>:

Atributo Tipo Predeterminado Descripción
url String URL del archivo externo.
filename String Ayuda con la detección del tipo de archivo cuando la URL no tiene extensión.
name String Nombre para documentos incrustados en Base64.
downloadable Boolean false Permitir a los usuarios descargar la presentación.
removable Boolean true Permitir a los usuarios eliminar la presentación.
current Boolean Esta presentación se carga primero.

Cuando se proporcionan varios documentos, el primero se carga en el cliente mientras que los restantes se convierten en segundo plano.

bbbserver.de Notas

Parámetro adicional

Parámetro Tipo Predeterminado Descripción
deactivateBbbserverDefaultChatTexts Boolean false Cuando se establece en false (predeterminado), bbbserver.de inserta automáticamente textos de chat (números de acceso telefónico, aviso de alojamiento). Tus propios textos welcome y moderatorOnlyMessage se añaden después de estos. Establécelo en true para suprimir los textos bbbserver.de (marca blanca).

Reserva de capacidad

En bbbserver.de, los parámetros maxParticipants y duration tienen un significado especial y se comportan de forma distinta a BigBlueButton estándar.

Al crear una reunión, bbbserver.de reserva capacidad de hardware:

  • El número especificado de participantes está garantizado y reservado en un servidor durante la duración especificada.
  • La capacidad reservada se deduce de tu cuota contratada de conexiones simultáneas.
  • Si no se especifica, se aplican los valores predeterminados: 5 participantes y 60 minutos (configurable en el panel de administración en "Customer Settings → IntegrationAPI").
  • Después de que expire la duración, la reunión sigue en ejecución, pero la capacidad ya no está reservada. bbbserver.de puede finalizar la reunión automáticamente si una nueva reunión requiere esa capacidad.
  • El parámetro duration no finaliza reuniones. A diferencia de BBB estándar, debes enviar una llamada de API end para finalizar una reunión después de cierto tiempo.

Desde BBB 3.0, los parámetros attendeePW y moderatorPW están obsoletos. Usa el parámetro role en el endpoint join para asignar roles.

Preguntas frecuentes

El servidor devuelve los datos de la reunión existente en lugar de crear una nueva. La respuesta incluye una clave de mensaje duplicateWarning para indicarlo.

No. Desde BBB 3.0 estas contraseñas están obsoletas y se generan automáticamente. Usa el parámetro role en el endpoint join para asignar roles de asistente o moderador.

Envía una solicitud POST con un cuerpo XML que contenga un elemento modules/module con entradas de documentos. Cada documento puede hacer referencia a una URL externa o contener datos de archivo codificados en Base64.

meta_endCallbackUrl es un metaparámetro estándar que puede propagarse al cliente y a los metadatos de grabación. meetingEndedURL es una devolución de llamada interna del lado del servidor no documentada que permanece interna y no se expone a los clientes.

Cuando creas una reunión, bbbserver.de reserva capacidad de hardware según los valores de maxParticipants y duration. Las plazas reservadas se descuentan de tu cuota de conexiones simultáneas. Después de que expire la duración, la reunión continúa pero ya no está protegida contra su finalización si se necesita capacidad en otro lugar.

Sí, estableciendo allowOverrideClientSettingsOnCreateCall en true y pasando un clientSettingsOverride JSON en el cuerpo POST. Esto está deshabilitado de forma predeterminada por motivos de seguridad, ya que el cuerpo POST no está cubierto por checksum.