Bölüm 21

İpuçları, En İyi Uygulamalar ve Gizli Özellikler

Bu bölüm, BigBlueButton API ile entegrasyon için daha az bilinen API özelliklerini, güvenlik önerilerini ve kanıtlanmış en iyi uygulamaları bir araya getirir. Bu ayrıntıların çoğu resmî kaynaklarda yalnızca kısmen belgelenmiştir ve kaynak kodu analizi ile topluluk araştırmalarıyla doğrulanmıştır.

Gizli Misafir İlkesi Değeri

guestPolicy parametresi için iyi bilinen üç değere ek olarak, nadiren belgelenen ancak karma izleyici senaryoları için oldukça faydalı olan dördüncü bir değer vardır.

Değer Davranış
ALWAYS_ACCEPT Tüm kullanıcılar onay olmadan hemen katılır.
ALWAYS_DENY Toplantıya yalnızca moderatörler katılabilir.
ASK_MODERATOR Misafirler, bir moderatör onları onaylayana kadar lobide bekler.
ALWAYS_ACCEPT_AUTH Kimliği doğrulanmış kullanıcılar doğrudan katılır. Yalnızca kimliği doğrulanmamış misafirler moderatör onayı gerektirir.

ALWAYS_ACCEPT_AUTH ilkesi, bir LMS'den gelen kayıtlı kullanıcıların beklemeden katılması, ancak harici misafirlerin yine de bir moderatör tarafından onaylanması gereken durumlar için idealdir.

meetingEndedURL ile Sunucu Tarafı Callback

meetingEndedURL parametresi, yaygın olarak kullanılan meta_endCallbackUrl'den önemli yönlerden farklı olan sunucu taraflı bir geri çağrı sağlar:

  • İstemciye gösterilmez ve kayıtlarda saklanmaz.
  • Scalelite gibi sistemler tarafından dahili olarak kullanılır.
  • Geri çağrı URL'sinin gizli kalması gereken sunucu taraflı entegrasyonlar için çok uygundur.
create?meetingID=replace-with-meeting-id&meetingEndedURL=https://api-guide.bbbserver.com/callbacks/internal&checksum=replace-with-checksum

Breakout Room Yakalama Parametreleri

Standart breakout room parametrelerinin ötesinde, BigBlueButton breakout room'lardan ana toplantıya içerik geri aktarmak için ek seçenekleri destekler.

Parametre Tür Açıklama
breakoutRoomsCaptureSlides Boolean Breakout room'lardaki slaytları ana toplantıya aktar.
breakoutRoomsCaptureNotes Boolean Breakout room'lardaki paylaşılan notları ana toplantıya aktar.
breakoutRoomsCaptureNotesFilename String Yakalanan not dosyası için özel dosya adı.

Açıklama ve Markalama Parametreleri

lockSettingsHideViewersAnnotation parametresi, diğer izleyiciler tarafından yapılan beyaz tahta açıklamalarını gizler; böylece her katılımcı yalnızca kendi açıklamalarını ve sunucunun açıklamalarını görür.

create?meetingID=replace-with-meeting-id&lockSettingsHideViewersAnnotation=true&checksum=replace-with-checksum

copyright parametresi, BBB istemcisinde özel bir telif hakkı metni ayarlar; bu, white-label kurulumlar için faydalı olabilir:

create?meetingID=replace-with-meeting-id&copyright=Example+Organization&checksum=replace-with-checksum

logo parametresi yalnızca sunucu yapılandırma dosyası /etc/bigbluebutton/bbb-web.properties içinde displayBrandingArea=true ayarlanmışsa çalışır.

Güvenlik için En İyi Uygulamalar

Join URL'lerine Her Zaman createTime Dahil Edin

join URL'nizde her zaman create yanıtındaki createTime değerini ekleyin. Bu, aynı meeting ID ile yeni bir toplantı oluşturulduğunda eski join bağlantılarının yeniden kullanılmasını önler.

join?meetingID=replace-with-meeting-id&fullName=Max&role=VIEWER&createTime=1715261728123&checksum=replace-with-checksum

POST İstekleri için Checksum Hesaplama

Yaygın bir hata: checksum, POST istekleri için bile her zaman yalnızca URL sorgu dizesinden hesaplanır. İstek gövdesi (XML, JSON) checksum hesaplamasına asla dahil edilmez.

Checksum = SHA256("create" + "meetingID=replace-with-meeting-id&name=Demo" + "replace-with-secret")

POST gövdesi (ör. sunum XML) ayrı olarak gönderilir ancak hashlenmez.

Geçmişteki bir güvenlik açığı (CVE GHSA-4m48-49h7-f3c4), geçerli bir join URL'sine sahip saldırganların imzalı join bağlantılarına ek parametreler enjekte etmesine izin veriyordu. İmzalı API URL'leri oluşturmadan önce tüm parametreleri her zaman sunucu tarafında doğrulayın ve temizleyin.

BBB 3.0 Geriye Dönük Uyumsuz Değişiklikler

BigBlueButton 3.0, API entegrasyonlarını etkileyen birkaç geriye dönük uyumsuz değişiklik sunar. Yükseltme yaparken aşağıdaki tabloyu dikkatle inceleyin:

Değişiklik Ayrıntılar
passwordrole join çağrısı artık parolalar yerine role=MODERATOR veya role=VIEWER kullanıyor.
POST, /join için kaldırıldı GETjoin çağrıları için yalnızca istekleri kabul edilir.
Content-Type gerekli Tüm POST istekleri için belirtilmelidir.
Content-Types için kabul edilen /create application/x-www-form-urlencoded, multipart/form-data, application/xml, text/xml
Kaldırılan parametreler breakoutRoomsEnabled, learningDashboardEnabled, virtualBackgroundsDisabled parametrelerinin yerine disabledFeatures parametresi getirilmiştir.

