Personalizzazioni

Registrazione

Elimina i dati grezzi dalle registrazioni pubblicate

Al termine di una riunione, il server BigBlueButton archivia i dati della riunione (indicati come dati "grezzi").

La conservazione dei dati grezzi consente di ricostruire una registrazione se è stata eliminata accidentalmente da un utente; Tuttavia, il compromesso è che l'archiviazione dei dati grezzi consumerà più spazio su disco nel tempo.

Puoi fare in modo che il server BigBlueButton rimuova automaticamente i dati grezzi per una registrazione dopo 14 giorni dalla sua pubblicazione modificando il cron job di BigBlueButton, situato in /etc/cron.daily/bigbluebutton e rimuovendo il commento dalla riga seguente

#remove_raw_of_published_recordings

La durata predefinita (giorni)

published_days=14

è definito vicino alla parte superiore del cron job di BigBlueButton.

Elimina le registrazioni più vecchie di N giorni

Per eliminare le registrazioni più vecchie di 14 giorni, creare il file /etc/cron.daily/bbb-recording-cleanup con il contenuto

#!/bin/bash

MAXAGE=14

LOGFILE=/var/log/bigbluebutton/bbb-recording-cleanup.log

shopt -s nullglob

NOW=$(date +%s)

echo "$(date --rfc-3339=seconds) Deleting recordings older than ${MAXAGE} days" >>"${LOGFILE}"

for donefile in /var/bigbluebutton/recording/status/published/*-presentation.done ; do
        MTIME=$(stat -c %Y "${donefile}")
        # Check the age of the recording
        if [ $(( ( $NOW - $MTIME ) / 86400 )) -gt $MAXAGE ]; then
                MEETING_ID=$(basename "${donefile}")
                MEETING_ID=${MEETING_ID%-presentation.done}
                echo "${MEETING_ID}" >> "${LOGFILE}"

                bbb-record --delete "${MEETING_ID}" >>"${LOGFILE}"
        fi
done

for eventsfile in /var/bigbluebutton/recording/raw/*/events.xml ; do
        MTIME=$(stat -c %Y "${eventsfile}")
        # Check the age of the recording
        if [ $(( ( $NOW - $MTIME ) / 86400 )) -gt $MAXAGE ]; then
                MEETING_ID="${eventsfile%/events.xml}"
                MEETING_ID="${MEETING_ID##*/}"
                echo "${MEETING_ID}" >> "${LOGFILE}"

                bbb-record --delete "${MEETING_ID}" >>"${LOGFILE}"
        fi
done

Modificare il valore di  MAXAGE per specificare per quanti giorni conservare le presentation registrazioni di formato sul server BigBlueButton. Dopo aver creato il file, rendilo eseguibile.

$ chmod +x /etc/cron.daily/bbb-recording-cleanup

Sposta le registrazioni in una partizione diversa

La maggior parte dell'archiviazione di BigBlueButton si trova nella directory  /var/bigbluebutton (qui è dove sono archiviate tutte le registrazioni). Se vuoi spostare questa directory in un'altra partizione, ad esempio /mnt/data, procedi come segue:

$ sudo bbb-conf --stop
$ mv /var/bigbluebutton /mnt/data
$ ln -s /mnt/data/bigbluebutton /var/bigbluebutton
$ sudo bbb-conf --start

Migrare le registrazioni da una versione precedente

A seconda della versione precedente potrebbero esserci alcune differenze nei metadati generati. Per risolvere questo problema sarà necessario eseguire gli script corrispondenti per l'aggiornamento delle registrazioni migrate.

$ cd /usr/local/bigbluebutton/core/scripts

Dalla versione 0.9

$ sudo ./bbb-0.9-beta-recording-update
$ sudo ./bbb-0.9-recording-size

Dalla versione 1.0

$ sudo ./bbb-1.1-meeting-tag

Se per qualche motivo gli script devono essere eseguiti più di una volta, utilizzare il modificatore –force.

$ sudo ./bbb-x.x-script --force

Abilita la riproduzione delle registrazioni su iOS

Il formato  presentation  codifica il video condiviso durante la sessione (webcam e condivisione dello schermo) come .webmfile (VP8); tuttavia, i dispositivi iOS supportano solo la riproduzione di .mp4file (h.264). Per abilitare la riproduzione del presentation sui dispositivi iOS, modificare /usr/local/bigbluebutton/core/scripts/presentation.yml e rimuovere il commento dalla voce per mp4.

video_formats:
  - webm
  - mp4

Questa modifica farà sì che BigBlueButton generi un file  .mp4 aggiuntivo per i componenti video (webcam e condivisione dello schermo) che è stato condiviso durante la sessione. Questa modifica si applica solo alle nuove registrazioni. Se desideri che questa modifica si applichi a qualsiasi registrazione esistente, devi utilizzare il comando bbb-record per ricostruirle .

Questa modifica aumenterà il tempo di elaborazione e la dimensione di archiviazione delle registrazioni con file video poiché ora genererà due video: .webme .mp4 per la webcam e i video di condivisione dello schermo.

Registra sempre ogni riunione

Per impostazione predefinita, il server BigBlueButton produrrà una registrazione quando (1) la riunione è stata creata con record=true nella chiamata API di creazione e (2) un moderatore ha fatto clic sul pulsante Avvia / Interrompi registrazione (almeno una volta) durante la riunione.

Tuttavia, puoi configurare un server BigBlueButton per registrare ogni riunione, modificare /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties e cambiare

# Start recording when first user joins the meeting.
# For backward compatibility with 0.81 where whole meeting
# is recorded.
autoStartRecording=false

# Allow the user to start/stop recording.
allowStartStopRecording=true

per

# Start recording when first user joins the meeting.
# For backward compatibility with 0.81 where whole meeting
# is recorded.
autoStartRecording=true

# Allow the user to start/stop recording.
allowStartStopRecording=false

Per applicare le modifiche, riavvia il server BigBlueButton utilizzando il comando:

$ sudo bbb-conf --restart

Per registrare sempre ogni riunione , aggiungi quanto segue a apply-config.sh.

echo "  - Prevent viewers from sharing webcams"
sed -i 's/autoStartRecording=.*/autoStartRecording=true/g' /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties
sed -i 's/allowStartStopRecording=.*/allowStartStopRecording=false/g' /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties

Trasferisci registrazioni

Quando si imposta BigBlueButton su un server, potrebbe essere necessario trasferire le registrazioni da un server meno recente. Se il tuo vecchio server ha tutti i file di registrazione originali nella directory /var/bigbluebutton/recording/raw puoi trasferire questi file sul nuovo server usando rsync.

Ad esempio, l'esecuzione di questo comando rsync sul nuovo server copierà il file di registrazione dal vecchio server.

$ rsync -rP root@old-bbb-server.example.com:/var/bigbluebutton/recording/raw/ /var/bigbluebutton/recording/raw/

In alternativa, puoi creare un archivio tar della directory /var/bigbluebutton/recording/raw e copiarlo con scp, oppure utilizzare un montaggio NFS condiviso.

Dopo aver copiato i file (tramite rsync o tar-and-copy), sarà quindi necessario correggere le autorizzazioni sul nuovo server utilizzando il seguente comando chown:

$ chown -R bigbluebutton:bigbluebutton /var/bigbluebutton/recording/raw

Dopo il trasferimento delle registrazioni, visualizzare un campione delle registrazioni per assicurarsi che vengano riprodotte correttamente (dovrebbero).

Rielabora le registrazioni non elaborate

