Rozdział 3 GET POST

create – Utwórz spotkanie

Punkt końcowy create tworzy nowe spotkanie na serwerze BigBlueButton. Jeśli spotkanie z tym samym meetingID już istnieje, serwer zwraca dane istniejącego spotkania zamiast tworzyć duplikat (zachowanie idempotentne).

Punkt końcowy

POST GET

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

Wymagane parametry

Parametr Typ Opis
meetingID String Unikalny identyfikator spotkania (od 2 do 256 znaków, bez przecinków).
name String Wyświetlana nazwa spotkania (od 2 do 256 znaków). Wymagana od BBB 2.4.

Parametry opcjonalne

Ogólne

Parametr Typ Domyślnie Opis
attendeePW Deprecated String (auto) Hasło dostępu dla uczestnika. Przestarzałe od BBB 3.0 — generowane automatycznie.
moderatorPW Deprecated String (auto) Hasło dostępu dla moderatora. Przestarzałe od BBB 3.0 — generowane automatycznie.
welcome String Wiadomość powitalna wyświetlana na czacie. Obsługuje symbole zastępcze: %%CONFNAME%%, %%DIALNUM%%, %%CONFNUM%%.
moderatorOnlyMessage String Wiadomość widoczna tylko dla moderatorów na czacie.
dialNumber String Numer dostępowy do uczestnictwa przez telefon.
voiceBridge String (auto) Pięć losowych cyfr (może zaczynać się od 0, np. 07382), generowanych automatycznie. Musi być unikalne dla każdego spotkania.
maxParticipants Number 0 (unlimited) Maksymalna liczba uczestników. W bbbserver.de ta wartość jest używana do rezerwacji pojemności (zobacz uwagi bbbserver.de poniżej).
duration Number 0 (unlimited) Maksymalny czas trwania w minutach. W standardowym BBB spotkanie kończy się automatycznie po upływie czasu. W bbbserver.de jest to używane wyłącznie do planowania pojemności (zobacz uwagi bbbserver.de poniżej).
logoutURL String URL, na który użytkownik jest przekierowywany po wylogowaniu. BBB 3.0+
loginURL String URL udostępniany użytkownikom podczas spotkania. BBB 3.0+
record Boolean false Włącz nagrywanie mediów i zdarzeń.
autoStartRecording Boolean false Nagrywanie rozpoczyna się automatycznie, gdy dołączy pierwsza osoba.
allowStartStopRecording Boolean true Zezwól użytkownikom ręcznie rozpoczynać i zatrzymywać nagrywanie.
recordFullDurationMedia Boolean false Nagrywaj media przez cały czas trwania spotkania. BBB 2.6.9+
muteOnStart Boolean true Wycisz wszystkich uczestników przy dołączaniu.
guestPolicy Enum ALWAYS_ACCEPT Polityka gości: ALWAYS_ACCEPT, ALWAYS_DENY lub ASK_MODERATOR.
webVoice Undocumented String (= telVoice) Identyfikator konferencji głosowej dla użytkowników VoIP. Jeśli nie jest ustawiony, domyślnie przyjmuje wartość telVoice.
meetingEndedURL Undocumented String URL zwrotny wywoływany po zakończeniu spotkania. W przeciwieństwie do meta_endCallbackUrl pozostaje on po stronie serwera i nie jest przekazywany do klienta ani do metadanych nagrania.
logoutTimer Undocumented Number 0 (disabled) Limit czasu w minutach przed automatycznym wylogowaniem.

Układ i wygląd

Parametr Typ Domyślnie Opis
meetingLayout Enum CUSTOM_LAYOUT Domyślny układ. Możliwe wartości: UNIFIED_LAYOUT, CUSTOM_LAYOUT, SMART_LAYOUT, PRESENTATION_FOCUS, VIDEO_FOCUS, CAMERAS_ONLY, PARTICIPANTS_AND_CHAT_ONLY, PRESENTATION_ONLY, MEDIA_ONLY.
logo String URL obrazu logo wyświetlanego nad listą uczestników. BBB 2.4+
bannerText String Tekst banera wyświetlany w kliencie. BBB 2.0+
bannerColor String Kolor tła banera jako wartość szesnastkowa, np. #FF0000. BBB 2.0+
darklogo Undocumented String URL obrazu logo dla trybu ciemnego. BBB 3.0+
copyright Undocumented String Tekst praw autorskich wyświetlany w kliencie. BBB 3.0+

Uprawnienia i ustawienia blokady