Kullanımdan Kaldırılmış Endpoint'ler

Aşağıdaki endpoint'ler kullanımdan kaldırılmıştır ve yeni entegrasyonlarda kullanılmamalıdır:

Uç Nokta Durum Yerine Kullanılacak
getDefaultConfigXML BBB 2.4 tarihinden beri kullanımdan kaldırıldı, BBB 3.0 içinde kaldırıldı. clientSettingsOverride
setConfigXML BBB 2.4 tarihinden beri kullanımdan kaldırıldı, BBB 3.0 içinde kaldırıldı. clientSettingsOverride

Plugin Manifest Birleştirme Davranışı

Bir toplantı oluşturulduğunda üç kaynaktan gelen plugin manifestleri birleştirilir (üzerine yazılmaz):

  1. Sunucu yapılandırması
  2. create çağrısındaki pluginManifests parametresi
  3. pluginManifestsFetchUrl parametresi

Yinelenenler otomatik olarak kaldırılır. Bu, birden fazla seviyede esnek plugin yapılandırmasına olanak tanır.

Önemli Sunucu Yapılandırma Seçenekleri

bigbluebutton.properties içindeki aşağıdaki ayarlar API üzerinden kontrol edilemez, ancak API davranışını doğrudan etkiler:

Özellik Varsayılan Açıklama
supportedChecksumAlgorithms sha1,sha256,sha384,sha512 API kimlik doğrulaması için desteklenen checksum algoritmaları.
maxUserConcurrentAccesses 3 Kullanıcı başına eşzamanlı maksimum oturum sayısı (external ID'ye göre).
allowOverrideClientSettingsOnCreateCall false create gövdesindeki clientSettingsOverride parametresini etkinleştirir.
allowRevealOfBBBVersion false API kök yanıtında BBB sürümünü gösterir.
allowFetchAllRecordings true Meeting ID filtresi olmadan getRecordings kullanımına izin verir.
maxFileSizeUpload 30000000 Presentation yüklemeleri için maksimum dosya boyutu (30 MB).
defaultHttpSessionTimeout 14400 Saniye cinsinden HTTP oturum zaman aşımı (4 saat).
sessionsCleanupDelayInMinutes 60 Toplantı sona erdikten sonra oturumlar bu kadar dakika boyunca etkin kalır.
fetchUrlSupportedProtocols https URL getirme için izin verilen protokoller (ör. presentation indirmeleri).

Medya Köprüsü Yapılandırması

BigBlueButton 3.0, alternatif bir medya köprüsü olarak LiveKit sunar. Aşağıdaki create parametreleri hangi köprünün kullanılacağını kontrol eder:

Parametre Olası Değerler Varsayılan
cameraBridge bbb-webrtc-sfu, livekit bbb-webrtc-sfu
screenShareBridge bbb-webrtc-sfu, livekit bbb-webrtc-sfu
audioBridge bbb-webrtc-sfu, livekit, freeswitch freeswitch

Presentation Dönüştürme Zaman Aşımı

BBB 3.0 ile başlayarak, sunucu parametresi maxPageConversionTime (varsayılan: 60 saniye) slayt başına dönüştürme süresini sınırlar. Çok sayıda sayfa veya ağır grafik içeren karmaşık sunumlar bu zaman aşımına takılabilir ve slaytların dönüştürülmesi başarısız olabilir.

Presentation'larınız dönüştürme sırasında sık sık zaman aşımına uğruyorsa, yüklemeden önce onları daha küçük dosyalara bölmeyi veya karmaşık slaytları sadeleştirmeyi düşünün.

Sıkça Sorulan Sorular

guestPolicy parametresi için daha az bilinen dördüncü bir değerdir. Kimliği doğrulanmış kullanıcılar hemen katılırken, kimliği doğrulanmamış misafirler moderatör onayını beklemek zorundadır. Bu, LMS kullanıcılarının doğrudan girmesi, ancak dış ziyaretçilerin denetlenmesi gerektiğinde faydalıdır.

meetingEndedURL parametresi, istemcilere asla gösterilmeyen ve kayıtlarda saklanmayan sunucu taraflı bir callback'tir. Callback URL'sinin özel kalması gereken, örneğin Scalelite kurulumları gibi dahili entegrasyonlar için tasarlanmıştır.

Hayır. Checksum her zaman yalnızca URL sorgu dizesinden hesaplanır. POST gövdesi (sunum XML gibi) ayrı gönderilir ve hash'in parçası değildir. Bu, API'ye yeni başlayan geliştiriciler için yaygın bir hata kaynağıdır.

BigBlueButton 3.0 içinde, password çağrısı için join parametresi role parametresiyle değiştirilmiştir. Artık katılımcı veya moderatör parolası yerine role=MODERATOR ya da role=VIEWER geçirirsiniz.

createTime yanıtındaki create değerini eklemek, aynı meeting ID ile oluşturulan yeni bir toplantı için eski join bağlantılarının yeniden kullanılmasını engeller. Bu, eski URL'ler üzerinden yetkisiz erişimi önleyen önemli bir güvenlik mekanizmasıdır.

Her iki uç nokta da BBB 2.4 sürümünde kullanımdan kaldırıldı ve BBB 3.0 sürümünde kaldırıldı. Bunların yerine, toplantı başına istemci davranışını özelleştirmek için daha esnek bir yol sunan clientSettingsOverride çağrısındaki create parametresi getirildi.