Se hai trasferito il contenuto grezzo, puoi anche rielaborare le registrazioni utilizzando gli script più recenti per ricostruirle con il formato di riproduzione più recente (incluse eventuali correzioni di bug apportate nell'ultima versione). Nota: la rielaborazione può richiedere molto tempo (circa dal 25% al ​​50% della lunghezza originale delle registrazioni) e utilizzerà molta CPU sul tuo nuovo server BigBlueButton mentre aspetti che le registrazioni vengano elaborate.

Se sei interessato a rielaborare le registrazioni più vecchie, prova prima con una o due delle registrazioni più grandi. Se non ci sono differenze percettibili, non è necessario rielaborare gli altri.

Per avviare la rielaborazione di una singola registrazione, puoi farlo con:

$ sudo bbb-record --rebuild <recording_id>

dove <recording_id>è il nome del file della registrazione raw /var/bigbluebutton/recording/raw, ad esempio

$ sudo bbb-record --rebuild f4ae6fd61e2e95940e2e5a8a246569674c63cb4a-1517234271176

Se il tuo vecchio server ha tutti i file di registrazione originali nella directory /var/bigbluebutton/recording/raw , puoi trasferire questi file sul nuovo server, ad esempio con rsync:

Se desideri ricostruire tutte le tue registrazioni, inserisci il comando:

Avviso: se si dispone di un numero elevato di registrazioni, verranno ricostruite tutte e non verranno elaborate nuove registrazioni fino al termine del processo di ricostruzione. Non farlo a meno che questo non sia il tuo intento. Non eseguire questo comando per risolvere gli errori di registrazione, vedere invece Risoluzione dei problemi di registrazione .

$ sudo bbb-record --rebuildall

Il server BigBlueButton esaminerà automaticamente le registrazioni, le ricostruirà e le pubblicherà. Puoi usare il comando bbb-record --watch per vedere lo stato di avanzamento.

Trasferisci le registrazioni pubblicate da un altro server

Se si desidera eseguire la quantità minima di lavoro per eseguire rapidamente le registrazioni esistenti su un vecchio server BigBlueButton, trasferire il contenuto delle directory /var/bigbluebutton/published e /var/bigbluebutton/unpublished. Inoltre, per preservare il backup del supporto raw originale, è necessario trasferire il contenuto della directory /var/bigbluebutton/recording/raw.

Di seguito è riportato un esempio di serie di comandi rsync che consentono di eseguire questa operazione; eseguirli sul nuovo server per copiare i file dal vecchio server.

$ rsync -rP root@old-bbb-server:/var/bigbluebutton/published/ /var/bigbluebutton/published/
$ rsync -rP root@old-bbb-server:/var/bigbluebutton/unpublished/ /var/bigbluebutton/unpublished/
$ rsync -rP root@old-bbb-server:/var/bigbluebutton/recording/raw/ /var/bigbluebutton/recording/raw/

Possono essere utilizzati anche altri metodi per trasferire questi file; per esempio, potresti creare un archivio tar di ciascuna directory e trasferirlo tramite scp, o usare un montaggio NFS condiviso.

Dovrai quindi correggere i permessi sulle registrazioni appena copiate:

$ chown -R bigbluebutton:bigbluebutton /var/bigbluebutton/published /var/bigbluebutton/unpublished /var/bigbluebutton/recording/raw

Se le registrazioni sono state copiate da un server con un nome host diverso, sarà necessario eseguire il seguente comando per correggere i nomi host memorizzati. (Se non lo fai, restituirà un errore 404 o tenterà di caricare le registrazioni dal vecchio server invece che dal nuovo server!)

Nota che questo comando riavvierà il server BigBlueButton, interrompendo tutte le sessioni live.

$ sudo bbb-conf --setip <ip_address_or_hostname>

Per esempio,

$ sudo bbb-conf --setip bigbluebutton.example.com

Le registrazioni trasferite dovrebbero essere immediatamente visibili tramite l'API delle registrazioni BigBlueButton.

video

Riduci la larghezza di banda dalle webcam

Puoi utilizzare un utilizzo della larghezza di banda sul tuo server BigBlueButton utilizzando uno strumento come bmon( sudo apt-get install bmon). È possibile modificare le impostazioni della larghezza di banda massima per ciascuna opzione della webcam (bassa, media, alta, alta definizione) modificando /usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml e modificando le voci per

    cameraProfiles:
    - id: low
      name: Low quality
      default: false
      bitrate: 100
    - id: medium
      name: Medium quality
      default: true
      bitrate: 200
    - id: high
      name: High quality
      default: false
      bitrate: 500
    - id: hd
      name: High definition
      default: false
      bitrate: 800

Le impostazioni per bitrate sono in kbit / sec (cioè 100 kbit / sec). Dopo aver modificato i valori, salvare il file, riavviare il server BigBlueButton sudo bbb-conf --restart per rendere effettive le impostazioni. L'impostazione minima consentita per WebRTC è 30 Kbit / sec.

Se si hanno sessioni in cui piace condividere molte webcam, come dieci o più, impostare il bitrate per low su 50 e medium su 100 aiuterà a ridurre la larghezza di banda complessiva sul server. Quando molte webcam sono condivise, le dimensioni delle webcam diventano così piccole che la riduzione bitrate non sarà evidente durante le sessioni live.

Disattiva le webcam

È possibile disabilitare le webcam modificando il file /usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml e impostando enableVideo su false. Per modificare questo file, esegui i seguenti comandi come root:

TARGET=/usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml
yq w -i $TARGET public.kurento.enableVideo false
chown meteor:meteor $TARGET

Riavvia BigBlueButton ( sudo bbb-conf --restart) per applicare la modifica.

Disabilita la condivisione dello schermo

È possibile disabilitare la condivisione dello schermo modificando il file /usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml e impostando enableScreensharing su false. Per modificare questo file, esegui i seguenti comandi come root:

TARGET=/usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml
yq w -i $TARGET public.kurento.enableScreensharing false
chown meteor:meteor $TARGET

Riavvia BigBlueButton ( sudo bbb-conf --restart) per applicare la modifica.

Riduci la larghezza di banda per le webcam

Se ti aspetti che gli utenti condividano molte webcam, per ridurre la larghezza di banda per le webcam , aggiungi quanto segue a apply-config.sh.

echo "  - Setting camera defaults"
yq w -i $HTML5_CONFIG 'public.kurento.cameraProfiles.(id==low).bitrate' 50
yq w -i $HTML5_CONFIG 'public.kurento.cameraProfiles.(id==medium).bitrate' 100
yq w -i $HTML5_CONFIG 'public.kurento.cameraProfiles.(id==high).bitrate' 200
yq w -i $HTML5_CONFIG 'public.kurento.cameraProfiles.(id==hd).bitrate' 300

yq w -i $HTML5_CONFIG 'public.kurento.cameraProfiles.(id==low).default' true
yq w -i $HTML5_CONFIG 'public.kurento.cameraProfiles.(id==medium).default' false
yq w -i $HTML5_CONFIG 'public.kurento.cameraProfiles.(id==high).default' false
yq w -i $HTML5_CONFIG 'public.kurento.cameraProfiles.(id==hd).default' false

Esegui tre server multimediali Kurento paralleli

[Disponibile in BigBluebutton 2.2.24 (e versioni successive di 2.2.x)]

Il server multimediale Kurento gestisce tre diversi tipi di flussi multimediali: solo ascolto, webcam e condivisione dello schermo.

L'esecuzione di tre server multimediali Kurento (KMS) paralleli, uno dedicato a ciascun tipo di flusso multimediale, dovrebbe aumentare la stabilità della gestione dei supporti poiché il carico per l'avvio / arresto dei flussi multimediali si diffonde su tre processi KMS separati. Inoltre, dovrebbe aumentare l'affidabilità della gestione dei supporti poiché un arresto anomalo (e il riavvio automatico) di un KMS non influirà sui due.

Per configurare il tuo server BigBlueButton per eseguire tre processi KMS, crea un file /etc/bigbluebutton/bbb-conf/apply-config.sh con il seguente contenuto (o aggiungilo enableMultipleKurentos al tuo file apply-config.sh esistente ).

#!/bin/bash

# Pull in the helper functions for configuring BigBlueButton
source /etc/bigbluebutton/bbb-conf/apply-lib.sh

enableMultipleKurentos

Rendi questo file eseguibile con chmod +x /etc/bigbluebutton/bbb-conf/apply-config.sh ed esegui sudo bbb-conf --restart. Tu dovresti vedere:

  - Configuring three Kurento Media Servers: one for listen only, webcam, and screeshare
Generating a 2048 bit RSA private key
....................+++
......+++
writing new private key to '/tmp/dtls-srtp-key.pem'
-----
Created symlink from /etc/systemd/system/kurento-media-server.service.wants/kurento-media-server-8888.service to /usr/lib/systemd/system/kurento-media-server-8888.service.
Created symlink from /etc/systemd/system/kurento-media-server.service.wants/kurento-media-server-8889.service to /usr/lib/systemd/system/kurento-media-server-8889.service.
Created symlink from /etc/systemd/system/kurento-media-server.service.wants/kurento-media-server-8890.service to /usr/lib/systemd/system/kurento-media-server-8890.service.

Dopo che BigBlueButton ha terminato l'avvio, dovresti vedere tre processi KMS in esecuzione utilizzando il netstat -antp | grep kurcomando.

# netstat -antp | grep kur
tcp6       0      0 :::8888                 :::*                    LISTEN      5929/kurento-media-
tcp6       0      0 :::8889                 :::*                    LISTEN      5943/kurento-media-
tcp6       0      0 :::8890                 :::*                    LISTEN      5956/kurento-media-
tcp6       0      0 127.0.0.1:8888          127.0.0.1:49132         ESTABLISHED 5929/kurento-media-
tcp6       0      0 127.0.0.1:8890          127.0.0.1:55540         ESTABLISHED 5956/kurento-media-
tcp6       0      0 127.0.0.1:8889          127.0.0.1:41000         ESTABLISHED 5943/kurento-media-

Ogni processo ha il proprio file di registro (distinto dal proprio ID processo).

# ls -alt /var/log/kurento-media-server/
total 92
-rw-rw-r--  1 kurento kurento 11965 Sep 13 17:10 2020-09-13T170908.00000.pid5929.log
-rw-rw-r--  1 kurento kurento 10823 Sep 13 17:10 2020-09-13T170908.00000.pid5943.log
-rw-rw-r--  1 kurento kurento 10823 Sep 13 17:10 2020-09-13T170908.00000.pid5956.log

Ora, se ora ti unisci a una sessione e scegli solo ascolto (il che fa sì che Kurento configuri un singolo flusso di solo ascolto su FreeSWITCH), condividi la tua webcam o condividi lo schermo, vedrai gli aggiornamenti che si verificano indipendentemente da ciascuno dei file di registro sopra ogni processo KMS gestisce la tua richiesta.

Per ripristinare l'esecuzione di un singolo server KMS (che gestisce tutti i tre corsi d'acqua Meida), modificare la linea di cui sopra in /etc/bigbluebutton/bbb-conf/apply-config.sha

