İ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.
Scalelitegibi 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©right=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 |
|---|---|
password → role | 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):
- Sunucu yapılandırması
createçağrısındakipluginManifestsparametresipluginManifestsFetchUrlparametresi
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.