
Jeśli napotkałeś jakiekolwiek problemy podczas instalacji BigBlueButton, w tej sekcji opisano, jak rozwiązać wiele typowych problemów.
Jeśli jeszcze tego nie zrobiłeś, przeczytaj sekcję uzyskiwania pomocy.
Wprowadzenie
Zacznij tutaj: uruchom sudo bbb-conf --check
Wbudowaliśmy narzędzie konfiguracyjne BigBlueButton o nazwie bbb-conf, który pomoże Ci skonfigurować serwer BigBlueButton i rozwiązać problemy z konfiguracją, jeśli coś nie działa prawidłowo.
Jeśli uważasz, że coś nie działa poprawnie, pierwszym krokiem jest wprowadzenie następującego polecenia.
$ sudo bbb-conf --check
Spowoduje to sprawdzenie konfiguracji, aby upewnić się, że działają prawidłowe procesy, komponenty BigBlueButton zostały poprawnie uruchomione i wyszuka typowe problemy konfiguracyjne, które mogą uniemożliwiać prawidłowe działanie BigBlueButton.
Jeśli po wierszu ** Potential problems described below ** zobaczysz tekst, może to oznaczać ostrzeżenia (które możesz zignorować w przypadku zmiany ustawień) lub błędy w konfiguracji.
bbb-webrtc-sfu i mediasoup
Udostępnianie Audio/webcams/screen nie działa
Potwierdź, że mają odpowiednie adresy zewnętrzne został ustawiony na mediasoup. W przypadku instalacji za pośrednictwem pakietów adresy IP Mediasoup są zwykle błędnie skonfigurowane. Jeśli zostanie zainstalowany za pomocą bbb-install, protokół IPv4 jest ogólnie poprawny, ale protokół IPv6 może nie być dostępny.
Niemniej jednak zalecamy dokładne sprawdzenie instrukcji w Aktualizacja multimediów.
Jeśli powyższe wygląda poprawnie, może to oznaczać problem z łącznością sieciową. Domyślna instalacja BigBlueButton powinna działać w większości konfiguracji sieciowych; jeśli jednak Twoi użytkownicy znajdują się za restrykcyjną siecią, która blokuje połączenia UDP, mogą napotkać problemy.
Jeśli otrzymasz raporty o tych błędach, skonfiguruj serwer TURN, aby pomóc ich przeglądarkom przeglądać te restrykcyjne sieci. Zobacz Konfiguruj ZWROT.
Skonfiguruj mediasoup do korzystania z IPv6
mediasoup (bbb-webrtc-sfu) nie jest dostarczany z domyślnie włączonym protokołem IPv6 podczas instalacji za pośrednictwem pakietów lub bbb-install.
Aby skonfigurować IPv6, należy użyć pliku konfiguracji zastępczej (zlokalizowanego w /etc/bigbluebutton/bbb-webrtc-sfu/production.yml) bbb-webrtc-sfu.
Zobacz Aktualizacja multimediów, aby uzyskać instrukcje i przykłady, jak to zrobić.
Mam problemy z wyświetlaniem kamer internetowych lub udostępnianiem ekranu w przeglądarce Firefox
Jest to zwykle objaw znanego problemu z Firefoksem, który nie jest zgodny z implementacjami ICE-lite (jednym z nich jest mediasoup).
Ten problem można obejść, wymuszając użycie TURN w agentach użytkownika Firefoksa. Aby to osiągnąć, ustaw konfigurację public.kurento.forceRelayOnFirefox na true w /etc/bigbluebutton/bbb-html5.yml. Na przykład:
public:
media:
forceRelayOnFirefox: true
Jak często występuje ten problem z Firefoksem?
Krótka (nie) odpowiedź: trudno to zmierzyć.
Każda instalacja Firefoksa jest podatna na brak zgodności ze specyfikacją ICE-lite. Jednakże problem nie pojawia się w przypadku wszystkich instalacji Firefoksa, ponieważ zależy od tego, jak zorganizowana jest topologia sieci użytkownika końcowego. Zwykle jest to niewielki podzbiór użytkowników Firefoksa, ale liczba ta może się różnić w zależności od bazy użytkowników.
Gdzie mogę śledzić postęp w zakresie ostatecznego rozwiązania lub lepszego obejścia?
Jest to błąd przeglądarki Firefox, więc najlepszym miejscem, aby uzyskać przegląd postępów i tego, czego dotyczy problem, jest Problem Mozilli.
Możesz także śledzić Problem BigBlueButton, aby uzyskać aktualizacje dotyczące dodatkowych obejść.
Dlaczego funkcja ForceRelayOnFirefox nie jest domyślnie włączona?
Nie jest domyślnie włączone, ponieważ bigbluebutton nie jest domyślnie dostarczany z serwerem TURN i tak zakłada ustawienie wersjonowania kodu.
Skąd mam wiedzieć, czy używana jest zupa medialna?
Najbardziej bezpośrednim i precyzyjnym sposobem sprawdzenia, czy używana jest mediasoup, jest sprawdzenie:webrtc (Firefox) lub chrome://webrtc-internals. Na przykład: otwórz jeden z nich, udostępnij kamerę. Poszukaj zdalnego opisu (SDP); sprawdź, czy zawiera klienta mediasoup w nagłówku SDP. Jeśli tak, używasz mediasoup.
Niezależnie od tego: mediasoup jest wartością domyślną w wersji 2.5 i powinna być zawsze używana, chyba że ustawienia domyślne zostały wyraźnie zmienione.
Czy wydajność jednego rdzenia jest nadal ważna w przypadku Mediasoup?
Tak.
Jak mogę kontrolować liczbę pracowników Mediasoup?
Aby kontrolować liczbę procesów roboczych mediasoup, należy użyć pliku konfiguracyjnego override (znajdującego się w /etc/bigbluebutton/bbb-webrtc-sfu/production.yml) bbb-webrtc-sfu.
Jest tu kilka interesujących konfiguracji:
mediasoup.workers
Ta konfiguracja kontroluje liczbę procesów roboczych mediasoup przeznaczonych do użytku ogólnego (niezależny od typu nośnika, pula współdzielona).
Akceptowane wartości to:
"auto"(domyślnie): tworzy pracownikówceil((min(nproc,32) * 0.8) + (max(0, nproc - 32) / 2));"cores": tworzy pracowników do liczby rdzeni hosta (podanej przez os.cpus().length);- <Number>: zastępuje liczbę pracowników stałą wartością;
- Wartości domyślne i rezerwowe to
auto.
Na przykład:
- Aby ustawić liczbę pracowników na
cores:yq-go e -i '.mediasoup.workers = "cores"' /etc/bigbluebutton/bbb-webrtc-sfu/production.yml
mediasoup.dedicatedMediaTypeWorkers
Ta konfiguracja kontroluje liczbę procesów roboczych mediasoup używanych przez określone typy mediów. Jeśli ustawiono dedykowaną pulę, strumienie danego typu multimediów zawsze będą w niej lądować. W przeciwnym razie będą korzystać ze wspólnej puli.
Konfiguracja jest obiektem o formacie:
mediasoup.dedicatedMediaTypeWorkers:
audio: "auto"|"cores"|<Number>
main: "auto"|"cores"|<Number>
content: "auto"|"cores"|<Number>
Semantyka auto, cores i Number jest taka sama jak w konfiguracji mediasoup.workers. Wartości domyślne dla wszystkich typów nośników to 0 (brak dedykowanych procesów roboczych).
Semantyka typów mediów jest następująca:
audio: strumienie audio (tylko słuchanie, mikrofon);main: strumienie wideo z kamery internetowej;content: strumienie udostępniania ekranu (audio i wideo).
Na przykład:
- Aby ustawić liczbę dedykowanych pracowników audio na
auto:yq-go e -i '.mediasoup.dedicatedMediaTypeWorkers.audio = "auto"' /etc/bigbluebutton/bbb-webrtc-sfu/production.yml
Czy mogę skalować liczbę strumieni w górę w nieskończoność za pomocą zupa medialna?
Nie. Dzięki mediasoup skalowalność znacznie się poprawia, ale nadal istnieje kilka wąskich gardeł, które można wyeliminować jeśli chodzi o stos multimediów. Mianowicie:
- Serwer sygnalizacyjny (bbb-webrtc-sfu): nie skaluje się w pionie w nieskończoność. — Algorytm równoważenia procesów roboczych mediasoup zaimplementowany przez bbb-webrtc-sfu nadal koncentruje się na spotkaniach wielostronnych z ograniczoną liczbą użytkowników. Jeśli Twoim celem są spotkania tysiąca użytkowników 1-N (podobne do transmisji strumieniowej), możesz maksymalnie zwiększyć użycie procesora dla niektórych pracowników Mediasoup, nawet jeśli inni bezczynni pracownicy są wolni.
FreeSWITCH
FreeSWITCH nie łączy się z IPV4
W rzadkich przypadkach po wyłączeniu/ponownym uruchomieniu baza danych FreeSWITCH może ulec uszkodzeniu. Spowoduje to problemy FreeSWITCH z powiązaniem z adresem IPV4, co może zostać zauważone przez użytkowników końcowych w postaci braku połączenia z dźwiękiem.
Aby to sprawdzić, poszukaj w /opt/freeswitch/var/log/freeswitch/freeswitch.log błędów związanych z ładowaniem bazy danych.
2018-10-25 11:05:11.444727 [ERR] switch_core_db.c:108 SQL ERR [unsupported file format]
2018-10-25 11:05:11.444737 [ERR] switch_core_db.c:223 SQL ERR [unsupported file format]
2018-10-25 11:05:11.444759 [NOTICE] sofia.c:5949 Started Profile internal-ipv6 [sofia_reg_internal-ipv6]
2018-10-25 11:05:11.444767 [CRIT] switch_core_sqldb.c:508 Failure to connect to CORE_DB sofia_reg_external!
2018-10-25 11:05:11.444772 [CRIT] sofia.c:3049 Cannot Open SQL Database [external]!
Jeśli widzisz te błędy, wyczyść bazę danych FreeSWITCH (BigBlueButton nie korzysta z bazy danych, a FreeSWITCH utworzy ją ponownie przy uruchomieniu).
$ sudo systemctl stop freeswitch
$ rm -rf /opt/freeswitch/var/lib/freeswitch/db/*
$ sudo systemctl start freeswitch
Przekazuj połączenia z serwera Asterisk do FreeSWITCH
Załóżmy, co następuje:
asterisk server ip: 192.168.1.100
bigbluebutton/freeswitch ip: 192.168.1.200
Zmiany na serwerze Asterisk
Skonfiguruj swoją bramę do BigBlueButton/FreeSWITCH. w /etc/asterisk/sip.conf dodaj
[fs-gw]
type=peer
username=fs-gw
insecure=very
contactpermit=192.168.1.200/255.255.255.255
qualify=no
nat=yes
host=192.168.1.200
canreinvite=no
disallow=all
allow=ulaw
Kieruj wywołania do bramki. W kontekście /etc/asterisk/extensions.conf, w którym obsługiwane są Twoje połączenia, przekaż połączenia do bramki. Tutaj, gdy ktoś wybierze numer 85001, połączenie zostanie wysłane do zdefiniowanego powyżej fs-gw.
exten => 85001,1,Dial(SIP/fs-gw/${EXTEN})
exten => 85001,2,Hangup
Zmiany w serwerze BigBlueButton/FreeSWITCH
W BigBlueButton/FreeSWITCH wprowadź następujące zmiany:
Zablokuj, aby tylko Asterisk mógł przekierowywać połączenia do FreeSWITCH. W /opt/freeswitch/conf/autoload_configs/acl.conf.xml dodaj następującą listę ACL. Musimy także pozwolić BigBlueButton na wywoływanie FreeSWITCH, dlatego dodajemy adres IP BigBlueButton/FreeSWITCH do listy ACL.
<list name="asterisk-gw" default="deny">
<node type="allow" cidr="192.168.1.200/32"/>
<node type="allow" cidr="192.168.1.100/32"/>
<node type="allow" cidr="127.0.0.1/32"/>
</list>
Następnie stosujemy listę ACL do profilu odbierającego połączenia z bram zewnętrznych. W /opt/freeswitch/conf/sip_profiles/external.xml dodaj listę ACL pod <settings>
<settings>
<!-- Apply ACL from asterisk-gw -->
<param name="apply-inbound-acl" value="asterisk-gw"/>
...
</settings>
Aby debugować, spróbuj połączyć się z FS CLI i zwiększyć poziom rejestrowania. Po nawiązaniu połączenia zadzwoń i zobacz, co mówią dzienniki.
$ /opt/freeswitch/bin/fs_cli -p $(xmlstarlet sel -t -m 'configuration/settings/param[@name="password"]' -v @value /opt/freeswitch/etc/freeswitch/autoload_configs/event_socket.conf.xml)
Once connected:
help -- shows the available commands
console loglevel <level> -- change log level
Ctrl-D to exit
FreeSWITCH nie może powiązać się z portem 8021
FreeSWITCH obsługuje zarówno IPV4, jak i IPV6. Jeśli jednak twój serwer nie obsługuje IPV6, FreeSWITCH nie będzie mógł powiązać się z portem 8021. Jeśli uruchomisz sudo bbb-conf --check i zobaczysz następujący błąd
# Error: Found text in freeswitch.log:
#
# Thread ended for mod_event_socket
#
# FreeSWITCH may not be responding to requests on port 8021 (event socket layer)
# and users may have errors joining audio.
#
może być tak, że Twój serwer ma wyłączony protokół IPV6 (lub go nie obsługuje). Możesz to sprawdzić, uruchamiając następującą komendę
$ sudo ip addr | grep inet6
inet6 ::1/128 scope host
...
Jeśli nie widzisz wiersza inet6 ::1/128 scope host, oznacza to, że Twój serwer ma wyłączony protokół IPV6. W takim przypadku musimy wyłączyć obsługę FreeSWITCH dla IPV6. Najpierw edytuj /opt/freeswitch/etc/freeswitch/autoload_configs/event_socket.conf.xml i zmień linię
<param name="listen-ip" value="::"/>
do
<param name="listen-ip" value="127.0.0.1"/>
Informuje FreeSWITCH, że zamiast wiązać port 8021 z lokalnym adresem IPV6, należy powiązać go z adresem IPV4 127.0.0.1. Następnie wykonaj dwa poniższe polecenia
$ sudo mv /opt/freeswitch/etc/freeswitch/sip_profiles/internal-ipv6.xml /opt/freeswitch/etc/freeswitch/sip_profiles/internal-ipv6.xml_
$ sudo mv /opt/freeswitch/etc/freeswitch/sip_profiles/external-ipv6.xml /opt/freeswitch/etc/freeswitch/sip_profiles/external-ipv6.xml_
, a następnie uruchom ponownie BigBlueButton za pomocą poleceń
$ sudo bbb-conf --clean
$ sudo bbb-conf --check
FreeSWITCH nie uruchamia się z powodu błędu SETSCHEDULER
Podczas działania w kontenerze (takim jak chroot, OpenVZ, LXC lub LXD) FreeSWITCH może nie mieć możliwości ustawienia priorytetu procesora na runda w czasie rzeczywistym rudzik. Jeśli nie, spowoduje to niższą wydajność w porównaniu z instalacją niezwirtualizowaną.
Jeśli uruchamiasz BigBlueButton w kontenerze i pojawia się błąd podczas uruchamiania FreeSWITCH, spróbuj uruchomić systemctl status freeswitch.service i zobacz, czy widzisz błąd związany z SETSCHEDULER
$ systemctl status freeswitch.service
● freeswitch.service - freeswitch
Loaded: loaded (/lib/systemd/system/freeswitch.service; enabled; vendor preset: enabled)
Active: inactive (dead) (Result: exit-code) since Mon 2017-10-02 16:17:29 UTC; 18s ago
Process: 10967 ExecStart=/opt/freeswitch/bin/freeswitch -u freeswitch -g daemon -ncwait $DAEMON_OPTS (code=exited, status=214/SETSCHEDULER)
Main PID: 3327 (code=exited, status=0/SUCCESS)
Oct 02 16:17:29 scw-9e2305 systemd[1]: Failed to start freeswitch.
Oct 02 16:17:29 scw-9e2305 systemd[1]: freeswitch.service: Unit entered failed state.
Oct 02 16:17:29 scw-9e2305 systemd[1]: freeswitch.service: Failed with result 'exit-code'.
Oct 02 16:17:29 scw-9e2305 systemd[1]: freeswitch.service: Service hold-off time over, scheduling restart.
Oct 02 16:17:29 scw-9e2305 systemd[1]: Stopped freeswitch.
Oct 02 16:17:29 scw-9e2305 systemd[1]: freeswitch.service: Start request repeated too quickly.
Oct 02 16:17:29 scw-9e2305 systemd[1]: Failed to start freeswitch.
Jeśli w komunikacie o błędzie widzisz SETSCHEDULER, edytuj /lib/systemd/system/freeswitch.service i skomentuj następujące informacje:
#LimitRTPRIO=infinity
#LimitRTTIME=7000000
#IOSchedulingClass=realtime
#IOSchedulingPriority=2
#CPUSchedulingPolicy=rr
#CPUSchedulingPriority=89
Zapisz plik, uruchom systemctl daemon-reload, a następnie uruchom ponownie BigBlueButton. FreeSWITCH powinien teraz uruchomić się bez błędów.
Nie można połączyć się przy użyciu fs_cli
Od wersji BigBlueButton 2.2.18 opakowanie zastępuje teraz domyślne hasło ClueCon do łączenia się z interfejsem wiersza poleceń FreeSWITCH (fs_cli) z losowym hasłem.
(Domyślnie FreeSWITCH zezwala tylko na nieuwierzytelnione połączenia z adresu 127.0.0.1, ale nadal dobrą praktyką bezpieczeństwa jest nieużywanie domyślnych haseł).
Aby połączyć się z fs_cli, użyj następującego polecenia, które podaje hasło do uwierzytelnienia.
/opt/freeswitch/bin/fs_cli -p $(xmlstarlet sel -t -m 'configuration/settings/param[@name="password"]' -v @value /opt/freeswitch/etc/freeswitch/autoload_configs/event_socket.conf.xml)
Dodaliśmy także /usr/local/bin/fs_clibbb z zawartością
#!/bin/bash
/opt/freeswitch/bin/fs_cli -p $(xmlstarlet sel -t -m 'configuration/settings/param[@name="password"]' -v @value /opt/freeswitch/etc/freeswitch/autoload_configs/event_socket.conf.xml)
, który pozwoli ci wpisać fs_clibbb w wierszu poleceń, aby dostać się do konsoli FreeSWITCH.
FreeSWITCH używający domyślnego serwera ogłuszającego
Przez wiele lat w pliku konfiguracyjnym FreeSWITCH firmy BigBlueButton /opt/freeswitch/etc/freeswitch/vars.xml domyślną wartością dla external_rtp_ip było stun.freeswitch.org
<X-PRE-PROCESS cmd="set" data="external_rtp_ip=stun:stun.freeswitch.org"/>
Nie jest to jednak niezawodny wybór w przypadku serwera ogłuszającego. Zalecamy zmianę go na zewnętrzny adres IP serwera lub skonfigurowanie własnego serwera ogłuszającego/turnującego. Na przykład, jeśli Twój serwer ma zewnętrzny adres IP pod adresem 234.32.3.3
<X-PRE-PROCESS cmd="set" data="external_rtp_ip=234.32.3.3"/>
Możesz dodać linię w /etc/bigbluebutton/bbb-conf/apply-config.sh, aby zawsze stosować tę wartość, nawet jeśli pakiet FreeSWITCH jest aktualizowany.
xmlstarlet edit --inplace --update '//X-PRE-PROCESS[@cmd="set" and starts-with(@data, "external_rtp_ip=")]/@data' --value "external_rtp_ip=234.32.3.3" /opt/freeswitch/conf/vars.xml
Uwaga: Jeśli Twój serwer ma wewnętrzny/zewnętrzny adres IP, np. na serwerze AWS EC2, pamiętaj o ustawieniu go na zewnętrzny adres IP, skonfiguruj fikcyjną kartę interfejsu sieciowego (patrz Aktualizacja FreeSWITCH).
Instalacja i pakiety
Następujące pakiety mają niespełnione zależności
Podczas instalowania najnowszej wersji BigBlueButton, bbb-conf używa yq-go (implementacja yq firmy Mikefarah w Go) do zarządzania plikami YAML. W Ubuntu 24.04 yq-go jest oddzielnym poleceniem z archiwum yq (wersja oparta na Pythonie/jq autorstwa kislyuka); BigBlueButton dostarcza go jako pakiet bbb-yq-go, który instaluje plik binarny /usr/bin/yq-go.
bbb-yq-go jest pobierany automatycznie jako zależność pakietów BigBlueButton z repozytorium apt BigBlueButton. Jeśli go brakuje, zainstaluj go z sudo apt-get install bbb-yq-go.
Alternatywnie, jeśli nie dokonałeś żadnych dostosowań w BigBlueButton (poza używaniem bbb-conf), możesz użyć bbb-install.sh, aby zainstalować/uaktualnić do najnowszej wersji (która automatycznie instaluje bbb-yq-go).
Brak dowiązania symbolicznego
Jeśli zainstalowałeś/odinstalowałeś pakiety BigBlueButton, możesz otrzymać ostrzeżenie No Symbolic Link od bbb-conf --check:
** Potential Problems **
nginx (conf): no symbolic link in /etc/nginx/sites-enabled for bigbluebutton
Aby rozwiązać ten problem, dodaj dowiązanie symboliczne do nginx dla witryny BigBlueButton:
$ sudo ln -s /etc/nginx/sites-available/bigbluebutton /etc/nginx/sites-enabled/bigbluebutton
$ sudo /etc/init.d/nginx restart
Błędy WebRTC (1001, 1002,...)
WebRTC oferuje dźwięk o bardzo wysokiej jakości. Jednak ustawienia sieciowe użytkownika (lub zapora sieciowa) mogą uniemożliwiać WebRTC nawiązanie połączenia (lub utrzymanie połączenia).
Oto następująca lista możliwych komunikatów o błędach WebRTC, które może napotkać użytkownik:
- 1001: WebSocket rozłączony - WebSocket połączył się pomyślnie, a teraz został rozłączony. Możliwe przyczyny:
- Utrata połączenia internetowego
- Może to powodować ponowne uruchomienie Nginx
- 1002: Nie można nawiązać połączenia WebSocket - Początkowe połączenie WebSocket nie powiodło się. Możliwe przyczyny: — Zapora sieciowa blokuje protokół ws — Serwer nie działa lub jest nieprawidłowo skonfigurowany — Zobacz potencjalne rozwiązanie tutaj.
- 1004: Błąd połączenia - Strumień audio został ustanowiony, ale klient nie mógł go odtworzyć poprzez element multimedialny przeglądarki. Możliwe przyczyny:
- Przeglądarka nie mogła rozpocząć odtwarzania dźwięku po automatycznych ponownych próbach klienta. — Przejściowy błąd nośnika po stronie klienta; ponowne załadowanie klienta zwykle rozwiązuje ten problem. — to nie jest blokada autoodtwarzania — ograniczenia autoodtwarzania są obsługiwane osobno i wyświetlają monit użytkownikowi, zamiast zgłaszać ten błąd.
- 1005: Połączenie zakończyło się nieoczekiwanie - Nie można wynegocjować równorzędnego połączenia audio lub ustanowiona sesja zakończyła się bez żądania użytkownika. Możliwe przyczyny:
- Negocjacja równorzędna WebRTC nie powiodła się: przeglądarka nie mogła utworzyć połączenia równorzędnego lub nie mogła przetworzyć oferty/odpowiedzi SDP serwera multimediów.
- Przejściowy błąd po stronie klienta lub serwera multimediów podczas instalacji. Klient automatycznie ponawia próbę przed wyświetleniem tego błędu.
- 1007: Negocjacja ICE nie powiodła się - Przeglądarka i serwer multimediów (mediasoup/bbb-webrtc-sfu) próbują negocjować ścieżkę do strumieniowego przesyłania dźwięku, ale negocjacja nie powiodła się. Możliwe przyczyny:
- NAT blokuje połączenie
- Zapora sieciowa blokuje połączenie/porty UDP
- W sieciach restrykcyjnych może być wymagany serwer TURN (patrz Konfiguracja TURN)
- 1010: Limit czasu negocjacji ICE - Po przyjęciu połączenia przeglądarka klienta i serwer próbują wynegocjować ścieżkę danych audio. W niektórych konfiguracjach sieci ta negocjacja trwa wyjątkowo długo, a ten limit czasu jest ustawiony, aby uniknąć zablokowania klienta.
- 1020: Chmura multimediów nie mogła połączyć się z serwerem - Zobacz, jak rozwiązać ten problem tutaj.
Sieć
Typowe błędy klienta
Tabela jest szersza od ekranu. Przewiń ją w poziomie.
| Kod błędu | Komunikat o błędzie | Przyczyny |
|---|---|---|
| 3001 | Trwa ponowne łączenie | GraphQL jest rozłączony i klient próbuje ponownie nawiązać połączenie. |
| 3002 | Nie można się połączyć. Proszę sprawdzić swoje połączenie internetowe | GraphQL jest odłączony (próba ponownego połączenia), a pomiary RTT są krytyczne. |
| 3003 | Serwer obecnie nie odpowiada. Trwa ponowne łączenie | GraphQL jest podłączony, ale nie otrzymuje żadnych danych z serwera. |
| 3004 | Połączenie jest niestabilne. Proszę sprawdzić swoje połączenie internetowe | GraphQL jest podłączony, ale nie odbiera danych, a RTT jest krytycznie wysoki. |
| 3005 | Dane ładują się powoli. Trwa ponowne łączenie | GraphQL jest podłączony i odbiera dane, ale brakuje sygnału Hasura PING. |
| 3006 | Nie udało się wczytać niektórych aktualnych danych. Proszę odświeżyć swojego klienta | Jedna lub więcej subskrypcji GraphQL zwróciło błąd. |
| 3007 | Zbyt wiele bieżących danych jest otwartych jednocześnie. Proszę odświeżyć swojego klienta | Serwer odrzucił subskrypcję, ponieważ połączenie osiągnęło poziom max_connection_concurrent_subscriptions w oprogramowaniu bbb-graphql-middleware. Nie można załadować nowych danych, dopóki klient nie połączy się ponownie. |
Dodatkowe uwagi
-
GraphQL to serwer dostarczający dane do klienta poprzez połączenie WebSocket. Klient korzysta również z tego samego połączenia do wysyłania akcji poprzez mutacje GraphQL. Monitorowanie połączenia GraphQL pomaga określić, czy ogólne połączenie sieciowe klienta działa prawidłowo.
-
RTT (czas podróży w obie strony) mierzony jest poprzez okresowe wysyłanie żądania HTTP do
/bigbluebutton/rtt-check. Serwer BBB odpowiada prostym kodem stanu200tak szybko, jak to możliwe, bez obsługi i przechowywania jakichkolwiek danych. Dzięki temu klient może zmierzyć czas oczekiwania na odpowiedź i wykryć potencjalne opóźnienia lub niestabilność sieci.
Serwer działający za NAT
Następujący problem może być pomocny w debugowaniu, jeśli napotkasz błędy, a Twój serwer jest za NAT.
Przeglądarka nie jest obsługiwana
Kiedy próbujesz dołączyć do sesji BigBlueButton, klient sprawdza twoją przeglądarkę przed załadowaniem. Przeglądarka i wersja są porównywane z wbudowaną listą minimalnie obsługiwanych wersji.
Jeśli przeglądarka jest starsza niż wymagana wersja, główny pakiet klienta nie zostanie załadowany. Zamiast tego na górze strony pojawia się komunikat:
Przeglądarka nie jest obsługiwana Zaktualizuj swoją przeglądarkę lub skontaktuj się z obsługą techniczną.
Obsługiwane przeglądarki i wersje minimalne
BigBlueButton obsługuje następujące przeglądarki i wersje minimalne:
- Safari — 14 lub nowsza
- Chrome — 87 lub nowsza
- Firefox — 80 lub nowsza
- Microsoft Edge — 85 lub nowsza
- MiuiBrowser — nieobsługiwana
Dla wersji Safari od 14 do 15 automatycznie ładowany jest specjalny pakiet zgodności, aby zapewnić prawidłowe działanie. Wszystkie inne obsługiwane przeglądarki korzystają ze standardowego pakietu klienta.
Notatki
- Każda przeglądarka poniżej podanej wersji minimalnej wyświetli baner nieobsługiwanej przeglądarki i nie załaduje klienta BigBlueButton.
- Aby prawidłowo działać, przeglądarki muszą obsługiwać WebRTC w celu umożliwienia udostępniania dźwięku, wideo i ekranu. Możesz sprawdzić obsługę WebRTC za pomocą https://test.webrtc.org/.
nginx nie działa
Najczęstszymi przyczynami niedziałania nginx jest niemożność powiązania z portem 80 i błędy konfiguracji. Aby sprawdzić, czy port 80 jest już używany, użyj
$ sudo netstat -ant
, aby sprawdzić, czy jakiś proces jest obecnie powiązany z portem 80. Jeśli tak, sprawdź, czy jest zainstalowany inny serwer WWW. Jeśli tak, zatrzymaj serwer WWW i spróbuj ponownie uruchomić Nginx. Jednym z wymagań serwera przed zainstalowaniem BigBlueButton jest to, że port 80 nie jest używany przez inną aplikację (taką jak Apache). Aby uzyskać szczegółowe informacje na temat tego wymagania, zobacz Zalecamy uruchamianie BigBlueButton na porcie 80.
Jeśli port 80 jest wolny, sprawdź, czy plik konfiguracyjny Nginx nie zawiera błędów. Spróbuj uruchomić ponownie Nginx
$ sudo systemctl restart nginx
i poszukaj wyjścia
[ OK ]
Jeśli widzisz [ Fail ], oznacza to, że Twoje pliki konfiguracyjne Nginx mogą zawierać błąd składniowy. Sprawdź składnię plików konfiguracyjnych nginx za pomocą polecenia
$ sudo nginx -t
i zobacz, czy zgłasza jakieś błędy. Możesz także sprawdzić plik error.log dla nginx, aby zobaczyć, jakie błędy wyświetla podczas uruchamiania
$ sudo cat /var/log/nginx/error.log
„Witamy w Nginx”
Podczas instalacji BigBlueButton skrypty pakujące próbują przypisać prawidłowy adres IP podczas instalacji. Jeśli jednak adres IP ulegnie zmianie (na przykład podczas ponownego uruchamiania maszyny wirtualnej) lub pierwszy adres IP nie będzie prawidłowym adresem IP serwera, może zostać wyświetlona strona „Witamy w nginx”.
Aby ponownie skonfigurować BigBlueButton tak, aby używał prawidłowego adresu IP lub nazwy hosta, zobacz BigBlueButton nie ładuje się.
bbb-web
Pusty obszar prezentacji podczas tworzenia lub przesyłania
Jeśli dołączasz do spotkania, a domyślna prezentacja nie jest widoczna lub przesłana prezentacja nie wyświetla się, najprawdopodobniej jest to spowodowane do błędu uprawnień. Aby rozwiązać ten problem, upewnij się, że /var/bigbluebutton/ jest własnością bigbluebutton, a nie root lub jakiegokolwiek innego konta. Więcej wyjaśnień znajdziesz w tym problemie.
Nie można utworzyć prezentacji
Jeśli widzisz następujący błąd w /var/log/bigbluebutton/bbb-web.log
failed to map segment from shared object: Operation not permitted
użyj polecenia mount, aby sprawdzić, czy dyrektor /tmp nie ma uprawnień noexec (co uniemożliwiłoby uruchamianie plików wykonywalnych w katalogu /tmp). Jeśli widzisz noexec dla /tmp, musisz ponownie zamontować katalog z uprawnieniami, które umożliwią wykonywanie procesów (takich jak konwersja slajdów) w katalogu /tmp.
Zbyt wiele otwartych plików
Na serwerach z więcej niż 8 rdzeniami procesora log bbb-web (/var/log/bigbluebutton/bbb-web.log) może zgłosić błąd Too many open files
Caused by: java.io.IOException: Too many open files
Aby rozwiązać problem, utwórz plik zastępujący, który zwiększa liczbę otwartych plików dla bbb-web
$ sudo mkdir -p /etc/systemd/system/bbb-web.service.d/
$ sudo cat > /etc/systemd/system/bbb-web.service.d/override.conf << HERE
[Service]
LimitNOFILE=
LimitNOFILE=8192
HERE
$ sudo systemctl daemon-reload
Uruchomienie bbb-web zajmuje dużo czasu
bbb-web opiera się na klasie SecureRandom (która wykorzystuje dostępną entropię) w celu zapewnienia losowych wartości dla swoich identyfikatorów sesji. Jednakże na serwerze zwirtualizowanym dostępna entropia może być niska i powodować blokowanie bbb-web na długi czas, zanim zakończy sekwencję startową (patrz Powolne uruchamianie Tomcat).
Aby zapewnić bbb-web większą entropię, możesz zainstalować Haveged
$ sudo apt-get install haveged
Aby uzyskać więcej informacji, zobacz Jak skonfigurować dodatkową entropię dla serwerów Cloud przy użyciu Haveged.
Inne błędy
Partycja główna jest za mała
Jeśli partycja główna na serwerze BigBlueButton jest za mała (wymagania dotyczące miejsca na dysku znajdują się w Przed install), zalecamy przeniesienie poniższych katalogów na zewnętrzną partycję z wystarczającą ilością miejsca na dysku.
BigBlueButton przetwarzanie i przechowywanie nagrań:
Lokalizacja wszystkich katalogów multimediów na dysku dostępna tutaj.
Aby wykonać ruch, najpierw zatrzymamy BigBlueButton, następnie przeniesiemy powyższe katalogi do nowej lokalizacji na partycji zewnętrznej, utworzymy dowiązania symboliczne z oryginalnych lokalizacji do nowych lokalizacji i zrestartujemy BigBlueButton.
W poniższym przykładzie partycja zewnętrzna jest zamontowana na /mnt.
$ sudo bbb-conf --stop
$ sudo mv /var/freeswitch/meetings /mnt
$ sudo ln -s /mnt/recordings /var/freeswitch/meetings
$ sudo mv /usr/share/red5/webapps/video/streams /mnt
$ sudo ln -s /mnt/streams /usr/share/red5/webapps/video/streams
$ sudo /var/bigbluebutton /mnt
$ sudo ln -s /mnt/bigbluebutton /var/bigbluebutton
$ sudo bbb-conf --start
BigBlueButton nie ładuje się
Jeśli Twoje połączenie sieciowe uległo zmianie (na przykład po ponownym uruchomieniu), możesz wyczyścić większość plików konfiguracyjnych BigBlueButton, wykonując poniższe kroki.
$ sudo bbb-conf --setip <ip_address_or_hostname>
$ sudo bbb-conf --clean
$ sudo bbb-conf --check
Aby uzyskać więcej informacji, zobacz opcje bbb-conf.
Działa w kontenerze LXD
LXD to bardzo wydajny system kontenerowy dla Ubuntu, umożliwiający uruchamianie pełnych serwerów Ubuntu 24.04 w kontenerze. Ponieważ można łatwo klonować i tworzyć migawki kontenerów LXD, są one idealne do programowania i testowania BigBlueButton.
Jeśli jednak zainstalujesz BigBlueButton w kontenerze LXD, pojawi się następujący błąd z sudo bbb-conf --check
** Potential problems described below **
#
# Error: Unable to connect to the FreeSWITCH Event Socket Layer on port 8021
Jeśli sprawdzisz dane wyjściowe sudo bbb-conf --status, będziesz w stanie stwierdzić, że nie udało się uruchomić trzech różnych aplikacji: FreeSWITCH, bbb-webrtc-sfu i bbb-html5.
Opcjonalnie sprawdź ich błędy za pomocą systemctl status <service-name>.service i sprawdź, czy ich sekwencja rozruchowa nie powiodła się z powodu błędu SETSCHEDULER.
Ten błąd występuje, ponieważ domyślne skrypty jednostek systemowych dla FreeSWITCH, bbb-html5 i bbb-webrtc-sfu próbują działać z uprawnieniami niedostępnymi dla kontenera LXD. Aby uruchomić je w kontenerze LXD, wykonaj kroki opisane w następujących sekcjach:
Możesz teraz uruchomić BigBlueButton w LXD pojemnik.
500 Wewnętrzny błąd serwera
Najprawdopodobniej jest to błąd GreenLight. Sprawdź plik dziennika zgodnie z Rozwiązywanie problemów Greenlight.
Jeśli ten błąd występuje tylko na niewielkiej liczbie komputerów uzyskujących dostęp do serwera BigBlueButton w sieci LAN za pośrednictwem serwera proxy i znajdziesz w pliku dziennika opis „Błąd::Niebezpieczny błąd hosta (x.x.x.x nie jest bezpiecznym hostem)” (gdzie x.x.x.x to adres IP), sprawdź, czy opcja „Nie używaj serwera proxy do lokalnych adresy (intranetowe)” (w ustawieniach proxy systemu Windows) jest zaznaczone.