disableMultipleKurentos

e di nuovo sudo bbb-conf --restart.

Audio

Disattiva l'audio di tutti gli utenti all'avvio

Se desideri disattivare l'audio di tutti gli utenti, puoi farlo modificando /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties e impostardolo come configurazione a livello di server.

# Mute the meeting on start
muteOnStart=false

Dopo aver apportato le modifiche, riavviare il server con sudo bbb-conf --restartper applicare le modifiche.

Disattiva "ora l'audio è disattivato"

È possibile rimuovere questo suono per tutti gli utenti modificando /opt/freeswitch/etc/freeswitch/autoload_configs/conference.conf.xml e spostando le righe contenenti muted-sounde unmuted-sound nella sezione commentata.

    <profile name="cdquality">
      <param name="domain" value="$${domain}"/>
      <param name="rate" value="48000"/>
      <param name="interval" value="20"/>
      <param name="energy-level" value="100"/>
      <!-- <param name="sound-prefix" value="$${sounds_dir}/en/us/callie"/> -->
      <param name="muted-sound" value="conference/conf-muted.wav"/>
      <param name="unmuted-sound" value="conference/conf-unmuted.wav"/>
      <param name="alone-sound" value="conference/conf-alone.wav"/>
<!--
      <param name="moh-sound" value="$${hold_music}"/>
      <param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
      <param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
-->
      <param name="kicked-sound" value="conference/conf-kicked.wav"/>
      <param name="locked-sound" value="conference/conf-locked.wav"/>
      <param name="is-locked-sound" value="conference/conf-is-locked.wav"/>
      <param name="is-unlocked-sound" value="conference/conf-is-unlocked.wav"/>
      <param name="pin-sound" value="conference/conf-pin.wav"/>
      <param name="bad-pin-sound" value="conference/conf-bad-pin.wav"/>
      <param name="caller-id-name" value="$${outbound_caller_name}"/>
      <param name="caller-id-number" value="$${outbound_caller_id}"/>
      <param name="comfort-noise" value="true"/>

      <!-- <param name="conference-flags" value="video-floor-only|rfc-4579|livearray-sync|auto-3d-position|minimize-video-encoding"/> -->

      <!-- <param name="video-mode" value="mux"/> -->
      <!-- <param name="video-layout-name" value="3x3"/> -->
      <!-- <param name="video-layout-name" value="group:grid"/> -->
      <!-- <param name="video-canvas-size" value="1920x1080"/> -->
      <!-- <param name="video-canvas-bgcolor" value="#333333"/> -->
      <!-- <param name="video-layout-bgcolor" value="#000000"/> -->
      <!-- <param name="video-codec-bandwidth" value="2mb"/> -->
      <!-- <param name="video-fps" value="15"/> -->

    </profile>

Abilita la musica di sottofondo quando una sola persona è in una sessione

FreeSWITCH ti consente di riprodurre musica in sottofondo quando un solo utente è nella conferenza vocale. Per abilitare la musica di sottofondo, modifica /opt/freeswitch/conf/autoload_configs/conference.conf.xml(come root) e intorno alla riga 204 vedrai la musica in attesa (moh-sound) commentata

<!--
      <param name="moh-sound" value="$${hold_music}"/>
      <param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
      <param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
-->

Togli il commento e salva questo file.

      <param name="moh-sound" value="$${hold_music}"/>
<!--
      <param name="enter-sound" value="tone_stream://%(200,0,500,600,700)"/>
      <param name="exit-sound" value="tone_stream://%(500,0,300,200,100,50,25)"/>
-->

L'installazione predefinita di BigBlueButton non viene fornita con alcun file musicale. Dovrai caricare un file musicale in formato WAV sul server e modificare un riferimento in /opt/freeswitch/conf/vars.xml.

Ad esempio, per utilizzare il file /opt/freeswitch/share/freeswitch/sounds/en/us/callie/ivr/48000/ivr-to_listen_to_moh.wav come musica d'attesa, modificare /opt/freeswitch/conf/vars.xml e cambiare la linea

  <X-PRE-PROCESS cmd="set" data="hold_music=local_stream://moh"/>

per

  <X-PRE-PROCESS cmd="set" data="hold_music=/opt/freeswitch/share/freeswitch/sounds/en/us/callie/ivr/48000/ivr-to_listen_to_moh.wav" />

e quindi riavvia BigBlueButton

$ bbb-conf --restart

e partecipare a una sessione audio. Ora dovresti ascoltare la musica in attesa se c'è un solo utente nella sessione.

Aggiungi un numero di telefono al ponte della conferenza

L'audio basato su WebRTC integrato in BigBlueButton è un audio di altissima qualità. Tuttavia, potrebbero esserci casi in cui si desidera che gli utenti siano in grado di connettersi al bridge di conferenza utilizzando un numero di telefono.

