Describe the bug
Sometimes user gets 1004 Error when connecting with microphone. Most of times, when trying to connect again, the error doesn’t appear. This seems to be related with some network conditions (location, latency) and the availability plus response-time of the STUN server.
In most of cases, changing the default stun server fixes this problem.
Some info here: https://groups.google.com/g/bigbluebutton-setup/c/oeVMDvkc_g4/m/s117x6deBAAJ
To Reproduce
Steps to reproduce the behavior:
- Join with microphone a couple of times
- Sometimes you get 1004 (especially if you don’t use a different STUN server from bbb’s default)
- If you try joining again (one or a couple of times again) you will sucessfully connect to audio
Expected behavior
Users should not get 1004 Error
Actual behavior
User gets 1004 Error
Additional context
1004 happens when audio session terminates and ICE connection is not established. In most of cases, FreeSWITCH rejects the call because it is not able to find ICE candidates in SDP.
We currently have a 5s timeout to let RTCPeer collect all possible ICE candidates, which appears to be too low for some networks (sometimes the browser’s SDP is sent without candidates)
Содержание
- Error 1004 only on android smartphone google chrome #13008
- Comments
- 1004 Error frequently, when connecting with Microphone #10713
- Comments
- user gets ICE 1004 error when connecting with microphone in android mobile/tablet in chrome,We are Currently using BBB stable release-version 2.4 #14136
- Comments
- Bigbluebutton: Ошибка 1004 (причина = несовместимый SDP) (ошибка 1004)
- Все 12 Комментарий
Error 1004 only on android smartphone google chrome #13008
I am getting this error «Failure on call (reason = ICE error) (error 1004)» on android smartphone in google chrome.
Firefox work normaly.
The problem also occurs on demo.bigbluebutton.org and test.bigbluebutton.org
Smartphone Samsung A31,A41 not work in default settings, Samsung A51 Work normal (not default)
Version Google chrome it’s the same everywhere 92,0,4515,131
Log Freeswitch
021-08-16 14:24:53.312613 [DEBUG] switch_core_media.c:5517 Set telephone-event payload to 110@48000
2021-08-16 14:24:53.312613 [DEBUG] mod_opus.c:613 Opus encoder: set bitrate to local settings [72000bps]
2021-08-16 14:24:53.312613 [DEBUG] mod_opus.c:613 Opus encoder: set bitrate to local settings [72000bps]
2021-08-16 14:24:53.312613 [DEBUG] switch_core_media.c:3847 Set Codec sofia/external/w_0mkxbakjxpqc_23-bbbID-R@conf2.biot.su opus/48000 20 ms 960 samples 0 bits 1 channels
2021-08-16 14:24:53.312613 [DEBUG] switch_core_codec.c:111 sofia/external/w_0mkxbakjxpqc_23-bbbID-R@conf2.biot.su Original read codec set to opus:116
2021-08-16 14:24:53.312613 [DEBUG] switch_core_media.c:4340 Searching for rtp candidate.
2021-08-16 14:24:53.312613 [DEBUG] switch_core_media.c:4340 Searching for rtcp candidate.
2021-08-16 14:24:53.312613 [DEBUG] switch_core_media.c:4387 Look for Relay Candidates as last resort
2021-08-16 14:24:53.312613 [DEBUG] switch_core_media.c:4340 Searching for rtp candidate.
2021-08-16 14:24:53.312613 [DEBUG] switch_core_media.c:4340 Searching for rtcp candidate.
2021-08-16 14:24:53.312613 [DEBUG] switch_core_media.c:4393 sofia/external/w_0mkxbakjxpqc_23-bbbID-R@conf2.biot.su no suitable candidates found.
2021-08-16 14:24:53.312613 [DEBUG] switch_core_media.c:5860 Set telephone-event payload to 110@48000
2021-08-16 14:24:53.312613 [DEBUG] switch_core_media.c:5918 sofia/external/w_0mkxbakjxpqc_23-bbbID-R@conf2.biot.su Set 2833 dtmf send payload to 110 recv payload to 110
2021-08-16 14:24:53.312613 [NOTICE] switch_channel.c:3908 Hangup sofia/external/w_0mkxbakjxpqc_23-bbbID-R@conf2.biot.su [CS_EXECUTE] [INCOMPATIBLE_DESTINATION]
2021-08-16 14:24:53.312613 [DEBUG] switch_core_session.c:2914 sofia/external/w_0mkxbakjxpqc_23-bbbID-R@conf2.biot.su skip receive message [APPLICATION_EXEC_COMPLETE] (channel is hungup already)
2021-08-16 14:24:53.312613 [DEBUG] switch_core_state_machine.c:651 (sofia/external/w_0mkxbakjxpqc_23-bbbID-R@conf2.biot.su) State EXECUTE going to sleep
2021-08-16 14:24:53.312613 [DEBUG] switch_core_state_machine.c:585 (sofia/external/w_0mkxbakjxpqc_23-bbbID-R@conf2.biot.su) Running State Change CS_HANGUP (Cur 2 Tot 4)
2021-08-16 14:24:53.312613 [DEBUG] switch_core_state_machine.c:848 (sofia/external/w_0mkxbakjxpqc_23-bbbID-R@conf2.biot.su) Callstate Change RINGING -> HANGUP
2021-08-16 14:24:53.312613 [DEBUG] switch_core_state_machine.c:850 (sofia/external/w_0mkxbakjxpqc_23-bbbID-R@conf2.biot.su) State HANGUP
2021-08-16 14:24:53.312613 [DEBUG] mod_sofia.c:453 Channel sofia/external/w_0mkxbakjxpqc_23-bbbID-R@conf2.biot.su hanging up, cause: INCOMPATIBLE_DESTINATION
2021-08-16 14:24:53.312613 [DEBUG] mod_sofia.c:598 Responding to INVITE with: 488
2021-08-16 14:24:53.312613 [DEBUG] switch_core_state_machine.c:60 sofia/external/w_0mkxbakjxpqc_23-bbbID-R@conf2.biot.su Standard HANGUP, cause: INCOMPATIBLE_DESTINATION
2021-08-16 14:24:53.312613 [DEBUG] switch_core_state_machine.c:850 (sofia/external/w_0mkxbakjxpqc_23-bbbID-R@conf2.biot.su) State HANGUP going to sleep
2021-08-16 14:24:53.312613 [DEBUG] switch_core_state_machine.c:620 (sofia/external/w_0mkxbakjxpqc_23-bbbID-R@conf2.biot.su) State Change CS_HANGUP -> CS_REPORTING
2021-08-16 14:24:53.312613 [DEBUG] switch_core_state_machine.c:585 (sofia/external/w_0mkxbakjxpqc_23-bbbID-R@conf2.biot.su) Running State Change CS_REPORTING (Cur 2 Tot 4)
2021-08-16 14:24:53.312613 [DEBUG] switch_core_state_machine.c:936 (sofia/external/w_0mkxbakjxpqc_23-bbbID-R@conf2.biot.su) State REPORTING
2021-08-16 14:24:53.312613 [DEBUG] switch_core_state_machine.c:174 sofia/external/w_0mkxbakjxpqc_23-bbbID-R@conf2.biot.su Standard REPORTING, cause: INCOMPATIBLE_DESTINATION
2021-08-16 14:24:53.312613 [DEBUG] switch_core_state_machine.c:936 (sofia/external/w_0mkxbakjxpqc_23-bbbID-R@conf2.biot.su) State REPORTING going to sleep
2021-08-16 14:24:53.312613 [DEBUG] switch_core_state_machine.c:611 (sofia/external/w_0mkxbakjxpqc_23-bbbID-R@conf2.biot.su) State Change CS_REPORTING -> CS_DESTROY
2021-08-16 14:24:53.312613 [DEBUG] switch_core_session.c:1736 Session 4 (sofia/external/w_0mkxbakjxpqc_23-bbbID-R@conf2.biot.su) Locked, Waiting on external entities
2021-08-16 14:24:53.312613 [NOTICE] switch_core_session.c:1754 Session 4 (sofia/external/w_0mkxbakjxpqc_23-bbbID-R@conf2.biot.su) Ended
2021-08-16 14:24:53.312613 [NOTICE] switch_core_session.c:1758 Close Channel sofia/external/w_0mkxbakjxpqc_23-bbbID-R@conf2.biot.su [CS_DESTROY]
The text was updated successfully, but these errors were encountered:
@Amorthis Can you please confirm whether cameras/listen only aren’t working as well?
Simply click on ‘Gather candidates’ button and tell us if you get any candidate from your Samsung device. You may be hitting a bug
I am testing 2.2 and 2.3 version. In my subdomain conf 2.2.
I see only black area in Webcam zone. Another team don’t see my connection.
when I connect to the problematic device, I see a black square at the place of the video, I hear the rest of the conference participants, but they do not see me or hear me.
this problem has appeared in the last 2 months
In Google Chrome on a41 problem
In Firefox on a41 no problem
Thanks. It seems you are hitting a bug related to Chrome/Samsung browsers (not all, but specific devices) where the browser hangs at the beginning of media connection (for audio/video/screenshare).
Источник
1004 Error frequently, when connecting with Microphone #10713
Describe the bug
Sometimes user gets 1004 Error when connecting with microphone. Most of times, when trying to connect again, the error doesn’t appear. This seems to be related with some network conditions (location, latency) and the availability plus response-time of the STUN server.
In most of cases, changing the default stun server fixes this problem.
To Reproduce
Steps to reproduce the behavior:
- Join with microphone a couple of times
- Sometimes you get 1004 (especially if you don’t use a different STUN server from bbb’s default)
- If you try joining again (one or a couple of times again) you will sucessfully connect to audio
Expected behavior
Users should not get 1004 Error
Actual behavior
User gets 1004 Error
Additional context
1004 happens when audio session terminates and ICE connection is not established. In most of cases, FreeSWITCH rejects the call because it is not able to find ICE candidates in SDP.
We currently have a 5s timeout to let RTCPeer collect all possible ICE candidates, which appears to be too low for some networks (sometimes the browser’s SDP is sent without candidates)
The text was updated successfully, but these errors were encountered:
Источник
user gets ICE 1004 error when connecting with microphone in android mobile/tablet in chrome,We are Currently using BBB stable release-version 2.4 #14136
Describe the bug
When the user tries to join the audio in android mobile/tablet with Chrome especially in android 11, everytime user will get a «Failure on call (reason=ICE error) (error 1004)» error after allowing their browser to share the microphone .
To Reproduce
Steps to reproduce the behavior:
Make sure that the BigBlueButton server HTML5 client settings
(/usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml) has
public.app.skipCheck set to true (this instructs the HTML5 client to skip the EchoTest)
Join a meeting from a browser that has not been allowed to share the microphone
with it
Choose to join with microphone
Allow the browser to use your microphone
Expected behavior
Audio conference should be joined without problems.
Actual behavior
A «Failure on call (reason=ICE error) (error 1004)» error is presented to the user,when
pushing neither «Microphone» or «Listen only»
Screenshots
- Device: Android Mobile/tablets.
- OS: Android 11
- Browser chrome
- Version [96.0.4]
The text was updated successfully, but these errors were encountered:
Источник
Bigbluebutton: Ошибка 1004 (причина = несовместимый SDP) (ошибка 1004)
Привет, ребята, я использую BBB из Chrome (Moodle). У меня не было ошибки, но со вчерашнего дня он начал выдавать ошибку 1004, причина несовместимости SDP. Что я должен делать?
Эта ошибка, по-видимому, означает, что существует проблема с запросом webrtc вашего IP-адреса.
Если у вас есть uBlock origin или Privacy Badger, проверьте там настройки и убедитесь, что опция запрета совместного использования вашего локального IP-адреса не установлена.
Все 12 Комментарий
Пожалуйста, откройте https://test.webrtc.org/ и запустите тест.
Вы администратор этого сервера BigBlueButton? Если да, запустите bbb-conf —check .
Кроме того, можете ли вы снова протестировать на https://test.bigbluebutton.org/ и сообщить нам, если вы по-прежнему сталкиваетесь с ошибкой?
Привет, у меня такая же ошибка при новой настройке. Веб-камера работает нормально, но голосовая связь невозможна.
Тест с https://test.bigbluebutton.org/ в порядке, поэтому мне кажется, что мне нужно что-то изменить в моей настройке. Я не менял никаких файлов конфигурации, просто прошел быстрый тест и заметил проблему.
Кстати: взял экземпляр Scaleway для запуска BBB, если это хоть как-то поможет. Использовал сценарий bbb-install.sh с Greenlight и моим собственным доменом.
bbb-conf —check вывод
Я изменил домен и общедоступный IP-адрес из соображений конфиденциальности.
В тестовой среде я проверил консоль в Chrome и получил двух кандидатов на подключение.
sip.invitecontext.mediahandler | ICE candidate received:
Но на моем собственном экземпляре такого сообщения в консоли нет.
Кажется, я что-то упустил. На панели Scaleway Dashboard я установил группу безопасности для своего экземпляра bbb, чтобы разрешить все соединения / порты udp и tcp.
Когда я использую Firefox 75 вместо Chrome 81.0.4044.113, звук / микрофон работают нормально.
Эта ошибка, по-видимому, означает, что существует проблема с запросом webrtc вашего IP-адреса.
Если у вас есть uBlock origin или Privacy Badger, проверьте там настройки и убедитесь, что опция запрета совместного использования вашего локального IP-адреса не установлена.
Спасибо за ответ. На самом деле это был тот маленький флажок в настройках uBlock, который я активировал некоторое время назад. Без этого флажка соединение работает безупречно.
Но помните о последствиях. Таким образом, каждый участник встречи может знать ваш IP-адрес, и если кто-то не играет хорошо, он может DDOS .
Это может быть для вас неважно, если вы делаете это в ограниченном объеме, но если это публичное собрание или что-то в этом роде, это может быть актуально.
Эта ошибка, по-видимому, означает, что существует проблема с запросом webrtc вашего IP-адреса.
Если у вас есть uBlock origin или Privacy Badger, проверьте там настройки и убедитесь, что опция запрета совместного использования вашего локального IP-адреса не установлена.
Я использую честный блокировщик рекламы. Я полностью отключил его, и это не помогло с https://demo.bigbluebutton.org , но оно работает с https://test.bigbluebutton.org. Еще я проверил в другом браузере — та же проблема. Мой IP-адрес серый, может быть, это причина . Итак, что делать?
Возможно, вы используете CGN, сайт demo.bigbluebutton.org поддерживает только IPv4. У test.bigbluebutton.org есть IPv6:
Скажу сразу, это «временная особенность»
сегодня был онлайн-класс, произошла эта ошибка, посещаемость была меньше использования интернета и никаких помех для других работ .. Это было удобно😁😜
Однако следует отметить, что эта проблема может быть решена поставщиком Bigbluebutton, настроившим сервер TUN, но это увеличит трафик, проходящий через его инфраструктуру, поскольку участники будут использовать сервер TUN в качестве точки встречи.
@KeroQuero. Удалось ли вам решить проблему с конфигурацией сервера за это время? В противном случае обратитесь за поддержкой в наш список рассылки / форум по адресу https://groups.google.com/forum/#!forum/bigbluebutton -setup.
Для других, у кого есть эта проблема: обычно отключение IPv6 на вашем сервере, а также удаление записи AAA из вашего домена BBB решает проблему, потому что тогда клиенты будут использовать IPv4 для подключения к серверу и, таким образом, не будут путать соединения IPv4 и IPv6.
| Broadcasting IP. | Не отмечен | Отмечено / Включено |
| — | — | — |
BBB test > присоединиться к аудио | — Не удалось установить соединение с WebSocket.
(ошибка 1002)
— Без звука | — Нет ошибки
— Воспроизведено аудио
BBB live> присоединиться к аудио | — Сбой при вызове (причина = несовместимый SDP)
(ошибка 1004)
— Без звука | — пока не тестирую (но думаю будет работать)
Тест WebRTC >
Network > Udp enabled | ❌ | ✔
Эта ошибка, по-видимому, означает, что существует проблема с запросом webrtc вашего IP-адреса.
Если у вас есть uBlock origin или Privacy Badger, проверьте там настройки и убедитесь, что опция запрета совместного использования вашего локального IP-адреса не установлена.
Источник
Describe the bug
When the setting public.app.skipCheck in /usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml is set to true, a first-time user will get a «Failure on call (reason=ICE error) (error 1004)» error after allowing their browser to share the microphone.
To Reproduce
Steps to reproduce the behavior:
- Make sure that the BigBlueButton server HTML5 client settings (/usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml) has public.app.skipCheck set to true (this instructs the HTML5 client to skip the Echo Test)
- Join a meeting from a browser that has not been allowed to share the microphone with it
- Choose to join with microphone
- Allow the browser to use your microphone
- See error
Expected behavior
Audio conference should be joined without problems
Actual behavior
A «Failure on call (reason=ICE error) (error 1004)» error is presented to the user, the audio joining method window stays active, but pushing neither «Microphone» or «Listen only» works. Closing the «How would you like to join» window and restarting the audio join process works without a problem.
Screenshots
BBB version (optional):
$ sudo bbb-conf —check | grep BigBlueButton
BigBlueButton Server 2.2.31
Desktop (please complete the following information):
- OS: Mac
- Browser Chrome
- Version 88.0.4324.146
Describe the bug
When the setting public.app.skipCheck in /usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml is set to true, a first-time user will get a «Failure on call (reason=ICE error) (error 1004)» error after allowing their browser to share the microphone.
To Reproduce
Steps to reproduce the behavior:
- Make sure that the BigBlueButton server HTML5 client settings (/usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml) has public.app.skipCheck set to true (this instructs the HTML5 client to skip the Echo Test)
- Join a meeting from a browser that has not been allowed to share the microphone with it
- Choose to join with microphone
- Allow the browser to use your microphone
- See error
Expected behavior
Audio conference should be joined without problems
Actual behavior
A «Failure on call (reason=ICE error) (error 1004)» error is presented to the user, the audio joining method window stays active, but pushing neither «Microphone» or «Listen only» works. Closing the «How would you like to join» window and restarting the audio join process works without a problem.
Screenshots
BBB version (optional):
$ sudo bbb-conf —check | grep BigBlueButton
BigBlueButton Server 2.2.31
Desktop (please complete the following information):
- OS: Mac
- Browser Chrome
- Version 88.0.4324.146
If you encountered any problems with the installation of BigBlueButton, this section covers how to resolve many of the common issues.
If you have not already done so, read through the getting help section.
Introduction
Start here: run sudo bbb-conf --check
We’ve built in a BigBlueButton configuration utility, called bbb-conf
, to help you configure your BigBlueButton server and troubleshoot your setup if something doesn’t work right.
If you think something isn’t working correctly, the first step is enter the following command.
This will check your setup to ensure the correct processes are running, the BigBlueButton components have correctly started, and look for common configuration problems that might prevent BigBlueButton from working properly.
If you see text after the line ** Potential problems described below **
, then it may be warnings (which you can ignore if you’ve change settings) or errors with the setup.
Recording
Recording not processing after upgrading
If after updating from BigBlueButton 2.0 to BigBlueButton 2.2 your recordings are not processing, and if you are seeing Permission denied
errors in /var/log/bigbluebutton/bbb-rap-worker.log
I, [2019-06-07T14:26:09.034878 #14808] INFO -- : /usr/lib/ruby/2.5.0/logger.rb:754:in `initialize': Permission denied @ rb_sysopen - /var/log/bigbluebutton/presentation/process-02feca80700b3e95b877af85db972904397857a1-1559909318977.log (Errno::EACCES)
You can resolve the errors with the following command
$ sudo chown -hR bigbluebutton:bigbluebutton /var/log/bigbluebutton/presentation /var/log/bigbluebutton/screenshare
and then rebuild the recordings that had not yet processed. You can see the list of recordings with
and then to rebuild a recording, use sudo bbb-record --rebuild <internal_meeting_id>
, as in
$ sudo bbb-record --rebuild 298b06603719217df51c5d030b6e9417cc036476-1559314745219
Webcams/screen sharing aren’t working
Certify that appropriate external addresses have been set for mediasoup. When installed via packages, mediasoup IPs are normally misconfigured. If installed via bbb-install, then IPv4 is generally correct, but IPv6 might be absent.
Nonetheless, we recommend double-checking the instructions in Updating mediasoup.
Configure mediasoup to use IPv6
mediasoup (bbb-webrtc-sfu) does not come with a IPv6 enabled by default when installed either via packages or bbb-install.
To configure IPv6, bbb-webrtc-sfu’s override configuration file (located in /etc/bigbluebutton/bbb-webrtc-sfu/production.yml
) should be used.
See Updating mediasoup for instructions and examples on how to do so.
I’m having troubles seeing webcams or screen sharing in Firefox
That’s usually the symptom of a known Firefox issue where it doesn’t comply with ICE-lite implementations (and mediasoup is one).
This issue can be worked around by forcing TURN usage in Firefox user agents. To achieve that, set the public.kurento.forceRelayOnFirefox
configuration to true
in /etc/bigbluebutton/bbb-html5.yml
. For example:
public:
kurento:
forceRelayOnFirefox: true
How often does this Firefox issue happens?
Short (non) answer: that’s difficult to measure.
Every Firefox installation is prone to the lack of ICE-lite spec compliance. However, the issue doesn’t manifest itself on all Firefox installations as it is dependent on how the end user’s network topology is organized. It’s generally a small subset of Firefox users, but that can vary depending on the user base.
Where can I track progress on a definitive solution or better workaround?
This is a Firefox bug, so the best place to get an overview on progress and what the issue is about is Mozilla’s issue.
You can also track BigBlueButton’s issue for updates on additional workarounds.
Why isn’t forceRelayOnFirefox enabled by default?
It’s not on by default because bigbluebutton does not come with a TURN server by default, and that’s what versioned-in-code setting presumes.
How do I know if mediasoup is being used?
The most direct and precise way to figure out whether mediasoup is being used is checking about:webrtc (Firefox) or chrome://webrtc-internals. For example: open one of those, share a camera. Look for the remote description (SDP); see if it contains mediasoup-client in the SDP header. If it does, you’re using mediasoup.
Regardless of that: mediasoup is the default in 2.5 and should always be used unless default settings were explicitly changed.
mediasoup is the default in 2.5. Why is Kurento still around?
Because Kurento is still used for stream recording. It should be removed as a dependency as soon as this issue is addressed.
Is single-core performance still important with mediasoup?
Yes.
How can I control the number of mediasoup workers?
To control the number of mediasoup workers, bbb-webrtc-sfu’s override configuration file (located in /etc/bigbluebutton/bbb-webrtc-sfu/production.yml
) should be used.
There are a couple of configurations of interest here:
mediasoup.workers
This configuration controls the number of mediasoup workers intended for general use (media type agnostic, shared pool).
Accepted values are:
"auto"
(default): createsceil((min(nproc,32) * 0.8) + (max(0, nproc - 32) / 2))
workers;"cores"
: creates workers up to the host’s core count (as provided by os.cpus().length);- <Number>: overrides the number of workers with a fixed value;
- The default and fallback values are
auto
.
For example:
- To set the number of workers to
cores
:yq w -i /etc/bigbluebutton/bbb-webrtc-sfu/production.yml mediasoup.workers "cores"
mediasoup.dedicatedMediaTypeWorkers
This configuration controls the number of mediasoup workers to be used by specific media types.
If a dedicated pool is set, streams of its media type will always land on it. Otherwise, they will use the shared pool.
The configuration is an object of the following format:
mediasoup.dedicatedMediaTypeWorkers:
audio: "auto"|"cores"|<Number>
main: "auto"|"cores"|<Number>
content: "auto"|"cores"|<Number>
The semantics of auto
, cores
and Number
are the same as in the mediasoup.workers
configuration. Default values for all media types are 0
(no dedicated workers).
The media types semantics are:
audio
: audio (listen only, microphone) streams;main
: webcam video streams;content
: screen sharing streams (audio and video).
For example:
- To set the number of dedicated audio workers to
auto
:yq w -i /etc/bigbluebutton/bbb-webrtc-sfu/production.yml mediasoup.dedicatedMediaTypeWorkers.audio "auto"
Can I scale the number of streams up indefinitely with mediasoup?
No. Scalability improves a lot with mediasoup, but there are still a couple of bottlenecks that can be hit as far as far as the media stack is concerned. Namely:
- The signaling server (bbb-webrtc-sfu): it does not scale vertically indefinitely. There’s always work ongoing on this area that can be tracked in this issue;
- The mediasoup worker balancing algorithm implemented by bbb-webrtc-sfu is still focused on multiparty meetings with a restrained number of users. If your goal is thousand-user 1-N (streaming-like) meetings, you may max out CPU usage on certain mediasoup workers even though there are other idle oworkers free.
Kurento
WebRTC video not working with Kurento
Check the value for /proc/sys/net/ipv4/tcp_syncookies
that it contains the value 1
.
$ cat /proc/sys/net/ipv4/tcp_syncookies
1
If not, edit /etc/sysctl.conf
and set the value for net.ipv4.tcp_syncookies
to 1
.
net.ipv4.tcp_syncookies = 1
Save the file and restart.
Unit kurento-media-server.service is masked
If sudo bbb-conf --check
returns the warning
Restarting BigBlueButton 2.0.0-RC9 (and cleaning out all log files) ...
Stopping BigBlueButton
... cleaning log files
Starting BigBlueButton
Failed to start kurento-media-server.service: Unit kurento-media-server.service is masked.
You can unmask Kurento using the command
$ systemctl unmask kurento-media-server.service
The default installation of BigBlueButton should work in most netowrk configurations; however, if your users ae behind a restrictive network that blocks outgoing UDP connections, they may encounter 1020 errors (media unable to reach server).
If you get reports of these errors, setup TURN server to help their browsers send WebRTC audio and video streams via TCP over port 443 to the TURN server. The TURN server will then relay the media to your BigBlueButton server.
See Configure TURN.
FreeSWITCH
Configure BigBluebutton/FreeSWITCH to support IPV6
The HTML5 client now enables users on mobile devices to connect to a BigBlueButton server. However, on some cellular networks iOS devices only receive an IPV6 address.
To enable BigBlueButton (FreeSWITCH) to accept incoming web socket connections on IPV6, the BigBlueButton server must have an IPV6 address. You also need to make the following changes to the server.
First, create the file /etc/nginx/conf.d/bigbluebutton_sip_addr_map.conf
with this content:
map $remote_addr $freeswitch_addr {
"~:" [2001:db8::1];
default 192.0.2.1;
}
replacing the ip addresses 192.0.2.1
with the system’s external IPV4 addresses, and replace 2001:db8::1
with the system’s external IPV6 address. Next, edit the file /etc/bigbluebutton/nginx/sip.nginx
to have the following:
proxy_pass https://$freeswitch_addr:7443;
Next, ensure all of the following params are present in freeswitch’s sip_profiles/external-ipv6.xml
:
- ws-binding
- wss-binding
- rtcp-audio-interval-msec
- rtcp-video-interval-msec
- dtmf-type
- liberal-dtmf
- enable-3pcc
If any are missing, copy them from sip_profiles/external.xml
, then restart BigBlueButton (sudo bbb-conf --restart
).
FreeSWITCH fails to bind to IPV4
In rare occasions after shutdown/restart, the FreeSWITCH database can get corrupted. This will cause FreeSWITCH to have problems binding to IPV4 address (you may see error 1006 when users try to connect).
To check, look in /opt/freeswitch/var/log/freeswitch/freeswitch.log
for errors related to loading the database.
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]!
If you see these errors, clear the FreeSWITCH database (BigBlueButton doesn’t use the database and FreeSWITCH will recreate it on startup).
$ sudo systemctl stop freeswitch
$ rm -rf /opt/freeswitch/var/lib/freeswitch/db/*
$ sudo systemctl start freeswitch
Forward calls from an Asterisk server to FreeSWITCH
Let’s assume the following:
asterisk server ip: 192.168.1.100
bigbluebutton/freeswitch ip: 192.168.1.200
Changes to your Asterisk server
Setup your gateway to BigBlueButton/FreeSWITCH. in /etc/asterisk/sip.conf
add
[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
Route the calls to the gateway. In /etc/asterisk/extensions.conf
context where your calls are being handled, forward the calls to the gateway. Here, when someone dials 85001, the call is sent to the fs-gw
defined above.
exten => 85001,1,Dial(SIP/fs-gw/${EXTEN})
exten => 85001,2,Hangup
Changes to your BigBlueButton/FreeSWITCH server
In BigBlueButton/FreeSWITCH, make the following changes:
Lock down so that only Asterisk can forward calls to FreeSWITCH. In /opt/freeswitch/conf/autoload_configs/acl.conf.xml
, add the following ACL. We also need to allow BigBlueButton to call into FreeSWITCH, that’s why we add the IP of BigBlueButton/FreeSWITCH into the 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>
Then we apply the ACL into the profile that receives the calls from external gateways. In /opt/freeswitch/conf/sip_profiles/external.xml
, add the ACL under <settings>
<settings>
<!-- Apply ACL from asterisk-gw -->
<param name="apply-inbound-acl" value="asterisk-gw"/>
...
</settings>
To debug, try connecting to FS CLI and increase logging level. Once connected, make your call and see what the logs say.
$ /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 fails to bind to port 8021
FreeSWITCH supports both IPV4 and IPV6. However, if your server does not support IPV6, FreeSWITCH will be unable to bind to port 8021. If you run sudo bbb-conf --check
and see the following error
# 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.
#
it might be that your server has IPV6 disabled (or does not support it). You can check this by running the following command
$ sudo ip addr | grep inet6
inet6 ::1/128 scope host
...
If you do not see the line inet6 ::1/128 scope host
, then your server has IPV6 disabled. In this case, we need to disable FreeSWITCH’s support for IPV6. First, edit /opt/freeswitch/etc/freeswitch/autoload_configs/event_socket.conf.xml
and change the line
<param name="listen-ip" value="::"/>
to
<param name="listen-ip" value="127.0.0.1"/>
This tells FreeSWITCH that instead of binding port 8021 to the local IPV6 address, bind to the IPV4 address 127.0.0.1. Next, execute the following two commands
$ 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_
and then restart BigBlueButton with the commands
$ sudo bbb-conf --clean
$ sudo bbb-conf --check
FreeSWITCH fails to start with a SETSCHEDULER error
When running in a container (like a chroot, OpenVZ or LXC), it might not be possible for FreeSWITCH to set its CPU priority to real-time round robin. If not, it will result in lower performance compared to a non-virtualized installation.
If you running BigBlueButton in a container and an error starting FreeSWITCH, try running systemctl status freeswitch.service
and see if you see the error related to 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.
If you see SETSCHEDULER
in the error message, edit /lib/systemd/system/freeswitch.service
and comment out the line containing CPUSchedulingPolicy=rr
(round robin)
IOSchedulingPriority=2
#CPUSchedulingPolicy=rr
CPUSchedulingPriority=89
Save the file, run systemctl daemon-reload
, and then restart BigBlueButton. FreeSWITCH should now startup without error.
Users not able to join Listen Only mode
When doing sudo bbb-conf --check
, you may see the warning
voice Application failed to register with sip server
This error occurs when bbb-apps-sip
isn’t able to make a SIP call to FreeSWITCH. You’ll see this in BigBlueButton when users click the headset icon and don’t join the voice conference.
One possible cause for this is you have just installed BigBlueButton, but not restarted it. The packages do not start up the BigBlueButton components in the right order. To restart BigBlueButton, do the following:
$ sudo bbb-conf --restart
$ sudo bbb-conf --check
If you don’t want FreeSWITCH to bind to 127.0.0.1, you need to figure out which IP address its using. First, determine the IP address FreeSWITCH is monitoring for incoming SIP calls with the following command:
$ netstat -ant | grep 5060
You should see an output such as
tcp 0 0 234.147.116.3:5060 0.0.0.0:* LISTEN
In this example, FreeSWITCH is listening on IP address 234.147.116.3. The IP address on your server will be different.
Next, edit /usr/share/red5/webapps/sip/WEB-INF/bigbluebutton-sip.properties
and set the value for sip.server.host
to the IP address returned from the above command. Save the changes (you’ll need to edit the file as root to save changes).
Restart BigBlueButton using the commands and run the built-in diagnostics checks.
$ sudo bbb-conf --clean
$ sudo bbb-conf --check
Unable to connect using fs_cli
As of BigBlueButton 2.2.18, the packaging now replaces the default ClueCon
password for connecting to the FreeSWITCH command line interface (fs_cli
) with a random password.
(By default, FreeSWITCH only allowed unauthenticated connections from 127.0.0.1, but it’s still good security practice to not use default passwords).
To connect to fs_cli
, use the following command which supplies the password for authenticating.
/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)
We also added /usr/local/bin/fs_clibbb
with the contents
#!/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)
that will let you type fs_clibbb
at the command prompt to get into FreeSWITCH console.
Echo test hangs upgrading BigBlueButton 2.2
The install scripts now change the default CLI password for FreeSWITCH and the other parts of BigBlueButton need to use this new password. For a new installation, the install scripts will automatically set this new password.
If you upgrade using bbb-install.sh, the script will update the FreeSWITCH password using sudo bbb-conf --setip <hostname>
.
If you upgraded using manual steps, be sure to do ao sudo bbb-conf --setip <hostname>
to sync all the FreeSWITCH passwords.
FreeSWITCH using default stun server
For many years, in BigBlueButton’s FreeSWITCH configuration file /opt/freeswitch/etc/freeswitch/vars.xml
, the default value for external_rtp_ip
was stun.freeswitch.org
<X-PRE-PROCESS cmd="set" data="external_rtp_ip=stun:stun.freeswitch.org"/>
However, this is not a reliable choice for stun server. Recommend either changing it to your servers external IP address or setup your own stun/turn server. For example, if your server has an external IP at 234.32.3.3
<X-PRE-PROCESS cmd="set" data="external_rtp_ip=234.32.3.3"/>
You can add a line in /etc/bigbluebutton/bbb-conf/apply-conf.sh
to always apply this value even if the FreeSWITCH package upgrades.
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
Note: If your server has an internal/exteral IP address, such as on AWS EC2 server, be sure to set it to the external IP address configure a dummy network interface card (see Update FreeSWITCH).
HTML5 Server
bbb-html5 fails to start with a SETSCHEDULER error
As of 2.2.31, the systemd unit file for bbb-html5.service
now contains the following lines
CPUSchedulingPolicy=fifo
Nice=19
You can override this with creating the following directory
mkdir /etc/systemd/system/bbb-html5.service.d
and creating /etc/systemd/system/bbb-html5.service.d/override.conf
with the following contents
[Service]
CPUSchedulingPolicy=other
Nice=-10
Then do systemctl daemon-reload
and restart BigBlueButton.
Installation and packages
The following packages have unmet dependencies
When installing the latest build of BigBlueButton, the package bbb-conf
now uses yq
to manage YAML files.
You need to add the repository ppa:rmescandon/yq
to your server. For steps on how to do this, see Update your server in the BigBlueButton 2.2 install guide.
Alternatively, if you have not made any customizations to BigBlueButton (outside of using bbb-conf
), you can use bbb-install.sh to install/upgrade to the latest version (the bbb-install.sh
script will automatically install the repository for yq
).
No Symbolic Link
If you’ve installed/uninstalled BigBlueButton packages, you may get a No Symbolic Link
warning from bbb-conf --check
:
** Potential Problems **
nginx (conf): no symbolic link in /etc/nginx/sites-enabled for bigbluebutton
To solve this, add a symbolic link to nginx for the BigBlueButton site:
$ sudo ln -s /etc/nginx/sites-available/bigbluebutton /etc/nginx/sites-enabled/bigbluebutton
$ sudo /etc/init.d/nginx restart
Package install fails with sed error
Some of the BigBlueButton packages use sed
scripts to extract contents from configuration files. If the file does not exist at the time of the script’s execution, or the sed script matches multiple entries in a file (such as when a configuration line is commented out), you can see an error such as
Setting up bbb-client (1:2.0.0-374) ...
sed: -e expression #1, char 42: unterminated `s' command
dpkg: error processing package bbb-client (--configure):
subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of bbb-config:
bbb-config depends on bbb-client; however:
Package bbb-client is not configured yet.
dpkg: error processing package bbb-config (--configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
bbb-client
bbb-config
E: Sub-process /usr/bin/dpkg returned an error code (1)
In the above example, the /var/lib/dpkg/info/bbb-client.postinst
failed to finish. To debug, edit this file and change the first line to read
and run
$ sudo apt-get install -f
You should now see each command in bbb-conf.postinst
as it executes upto the line in which the error occurs. Post this output to https://groups.google.com/forum/#!forum/bigbluebutton-setup
for help in resolving the issue.
Errors with packages
Some hosting providers do not provide a complete /etc/apt/source.list
. If you are finding your are unable to install a package, try replacing your /etc/apt/sources.list
with the following
deb https://archive.ubuntu.com/ubuntu xenial main restricted universe multiverse
deb https://archive.ubuntu.com/ubuntu xenial-updates main restricted universe multiverse
deb https://security.ubuntu.com/ubuntu xenial-security main restricted universe multiverse
then do
and try installing BigBlueButton again from the beginning.
WebRTC errors (1001, 1002,…)
WebRTC offers very high-quality audio. However, the user’s network settings (or firewall) may not allow WebRTC to connect (or keep connected).
Here are the following lists the possible WebRTC error messages that a user may encounter:
- 1001: WebSocket disconnected — The WebSocket had connected successfully and has now disconnected. Possible Causes:
- Loss of internet connection
- Nginx restarting can cause this
- 1002: Could not make a WebSocket connection — The initial WebSocket connection was unsuccessful. Possible Causes:
- Firewall blocking ws protocol
- Server is down or improperly configured
- See potential solution here.
- 1003: Browser version not supported — Browser doesn’t implement the necessary WebRTC API methods. Possible Causes:
- Out of date browser
- 1004: Failure on call — The call was attempted, but failed. Possible Causes:
- For a full list of causes refer here
- There are 24 different causes so I don’t really want to list all of them
- Solution for this issue outlined here.
- 1005: Call ended unexpectedly — The call was successful, but ended without user requesting to end the session. Possible Causes:
- Unknown
- 1006: Call timed out — The library took too long to try and connect the call. Possible Causes:
- Previously caused by Firefox 33-beta on Mac. We’ve been unable to reproduce since release of FireFox 34
- 1007: ICE negotiation failed — The browser and FreeSWITCH try to negotiate ports to use to stream the media and that negotiation failed. Possible Causes:
- NAT is blocking the connection
- Firewall is blocking the UDP connection/ports
- 1008: Call transfer failed — A timeout while waiting for FreeSWITCH to transfer from the echo test to the real conference. This might be caused by a misconfiguration in FreeSWITCH, or there might be a media error and the DTMF command to transfer didn’t go through (In this case, the voice in the echo test probably didn’t work either.)
- 1009: Could not fetch STUN/TURN server information — This indicates either a BigBlueButton bug (or you’re using an unsupported new client/old server combination), but could also happen due to a network interruption.
- 1010: ICE negotiation timeout — After the call is accepted the client’s browser and the server try and negotiate a path for the audio data. In some network setups this negotiation takes an abnormally long time to fail and this timeout is set to avoid the client getting stuck.
- 1020: Media cloud could not reach the server — See how to solve this here.
Networking
Server running behind NAT
The following issue might be helpful in debugging if you run into errors and your server is behind NAT.
Could not get your microphone for a WebRTC call
Chrome requires (As of Chrome 47) that to access the user’s microphone for WebRTC your site must be serving pages via HTTPS (that is, nginx is configured with a SSL certificate).
If the user attempts to share their microphone and your BigBlueButton sever is not configured for SSL, Chrome will block access and BigBlueButton will report the following error
WebRTC Audio Failure: Detected the following WebRTC issue: Could not get your microphone for a WebRTC call. Do you want to try flash instead?
To enable Chrome to access the user’s microphone, see Configure HTTPS on BigBlueButton.
The browser is not supported
When you attempt to join a BigBlueButton session, the client looks for supported browsers before fully loading. The client gets its list of supported browsers from /usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml
. You can see the list of supported browsers at the bottom. For example,
- browser: mobileSafari
version:
- 11
- 1
states that Mobile Safari
version 11.1 or later is supported (notice the first letter is lower case and concatenated with the remainder of the browser name).
To add a browser to the list, first find your browser’s useragent. You could use a tool like https://wtools.io/check-my-user-agent as well. For example, with the Vivaldi browser you might see
Vivaldi 2.8.1664 / Linux 0.0.0
Next, to add this as a supported browser, append to settings.yml
- browser: vivaldi
version:
- 2
- 8
save the updated settings.yml
file, and then restart your BigBlueButton server with sudo bbb-conf --restart
. Note any browser you add must support WebRTC libraries (not all do), so be sure to check it first with https://test.webrtc.org/.
Tomcat shows “Cannot assign requested address on startup”
If your server has multiple IP addresses, Tomcat might not pick the right address to bind. This could throw an error on installation when tomcat is attempting to install.
Check /var/log/tomcat7/catalina.out
for the following error
Jan 30, 2018 9:17:37 AM org.apache.catalina.core.StandardServer await
SEVERE: StandardServer.await: create[localhost:8005]:
java.net.BindException: Cannot assign requested address (Bind failed)
at java.net.PlainSocketImpl.socketBind(Native Method)
If you see this, first ensure that there isn’t another copy of tomcat running by doing ps -aef | grep tomcat7
. If you do see another copy running, try killing it and then restarting tomcat.
If you still see the same error in catalina.out
, then /etc/tomcat7/server.xml
and change
<Server port="8005" shutdown="SHUTDOWN">
<Server address="0.0.0.0" port="8005" shutdown="SHUTDOWN">
Restart tomcat7 again and it should start normally.
nginx not running
The common reasons for nginx not running are inability to bind to port 80 and configuration errors. To check if port 80 is already in use, use
to see if any process is currently bound to port 80. If so, check to see if another web server is installed. If so, then stop the web server and try to restart nginx. One of the server requirements before you install BigBlueButton is that port 80 is not in use by another application (such as Apache). For details on why this is a requirements, see We recommend running BigBlueButton on port 80.
If port 80 is free, check if your nginx configuration file has errors. Try a restart of nginx
$ sudo systemctl restart nginx
and look for the output of
[ OK ]
If you see [ Fail ]
, then your nginx configuration files might have a syntax error. Check the syntax of the nginx configuration files using the command
and see if it reports any errors. You can also check the error.log file for nginx to see what errors it gives on startup
$ sudo cat /var/log/nginx/error.log
“Welcome to nginx”
During installation of BigBlueButton the packaging scripts attempt to assign the correct IP address during setup. However, if the IP address changes (such as when rebooting a VM), or the first IP address was not the correct IP address for the server, you may see a “Welcome to nginx” page.
To reconfigure the BigBlueButton to use the correct IP address or hostname, see BigBlueButton does not load.
bbb-web
404 Error when loading the client
BigBlueButton 2.2 requires Java 8 as the default Java. Recently, some Ubuntu 16.04 distributions have switched the default version of Java to Java 9 (or later).
Use java -version
to check that the default version of 1.8.0
.
~/dev$ java -version
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-8u242-b08-0ubuntu3~16.04-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)
If not, do the following
sudo apt-get install openjdk-8-jre
update-alternatives --config java # Choose java-8 as default
Run java -version
and confirm it now shows the default as 1.8.0
, and then restart BigBlueButton with sudo bbb-conf --restart
Blank presentation area on create or upload
If you join a meeting and the default presentation is not visible or your uploaded presentation doesn’t display, then this is most likely due to a permissions error. To solve this, ensure that /var/bigbluebutton/
is owned by bigbluebutton
rather than root
or any other account. See this issue for more explanation.
Unable to create presentation
If you see the following error in /var/log/bigbluebutton/bbb-web.log
failed to map segment from shared object: Operation not permitted
use the command mount
to check that the /tmp
director does not have noexec
permissions (which would prevent executables from running in the /tmp directory). If you see noexec
for /tmp
, you need to remount the directory with permissions that enable processes (such as the slide conversion) to execute in the /tmp
directory.
Too many open files
On servers with greater than 8 CPU cores, bbb-web
log (/var/log/bigbluebutton/bbb-web.log
) may throw an error of Too many open files
Caused by: java.io.IOException: Too many open files
To resolve, create an override file that increases the number of open files for 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
bbb-web takes a long time to startup
bbb-web
relies on the SecureRandom class (which uses available entropy) to provide random values for its session IDs. On a virtualized server, however, the available entropy can run low and cause bbb-web to block for a long period before it finishes it’s startup sequence (see Slow startup of tomcat).
To provide bbb-web
with more entropy, you can install haveged
$ sudo apt-get install haveged
For more information see How to Setup Additional Entropy for Cloud Servers Using Haveged.
Error installing bbb-web
If you get the following error during upgrade to BigBlueButton
Unpacking bbb-web (1:2.2.0-67) over (1:2.2.0-66) ...
dpkg: error processing archive /var/cache/apt/archives/bbb-web_1%3a2.2.0-67_amd64.deb (--unpack):
trying to overwrite '/etc/bigbluebutton/nginx/web', which is also in package bbb-client 1:2.2.0-28
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/bbb-web_1%3a2.2.0-67_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)```
Then first uninstall bbb-client
$ sudo apt-get purge bbb-client
and try installing BigBlueButton again.
Other errors
Root partition too small
If the root partition on your BigBlueButton server is too small (for disk space requirements see Before you install), we recommend moving the following directories to an external partition with sufficient disk space.
BigBlueButton processing and storage of recordings:
Location of all media directories on disk available here.
To make the move, we’ll first stop BigBlueButton, then move the above directories to a new location on the external partition, create symbolic links from the original locations to the new locations, and restart BigBlueButton.
In the following example, the external partition is mounted on /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 does not load
If your has changed it’s network connection (such as on reboot), you can clean most of BigBlueButton’s configuration files with the following steps.
$ sudo bbb-conf --setip <ip_address_or_hostname>
$ sudo bbb-conf --clean
$ sudo bbb-conf --check
For more information see bbb-conf options.
Running within an LXD Container
LXD is a very powerful container system for Ubuntu lets you run full Ubuntu 16.04 servers within a container. Because you can easily clone and snapshot LXD containers, they are ideal for development and testing of BigBlueButton.
However, if you install BigBlueButton within an LXD container, you will get the following error from sudo bbb-conf --check
** Potential problems described below **
#
# Error: Unable to connect to the FreeSWITCH Event Socket Layer on port 8021
You’ll also get an error from starting FreeSWITCH with bbb-conf --restart
. When you try systemctl status freeswitch.service
, you’ll see an error with SETSCHEDULER.
$ sudo 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 Wed 2017-04-26 16:34:24 UTC; 23h ago
Process: 7038 ExecStart=/opt/freeswitch/bin/freeswitch -u freeswitch -g daemon -ncwait $DAEMON_OPTS (code=exited, status=214/SETSCHEDULER)
Apr 26 16:34:24 big systemd[1]: Failed to start freeswitch.
Apr 26 16:34:24 big systemd[1]: freeswitch.service: Unit entered failed state.
Apr 26 16:34:24 big systemd[1]: freeswitch.service: Failed with result 'exit-code'.
Apr 26 16:34:24 big systemd[1]: freeswitch.service: Service hold-off time over, scheduling restart.
Apr 26 16:34:24 big systemd[1]: Stopped freeswitch.
Apr 26 16:34:24 big systemd[1]: freeswitch.service: Start request repeated too quickly.
Apr 26 16:34:24 big systemd[1]: Failed to start freeswitch.
This error occurs because the default systemd unit script for FreeSWITCH tries to run with permissions not available to the LXD container. To run FreeSWITCH within an LXD container, edit /lib/systemd/system/freeswitch.service
and replace with the following
[Unit]
Description=freeswitch
After=syslog.target network.target local-fs.target
[Service]
Type=forking
PIDFile=/opt/freeswitch/var/run/freeswitch/freeswitch.pid
Environment="DAEMON_OPTS=-nonat"
EnvironmentFile=-/etc/default/freeswitch
ExecStart=/opt/freeswitch/bin/freeswitch -u freeswitch -g daemon -ncwait $DAEMON_OPTS
TimeoutSec=45s
Restart=always
WorkingDirectory=/opt/freeswitch
User=freeswitch
Group=daemon
[Install]
WantedBy=multi-user.target
Then enter the following commands to load the new unit file and restart BigBlueButton.
$ sudo systemctl daemon-reload
$ sudo bbb-conf --restart
You can run BigBlueButton within a LXD container.
Unable to connect to redis
The packages bbb-apps-akka
, bbb-fsesl-akka
, and bbb-transcode-akka
are packaged by sbt, but they need to have redis-server running before they startup. If sudo bbb-conf --debug
shows redis connection errors
Sep 22 15:32:12 sv21 bbb-apps-akka[7804]: Exception in thread "main" io.lettuce.core.RedisConnectionException: Unable to connect to 127.0.0.1:6379
Sep 22 15:32:12 sv21 bbb-apps-akka[7804]: #011at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:78)
Sep 22 15:32:12 sv21 bbb-apps-akka[7804]: #011at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:56)
Sep 22 15:32:12 sv21 bbb-apps-akka[7804]: Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: /127.0.0.1:6379
Sep 22 15:32:12 sv21 bbb-apps-akka[7804]: Caused by: java.net.ConnectException: Connection refused
Sep 22 15:32:12 sv21 bbb-fsesl-akka[7893]: Exception in thread "main" io.lettuce.core.RedisConnectionException: Unable to connect to 127.0.0.1:6379
Sep 22 15:32:12 sv21 bbb-fsesl-akka[7893]: #011at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:78)
Sep 22 15:32:12 sv21 bbb-fsesl-akka[7893]: #011at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:56)
Sep 22 15:32:12 sv21 bbb-fsesl-akka[7893]: Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: /127.0.0.1:6379
Sep 22 15:32:12 sv21 bbb-fsesl-akka[7893]: Caused by: java.net.ConnectException: Connection refused
Sep 22 15:32:13 sv21 bbb-transcode-akka[8001]: Exception in thread "main" io.lettuce.core.RedisConnectionException: Unable to connect to 127.0.0.1:6379
Sep 22 15:32:13 sv21 bbb-transcode-akka[8001]: #011at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:78)
Sep 22 15:32:13 sv21 bbb-transcode-akka[8001]: #011at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:56)
Sep 22 15:32:13 sv21 bbb-transcode-akka[8001]: Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: /127.0.0.1:6379
Sep 22 15:32:13 sv21 bbb-transcode-akka[8001]: Caused by: java.net.ConnectException: Connection refused
you can add overrides for these three packages to ensure they start after redis.server. Run the following script.
#!/bin/bash
mkdir -p /etc/systemd/system/bbb-apps-akka.service.d
cat > /etc/systemd/system/bbb-apps-akka.service.d/override.conf <<HERE
[Unit]
Requires=redis-server.service
After=redis-server.service
HERE
mkdir -p /etc/systemd/system/bbb-fsesl-akka.service.d
cat > /etc/systemd/system/bbb-fsesl-akka.service.d/override.conf <<HERE
[Unit]
Requires=redis-server.service
After=redis-server.service
HERE
mkdir -p /etc/systemd/system/bbb-transcode-akka.service.d
cat > /etc/systemd/system/bbb-transcode-akka.service.d/override.conf <<HERE
[Unit]
Requires=redis-server.service
After=redis-server.service
HERE
The script bbb-install
now creates these overrides by default.
500 Internal Server Error
It is most likely an error on GreenLight. Check the log file according to Troubleshooting Greenlight.
If this error occurrs on just a small number of PCs accessing a BigBlueButton server within a LAN through a proxy server and you find the description “Error::Unsafe Host Error (x.x.x.x is not a safe host)” (where x.x.x.x is an IP address) in the log file, check if the “Don’t use the proxy server for local (intranet) addresses” (in the Windows proxy setting) is ticked.
Legacy errors
Conference not found errors
The command sudo bbb-conf --debug
searches through the red5, tomcat7, and nginx logs looking for errors and exceptions. However, the messages such as
-- ERRORS found in /usr/share/red5/log/* --
/usr/share/red5/log/bigbluebutton.log:2015-05-02 13:50:37,681-04:00 [pool-17-thread-1] ERROR o.b.w.v.f.a.PopulateRoomCommand - Not XML: [Conference 78505 not found]
are innocuous and can be ignored.
If you encountered any problems with the installation of BigBlueButton, this section covers how to resolve many of the common issues.
If you have not already done so, read through the getting help section.
Introduction
Start here: run sudo bbb-conf --check
We’ve built in a BigBlueButton configuration utility, called bbb-conf
, to help you configure your BigBlueButton server and troubleshoot your setup if something doesn’t work right.
If you think something isn’t working correctly, the first step is enter the following command.
This will check your setup to ensure the correct processes are running, the BigBlueButton components have correctly started, and look for common configuration problems that might prevent BigBlueButton from working properly.
If you see text after the line ** Potential problems described below **
, then it may be warnings (which you can ignore if you’ve change settings) or errors with the setup.
Recording
Recording not processing after upgrading
If after updating from BigBlueButton 2.0 to BigBlueButton 2.2 your recordings are not processing, and if you are seeing Permission denied
errors in /var/log/bigbluebutton/bbb-rap-worker.log
I, [2019-06-07T14:26:09.034878 #14808] INFO -- : /usr/lib/ruby/2.5.0/logger.rb:754:in `initialize': Permission denied @ rb_sysopen - /var/log/bigbluebutton/presentation/process-02feca80700b3e95b877af85db972904397857a1-1559909318977.log (Errno::EACCES)
You can resolve the errors with the following command
$ sudo chown -hR bigbluebutton:bigbluebutton /var/log/bigbluebutton/presentation /var/log/bigbluebutton/screenshare
and then rebuild the recordings that had not yet processed. You can see the list of recordings with
and then to rebuild a recording, use sudo bbb-record --rebuild <internal_meeting_id>
, as in
$ sudo bbb-record --rebuild 298b06603719217df51c5d030b6e9417cc036476-1559314745219
Webcams/screen sharing aren’t working
Certify that appropriate external addresses have been set for mediasoup. When installed via packages, mediasoup IPs are normally misconfigured. If installed via bbb-install, then IPv4 is generally correct, but IPv6 might be absent.
Nonetheless, we recommend double-checking the instructions in Updating mediasoup.
Configure mediasoup to use IPv6
mediasoup (bbb-webrtc-sfu) does not come with a IPv6 enabled by default when installed either via packages or bbb-install.
To configure IPv6, bbb-webrtc-sfu’s override configuration file (located in /etc/bigbluebutton/bbb-webrtc-sfu/production.yml
) should be used.
See Updating mediasoup for instructions and examples on how to do so.
I’m having troubles seeing webcams or screen sharing in Firefox
That’s usually the symptom of a known Firefox issue where it doesn’t comply with ICE-lite implementations (and mediasoup is one).
This issue can be worked around by forcing TURN usage in Firefox user agents. To achieve that, set the public.kurento.forceRelayOnFirefox
configuration to true
in /etc/bigbluebutton/bbb-html5.yml
. For example:
public:
kurento:
forceRelayOnFirefox: true
How often does this Firefox issue happens?
Short (non) answer: that’s difficult to measure.
Every Firefox installation is prone to the lack of ICE-lite spec compliance. However, the issue doesn’t manifest itself on all Firefox installations as it is dependent on how the end user’s network topology is organized. It’s generally a small subset of Firefox users, but that can vary depending on the user base.
Where can I track progress on a definitive solution or better workaround?
This is a Firefox bug, so the best place to get an overview on progress and what the issue is about is Mozilla’s issue.
You can also track BigBlueButton’s issue for updates on additional workarounds.
Why isn’t forceRelayOnFirefox enabled by default?
It’s not on by default because bigbluebutton does not come with a TURN server by default, and that’s what versioned-in-code setting presumes.
How do I know if mediasoup is being used?
The most direct and precise way to figure out whether mediasoup is being used is checking about:webrtc (Firefox) or chrome://webrtc-internals. For example: open one of those, share a camera. Look for the remote description (SDP); see if it contains mediasoup-client in the SDP header. If it does, you’re using mediasoup.
Regardless of that: mediasoup is the default in 2.5 and should always be used unless default settings were explicitly changed.
mediasoup is the default in 2.5. Why is Kurento still around?
Because Kurento is still used for stream recording. It should be removed as a dependency as soon as this issue is addressed.
Is single-core performance still important with mediasoup?
Yes.
How can I control the number of mediasoup workers?
To control the number of mediasoup workers, bbb-webrtc-sfu’s override configuration file (located in /etc/bigbluebutton/bbb-webrtc-sfu/production.yml
) should be used.
There are a couple of configurations of interest here:
mediasoup.workers
This configuration controls the number of mediasoup workers intended for general use (media type agnostic, shared pool).
Accepted values are:
"auto"
(default): createsceil((min(nproc,32) * 0.8) + (max(0, nproc - 32) / 2))
workers;"cores"
: creates workers up to the host’s core count (as provided by os.cpus().length);- <Number>: overrides the number of workers with a fixed value;
- The default and fallback values are
auto
.
For example:
- To set the number of workers to
cores
:yq w -i /etc/bigbluebutton/bbb-webrtc-sfu/production.yml mediasoup.workers "cores"
mediasoup.dedicatedMediaTypeWorkers
This configuration controls the number of mediasoup workers to be used by specific media types.
If a dedicated pool is set, streams of its media type will always land on it. Otherwise, they will use the shared pool.
The configuration is an object of the following format:
mediasoup.dedicatedMediaTypeWorkers:
audio: "auto"|"cores"|<Number>
main: "auto"|"cores"|<Number>
content: "auto"|"cores"|<Number>
The semantics of auto
, cores
and Number
are the same as in the mediasoup.workers
configuration. Default values for all media types are 0
(no dedicated workers).
The media types semantics are:
audio
: audio (listen only, microphone) streams;main
: webcam video streams;content
: screen sharing streams (audio and video).
For example:
- To set the number of dedicated audio workers to
auto
:yq w -i /etc/bigbluebutton/bbb-webrtc-sfu/production.yml mediasoup.dedicatedMediaTypeWorkers.audio "auto"
Can I scale the number of streams up indefinitely with mediasoup?
No. Scalability improves a lot with mediasoup, but there are still a couple of bottlenecks that can be hit as far as far as the media stack is concerned. Namely:
- The signaling server (bbb-webrtc-sfu): it does not scale vertically indefinitely. There’s always work ongoing on this area that can be tracked in this issue;
- The mediasoup worker balancing algorithm implemented by bbb-webrtc-sfu is still focused on multiparty meetings with a restrained number of users. If your goal is thousand-user 1-N (streaming-like) meetings, you may max out CPU usage on certain mediasoup workers even though there are other idle oworkers free.
Kurento
WebRTC video not working with Kurento
Check the value for /proc/sys/net/ipv4/tcp_syncookies
that it contains the value 1
.
$ cat /proc/sys/net/ipv4/tcp_syncookies
1
If not, edit /etc/sysctl.conf
and set the value for net.ipv4.tcp_syncookies
to 1
.
net.ipv4.tcp_syncookies = 1
Save the file and restart.
Unit kurento-media-server.service is masked
If sudo bbb-conf --check
returns the warning
Restarting BigBlueButton 2.0.0-RC9 (and cleaning out all log files) ...
Stopping BigBlueButton
... cleaning log files
Starting BigBlueButton
Failed to start kurento-media-server.service: Unit kurento-media-server.service is masked.
You can unmask Kurento using the command
$ systemctl unmask kurento-media-server.service
The default installation of BigBlueButton should work in most netowrk configurations; however, if your users ae behind a restrictive network that blocks outgoing UDP connections, they may encounter 1020 errors (media unable to reach server).
If you get reports of these errors, setup TURN server to help their browsers send WebRTC audio and video streams via TCP over port 443 to the TURN server. The TURN server will then relay the media to your BigBlueButton server.
See Configure TURN.
FreeSWITCH
Configure BigBluebutton/FreeSWITCH to support IPV6
The HTML5 client now enables users on mobile devices to connect to a BigBlueButton server. However, on some cellular networks iOS devices only receive an IPV6 address.
To enable BigBlueButton (FreeSWITCH) to accept incoming web socket connections on IPV6, the BigBlueButton server must have an IPV6 address. You also need to make the following changes to the server.
First, create the file /etc/nginx/conf.d/bigbluebutton_sip_addr_map.conf
with this content:
map $remote_addr $freeswitch_addr {
"~:" [2001:db8::1];
default 192.0.2.1;
}
replacing the ip addresses 192.0.2.1
with the system’s external IPV4 addresses, and replace 2001:db8::1
with the system’s external IPV6 address. Next, edit the file /etc/bigbluebutton/nginx/sip.nginx
to have the following:
proxy_pass https://$freeswitch_addr:7443;
Next, ensure all of the following params are present in freeswitch’s sip_profiles/external-ipv6.xml
:
- ws-binding
- wss-binding
- rtcp-audio-interval-msec
- rtcp-video-interval-msec
- dtmf-type
- liberal-dtmf
- enable-3pcc
If any are missing, copy them from sip_profiles/external.xml
, then restart BigBlueButton (sudo bbb-conf --restart
).
FreeSWITCH fails to bind to IPV4
In rare occasions after shutdown/restart, the FreeSWITCH database can get corrupted. This will cause FreeSWITCH to have problems binding to IPV4 address (you may see error 1006 when users try to connect).
To check, look in /opt/freeswitch/var/log/freeswitch/freeswitch.log
for errors related to loading the database.
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]!
If you see these errors, clear the FreeSWITCH database (BigBlueButton doesn’t use the database and FreeSWITCH will recreate it on startup).
$ sudo systemctl stop freeswitch
$ rm -rf /opt/freeswitch/var/lib/freeswitch/db/*
$ sudo systemctl start freeswitch
Forward calls from an Asterisk server to FreeSWITCH
Let’s assume the following:
asterisk server ip: 192.168.1.100
bigbluebutton/freeswitch ip: 192.168.1.200
Changes to your Asterisk server
Setup your gateway to BigBlueButton/FreeSWITCH. in /etc/asterisk/sip.conf
add
[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
Route the calls to the gateway. In /etc/asterisk/extensions.conf
context where your calls are being handled, forward the calls to the gateway. Here, when someone dials 85001, the call is sent to the fs-gw
defined above.
exten => 85001,1,Dial(SIP/fs-gw/${EXTEN})
exten => 85001,2,Hangup
Changes to your BigBlueButton/FreeSWITCH server
In BigBlueButton/FreeSWITCH, make the following changes:
Lock down so that only Asterisk can forward calls to FreeSWITCH. In /opt/freeswitch/conf/autoload_configs/acl.conf.xml
, add the following ACL. We also need to allow BigBlueButton to call into FreeSWITCH, that’s why we add the IP of BigBlueButton/FreeSWITCH into the 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>
Then we apply the ACL into the profile that receives the calls from external gateways. In /opt/freeswitch/conf/sip_profiles/external.xml
, add the ACL under <settings>
<settings>
<!-- Apply ACL from asterisk-gw -->
<param name="apply-inbound-acl" value="asterisk-gw"/>
...
</settings>
To debug, try connecting to FS CLI and increase logging level. Once connected, make your call and see what the logs say.
$ /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 fails to bind to port 8021
FreeSWITCH supports both IPV4 and IPV6. However, if your server does not support IPV6, FreeSWITCH will be unable to bind to port 8021. If you run sudo bbb-conf --check
and see the following error
# 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.
#
it might be that your server has IPV6 disabled (or does not support it). You can check this by running the following command
$ sudo ip addr | grep inet6
inet6 ::1/128 scope host
...
If you do not see the line inet6 ::1/128 scope host
, then your server has IPV6 disabled. In this case, we need to disable FreeSWITCH’s support for IPV6. First, edit /opt/freeswitch/etc/freeswitch/autoload_configs/event_socket.conf.xml
and change the line
<param name="listen-ip" value="::"/>
to
<param name="listen-ip" value="127.0.0.1"/>
This tells FreeSWITCH that instead of binding port 8021 to the local IPV6 address, bind to the IPV4 address 127.0.0.1. Next, execute the following two commands
$ 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_
and then restart BigBlueButton with the commands
$ sudo bbb-conf --clean
$ sudo bbb-conf --check
FreeSWITCH fails to start with a SETSCHEDULER error
When running in a container (like a chroot, OpenVZ or LXC), it might not be possible for FreeSWITCH to set its CPU priority to real-time round robin. If not, it will result in lower performance compared to a non-virtualized installation.
If you running BigBlueButton in a container and an error starting FreeSWITCH, try running systemctl status freeswitch.service
and see if you see the error related to 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.
If you see SETSCHEDULER
in the error message, edit /lib/systemd/system/freeswitch.service
and comment out the line containing CPUSchedulingPolicy=rr
(round robin)
IOSchedulingPriority=2
#CPUSchedulingPolicy=rr
CPUSchedulingPriority=89
Save the file, run systemctl daemon-reload
, and then restart BigBlueButton. FreeSWITCH should now startup without error.
Users not able to join Listen Only mode
When doing sudo bbb-conf --check
, you may see the warning
voice Application failed to register with sip server
This error occurs when bbb-apps-sip
isn’t able to make a SIP call to FreeSWITCH. You’ll see this in BigBlueButton when users click the headset icon and don’t join the voice conference.
One possible cause for this is you have just installed BigBlueButton, but not restarted it. The packages do not start up the BigBlueButton components in the right order. To restart BigBlueButton, do the following:
$ sudo bbb-conf --restart
$ sudo bbb-conf --check
If you don’t want FreeSWITCH to bind to 127.0.0.1, you need to figure out which IP address its using. First, determine the IP address FreeSWITCH is monitoring for incoming SIP calls with the following command:
$ netstat -ant | grep 5060
You should see an output such as
tcp 0 0 234.147.116.3:5060 0.0.0.0:* LISTEN
In this example, FreeSWITCH is listening on IP address 234.147.116.3. The IP address on your server will be different.
Next, edit /usr/share/red5/webapps/sip/WEB-INF/bigbluebutton-sip.properties
and set the value for sip.server.host
to the IP address returned from the above command. Save the changes (you’ll need to edit the file as root to save changes).
Restart BigBlueButton using the commands and run the built-in diagnostics checks.
$ sudo bbb-conf --clean
$ sudo bbb-conf --check
Unable to connect using fs_cli
As of BigBlueButton 2.2.18, the packaging now replaces the default ClueCon
password for connecting to the FreeSWITCH command line interface (fs_cli
) with a random password.
(By default, FreeSWITCH only allowed unauthenticated connections from 127.0.0.1, but it’s still good security practice to not use default passwords).
To connect to fs_cli
, use the following command which supplies the password for authenticating.
/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)
We also added /usr/local/bin/fs_clibbb
with the contents
#!/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)
that will let you type fs_clibbb
at the command prompt to get into FreeSWITCH console.
Echo test hangs upgrading BigBlueButton 2.2
The install scripts now change the default CLI password for FreeSWITCH and the other parts of BigBlueButton need to use this new password. For a new installation, the install scripts will automatically set this new password.
If you upgrade using bbb-install.sh, the script will update the FreeSWITCH password using sudo bbb-conf --setip <hostname>
.
If you upgraded using manual steps, be sure to do ao sudo bbb-conf --setip <hostname>
to sync all the FreeSWITCH passwords.
FreeSWITCH using default stun server
For many years, in BigBlueButton’s FreeSWITCH configuration file /opt/freeswitch/etc/freeswitch/vars.xml
, the default value for external_rtp_ip
was stun.freeswitch.org
<X-PRE-PROCESS cmd="set" data="external_rtp_ip=stun:stun.freeswitch.org"/>
However, this is not a reliable choice for stun server. Recommend either changing it to your servers external IP address or setup your own stun/turn server. For example, if your server has an external IP at 234.32.3.3
<X-PRE-PROCESS cmd="set" data="external_rtp_ip=234.32.3.3"/>
You can add a line in /etc/bigbluebutton/bbb-conf/apply-conf.sh
to always apply this value even if the FreeSWITCH package upgrades.
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
Note: If your server has an internal/exteral IP address, such as on AWS EC2 server, be sure to set it to the external IP address configure a dummy network interface card (see Update FreeSWITCH).
HTML5 Server
bbb-html5 fails to start with a SETSCHEDULER error
As of 2.2.31, the systemd unit file for bbb-html5.service
now contains the following lines
CPUSchedulingPolicy=fifo
Nice=19
You can override this with creating the following directory
mkdir /etc/systemd/system/bbb-html5.service.d
and creating /etc/systemd/system/bbb-html5.service.d/override.conf
with the following contents
[Service]
CPUSchedulingPolicy=other
Nice=-10
Then do systemctl daemon-reload
and restart BigBlueButton.
Installation and packages
The following packages have unmet dependencies
When installing the latest build of BigBlueButton, the package bbb-conf
now uses yq
to manage YAML files.
You need to add the repository ppa:rmescandon/yq
to your server. For steps on how to do this, see Update your server in the BigBlueButton 2.2 install guide.
Alternatively, if you have not made any customizations to BigBlueButton (outside of using bbb-conf
), you can use bbb-install.sh to install/upgrade to the latest version (the bbb-install.sh
script will automatically install the repository for yq
).
No Symbolic Link
If you’ve installed/uninstalled BigBlueButton packages, you may get a No Symbolic Link
warning from bbb-conf --check
:
** Potential Problems **
nginx (conf): no symbolic link in /etc/nginx/sites-enabled for bigbluebutton
To solve this, add a symbolic link to nginx for the BigBlueButton site:
$ sudo ln -s /etc/nginx/sites-available/bigbluebutton /etc/nginx/sites-enabled/bigbluebutton
$ sudo /etc/init.d/nginx restart
Package install fails with sed error
Some of the BigBlueButton packages use sed
scripts to extract contents from configuration files. If the file does not exist at the time of the script’s execution, or the sed script matches multiple entries in a file (such as when a configuration line is commented out), you can see an error such as
Setting up bbb-client (1:2.0.0-374) ...
sed: -e expression #1, char 42: unterminated `s' command
dpkg: error processing package bbb-client (--configure):
subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of bbb-config:
bbb-config depends on bbb-client; however:
Package bbb-client is not configured yet.
dpkg: error processing package bbb-config (--configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
bbb-client
bbb-config
E: Sub-process /usr/bin/dpkg returned an error code (1)
In the above example, the /var/lib/dpkg/info/bbb-client.postinst
failed to finish. To debug, edit this file and change the first line to read
and run
$ sudo apt-get install -f
You should now see each command in bbb-conf.postinst
as it executes upto the line in which the error occurs. Post this output to https://groups.google.com/forum/#!forum/bigbluebutton-setup
for help in resolving the issue.
Errors with packages
Some hosting providers do not provide a complete /etc/apt/source.list
. If you are finding your are unable to install a package, try replacing your /etc/apt/sources.list
with the following
deb https://archive.ubuntu.com/ubuntu xenial main restricted universe multiverse
deb https://archive.ubuntu.com/ubuntu xenial-updates main restricted universe multiverse
deb https://security.ubuntu.com/ubuntu xenial-security main restricted universe multiverse
then do
and try installing BigBlueButton again from the beginning.
WebRTC errors (1001, 1002,…)
WebRTC offers very high-quality audio. However, the user’s network settings (or firewall) may not allow WebRTC to connect (or keep connected).
Here are the following lists the possible WebRTC error messages that a user may encounter:
- 1001: WebSocket disconnected — The WebSocket had connected successfully and has now disconnected. Possible Causes:
- Loss of internet connection
- Nginx restarting can cause this
- 1002: Could not make a WebSocket connection — The initial WebSocket connection was unsuccessful. Possible Causes:
- Firewall blocking ws protocol
- Server is down or improperly configured
- See potential solution here.
- 1003: Browser version not supported — Browser doesn’t implement the necessary WebRTC API methods. Possible Causes:
- Out of date browser
- 1004: Failure on call — The call was attempted, but failed. Possible Causes:
- For a full list of causes refer here
- There are 24 different causes so I don’t really want to list all of them
- Solution for this issue outlined here.
- 1005: Call ended unexpectedly — The call was successful, but ended without user requesting to end the session. Possible Causes:
- Unknown
- 1006: Call timed out — The library took too long to try and connect the call. Possible Causes:
- Previously caused by Firefox 33-beta on Mac. We’ve been unable to reproduce since release of FireFox 34
- 1007: ICE negotiation failed — The browser and FreeSWITCH try to negotiate ports to use to stream the media and that negotiation failed. Possible Causes:
- NAT is blocking the connection
- Firewall is blocking the UDP connection/ports
- 1008: Call transfer failed — A timeout while waiting for FreeSWITCH to transfer from the echo test to the real conference. This might be caused by a misconfiguration in FreeSWITCH, or there might be a media error and the DTMF command to transfer didn’t go through (In this case, the voice in the echo test probably didn’t work either.)
- 1009: Could not fetch STUN/TURN server information — This indicates either a BigBlueButton bug (or you’re using an unsupported new client/old server combination), but could also happen due to a network interruption.
- 1010: ICE negotiation timeout — After the call is accepted the client’s browser and the server try and negotiate a path for the audio data. In some network setups this negotiation takes an abnormally long time to fail and this timeout is set to avoid the client getting stuck.
- 1020: Media cloud could not reach the server — See how to solve this here.
Networking
Server running behind NAT
The following issue might be helpful in debugging if you run into errors and your server is behind NAT.
Could not get your microphone for a WebRTC call
Chrome requires (As of Chrome 47) that to access the user’s microphone for WebRTC your site must be serving pages via HTTPS (that is, nginx is configured with a SSL certificate).
If the user attempts to share their microphone and your BigBlueButton sever is not configured for SSL, Chrome will block access and BigBlueButton will report the following error
WebRTC Audio Failure: Detected the following WebRTC issue: Could not get your microphone for a WebRTC call. Do you want to try flash instead?
To enable Chrome to access the user’s microphone, see Configure HTTPS on BigBlueButton.
The browser is not supported
When you attempt to join a BigBlueButton session, the client looks for supported browsers before fully loading. The client gets its list of supported browsers from /usr/share/meteor/bundle/programs/server/assets/app/config/settings.yml
. You can see the list of supported browsers at the bottom. For example,
- browser: mobileSafari
version:
- 11
- 1
states that Mobile Safari
version 11.1 or later is supported (notice the first letter is lower case and concatenated with the remainder of the browser name).
To add a browser to the list, first find your browser’s useragent. You could use a tool like https://wtools.io/check-my-user-agent as well. For example, with the Vivaldi browser you might see
Vivaldi 2.8.1664 / Linux 0.0.0
Next, to add this as a supported browser, append to settings.yml
- browser: vivaldi
version:
- 2
- 8
save the updated settings.yml
file, and then restart your BigBlueButton server with sudo bbb-conf --restart
. Note any browser you add must support WebRTC libraries (not all do), so be sure to check it first with https://test.webrtc.org/.
Tomcat shows “Cannot assign requested address on startup”
If your server has multiple IP addresses, Tomcat might not pick the right address to bind. This could throw an error on installation when tomcat is attempting to install.
Check /var/log/tomcat7/catalina.out
for the following error
Jan 30, 2018 9:17:37 AM org.apache.catalina.core.StandardServer await
SEVERE: StandardServer.await: create[localhost:8005]:
java.net.BindException: Cannot assign requested address (Bind failed)
at java.net.PlainSocketImpl.socketBind(Native Method)
If you see this, first ensure that there isn’t another copy of tomcat running by doing ps -aef | grep tomcat7
. If you do see another copy running, try killing it and then restarting tomcat.
If you still see the same error in catalina.out
, then /etc/tomcat7/server.xml
and change
<Server port="8005" shutdown="SHUTDOWN">
<Server address="0.0.0.0" port="8005" shutdown="SHUTDOWN">
Restart tomcat7 again and it should start normally.
nginx not running
The common reasons for nginx not running are inability to bind to port 80 and configuration errors. To check if port 80 is already in use, use
to see if any process is currently bound to port 80. If so, check to see if another web server is installed. If so, then stop the web server and try to restart nginx. One of the server requirements before you install BigBlueButton is that port 80 is not in use by another application (such as Apache). For details on why this is a requirements, see We recommend running BigBlueButton on port 80.
If port 80 is free, check if your nginx configuration file has errors. Try a restart of nginx
$ sudo systemctl restart nginx
and look for the output of
[ OK ]
If you see [ Fail ]
, then your nginx configuration files might have a syntax error. Check the syntax of the nginx configuration files using the command
and see if it reports any errors. You can also check the error.log file for nginx to see what errors it gives on startup
$ sudo cat /var/log/nginx/error.log
“Welcome to nginx”
During installation of BigBlueButton the packaging scripts attempt to assign the correct IP address during setup. However, if the IP address changes (such as when rebooting a VM), or the first IP address was not the correct IP address for the server, you may see a “Welcome to nginx” page.
To reconfigure the BigBlueButton to use the correct IP address or hostname, see BigBlueButton does not load.
bbb-web
404 Error when loading the client
BigBlueButton 2.2 requires Java 8 as the default Java. Recently, some Ubuntu 16.04 distributions have switched the default version of Java to Java 9 (or later).
Use java -version
to check that the default version of 1.8.0
.
~/dev$ java -version
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-8u242-b08-0ubuntu3~16.04-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)
If not, do the following
sudo apt-get install openjdk-8-jre
update-alternatives --config java # Choose java-8 as default
Run java -version
and confirm it now shows the default as 1.8.0
, and then restart BigBlueButton with sudo bbb-conf --restart
Blank presentation area on create or upload
If you join a meeting and the default presentation is not visible or your uploaded presentation doesn’t display, then this is most likely due to a permissions error. To solve this, ensure that /var/bigbluebutton/
is owned by bigbluebutton
rather than root
or any other account. See this issue for more explanation.
Unable to create presentation
If you see the following error in /var/log/bigbluebutton/bbb-web.log
failed to map segment from shared object: Operation not permitted
use the command mount
to check that the /tmp
director does not have noexec
permissions (which would prevent executables from running in the /tmp directory). If you see noexec
for /tmp
, you need to remount the directory with permissions that enable processes (such as the slide conversion) to execute in the /tmp
directory.
Too many open files
On servers with greater than 8 CPU cores, bbb-web
log (/var/log/bigbluebutton/bbb-web.log
) may throw an error of Too many open files
Caused by: java.io.IOException: Too many open files
To resolve, create an override file that increases the number of open files for 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
bbb-web takes a long time to startup
bbb-web
relies on the SecureRandom class (which uses available entropy) to provide random values for its session IDs. On a virtualized server, however, the available entropy can run low and cause bbb-web to block for a long period before it finishes it’s startup sequence (see Slow startup of tomcat).
To provide bbb-web
with more entropy, you can install haveged
$ sudo apt-get install haveged
For more information see How to Setup Additional Entropy for Cloud Servers Using Haveged.
Error installing bbb-web
If you get the following error during upgrade to BigBlueButton
Unpacking bbb-web (1:2.2.0-67) over (1:2.2.0-66) ...
dpkg: error processing archive /var/cache/apt/archives/bbb-web_1%3a2.2.0-67_amd64.deb (--unpack):
trying to overwrite '/etc/bigbluebutton/nginx/web', which is also in package bbb-client 1:2.2.0-28
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/bbb-web_1%3a2.2.0-67_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)```
Then first uninstall bbb-client
$ sudo apt-get purge bbb-client
and try installing BigBlueButton again.
Other errors
Root partition too small
If the root partition on your BigBlueButton server is too small (for disk space requirements see Before you install), we recommend moving the following directories to an external partition with sufficient disk space.
BigBlueButton processing and storage of recordings:
Location of all media directories on disk available here.
To make the move, we’ll first stop BigBlueButton, then move the above directories to a new location on the external partition, create symbolic links from the original locations to the new locations, and restart BigBlueButton.
In the following example, the external partition is mounted on /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 does not load
If your has changed it’s network connection (such as on reboot), you can clean most of BigBlueButton’s configuration files with the following steps.
$ sudo bbb-conf --setip <ip_address_or_hostname>
$ sudo bbb-conf --clean
$ sudo bbb-conf --check
For more information see bbb-conf options.
Running within an LXD Container
LXD is a very powerful container system for Ubuntu lets you run full Ubuntu 16.04 servers within a container. Because you can easily clone and snapshot LXD containers, they are ideal for development and testing of BigBlueButton.
However, if you install BigBlueButton within an LXD container, you will get the following error from sudo bbb-conf --check
** Potential problems described below **
#
# Error: Unable to connect to the FreeSWITCH Event Socket Layer on port 8021
You’ll also get an error from starting FreeSWITCH with bbb-conf --restart
. When you try systemctl status freeswitch.service
, you’ll see an error with SETSCHEDULER.
$ sudo 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 Wed 2017-04-26 16:34:24 UTC; 23h ago
Process: 7038 ExecStart=/opt/freeswitch/bin/freeswitch -u freeswitch -g daemon -ncwait $DAEMON_OPTS (code=exited, status=214/SETSCHEDULER)
Apr 26 16:34:24 big systemd[1]: Failed to start freeswitch.
Apr 26 16:34:24 big systemd[1]: freeswitch.service: Unit entered failed state.
Apr 26 16:34:24 big systemd[1]: freeswitch.service: Failed with result 'exit-code'.
Apr 26 16:34:24 big systemd[1]: freeswitch.service: Service hold-off time over, scheduling restart.
Apr 26 16:34:24 big systemd[1]: Stopped freeswitch.
Apr 26 16:34:24 big systemd[1]: freeswitch.service: Start request repeated too quickly.
Apr 26 16:34:24 big systemd[1]: Failed to start freeswitch.
This error occurs because the default systemd unit script for FreeSWITCH tries to run with permissions not available to the LXD container. To run FreeSWITCH within an LXD container, edit /lib/systemd/system/freeswitch.service
and replace with the following
[Unit]
Description=freeswitch
After=syslog.target network.target local-fs.target
[Service]
Type=forking
PIDFile=/opt/freeswitch/var/run/freeswitch/freeswitch.pid
Environment="DAEMON_OPTS=-nonat"
EnvironmentFile=-/etc/default/freeswitch
ExecStart=/opt/freeswitch/bin/freeswitch -u freeswitch -g daemon -ncwait $DAEMON_OPTS
TimeoutSec=45s
Restart=always
WorkingDirectory=/opt/freeswitch
User=freeswitch
Group=daemon
[Install]
WantedBy=multi-user.target
Then enter the following commands to load the new unit file and restart BigBlueButton.
$ sudo systemctl daemon-reload
$ sudo bbb-conf --restart
You can run BigBlueButton within a LXD container.
Unable to connect to redis
The packages bbb-apps-akka
, bbb-fsesl-akka
, and bbb-transcode-akka
are packaged by sbt, but they need to have redis-server running before they startup. If sudo bbb-conf --debug
shows redis connection errors
Sep 22 15:32:12 sv21 bbb-apps-akka[7804]: Exception in thread "main" io.lettuce.core.RedisConnectionException: Unable to connect to 127.0.0.1:6379
Sep 22 15:32:12 sv21 bbb-apps-akka[7804]: #011at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:78)
Sep 22 15:32:12 sv21 bbb-apps-akka[7804]: #011at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:56)
Sep 22 15:32:12 sv21 bbb-apps-akka[7804]: Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: /127.0.0.1:6379
Sep 22 15:32:12 sv21 bbb-apps-akka[7804]: Caused by: java.net.ConnectException: Connection refused
Sep 22 15:32:12 sv21 bbb-fsesl-akka[7893]: Exception in thread "main" io.lettuce.core.RedisConnectionException: Unable to connect to 127.0.0.1:6379
Sep 22 15:32:12 sv21 bbb-fsesl-akka[7893]: #011at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:78)
Sep 22 15:32:12 sv21 bbb-fsesl-akka[7893]: #011at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:56)
Sep 22 15:32:12 sv21 bbb-fsesl-akka[7893]: Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: /127.0.0.1:6379
Sep 22 15:32:12 sv21 bbb-fsesl-akka[7893]: Caused by: java.net.ConnectException: Connection refused
Sep 22 15:32:13 sv21 bbb-transcode-akka[8001]: Exception in thread "main" io.lettuce.core.RedisConnectionException: Unable to connect to 127.0.0.1:6379
Sep 22 15:32:13 sv21 bbb-transcode-akka[8001]: #011at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:78)
Sep 22 15:32:13 sv21 bbb-transcode-akka[8001]: #011at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:56)
Sep 22 15:32:13 sv21 bbb-transcode-akka[8001]: Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: /127.0.0.1:6379
Sep 22 15:32:13 sv21 bbb-transcode-akka[8001]: Caused by: java.net.ConnectException: Connection refused
you can add overrides for these three packages to ensure they start after redis.server. Run the following script.
#!/bin/bash
mkdir -p /etc/systemd/system/bbb-apps-akka.service.d
cat > /etc/systemd/system/bbb-apps-akka.service.d/override.conf <<HERE
[Unit]
Requires=redis-server.service
After=redis-server.service
HERE
mkdir -p /etc/systemd/system/bbb-fsesl-akka.service.d
cat > /etc/systemd/system/bbb-fsesl-akka.service.d/override.conf <<HERE
[Unit]
Requires=redis-server.service
After=redis-server.service
HERE
mkdir -p /etc/systemd/system/bbb-transcode-akka.service.d
cat > /etc/systemd/system/bbb-transcode-akka.service.d/override.conf <<HERE
[Unit]
Requires=redis-server.service
After=redis-server.service
HERE
The script bbb-install
now creates these overrides by default.
500 Internal Server Error
It is most likely an error on GreenLight. Check the log file according to Troubleshooting Greenlight.
If this error occurrs on just a small number of PCs accessing a BigBlueButton server within a LAN through a proxy server and you find the description “Error::Unsafe Host Error (x.x.x.x is not a safe host)” (where x.x.x.x is an IP address) in the log file, check if the “Don’t use the proxy server for local (intranet) addresses” (in the Windows proxy setting) is ticked.
Legacy errors
Conference not found errors
The command sudo bbb-conf --debug
searches through the red5, tomcat7, and nginx logs looking for errors and exceptions. However, the messages such as
-- ERRORS found in /usr/share/red5/log/* --
/usr/share/red5/log/bigbluebutton.log:2015-05-02 13:50:37,681-04:00 [pool-17-thread-1] ERROR o.b.w.v.f.a.PopulateRoomCommand - Not XML: [Conference 78505 not found]
are innocuous and can be ignored.
Пожалуйста, откройте https://test.webrtc.org/ и запустите тест.
Вы администратор этого сервера BigBlueButton? Если да, запустите bbb-conf --check
.
Кроме того, можете ли вы снова протестировать на https://test.bigbluebutton.org/ и сообщить нам, если вы по-прежнему сталкиваетесь с ошибкой?
Привет, у меня такая же ошибка при новой настройке. Веб-камера работает нормально, но голосовая связь невозможна.
Тест с https://test.bigbluebutton.org/ в порядке, поэтому мне кажется, что мне нужно что-то изменить в моей настройке. Я не менял никаких файлов конфигурации, просто прошел быстрый тест и заметил проблему.
Кстати: взял экземпляр Scaleway для запуска BBB, если это хоть как-то поможет. Использовал сценарий bbb-install.sh с Greenlight и моим собственным доменом.
bbb-conf --check
вывод
# Potential problems described below
# IP does not match:
# IP from ifconfig: 10.18.32.77
# /etc/nginx/sites-available/bigbluebutton: bbb.mydomain.net (change for privacy)
# Warning: The setting of 51.15.88.XXX for proxy_pass in
#
# /etc/bigbluebutton/nginx/sip.nginx
#
# does not match the local IP address (10.18.32.77).
# (This is OK if you've manually changed the values)
Я изменил домен и общедоступный IP-адрес из соображений конфиденциальности.
В тестовой среде я проверил консоль в Chrome и получил двух кандидатов на подключение.
sip.invitecontext.mediahandler | ICE candidate received:
Но на моем собственном экземпляре такого сообщения в консоли нет.
Кажется, я что-то упустил. На панели Scaleway Dashboard я установил группу безопасности для своего экземпляра bbb, чтобы разрешить все соединения / порты udp и tcp.
Когда я использую Firefox 75 вместо Chrome 81.0.4044.113, звук / микрофон работают нормально.
Эта ошибка, по-видимому, означает, что существует проблема с запросом webrtc вашего IP-адреса.
Если у вас есть uBlock origin или Privacy Badger, проверьте там настройки и убедитесь, что опция запрета совместного использования вашего локального IP-адреса не установлена.
Спасибо за ответ. На самом деле это был тот маленький флажок в настройках uBlock, который я активировал некоторое время назад. Без этого флажка соединение работает безупречно.
Но помните о последствиях. Таким образом, каждый участник встречи может знать ваш IP-адрес, и если кто-то не играет хорошо, он может DDOS …
Это может быть для вас неважно, если вы делаете это в ограниченном объеме, но если это публичное собрание или что-то в этом роде, это может быть актуально.
Эта ошибка, по-видимому, означает, что существует проблема с запросом webrtc вашего IP-адреса.
Если у вас есть uBlock origin или Privacy Badger, проверьте там настройки и убедитесь, что опция запрета совместного использования вашего локального IP-адреса не установлена.
Я использую честный блокировщик рекламы. Я полностью отключил его, и это не помогло с https://demo.bigbluebutton.org , но оно работает с https://test.bigbluebutton.org. Еще я проверил в другом браузере — та же проблема. Мой IP-адрес серый, может быть, это причина … Итак, что делать?
Возможно, вы используете CGN, сайт demo.bigbluebutton.org поддерживает только IPv4. У test.bigbluebutton.org есть IPv6:
Скажу сразу, это «временная особенность»
сегодня был онлайн-класс, произошла эта ошибка, посещаемость была меньше использования интернета и никаких помех для других работ .. Это было удобно😁😜
Однако следует отметить, что эта проблема может быть решена поставщиком Bigbluebutton, настроившим сервер TUN, но это увеличит трафик, проходящий через его инфраструктуру, поскольку участники будут использовать сервер TUN в качестве точки встречи.
@KeroQuero. Удалось ли вам решить проблему с конфигурацией сервера за это время? В противном случае обратитесь за поддержкой в наш список рассылки / форум по адресу https://groups.google.com/forum/#!forum/bigbluebutton -setup.
Для других, у кого есть эта проблема: обычно отключение IPv6 на вашем сервере, а также удаление записи AAA из вашего домена BBB решает проблему, потому что тогда клиенты будут использовать IPv4 для подключения к серверу и, таким образом, не будут путать соединения IPv4 и IPv6.
| Broadcasting IP...
| Не отмечен | Отмечено / Включено |
| — | — | — |
BBB test > присоединиться к аудио | — Не удалось установить соединение с WebSocket.
(ошибка 1002)
— Без звука | — Нет ошибки
— Воспроизведено аудио
BBB live> присоединиться к аудио | — Сбой при вызове (причина = несовместимый SDP)
(ошибка 1004)
— Без звука | — пока не тестирую (но думаю будет работать)
Тест WebRTC >
Network
> Udp enabled
| ❌ | ✔
поступает с https://github.com/bigbluebutton/bigbluebutton/issues/9088#issuecomment -624206690
Эта ошибка, по-видимому, означает, что существует проблема с запросом webrtc вашего IP-адреса.
Если у вас есть uBlock origin или Privacy Badger, проверьте там настройки и убедитесь, что опция запрета совместного использования вашего локального IP-адреса не установлена.
Была ли эта страница полезной?
0 / 5 — 0 рейтинги
Пользователи системы Windows сообщают о появлении ошибки 1004 на нескольких приложениях, таких как Microsoft Office Excel, RBCA Toolkit, EasySync Pro, игра Spore и программа Nero Vision. Эта ошибка так же встречается и в системах Windows 8, Windows 7, даже в версиях Vista, XP, и предыдущих версиях Windows.
Пошаговое руководство: Как исправить ошибку 1004 («Error 1004»)
Итак, далее следует пошаговая инструкция по устранению популярной ошибки 1004:
1. Установите права администратора на установочную папку;
2. Замените установочную папку;
3. Удалите временные файлы;
4. Восстановите реестр;
2. Восстановите компьютер.
Папке, которую Вы указали как установочную, может не хватать прав администратора. В таком случае, установочная программа не может скопировать файлы на Ваш жёсткий диск и выдаёт код ошибки Windows 1004. Решением может стать смена настроек безопасности и разрешение требуемых прав.
1. Двойной щелчок на ярлыке «Мой компьютер» на рабочем столе;
2. Откройте папку назначения, которая выбрана для установки программы;
3. Нажмите на неё правой кнопкой мыши, выберите «Свойства»;
4. Откроется диалоговое окно «Свойства папки»;
5. Откройте вкладку «Безопасность», нажмите на кнопку «Изменить»;
6. Установите права администратора, дважды нажмите на кнопку «OK»;
7. Перезапустите программу установки.
Заменить установочную папку
Замена установочной папки. Возможно, у установочной папки всё ещё имеются проблемы с безопасностью. Запишите программу на другой диск (например, диск D:) или в другую папку.
Удалить временные файлы
Удалите временные файлы. Данные файлы могут содержать ошибку. Устраните ошибку 1004 так, как указано ниже:
1. Нажмите Пуск / Выполнить.
2. Напечатайте «AppData» в появившемся диалоговом окне.
3. Нажмите «ENTER»;
4. Двойной щелчок по папке программы. Удалите содержимое папки «Temp».
Восстановить регистр Windows
Регистр — неотъемлемая часть Windows. Ошибка в регистре может вызвать ошибку 1004 на Вашем компьютере. Когда компьютер работает, к регистру существует постоянный доступ. Сотни тысяч записей сохранены в регистре Windows. Данные записи должны быть правильными, чтобы приложения работали без ошибок, таких как ошибка 1004 в Windows Vista и Windows XP, а так же Windows 8 и Windows 7. Всё, что Вам нужно — это удалить лишние записи и недействительные ссылки.
1. Загрузите команду Система / Очистка регистра;
2. Запустите полное сканирование регистра;
3. Удалите все ошибки.
Восстановить компьютер
Восстановите компьютер до предыдущего состояния. Иногда ошибки 1004 можно устранить благодаря восстановлению системы. Используйте функции восстановления системы, как показано ниже:
1. Нажмите Пуск, наведите курсор на графу «Все программы», затем идите по следующему пути — Стандартные / Служебные / Восстановление системы;
2. Нажмите «Далее»;
3. Следуйте указаниям программы.
#html5-audio #sip #freeswitch #bigbluebutton
#html5-аудио #sip #freeswitch #bigbluebutton
Вопрос:
Я использую BigBlueButton с canvas. Я установил его с помощью скрипта, предоставленного на их странице Github, а именно:
wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -w -a -v xenial-22 -s bbb.example.com -e info@example.com
Проблема возникает всякий раз, когда я создаю конференцию и присоединяюсь к ней. Я не мог использовать звук, ни слушая.
При нажатии на кнопку присоединиться с микрофоном появляется сообщение об ошибке со словами:
Failure on call (reason=ICE error) (error 1004)
И когда я нажимаю только на Прослушивание, ничего не происходит.
Я просмотрел журналы, но ничего полезного, я подозревал некоторые звуковые ошибки из-за конфигурации хоста, но я не могу прояснить ситуацию. Может быть, у кого-нибудь из вас возникнет идея о том, с какими журналами следует ознакомиться.
Я подозреваю, что это проблема, связанная с FreeSWITCH, я следил за настройкой здесь о настройке FreeSWITCH с брандмауэром (хотя я не использую брандмауэр, но BBB config указывает, что он рассматривает брандмауэр), но ничего не изменилось.
Любое предложение будет оценено.
Комментарии:
1. Привет @younes-zeboudj смогли ли вы решить эту проблему?
2. Да, прокомментировав строку в app/models/bigbluebutton_conference.rb.
Ответ №1:
В моем случае я исправил это, прокомментировав строку, содержащую (voiceBridge = …) В app/models/bigbluebutton_conferenfe.rb.
Ответ №2:
Ты спас мне жизнь. Файл, о котором говорит Юнес, взят из Canvas LMS. Если вы следовали официальным инструкциям по установке, этот файл должен быть /var/canvas/app/models/big_blue_button_conference.rb
включен. Вам нужно будет перезапустить приложение (или, если вы не знаете как, сервер), чтобы изменения вступили в силу.
Строка для комментария в контексте:
current_host = URI(settings[:default_return_url] || "http://www.instructure.com").host
send_request(:create, {
:meetingID => conference_key,
:name => title,
# :voiceBridge => format("0d", self.global_id),
:attendeePW => settings[:user_key],
:moderatorPW => settings[:admin_key],
:logoutURL => (settings[:default_return_url] || "http://www.instructure.com"),
:record => settings[:record] ? "true" : "false",
:welcome => settings[:record] ? t("This conference may be recorded.") : "",
"meta_canvas-recording-ready-user" => recording_ready_user,
"meta_canvas-recording-ready-url" => recording_ready_url(current_host)
}) or return nil
В этой статье представлена ошибка с номером Ошибка 1004, известная как Ошибка доступа 1004, описанная как Ошибка 1004: Возникла ошибка в приложении Microsoft Access. Приложение будет закрыто. Приносим свои извинения за неудобства.
О программе Runtime Ошибка 1004
Время выполнения Ошибка 1004 происходит, когда Microsoft Access дает сбой или падает во время запуска, отсюда и название. Это не обязательно означает, что код был каким-то образом поврежден, просто он не сработал во время выполнения. Такая ошибка появляется на экране в виде раздражающего уведомления, если ее не устранить. Вот симптомы, причины и способы устранения проблемы.
Определения (Бета)
Здесь мы приводим некоторые определения слов, содержащихся в вашей ошибке, в попытке помочь вам понять вашу проблему. Эта работа продолжается, поэтому иногда мы можем неправильно определить слово, так что не стесняйтесь пропустить этот раздел!
- Access — НЕ ИСПОЛЬЗУЙТЕ этот тег для Microsoft Access, используйте вместо него [ms-access]
- Access — Microsoft Access, также известная как Microsoft Office Access, это система управления базами данных от Microsoft, которая обычно сочетает в себе реляционный Microsoft JetACE Database Engine с графическим пользовательским интерфейсом и инструментами разработки программного обеспечения.
- Microsoft Access — Microsoft Access, также известный как Microsoft Office Access, представляет собой систему управления базами данных от Microsoft, которая обычно сочетает в себе реляционное ядро СУБД Microsoft JetACE с графическим пользовательским интерфейсом и инструментами разработки программного обеспечения.
Симптомы Ошибка 1004 — Ошибка доступа 1004
Ошибки времени выполнения происходят без предупреждения. Сообщение об ошибке может появиться на экране при любом запуске %программы%. Фактически, сообщение об ошибке или другое диалоговое окно может появляться снова и снова, если не принять меры на ранней стадии.
Возможны случаи удаления файлов или появления новых файлов. Хотя этот симптом в основном связан с заражением вирусом, его можно отнести к симптомам ошибки времени выполнения, поскольку заражение вирусом является одной из причин ошибки времени выполнения. Пользователь также может столкнуться с внезапным падением скорости интернет-соединения, но, опять же, это не всегда так.
(Только для примера)
Причины Ошибка доступа 1004 — Ошибка 1004
При разработке программного обеспечения программисты составляют код, предвидя возникновение ошибок. Однако идеальных проектов не бывает, поскольку ошибки можно ожидать даже при самом лучшем дизайне программы. Глюки могут произойти во время выполнения программы, если определенная ошибка не была обнаружена и устранена во время проектирования и тестирования.
Ошибки во время выполнения обычно вызваны несовместимостью программ, запущенных в одно и то же время. Они также могут возникать из-за проблем с памятью, плохого графического драйвера или заражения вирусом. Каким бы ни был случай, проблему необходимо решить немедленно, чтобы избежать дальнейших проблем. Ниже приведены способы устранения ошибки.
Методы исправления
Ошибки времени выполнения могут быть раздражающими и постоянными, но это не совсем безнадежно, существует возможность ремонта. Вот способы сделать это.
Если метод ремонта вам подошел, пожалуйста, нажмите кнопку upvote слева от ответа, это позволит другим пользователям узнать, какой метод ремонта на данный момент работает лучше всего.
Обратите внимание: ни ErrorVault.com, ни его авторы не несут ответственности за результаты действий, предпринятых при использовании любого из методов ремонта, перечисленных на этой странице — вы выполняете эти шаги на свой страх и риск.
Метод 1 — Закройте конфликтующие программы
Когда вы получаете ошибку во время выполнения, имейте в виду, что это происходит из-за программ, которые конфликтуют друг с другом. Первое, что вы можете сделать, чтобы решить проблему, — это остановить эти конфликтующие программы.
- Откройте диспетчер задач, одновременно нажав Ctrl-Alt-Del. Это позволит вам увидеть список запущенных в данный момент программ.
- Перейдите на вкладку «Процессы» и остановите программы одну за другой, выделив каждую программу и нажав кнопку «Завершить процесс».
- Вам нужно будет следить за тем, будет ли сообщение об ошибке появляться каждый раз при остановке процесса.
- Как только вы определите, какая программа вызывает ошибку, вы можете перейти к следующему этапу устранения неполадок, переустановив приложение.
Метод 2 — Обновите / переустановите конфликтующие программы
Использование панели управления
- В Windows 7 нажмите кнопку «Пуск», затем нажмите «Панель управления», затем «Удалить программу».
- В Windows 8 нажмите кнопку «Пуск», затем прокрутите вниз и нажмите «Дополнительные настройки», затем нажмите «Панель управления»> «Удалить программу».
- Для Windows 10 просто введите «Панель управления» в поле поиска и щелкните результат, затем нажмите «Удалить программу».
- В разделе «Программы и компоненты» щелкните проблемную программу и нажмите «Обновить» или «Удалить».
- Если вы выбрали обновление, вам просто нужно будет следовать подсказке, чтобы завершить процесс, однако, если вы выбрали «Удалить», вы будете следовать подсказке, чтобы удалить, а затем повторно загрузить или использовать установочный диск приложения для переустановки. программа.
Использование других методов
- В Windows 7 список всех установленных программ можно найти, нажав кнопку «Пуск» и наведя указатель мыши на список, отображаемый на вкладке. Вы можете увидеть в этом списке утилиту для удаления программы. Вы можете продолжить и удалить с помощью утилит, доступных на этой вкладке.
- В Windows 10 вы можете нажать «Пуск», затем «Настройка», а затем — «Приложения».
- Прокрутите вниз, чтобы увидеть список приложений и функций, установленных на вашем компьютере.
- Щелкните программу, которая вызывает ошибку времени выполнения, затем вы можете удалить ее или щелкнуть Дополнительные параметры, чтобы сбросить приложение.
Метод 3 — Обновите программу защиты от вирусов или загрузите и установите последнюю версию Центра обновления Windows.
Заражение вирусом, вызывающее ошибку выполнения на вашем компьютере, необходимо немедленно предотвратить, поместить в карантин или удалить. Убедитесь, что вы обновили свою антивирусную программу и выполнили тщательное сканирование компьютера или запустите Центр обновления Windows, чтобы получить последние определения вирусов и исправить их.
Метод 4 — Переустановите библиотеки времени выполнения
Вы можете получить сообщение об ошибке из-за обновления, такого как пакет MS Visual C ++, который может быть установлен неправильно или полностью. Что вы можете сделать, так это удалить текущий пакет и установить новую копию.
- Удалите пакет, выбрав «Программы и компоненты», найдите и выделите распространяемый пакет Microsoft Visual C ++.
- Нажмите «Удалить» в верхней части списка и, когда это будет сделано, перезагрузите компьютер.
- Загрузите последний распространяемый пакет от Microsoft и установите его.
Метод 5 — Запустить очистку диска
Вы также можете столкнуться с ошибкой выполнения из-за очень нехватки свободного места на вашем компьютере.
- Вам следует подумать о резервном копировании файлов и освобождении места на жестком диске.
- Вы также можете очистить кеш и перезагрузить компьютер.
- Вы также можете запустить очистку диска, открыть окно проводника и щелкнуть правой кнопкой мыши по основному каталогу (обычно это C
- Щелкните «Свойства», а затем — «Очистка диска».
Метод 6 — Переустановите графический драйвер
Если ошибка связана с плохим графическим драйвером, вы можете сделать следующее:
- Откройте диспетчер устройств и найдите драйвер видеокарты.
- Щелкните правой кнопкой мыши драйвер видеокарты, затем нажмите «Удалить», затем перезагрузите компьютер.
Метод 7 — Ошибка выполнения, связанная с IE
Если полученная ошибка связана с Internet Explorer, вы можете сделать следующее:
- Сбросьте настройки браузера.
- В Windows 7 вы можете нажать «Пуск», перейти в «Панель управления» и нажать «Свойства обозревателя» слева. Затем вы можете перейти на вкладку «Дополнительно» и нажать кнопку «Сброс».
- Для Windows 8 и 10 вы можете нажать «Поиск» и ввести «Свойства обозревателя», затем перейти на вкладку «Дополнительно» и нажать «Сброс».
- Отключить отладку скриптов и уведомления об ошибках.
- В том же окне «Свойства обозревателя» можно перейти на вкладку «Дополнительно» и найти пункт «Отключить отладку сценария».
- Установите флажок в переключателе.
- Одновременно снимите флажок «Отображать уведомление о каждой ошибке сценария», затем нажмите «Применить» и «ОК», затем перезагрузите компьютер.
Если эти быстрые исправления не работают, вы всегда можете сделать резервную копию файлов и запустить восстановление на вашем компьютере. Однако вы можете сделать это позже, когда перечисленные здесь решения не сработают.
Другие языки:
How to fix Error 1004 (Access Error 1004) — Error 1004: Microsoft Access has encountered a problem and needs to close. We are sorry for the inconvenience.
Wie beheben Fehler 1004 (Zugriffsfehler 1004) — Fehler 1004: Microsoft Access hat ein Problem festgestellt und muss geschlossen werden. Wir entschuldigen uns für die Unannehmlichkeiten.
Come fissare Errore 1004 (Errore di accesso 1004) — Errore 1004: Microsoft Access ha riscontrato un problema e deve essere chiuso. Ci scusiamo per l’inconveniente.
Hoe maak je Fout 1004 (Toegangsfout 1004) — Fout 1004: Microsoft Access heeft een probleem ondervonden en moet worden afgesloten. Excuses voor het ongemak.
Comment réparer Erreur 1004 (Erreur d’accès 1004) — Erreur 1004 : Microsoft Access a rencontré un problème et doit se fermer. Nous sommes désolés du dérangement.
어떻게 고치는 지 오류 1004 (액세스 오류 1004) — 오류 1004: Microsoft Access에 문제가 발생해 닫아야 합니다. 불편을 끼쳐드려 죄송합니다.
Como corrigir o Erro 1004 (Erro de acesso 1004) — Erro 1004: O Microsoft Access encontrou um problema e precisa fechar. Lamentamos o inconveniente.
Hur man åtgärdar Fel 1004 (Åtkomstfel 1004) — Fel 1004: Microsoft Access har stött på ett problem och måste avslutas. Vi är ledsna för besväret.
Jak naprawić Błąd 1004 (Błąd dostępu 1004) — Błąd 1004: Microsoft Access napotkał problem i musi zostać zamknięty. Przepraszamy za niedogodności.
Cómo arreglar Error 1004 (Error de acceso 1004) — Error 1004: Microsoft Access ha detectado un problema y debe cerrarse. Lamentamos las molestias.
Об авторе: Фил Харт является участником сообщества Microsoft с 2010 года. С текущим количеством баллов более 100 000 он внес более 3000 ответов на форумах Microsoft Support и создал почти 200 новых справочных статей в Technet Wiki.
Следуйте за нами:
Этот инструмент восстановления может устранить такие распространенные проблемы компьютера, как синие экраны, сбои и замораживание, отсутствующие DLL-файлы, а также устранить повреждения от вредоносных программ/вирусов и многое другое путем замены поврежденных и отсутствующих системных файлов.
ШАГ 1:
Нажмите здесь, чтобы скачать и установите средство восстановления Windows.
ШАГ 2:
Нажмите на Start Scan и позвольте ему проанализировать ваше устройство.
ШАГ 3:
Нажмите на Repair All, чтобы устранить все обнаруженные проблемы.
СКАЧАТЬ СЕЙЧАС
Совместимость
Требования
1 Ghz CPU, 512 MB RAM, 40 GB HDD
Эта загрузка предлагает неограниченное бесплатное сканирование ПК с Windows. Полное восстановление системы начинается от $19,95.
ID статьи: ACX01725RU
Применяется к: Windows 10, Windows 8.1, Windows 7, Windows Vista, Windows XP, Windows 2000
Совет по увеличению скорости #32
Программы быстрого копирования для использования:
Windows может работать медленно, если вы копируете большое количество файлов по сети. К счастью, есть программы, которые можно использовать для быстрого и эффективного массового копирования. Помимо скорости работы, эти программы также могут эффективно обрабатывать конфликты файлов и другие ошибки.
Нажмите здесь, чтобы узнать о другом способе ускорения работы ПК под управлением Windows