Parametr Typ Domyślnie Opis
webcamsOnlyForModerator Boolean false Kamery widoczne tylko dla moderatorów.
allowModsToUnmuteUsers Boolean false Pozwól moderatorom wyciszać wyciszenie innych użytkowników. BBB 2.2+
allowModsToEjectCameras Boolean false Pozwól moderatorom zamykać kamery innych użytkowników. BBB 2.4+
allowPromoteGuestToModerator Boolean false Pozwól promować gości do roli moderatora. BBB 2.7.9+
lockSettingsDisableCam Boolean false Zablokuj udostępnianie kamery dla uczestników. BBB 2.2+
lockSettingsDisableMic Boolean false Zablokuj mikrofon dla uczestników (tylko słuchanie). BBB 2.2+
lockSettingsDisablePrivateChat Boolean false Zablokuj czat prywatny dla uczestników. BBB 2.2+
lockSettingsDisablePublicChat Boolean false Zablokuj czat publiczny dla uczestników. BBB 2.2+
lockSettingsDisableNotes Boolean false Zablokuj współdzielone notatki dla uczestników. BBB 2.2+
lockSettingsHideUserList Boolean false Ukryj listę uczestników przed widzami. BBB 2.2+
lockSettingsHideViewersCursor Boolean false Ukryj kursory innych widzów na tablicy. BBB 2.5+
lockSettingsHideViewersAnnotation Undocumented Boolean false Ukryj adnotacje innych widzów na tablicy. BBB 2.6+
lockSettingsLockOnJoin Boolean true Zastosuj ustawienia blokady natychmiast po dołączeniu użytkownika. BBB 2.2+
lockSettingsLockOnJoinConfigurable Boolean false Włącz stosowanie ustawienia lockSettingsLockOnJoin. BBB 2.2+

Kamera

Parametr Typ Domyślnie Opis
userCameraCap Number 3 Maksymalna liczba jednoczesnych kamer na użytkownika. BBB 2.4.5+
meetingCameraCap Number 0 (unlimited) Maksymalna liczba jednoczesnych kamer na spotkaniu. BBB 2.5+
maxPinnedCameras Undocumented Number 3 Maksymalna liczba przypiętych kamer. BBB 3.0+

Wyłączanie funkcji

Parametr Typ Domyślnie Opis
disabledFeatures String Lista funkcji do wyłączenia, rozdzielona przecinkami. BBB 2.5+
disabledFeaturesExclude String Lista funkcji do ponownego włączenia dla tego spotkania, rozdzielona przecinkami (zastępuje domyślne ustawienia po stronie serwera). BBB 2.6.9+

Dostępne wartości dla disabledFeatures:

Wartość Opis
breakoutRoomsPokoje do pracy w podgrupach
captionsNapisy
chatCzat publiczny i prywatny
privateChatTylko czat prywatny
deleteChatMessageUsuwanie wiadomości czatu BBB 3.0+
editChatMessageEdytowanie wiadomości czatu BBB 3.0+
replyChatMessageOdpowiadanie na wiadomości czatu BBB 3.0+
chatMessageReactionsReakcje na wiadomości czatu BBB 3.0+
chatEmojiPickerSelektor emoji na czacie BBB 3.0+
downloadPresentationWithAnnotationsPobieranie prezentacji z adnotacjami
downloadPresentationConvertedToPdfPobieranie przekonwertowanej prezentacji
downloadPresentationOriginalFilePobieranie oryginalnego pliku prezentacji
snapshotOfCurrentSlideMigawka bieżącego slajdu
externalVideosUdostępnianie zewnętrznego wideo
importPresentationWithAnnotationsFromBreakoutRoomsImport prezentacji z pokoi podgrup
importSharedNotesFromBreakoutRoomsImport współdzielonych notatek z pokoi podgrup
layoutsWybór układu (tylko układ domyślny)
learningDashboardPanel analityki edukacyjnej
learningDashboardDownloadSessionDataPobierz dane sesji panelu
pollsAnkiety
screenshareUdostępnianie ekranu
sharedNotesWspólne notatki
virtualBackgroundsWirtualne tła
customVirtualBackgroundsPrześlij niestandardowe wirtualne tła
liveTranscriptionTranskrypcja na żywo
presentationPrezentacja
cameraAsContentKamera jako treść
timerMinutnik
infiniteWhiteboardNieskończona tablica BBB 3.0+
raiseHandPodniesienie ręki BBB 3.0+
userReactionsReakcje użytkowników BBB 3.0+
reactionsReakcje statusu emoji (inne niż userReactions) BBB 3.0+
quizzesQuizy BBB 3.0+

Cykl życia spotkania