Prima di poter configurare FreeSWITCH per instradare la chiamata alla conferenza corretta, è necessario prima ottenere un numero di telefono da un provider di servizi telefonici Internet e configurare FreeSWITCH di conseguenza per ricevere le chiamate in arrivo tramite SIP (Session Initiation Protocol) da quel provider. Assicurati che il contesto sia publice che il file sia chiamato /opt/freeswitch/conf/sip_profiles/external/YOUR-PROVIDER.xml. Ecco un esempio; ovviamente, i valori di nome host e TUTTO MAIUSCOLO devono essere modificati:

<include>
  <gateway name="ANY-NAME-FOR-YOUR-PROVIDER">
    <param name="proxy" value="sip.example.net"/>
    <param name="username" value="PROVIDER-ACCOUNT"/>
    <param name="password" value="PROVIDER-PASSWORD"/>
    <param name="extension" value="EXTERNALDID"/>
    <param name="register" value="true"/>
    <param name="context" value="public"/>
  </gateway>
</include>

Per instradare la chiamata in arrivo alla corretta audioconferenza BigBlueButton, è necessario crearne una dialplan che, per FreeSWITCH, è un insieme di istruzioni che vengono eseguite quando si riceve una chiamata in arrivo. Quando un utente chiama il numero di telefono, il dialplan chiederà all'utente di inserire un numero di cinque cifre associato alla conferenza.

Per creare il dialplan, utilizza l'XML di seguito e salvalo in /opt/freeswitch/conf/dialplan/public/my_provider.xml. Sostituisci EXTERNALDID con il valore specificato come extension nel profilo SIP (come 6135551234, ma vedi sopra).

<extension name="from_my_provider">
 <condition field="destination_number" expression="^EXTERNALDID">
   <action application="answer"/>
   <action application="sleep" data="1000"/>
   <action application="play_and_get_digits" data="5 5 3 7000 # conference/conf-pin.wav ivr/ivr-that_was_an_invalid_entry.wav pin \d+"/>
   <action application="transfer" data="SEND_TO_CONFERENCE XML public"/>
 </condition>
</extension>
<extension name="check_if_conference_active">
 <condition field="${conference ${pin} list}" expression="/sofia/g" />
 <condition field="destination_number" expression="^SEND_TO_CONFERENCE$">
   <action application="set" data="bbb_authorized=true"/>
   <action application="transfer" data="${pin} XML default"/>
 </condition>
</extension>

Cambia la proprietà di questo file in freeswitch:daemon

$ chown freeswitch:daemon /opt/freeswitch/conf/dialplan/public/my_provider.xml

e quindi riavvia FreeSWITCH:

$ sudo systemctl restart freeswitch

Prova a chiamare il numero di telefono. Dovrebbe connettersi a FreeSWITCH e dovresti sentire una voce che ti chiede di inserire il numero PIN a cinque cifre per la conferenza. Tieni presente che al momento la connessione funzionerà solo se almeno un partecipante Web si è unito con il proprio microfono.

Per mostrare sempre agli utenti il ​​numero di telefono insieme al numero PIN a 5 cifre all'interno di BigBlueButton, non solo durante la selezione della partecipazione del microfono, modificare /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties e cambiare 613-555-1234 con il numero di telefono fornito dal provider di servizi telefonici Internet

#----------------------------------------------------
# Default dial access number
defaultDialAccessNumber=613-555-1234

e passare defaultWelcomeMessageFootera

defaultWelcomeMessageFooter=<br><br>To join this meeting by phone, dial:<br>  %%DIALNUM%%<br>Then enter %%CONFNUM%% as the conference PIN number.

Salva bigbluebutton.properties e riavvia nuovamente BigBlueButton. Ogni utente che si unisce a una sessione vedrà un messaggio nella chat simile a.

To join this meeting by phone, dial:
   613-555-1234
and enter 12345 as the conference PIN number.

Infine, configura le regole del firewall in modo da accettare solo le chiamate in arrivo dall'indirizzo IP del tuo provider SIP. Ad esempio, se il tuo provider SIP inoltra le chiamate in arrivo da 64.2.142.33, imposta le seguenti regole del firewall sul tuo server.

iptables -A INPUT -i eth0 -p tcp --dport 5060 -s 0.0.0.0/0 -j REJECT
iptables -A INPUT -i eth0 -p udp --dport 5060 -s 0.0.0.0/0 -j REJECT
iptables -A INPUT -i eth0 -p tcp --dport 5080 -s 0.0.0.0/0 -j REJECT
iptables -A INPUT -i eth0 -p udp --dport 5080 -s 0.0.0.0/0 -j REJECT
iptables -I INPUT  -p udp --dport 5060 -s 64.2.142.33 -j ACCEPT

Con queste regole, i bot che scansionano alla ricerca di endpoint SIP e tentano di connettersi non ti inviano spam.

Attiva il "rumore di conforto" quando nessuno sta parlando

FreeSWITCH ha la capacità di aggiungere un "rumore di conforto" "che è un leggero sibilo di sottofondo per far sapere agli utenti che sono ancora in una conferenza vocale anche quando nessuno sta parlando (altrimenti, potrebbero dimenticare di essere collegati al bridge della conferenza e dire qualcosa di non intenzionale per gli altri).

Se vuoi abilitarlo, modificare /opt/freeswitch/conf/autoload_configs/conference.conf.xml e cambiare

<param name="comfort-noise" value="false"/>

in

<param name="comfort-noise" value="true"/>

Quindi riavvia BigBlueButton

$ sudo bbb-conf --restart

Collega BigBlueButton a un server FreeSWITCH esterno

BigBlueButton raggruppa in FreeSWITCH, ma puoi configurare BigBlueButton per utilizzare un server FreeSWITCH esterno.

Innanzitutto, modifica /usr/share/red5/webapps/bigbluebutton/WEB-INF/bigbluebutton.properties

freeswitch.esl.host=127.0.0.1
freeswitch.esl.port=8021
freeswitch.esl.password=ClueCon

Cambia freeswitch.esl.host in modo che punti al tuo indirizzo IP esterno di FreeSWITCH. Cambia l'impostazione predefinita freeswitch.esl.password con la password ESL per il tuo server.

Puoi utilizzare http://strongpasswordgenerator.com/ per generare la password.

Nel tuo server FreeSWITCH esterno, modifica /opt/freeswitch/conf/autoload_configs/event_socket.conf.xml.

<configuration name="event_socket.conf" description="Socket Client">
  <settings>
    <param name="nat-map" value="false"/>
    <param name="listen-ip" value="127.0.0.1"/>
    <param name="listen-port" value="8021"/>
    <param name="password" value="ClueCon"/>
    <!-- param name="apply-inbound-acl" value="localnet.auto"/ -->
  </settings>
</configuration>

Cambia il listen-ip del tuo server FreeSWITCH esterno e cambia anche  password in modo che sia lo stesso di freeswitch.esl.password.

modificare /usr/share/red5/webapps/sip/WEB-INF/bigbluebutton-sip.properties

bbb.sip.app.ip=127.0.0.1
bbb.sip.app.port=5070

sip.server.username=bbbuser
sip.server.password=secret

freeswitch.ip=127.0.0.1
freeswitch.port=5060

Cambiare bbb.sip.app.ip per il tuo ip del server BigBlueButton.

Passa sip.server.password a qualcos'altro.

Cambiare freeswitch.ip per il tuo ip FreeSWITCH esterno.

Nel tuo server FreeSWITCH esterno.

modificare /opt/freeswitch/conf/directory/default/bbbuser.xml

  <user id="bbbuser">
    <params>
      <!-- omit password for authless registration -->
      <param name="password" value="secret"/>
      <!-- What this user is allowed to access -->
      <!--<param name="http-allowed-api" value="jsapi,voicemail,status"/> -->
    </params>

Modificare password in modo che corrisponda alla password impostata sip.server.password.

Presentazione

Cambia la presentazione predefinita

Quando inizia una nuova riunione, BigBlueButton visualizza una presentazione predefinita. Il file per la presentazione predefinita si trova in /var/www/bigbluebutton-default/default.pdf. Puoi sostituire il contenuto di questo file con la tua presentazione. Ogni volta che viene creata una riunione, BigBlueButton caricherà, convertirà e visualizzerà automaticamente questa presentazione per tutti gli utenti.

In alternativa, puoi cambiare l'impostazione predefinita globale modificando /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.propertiese cambiando l'URL  beans.presentationService.defaultUploadedPresentation.

# Default Uploaded presentation file
beans.presentationService.defaultUploadedPresentation=${bigbluebutton.web.serverURL}/default.pdf

Dovrai riavviare BigBlueButton dopo la modifica con sudo bbb-conf --restart.

Se desideri specificare la presentazione predefinita per una data riunione, puoi anche passare un URL alla presentazione come parte della chiamata API per la creazione della riunione.

Aumenta il limite di 200 pagine per i caricamenti

BigBlueButton, per impostazione predefinita, limita i caricamenti a 200 pagine. Per aumentare questo valore, apri /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.propertiese modifica il valore maxNumPages:

#----------------------------------------------------
# Maximum number of pages allowed for an uploaded presentation (default 200).
maxNumPages=200

Dopo aver salvato le modifiche in bigbluebutton.properties, riavvia il server BigBlueButton con

$ sudo bbb-conf --restart

Aumenta la dimensione del file per una presentazione caricata

La dimensione massima predefinita di caricamento del file per una presentazione caricata è 30 MB.

Il primo passaggio consiste nel modificare la limitazione delle dimensioni in nginx. Modifica /etc/bigbluebutton/nginx/web.nginxe modifica i valori per client_max_body_size.

       location ~ "^\/bigbluebutton\/presentation\/(?<prestoken>[a-zA-Z0-9_-]+)/upload$" {
          ....
          # Allow 30M uploaded presentation document.
          client_max_body_size       30m;
          ....
       }

       location = /bigbluebutton/presentation/checkPresentation {
          ....
          # Allow 30M uploaded presentation document.
          client_max_body_size       30m;
          ....
       }

Quindi modifica la restrizione in bbb-web. Modifica /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties e modifica il valore maxFileSizeUpload.

# Maximum file size for an uploaded presentation (default 30MB).
maxFileSizeUpload=30000000