Parametr Typ Domyślnie Opis
endWhenNoModerator Boolean false Automatycznie zakończ spotkanie, gdy nie ma moderatora. BBB 2.3+
endWhenNoModeratorDelayInMinutes Number 1 Opóźnienie w minutach przed automatycznym zakończeniem, gdy nie ma moderatora. BBB 2.2+
meetingExpireIfNoUserJoinedInMinutes Number 5 Zakończ spotkanie, jeśli nikt nie dołączy w ciągu tylu minut. BBB 2.5+
meetingExpireWhenLastUserLeftInMinutes Number 1 Zakończ spotkanie X minut po opuszczeniu go przez ostatniego użytkownika. 0 = wyłączone. BBB 2.5+
meetingKeepEvents Boolean false Zachowaj zdarzenia, nawet jeśli spotkanie nie jest nagrywane. BBB 2.3+
learningDashboardCleanupDelayInMinutes Number 2 Opóźnienie przed usunięciem panelu analityki edukacyjnej. BBB 2.4+
allowRequestsWithoutSession Boolean false Zezwól na dołączenie bez pliku cookie sesji. BBB 2.4.3+

Prezentacja

Parametr Typ Domyślnie Opis
preUploadedPresentation String URL pliku prezentacji do wstępnego przesłania. BBB 2.7.2+
preUploadedPresentationName String Nazwa dla wstępnie przesłanej prezentacji. BBB 2.7.2+
preUploadedPresentationOverrideDefault Boolean true Wyłącz domyślną prezentację (default.pdf). BBB 2.5+
maxNumPages Number 200 Maksymalna liczba stron na prezentację. BBB 3.0+
presentationUploadExternalUrl String URL zewnętrznej aplikacji wyboru plików. BBB 2.6+
presentationUploadExternalDescription String Opis zewnętrznej aplikacji do przesyłania. BBB 2.6+
presentationConversionCacheEnabled Boolean Włącz pamięć podręczną prezentacji przy użyciu pamięci S3. BBB 3.0+

Nagrywanie

Parametr Typ Domyślnie Opis
notifyRecordingIsOn Boolean false Pokaż modalne okno dialogowe zgody na nagrywanie. BBB 2.6+

Tablica

Parametr Typ Domyślnie Opis
multiUserWhiteboardEnabled Boolean Automatycznie włącz dostęp do tablicy dla wszystkich użytkowników. Domyślnie true w pokojach podgrup. BBB 3.0+

Wtyczki

Parametr Typ Domyślnie Opis
pluginManifests JSON Lista manifestów wtyczek dla sesji. BBB 3.0+
pluginManifestsFetchUrl String URL pliku JSON zawierającego adresy URL manifestów wtyczek. BBB 3.0+

Pokoje podgrup

Te parametry są istotne podczas tworzenia spotkania jako pokoju podgrupy:

Parametr Typ Domyślnie Opis
isBreakout Boolean Musi być true dla pokoi podgrup.
parentMeetingID String ID spotkania nadrzędnego (wymagane dla pokoi podgrup).
sequence Number Numer sekwencyjny pokoju podgrupy (wymagany dla pokoi podgrup).
freeJoin Boolean Pozwól uczestnikom swobodnie wybierać pokój podgrupy.
breakoutRoomsPrivateChatEnabled Boolean true Włącz prywatny czat w pokojach podgrup.
breakoutRoomsRecord Boolean false Nagrywaj pokoje podgrup.
breakoutRoomsCaptureSlides Boolean false Przechwytuj slajdy z pokoi podgrup po ich zakończeniu.
breakoutRoomsCaptureNotes Boolean false Przechwytuj notatki z pokoi podgrup po ich zakończeniu.
breakoutRoomsCaptureSlidesFilename String Nazwa pliku dla przechwyconych slajdów.
breakoutRoomsCaptureNotesFilename String Nazwa pliku dla przechwyconych notatek.
groups JSON Predefiniowane przypisania grup jako tablica JSON.

Format dla groups:

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

Nadpisanie ustawień klienta

Parametr Typ Domyślnie Opis
allowOverrideClientSettingsOnCreateCall Boolean false Włącza parametr clientSettingsOverride w treści POST. BBB 3.0+
clientSettingsOverride JSON Nadpisuje ustawienia klienta z settings.yml. BBB 3.0+

Parametr clientSettingsOverride jest domyślnie wyłączony ze względów bezpieczeństwa. Jego wartości mają wyższy priorytet niż konfiguracja po stronie serwera, a treść POST nie jest chroniona przez checksum.

Przykład jako XML w treści POST:

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

Mosty

Parametr Typ Domyślnie Opis
cameraBridge Undocumented String Punkt końcowy dla mostu kamery.
screenShareBridge Undocumented String Punkt końcowy dla mostu udostępniania ekranu.
audioBridge Undocumented String Punkt końcowy dla mostu audio.

Parametry meta

Dowolne metadane można przekazać jako meta_<key>=<value>. Niektóre parametry meta mają specjalne znaczenie:

Parametr meta Opis
meta_endCallbackUrl URL wywołania zwrotnego GET po zakończeniu spotkania. Parametry: meetingID, recordingmarks.
meta_bbb-recording-ready-url URL wywołania zwrotnego POST, gdy nagranie jest gotowe (podpisane JWT).
meta_analytics-callback-url URL wywołania zwrotnego POST z danymi analitycznymi przy zakończeniu spotkania (JSON).
meta_bbb-anonymize-chat Anonimizuj nadawców czatu w nagraniach (tylko uczestnicy).
meta_bbb-anonymize-chat-moderators Anonimizuj nadawców czatu w nagraniach (łącznie z moderatorami).

Oprócz parametrów meta_* obsługiwane są również parametry plugin_*. Są one przetwarzane jako metadane wtyczki i mogą zastępować symbole zastępcze w adresach URL manifestu wtyczki. Undocumented

Przykładowe żądanie

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

Przykładowa odpowiedź

<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>

Jeśli spotkanie o tym samym ID już istnieje, odpowiedź zawiera ostrzeżenie o duplikacie:

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

Przesyłanie prezentacji przez treść POST

Prezentacje można przesłać jako treść XML wraz z żądaniem 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>

Atrybuty dla każdego elementu <document>:

Atrybut Typ Domyślnie Opis
url String URL pliku zewnętrznego.
filename String Pomaga w wykrywaniu typu pliku, gdy URL nie ma rozszerzenia.
name String Nazwa dla dokumentów osadzonych w Base64.
downloadable Boolean false Pozwól użytkownikom pobierać prezentację.
removable Boolean true Pozwól użytkownikom usuwać prezentację.
current Boolean Ta prezentacja jest ładowana jako pierwsza.

Gdy dostarczono wiele dokumentów, pierwszy z nich jest ładowany w kliencie, a pozostałe są konwertowane w tle.

Uwagi bbbserver.de

Dodatkowy parametr

Parametr Typ Domyślnie Opis
deactivateBbbserverDefaultChatTexts Boolean false Gdy ustawione na false (domyślnie), bbbserver.de automatycznie wstawia teksty czatu (numery połączeń telefonicznych, informację o hostingu). Twoje własne teksty welcome i moderatorOnlyMessage są dołączane po nich. Ustaw na true, aby pominąć teksty bbbserver.de (white-labeling).

Rezerwacja pojemności

W bbbserver.de parametry maxParticipants i duration mają szczególne znaczenie i zachowują się inaczej niż w standardowym BigBlueButton.

Podczas tworzenia spotkania bbbserver.de rezerwuje pojemność sprzętową:

  • Określona liczba uczestników jest gwarantowana i rezerwowana na serwerze na określony czas.
  • Zarezerwowana pojemność jest odejmowana od wykupionego limitu jednoczesnych połączeń.
  • Jeśli nie określono inaczej, obowiązują wartości domyślne: 5 uczestników i 60 minut (konfigurowalne w panelu administracyjnym w sekcji „Customer Settings → IntegrationAPI”).
  • Po upływie czasu trwania spotkanie nadal działa, ale pojemność nie jest już zarezerwowana. bbbserver.de może automatycznie zakończyć spotkanie, jeśli nowe spotkanie będzie wymagało tej pojemności.
  • Parametr duration nie kończy spotkań. W przeciwieństwie do standardowego BBB musisz wysłać wywołanie API end, aby zakończyć spotkanie po określonym czasie.

Od BBB 3.0 parametry attendeePW i moderatorPW są przestarzałe. Zamiast nich używaj parametru role w punkcie końcowym join do przypisywania ról.

Najczęściej zadawane pytania

Serwer zwraca dane istniejącego spotkania zamiast tworzyć nowe. Odpowiedź zawiera klucz komunikatu duplicateWarning wskazujący ten stan.

Nie. Od BBB 3.0 te hasła są przestarzałe i generowane automatycznie. Używaj parametru role w punkcie końcowym join do przypisywania ról uczestnika lub moderatora.

Wyślij żądanie POST z treścią XML zawierającą element modules/module z wpisami dokumentów. Każdy dokument może odwoływać się do zewnętrznego URL lub zawierać dane pliku zakodowane w Base64.

meta_endCallbackUrl to standardowy parametr meta, który może być propagowany do klienta i metadanych nagrania. meetingEndedURL to nieudokumentowane wywołanie zwrotne po stronie serwera, które pozostaje wewnętrzne i nie jest ujawniane klientom.

Gdy tworzysz spotkanie, bbbserver.de rezerwuje pojemność sprzętową na podstawie wartości maxParticipants i duration. Zarezerwowane sloty są odejmowane od limitu jednoczesnych połączeń. Po upływie czasu spotkanie nadal trwa, ale nie jest już chronione przed zakończeniem, jeśli pojemność będzie potrzebna gdzie indziej.

Tak, ustawiając allowOverrideClientSettingsOnCreateCall na true i przekazując clientSettingsOverride JSON w treści POST. Domyślnie jest to wyłączone ze względów bezpieczeństwa, ponieważ treść POST nie jest objęta checksum.