Le prossime modifiche riguardano i controlli lato client e dipende dai client che hai utilizzato. Per aumentare la dimensione per il client Flash, modificare /var/www/bigbluebutton/client/conf/config.xml e modificare maxFileSize il nuovo valore (nota: se si dispone dell'ambiente di sviluppo è necessario modificare ~/dev/bigbluebutton/bigbluebutton-client/src/conf/config.xml e quindi ricostruire il client). Per aumentare le dimensioni per il client HTML5, modifica /usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml e modifica uploadSizeMax.

Riavvia BigBlueButton con sudo bbb-conf --restart. Ora dovresti essere in grado di caricare presentazioni più grandi entro il nuovo limite.

Frontend

Rimuovi le demo API

Se in precedenza hai installato le demo API per il test (che consente a chiunque di utilizzare il tuo server BigBlueButton senza autenticazione) e desideri rimuoverle ora, inserisci il comando:

$ sudo apt-get purge bbb-demo

Modifica la pagina di destinazione predefinita

La pagina di destinazione HTML predefinita si trova in

/var/www/bigbluebutton-default/index.html

Modifica questa pagina per creare la tua pagina di destinazione (e conservane una copia di backup poiché verrà sovrascritta durante gli aggiornamenti del pacchetto bbb-conf).

Usa il front-end Greenlight

BigBlueButton viene fornito con Greenlight, un'applicazione front-end scritta in Ruby on Rails che rende facile per gli utenti creare riunioni, invitare altri, avviare riunioni e gestire le registrazioni.

semaforo verde

Per ulteriori informazioni, vedere Installazione di Greenlight .

Networking

Proteggi il tuo sistema: limita l'accesso a porte specifiche

La configurazione del firewall IP è essenziale per proteggere l'installazione . Per impostazione predefinita, molti servizi sono raggiungibili attraverso la rete. Ciò consente a BigBlueButton di operare in cluster e reti di data center privati, ma se il server BigBlueButton è disponibile pubblicamente su Internet, è necessario eseguire un firewall per ridurre l'accesso alle porte minime richieste.

Se il tuo server è già protetto da un firewall, ad esempio in esecuzione all'interno della tua azienda o su un'istanza EC2 dietro un Amazon Security Group, e il firewall sta applicando le restrizioni di cui sopra, non è necessario un secondo firewall e puoi saltare questa sezione.

BigBlueButton viene fornito con un set di regole basato su UFW . Può essere applicato al riavvio (vedi Applica automaticamente le modifiche alla configurazione al riavvio ) e limita l'accesso solo alle seguenti porte necessarie:

  • Porta TCP / IP 22 per SSH
  • Porta TCP / IP 80 per HTTP
  • Porta TCP / IP 443 per HTTPS
  • Porte UDP da 16384 a 32768 per connessioni multimediali

Nota: se hai configurato sshd (il demone OpenSSH) per utilizzare una porta diversa dalla 22, prima di eseguire i comandi seguenti, ufw allow OpenSSHpassa a ufw allow <port>/tcpdove si <port>trova la porta utilizzata da sshd. Puoi vedere la porta di ascolto per l' sshdutilizzo del comando # netstat -antp | grep sshd. Qui il comando mostra l' sshdascolto della porta standard 22.

$ netstat -antp | grep sshd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1739/sshd
tcp6       0      0 :::22                   :::*                    LISTEN      1739/sshd

Per limitare l'accesso esterno alle porte minime necessarie per BigBlueButton (con il client HTML5 impostato come predefinito ), utilizzare i seguenti comandi:

$ apt-get install -y ufw
ufw allow OpenSSH
ufw allow "Nginx Full"
ufw allow 16384:32768/udp
ufw --force enable

Queste ufwregole del firewall verranno riapplicate automaticamente al riavvio del server.

Oltre al firewall basato su IP, è possibile esplorare firewall per applicazioni web come ModSecurity che forniscono ulteriore sicurezza controllando le richieste a vari componenti basati sul web.

Configurazione del firewall

Per configurare un firewall per il tuo server BigBlueButton (consigliato), aggiungi enableUFWRulesa apply-config.sh, come in

enableUFWRules

Con enableUFWRule aggiunto a apply-config.sh, ogni volta che fai bbb-confcon --restarto --setip, vedrai il seguente output

sudo bbb-conf --restart

Restarting BigBlueButton ..
Stopping BigBlueButton

Applying updates in /etc/bigbluebutton/bbb-conf/apply-config.sh:
  - Enable Firewall and opening 22/tcp, 80/tcp, 443/tcp and 16384:32768/udp
Rules updated
Rules updated (v6)
Rules updated
Rules updated (v6)
Rules updated
Rules updated (v6)
Rules updated
Rules updated (v6)
Firewall is active and enabled on system startup

Starting BigBlueButton

Cambia le porte UDP

Per impostazione predefinita, BigBlueButton utilizza le porte UDP 16384-32768 che vengono utilizzate da FreeSWITCH e Kurento per inviare pacchetti in tempo reale (RTP).

Nello specifico, FreeSWITCH utilizza l'intervallo 16384-24576, definito in /opt/freeswitch/etc/freeswitch/autoload_configs/switch.conf.xml

    <!-- RTP port range -->
    <param name="rtp-start-port" value="16384"/>
    <param name="rtp-end-port" value="24576"/>

Kurento utilizza l'intervallo 24577 - 32768, definito in /etc/kurento/modules/kurento/BaseRtpEndpoint.conf.ini

    minPort=24577
    maxPort=32768

Applicare impostazioni personalizzate per il server TURN

Se desideri sempre una configurazione specifica del server TURN, segui apply-config.sh e modifica aaa.bbb.ccc.ddd e secret con i tuoi valori.

echo "  - Update TURN server configuration turn-stun-servers.xml"
  cat <<HERE > /usr/share/bbb-web/WEB-INF/classes/spring/turn-stun-servers.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
    <bean id="stun0" class="org.bigbluebutton.web.services.turn.StunServer">
        <constructor-arg index="0" value="stun:aaa.bbb.ccc.ddd"/>
    </bean>
    <bean id="turn0" class="org.bigbluebutton.web.services.turn.TurnServer">
        <constructor-arg index="0" value="secret"/>
        <constructor-arg index="1" value="turns:aaa.bbb.ccc.ddd:443?transport=tcp"/>
        <constructor-arg index="2" value="86400"/>
    </bean>
    <bean id="stunTurnService"
            class="org.bigbluebutton.web.services.turn.StunTurnService">
        <property name="stunServers">
            <set>
                <ref bean="stun0"/>
            </set>
        </property>
        <property name="turnServers">
            <set>
                <ref bean="turn0"/>
            </set>
        </property>
    </bean>
</beans>
HERE

Configurazione

Applica automaticamente le modifiche alla configurazione al riavvio

Quando si aggiorna all'ultima build di BigBlueButton utilizzando i passaggi manuali o lo script bbb-install.sh , se sono state apportate modifiche manuali alla configurazione di BigBlueButton, gli script di packaging potrebbero sovrascrivere le modifiche.

Invece di un passaggio soggetto a errori per riapplicare manualmente le modifiche dopo ogni aggiornamento, un approccio migliore sarebbe quello di avere le modifiche alla configurazione personalizzata in uno script che viene applicato automaticamente al riavvio di BigBlueButton.

Ogni volta che aggiorni manualmente BigBlueButton, le istruzioni indicano di eseguire sudo bbb-conf --setip <hostname> per riapplicare i file <hostname> di configurazione di BigBlueButton ( bbb-install.sh lo fa automaticamente per te).

bbb-conf cercherà uno script BASH /etc/bigbluebutton/bbb-conf/apply-config.sh durante l'esecuzione di --restart o --setip <hostname> e, se trovato, eseguirà questo script prima di avviare BigBlueButton.

Puoi inserire le modifiche apply-config.sh alla configurazione per assicurarti che vengano applicate automaticamente. Ecco uno script di esempio:

#!/bin/bash

# Pull in the helper functions for configuring BigBlueButton
source /etc/bigbluebutton/bbb-conf/apply-lib.sh

enableUFWRules

Si noti che include apply-lib.sh un altro script BASH che contiene alcune funzioni di supporto (vedere il sorgente apply-lib.sh ). Quindi chiama enableUFWRules per applicare le impostazioni per limitare l'accesso a porte specifiche .

Il contenuto di apply-config.sh non è di proprietà di alcun pacchetto, quindi non verrà mai sovrascritto.

Quando crei per la prima volta apply-config.sh, rendilo eseguibile utilizzando il comando chmod +x /etc/bigbluebutton/bbb-conf/apply-config.sh.

Estrai il segreto condiviso

Qualsiasi front-end per BigBlueButton necessita di due informazioni: il nome host per il server BigBlueButton e il suo segreto condiviso (per l'autenticazione delle chiamate API). Per stampare il nome host e il segreto condiviso per il tuo server BigBlueButton, inserisci il comando bbb-conf --secret:

$ bbb-conf --secret

       URL: http://bigbluebutton.example.com/bigbluebutton/
    Secret: 577fd5f05280c10fb475553d200f3322

      Link to the API-Mate:
      http://mconf.github.io/api-mate/#server=http://10.0.3.132/bigbluebutton/&sharedSecret=577fd5f05280c10fb475553d200f3322

L'ultima riga fornisce un collegamento API-Mate, un eccellente strumento fornito da Mconf Technologies (una società che ha dato molti contributi al progetto BigBlueButton nel corso degli anni) che semplifica la creazione di chiamate API.

Cambia il segreto condiviso

Per convalidare le chiamate API in entrata, tutte le applicazioni esterne che effettuano chiamate API devono effettuare il checksum della loro chiamata API utilizzando lo stesso segreto configurato nel server BigBlueButton.

Troverai il segreto condiviso in /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties

beans.dynamicConferenceService.securitySalt=<value_of_salt>

Per modificare il segreto condiviso, procedi come segue:

  1. Genera un nuovo ID univoco universale (UUID) da un generatore di UUID come http://www.somacon.com/p113.php . Questo darà una lunga serie di numeri casuali che sarà impossibile decodificare.
  2. Esegui il comando sudo bbb-conf --setsecret new_secret.

Nota: se hai creato il tuo front-end o stai utilizzando un plug-in di terze parti per connetterti a BigBlueButton, il suo segreto condiviso; altrimenti, se i segreti condivisi non corrispondono, il checksum per le chiamate API in arrivo non corrisponderà e il server BigBlueButton rifiuterà la chiamata API con un errore.

Installa callback per eventi (webhook)

Vuoi ricevere callback alla tua applicazione quando si verifica un evento in BigBlueButton? BigBlueButton fornisce un pacchetto web hook opzionale che installa un'applicazione node.js ascolta tutti gli eventi su BigBlueButton e invia richieste POST con dettagli su questi eventi agli hook registrati tramite un'API. Un hook può essere qualsiasi URL esterno in grado di ricevere richieste HTTP POST.

Per installare bbb-webhooks

$ sudo apt-get install bbb-webhooks

Per informazioni sulla configurazione di bbb-webhook, vedere bbb-webhooks .

Client HTML5

Modifica il messaggio di benvenuto predefinito

Il messaggio di benvenuto predefinito è costituito da tre parametri: due parametri a livello di sistema (vedere di seguito) e il parametro welcome dalla API create di BigBlueButton .

Troverai i due parametri di benvenuto a livello di sistema defaultWelcomeMessagee defaultWelcomeMessageFooterin /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties.

defaultWelcomeMessage=<default welcome message>
defaultWelcomeMessageFooter=<default welcome message footer>

Quando un front-end crea una sessione BigBlueButton, può anche passare un parametro  welcome nella chiamata di creazione API.

Il messaggio di benvenuto finale mostrato all'utente (come testo blu nella finestra della chat) è composto da welcome+ defaultWelcomeMessage+ defaultWelcomeMessageFooter.

Il messaggio di benvenuto è fissato per la durata di una riunione. Se vuoi vedere l'effetto della modifica del parametro welcome, devi terminare la riunione corrente o attendere che il server BigBlueButton lo rimuova dalla memoria (cosa che si verifica circa due minuti dopo che l'ultima persona è uscita). Se si modificano i parametri in bigbluebutton.properties, è necessario riavviare BigBlueButton con sudo bbb-conf --restart affinché i nuovi valori abbiano effetto.

Cambia la lingua predefinita

XXX - Necessita di aggiornamento

Per impostazione predefinita, il client BigBlueButton dovrebbe rilevare le impostazioni internazionali del browser e utilizzare di conseguenza quella lingua predefinita. La lingua predefinita è l'inglese, ma puoi cambiarla modificando bigbluebutton/client/BigBlueButton.html e cambiando il valore

localeChain = "en_US";

Puoi vedere l'elenco delle lingue installate con BigBlueButton nella directory /usr/share/meteor/bundle/programs/server/assets/app/locales.

Cambia favicon

Per modificare la favicon, sovrascrivi il file /var/www/bigbluebutton-default/favicon.ico.

Dovrai aggiornare il file ogni volta che il pacchetto bbb-config viene aggiornato.

Cambia il titolo nel client HTML5

Il file di configurazione per il client HTML5 si trova in /usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml. Contiene tutte le impostazioni per il client HTML5.

Per cambiare il titolo, modificare settings.yml e cambiare la voce per public.app.clientTitle

public:
  app:
    ...
    clientTitle: BigBlueButton

Dovrai aggiornare questa voce ogni volta che il pacchetto bbb-html5 viene aggiornato. Il seguente script può aiutare ad automatizzare la modifica

$ TARGET=/usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml
$ yq w -i $TARGET public.app.clientTitle "New Title"
$ chown meteor:meteor $TARGET

Applica le impostazioni di blocco per limitare le webcam

Per abilitare le impostazioni di blocco per impostazione predefinita  Share webcam  (gli spettatori non sono in grado di condividere la loro webcam), aggiungi quanto segue a apply-config.sh.

echo "  - Prevent viewers from sharing webcams"
sed -i 's/lockSettingsDisableCam=.*/lockSettingsDisableCam=true/g' /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties

Dopo il riavvio, se apri le impostazioni di Share webcam vedrai il blocco abilitato.

 

Imposta il client HTML5 come predefinito

Per rendere il client HTML5 il client predefinito (e non caricare più il client Flash), modificare /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.propertiese impostare sia attendeesJoinViaHTML5Cliente moderatorsJoinViaHTML5Clientsu true, come in

# Force all attendees to join the meeting using the HTML5 client
attendeesJoinViaHTML5Client=true

# Force all moderators to join the meeting using the HTML5 client
moderatorsJoinViaHTML5Client=true

In BigBlueButton 2.2-beta-10, puoi anche ridurre il tempo di conversione delle diapositive disabilitando la creazione di file SWF impostando swfSlidesRequired=false.

#----------------------------------------------------
# Conversion of the presentation slides to SWF to be
# used in the Flash client
swfSlidesRequired=false

I file SWF non sono necessari per il client HTML5.

Configurazione delle impostazioni globali

Il file di configurazione per il client HTML5 si trova in /usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml. Contiene tutte le impostazioni per il client HTML5.

Modifica il titolo del client HTML5

Tutte le modifiche alle impostazioni client HTML5 globali vengono eseguite nel file sopra. Quindi, per cambiare il titolo, modificare settings.yml e cambiare la voce in public.app.clientTitle

Configurare la politica degli ospiti

È in corso il lavoro per aggiungere la possibilità per i moderatori di approvare i visualizzatori in arrivo nel client HTML5 (vedere # 5979 ; tuttavia, questa funzione non è ancora implementata.

La politica per la gestione degli ospiti sul server è impostata nel file delle proprietà per bbb-web, che si trova in /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties.

# Default Guest Policy
# Valid values are ALWAYS_ACCEPT, ALWAYS_DENY, ASK_MODERATOR
#
defaultGuestPolicy=ALWAYS_ACCEPT

Attualmente, se questo valore è impostato su ASK_MODERATOR (cosa che può verificarsi in alcuni aggiornamenti dalla 2.0 alla 2.2), impedirà agli utenti HTML5 di partecipare alla sessione.

Per ora, per consentire agli utenti HTML5 di partecipare, modificalo in ALWAYS_ACCEPTe riavvia il server BigBlueButton con sudo bbb-conf --restart.

Mostra un logo personalizzato sul client

Situato displayBrandingArea: truein settings.yml, riavviare il server BigBlueButton con sudo bbb-conf --restarte passare logo=<image-url> in parametri personalizzati durante la creazione della riunione.

Passaggio di parametri personalizzati al client al momento del join

Il client HTML5 supporta un elenco di parametri che possono essere aggiunti alla joinchiamata API che modificano l'aspetto e il comportamento predefinito del client. Questo elenco è accurato a partire dalla versione 2.2.17 di BigBlueButton (build 937). Questi parametri sovrascrivono i valori predefiniti globali impostati in settings.yml. Poiché i parametri vengono passati alla chiamata per partecipare, consente alcune potenti personalizzazioni che possono variare a seconda di quale utente si unisce alla sessione.

Strumenti utili per lo sviluppo:

  • Uno strumento come (https://meyerweb.com/eric/tools/dencoder/) è utile nel processo di codifica-decodifica per i campi che si aspettano il valore codificato passato (vedi sotto).
  • L' API mate ti consente di sperimentare direttamente questi parametri personalizzati. Per utilizzare il compagno di API, eseguire il seguente comando sul computer BigBlueButton: sudo bbb-conf --secret. Questo crea un collegamento per te con il tuo segreto come parametro in modo da poter iniziare subito a sperimentare.

Parametri dell'applicazione

Parametro Descrizione Valore di default
userdata-bbb_ask_for_feedback_on_logout= Se impostato su true, il client visualizzerà la schermata di richiesta di feedback al logout false
userdata-bbb_auto_join_audio= Se impostato su true, il client avvierà automaticamente il processo di connessione al bridge audio al caricamento del client false
userdata-bbb_client_title= Specifica una stringa da impostare come titolo del client HTML5 BigBlueButton
userdata-bbb_force_listen_only= Se impostato su true, l'utente non sarà in grado di partecipare con un microfono come opzione false
userdata-bbb_listen_only_mode= Se impostato su false, l'utente non potrà partecipare alla parte audio della riunione senza un microfono (disabilita la modalità di solo ascolto) true
userdata-bbb_skip_check_audio= Se impostato su true, l'utente non vedrà il prompt "echo test" all'accesso false
userdata-bbb_override_default_locale=    (Introdotto in BigBlueButton 2.3) Se impostato su de, la preferenza del browser dell'utente verrà ignorata - il client verrà mostrato in 'de' (cioè tedesco) indipendentemente dalla lingua altrimenti preferita 'en' (o altro)                                                             null      

Parametri di branding

Parametro Descrizione Valore di default
userdata-bbb_display_branding_area= Se impostato su true, il cliente visualizzerà l'area del marchio nell'angolo in alto a sinistra false

Parametri di scelta rapida

Parametro Descrizione Valore di default
userdata-bbb_shortcuts= Il valore passato deve essere codificato in URL. Ad esempio, se desideri disabilitare le scorciatoie, passa %5B%5Dche è la versione codificata dell'array vuoto[] Vedere settings.yml

Parametri Kurento

Parametro Descrizione Valore di default
userdata-bbb_auto_share_webcam= Se impostato su true, il client avvierà il processo di condivisione della webcam (se presente) automaticamente al caricamento del client false
userdata-bbb_preferred_camera_profile= Specifica un profilo fotocamera preferito da utilizzare tra quelli definiti in settings.yml nessuna
userdata-bbb_enable_screen_sharing= Se impostato su false, il cliente visualizzerà il pulsante di condivisione dello schermo se è l'attuale presentatore true
userdata-bbb_enable_video= Se impostato su false, il client visualizzerà il pulsante di condivisione della webcam (in effetti disabilitando / abilitando le webcam) true
userdata-bbb_record_video= Se impostato su false, l'utente non registrerà il proprio flusso video true
userdata-bbb_skip_video_preview= Se impostato su true, il client non vedrà un'anteprima della propria webcam prima di condividerla false
userdata-bbb_mirror_own_webcam= Se impostato su true, il client vedrà una versione speculare della propria webcam. Non influisce sul flusso video in arrivo per altri utenti. false

Parametri di presentazione

Parametro Descrizione Valore di default
userdata-bbb_force_restore_presentation_on_new_events= Se impostato su true, i nuovi eventi relativi alla presentazione verranno inviati agli spettatori. Vedere questo PR per ulteriori informazioni false

Parametri della lavagna

  Descrizione Valore di default
userdata-bbb_multi_user_pen_only= Se impostato su true, solo lo strumento penna sarà disponibile per i non partecipanti quando la lavagna multiutente è abilitata false
userdata-bbb_presenter_tools= Passa una serie di strumenti consentiti da settings.yml tutto abilitato
userdata-bbb_multi_user_tools= Passa una serie di strumenti consentiti per i non relatori da settings.yml tutto abilitato

Temi e parametri di stile

Parametro Descrizione Valore di default
userdata-bbb_custom_style= Stringa con codifica URL con CSS personalizzato nessuna
userdata-bbb_custom_style_url= Questo parametro agisce allo stesso modo userdata-bbb_custom_styletranne per il fatto che il contenuto CSS proviene da un file ospitato nessuna

Parametri di layout

Parametro Descrizione Valore di default
userdata-bbb_auto_swap_layout= Se impostato su true, l'area di presentazione verrà ridotta a icona quando un utente si unisce a una riunione. false
userdata-bbb_hide_presentation= Se impostato su true, l'area di presentazione verrà ridotta a icona fino all'apertura false
userdata-bbb_show_participants_on_login= Se impostato su false, il pannello dei partecipanti non verrà visualizzato fino all'apertura. true
userdata-bbb_show_public_chat_on_login= Se impostato su false, il pannello della chat non sarà visibile al caricamento della pagina fino all'apertura. Non è la stessa cosa che disabilitare la chat. true

Parametri esterni

I seguenti parametri sono applicabili solo quando il client HTML5 è incorporato in un iframe.

Parametro Descrizione Valore di default
userdata-bbb_outside_toggle_self_voice= Se impostato su true, l'audio dell'utente corrente potrà essere disattivato / riattivato dalla pagina Web "principale", la stessa pagina in cui è incorporato il client BigBlueButton false
userdata-bbb_outside_toggle_recording= Se impostato su true, la funzionalità di registrazione nella riunione potrà essere avviata / interrotta dalla pagina Web "principale", la stessa pagina in cui è incorporato il client BigBlueButton false

Esempi

Modifica del colore di sfondo del client HTML

Puoi cambiare il colore di sfondo del client HTML5 con il seguente foglio di stile:

:root {
  --loader-bg:#000;
}

.overlay--1aTlbi {
  background-color:#000 !important;
}

body {
  background-color:#000 !important;
}

Puoi aggiungere questo codice a un file .css ospitato e passare userdata-bbb_custom_style_url=https://someservice.com/customStyles.css

In alternativa (per semplici modifiche) puoi ottenere lo stesso risultato senza file ospitato.

Puoi provarlo in API-MATE: hai bisogno della versione non codificata del CSS

userdata-bbb_custom_style=:root{--loader-bg:#000;}.overlay--1aTlbi{background-color:#000!important;}body{background-color:#000!important;}

Se lo stai aggiungendo a un URL di join, devi codificare l'URI della stringa (vedi uno strumento di codifica di esempio sopra)

%3Aroot%7B--loader-bg%3A%23000%3B%7D.overlay--1aTlbi%7Bbackground-color%3A%23000!important%3B%7Dbody%7Bbackground-color%3A%23000!important%3B%7D

Invia i registri del client al server

Per assistere con il monitoraggio e il debug, il client HTML5 può inviare i suoi log al server BigBlueButton tramite la funzione  logger . Ecco un esempio del suo utilizzo:

Il logger cliente accetta tre obiettivi per i log: console, servere external.

Nome Valore di default Valori accettati Descrizione
bersaglio "Console" "Console", "esterno", "server" Dove verranno inviati i registri.
livello "Informazioni" "Debug", "info", "warn", "error" Il livello di registro più basso che verrà inviato. Anche qualsiasi livello di registro superiore a questo verrà inviato alla destinazione.
url - - Il punto finale a cui verranno inviati i registri quando l'obiettivo è impostato su "esterno".
metodo - "POST", "PUT" Metodo HTTP utilizzato quando si utilizza il target "esterno".

I valori predefiniti sono:

  clientLog:
    server: { enabled: true, level: info }
    console: { enabled: true, level: debug }
    external: { enabled: false, level: info, url: https://LOG_HOST/html5Log, method: POST, throttleInterval: 400, flushOnClose: true }

Si noti che l'opzione external è disabilitata per impostazione predefinita: è possibile abilitarla sul proprio server dopo alcune modifiche alla configurazione.

Quando si abilita l'output di registrazione external, il client BigBlueButton eseguirà il POST degli eventi di registro all'endpoint URL fornito da url. Per creare un endpoint associato sul server BigBlueButton per la richiesta POST, creare un file /etc/bigbluebutton/nginx/html5-client-log.nginx con i seguenti contenuti:

location /html5Log {
    access_log /var/log/nginx/html5-client.log postdata;
    echo_read_request_body;
}

Quindi crea un file /etc/nginx/conf.d/html5-client-log.conf con i seguenti contenuti:

log_format postdata '$remote_addr [$time_iso8601] $request_body';

Successivamente, installa la versione completa di nginx.

$ sudo apt-get install nginx-full

Potrebbe anche essere necessario creare il file di output esterno e assegnargli le autorizzazioni e la proprietà appropriate:

$ sudo touch /var/log/nginx/html5-client.log
$ sudo chown www-data:adm /var/log/nginx/html5-client.log
$ sudo chmod 640 /var/log/nginx/html5-client.log

Riavvia BigBlueButton con sudo bbb-conf --restart e avvia il client HTML5 BigBlueButton in una nuova sessione. Dovresti vedere i registri apparire in /var/log/nginx/html5-client.log come segue:

99.239.102.0 [2018-09-09T14:59:10+00:00] [{\x22name: .. }]

Puoi seguire i log sul server con il comando

$ tail -f /var/log/nginx/html5-client.log | sed -u -e 's/\\x22/"/g' -e 's/\\x5C/\\/g'

Ecco una voce di registro di esempio:

      "requesterUserId":"w_klfavdlkumj8",
      "fullname":"Ios",
      "confname":"Demo Meeting",
      "externUserID":"w_klfavdlkumj8"
   },
   "url":"https://demo.bigbluebutton.org/html5client/users",
   "userAgent":"Mozilla/5.0 (iPad; CPU OS 11_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.0 Mobile/15E148 Safari/604.1",
   "count":1
}

Raccogli feedback dagli utenti

Il client BigBlueButton può chiedere un feedback all'utente quando esce da una sessione. Questo feedback fornisce all'amministratore informazioni dettagliate sulle esperienze di un utente all'interno di una sessione BigBlueButton.

Per abilitare il feedback e l'accesso al tuo server, esegui il seguente script.

#!/bin/bash

HOST=$(cat /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties | grep -v '#' | sed -n '/^bigbluebutton.web.serverURL/{s/.*\///;p}')
HTML5_CONFIG=/usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml
PROTOCOL=$(cat /usr/share/bbb-web/WEB-INF/classes/bigbluebutton.properties | grep -v '#' | grep '^bigbluebutton.web.serverURL' | sed 's/.*\(http[s]*\).*/\1/')

apt-get install -y nginx-full

yq w -i $HTML5_CONFIG public.clientLog.external.enabled true
yq w -i $HTML5_CONFIG public.clientLog.external.url     "$PROTOCOL://$HOST/html5log"
yq w -i $HTML5_CONFIG public.app.askForFeedbackOnLogout true
chown meteor:meteor $HTML5_CONFIG

cat > /etc/bigbluebutton/nginx/html5-client-log.nginx << HERE
location /html5log {
        access_log /var/log/nginx/html5-client.log postdata;
        echo_read_request_body;
}
HERE

cat > /etc/nginx/conf.d/html5-client-log.conf << HERE
log_format postdata '\$remote_addr [\$time_iso8601] \$request_body';
HERE

# We need nginx-full to enable postdata log_format
if ! dpkg -l | grep -q nginx-full; then
  apt-get install -y nginx-full
fi

touch /var/log/nginx/html5-client.log
chown bigbluebutton:bigbluebutton /var/log/nginx/html5-client.log

Verrà scritto il feedback /var/log/nginx/html5-client.log, che sarà necessario estrarre e analizzare. È inoltre possibile utilizzare il comando seguente per monitorare il feedback

tail -f /var/log/nginx/html5-client.log | sed -u 's/\\x22/"/g' | sed -u 's/\\x5C//g'

C'era una versione errata dello script sopra nei documenti. In caso di problemi dopo l'aggiornamento, fare riferimento a questo problema per le soluzioni.