Commit Graph

8673 Commits

Author SHA1 Message Date
Daniel Schreiber
c46556e1f6 Allow BBB to run behind a proxy the avoid gUM permission queries per node
The idea is to run a loadbalancer node which maps each BBB node to a
path. That way each user gets only one gUM permission query for a
cluster. The loadbalancer node only serves the html5 client, each BBB
node will serve its own API and handle the websockets for freeswitch and
bbb-webrtc-sfu.

Configuring a cluster setup
===========================

* let bbb-lb.example.com be the loadbalancer node
* let bbb-01.eaxmple.com be a BBB node

Loadbalancer
------------

On the loadbalancer node add an nginx configuration similar to this one
for each BBB node:

```
location /bbb-01/html5client/ {
  proxy_pass https://bbb-01.example.com/bbb-01/html5client/;
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "Upgrade";
}

```

BBB Node
--------

On the BBB node add the following options to
`/etc/bigbluebutton/bbb-web.properties`:

```
defaultHTML5ClientUrl=https://bbb-lb.example.com/bbb-01/html5client/join
presentationBaseURL=https://bbb-01.example.com/bigbluebutton/presentation
accessControlAllowOrigin=https://bbb-lb.example.com
```

Add the following options to `/etc/bigbluebutton/bbb-html5.yml`:

```
public:
  app:
    basename: '/bbb-01/html5client'
    bbbWebBase: 'https://bbb-01.eaxmple.com/bigbluebutton'
    learningDashboardBase: 'https://bbb-01.eaxmple.com/learning-dashboard'
  media:
    stunTurnServersFetchAddress: 'https://bbb-01.eaxmple.com/bigbluebutton/api/stuns'
    sip_ws_host: 'bbb-01.eaxmple.com'
  presentation:
    uploadEndpoint: 'https://bbb-01.eaxmple.com/bigbluebutton/presentation/upload'
```

Create the following unit file overrides:

* `/etc/systemd/system/bbb-html5-frontend@.service.d/cluster.conf`
* `/etc/systemd/system/bbb-html5-backend@.service.d/cluster.conf`

with the following content:

```
[Service]
Environment=ROOT_URL=https://127.0.0.1/bbb-01/html5client
```

Change the nginx `$bbb_loadbalancer_node` variable to the name of the
load balancer node in `/etc/bigbluebutton/nginx/loadbalancer.nginx` to
allow CORS requests:

```
set $bbb_loadbalancer_node https://bbb-lb.example.com
```

Prepend the mount point of bbb-html5 in all location sections except
from the `location @html5client` section in
`/etc/bigbluebutton/nginx/bbb-html5.nginx`

```
location @html5client {
    ...
}
location /bbb-01/html5client/locales {
    ...
}
```
2021-11-20 22:13:47 +01:00
Anton Georgiev
370d2803d9
Merge pull request #13690 from JoVictorNunes/issue-13665
fix: hidden content in waiting users component
2021-11-17 11:21:37 -05:00
Joao Victor
c85ede6734 fix: hidden content in waiting users component 2021-11-12 15:22:53 -03:00
Ramón Souza
9ee4975e7f fix minimize presentation focus on presentation layout 2021-11-12 17:08:31 +00:00
Anton Georgiev
314f35c44e
Merge pull request #13667 from JoVictorNunes/preview-alignment
fix: video preview alignment
2021-11-11 15:11:12 -05:00
Joao Victor
2176898c9f fix: video preview alignment 2021-11-11 16:42:07 -03:00
Mario Jr
9578efbcd3 fix(audio): prevent audio to hang when user is transferred to breakout room
When joining breakouts, we now wait for the bridge to be loaded before
automatically start user's audio.
This problems happens only on fullaudio bridge
2021-11-09 15:04:10 -03:00
Mario Jr
a719f8f5e4 fix(audio): update fullaudio bridge according to sonar's checks 2021-11-09 12:10:44 -03:00
Mario Jr
117bb91a0e fix(audio): rename fullaudio bridge to FullAudioBridge
updated whitelist, also according to sonar checks
2021-11-09 12:10:36 -03:00
Mario Jr
1ee9203fad fix: enable useLocationOrigin in dynamic-import
This makes meteor to work with a reverse proxy, without changing it's
settings
2021-11-09 12:10:25 -03:00
Mario Jr
70815fad4f feat(audio): add meta param for selecting fullaudio bridge
This can be passed through API. For example, for setting fullaudio bridge, you
can pass the param "meta_fullaudio-bridge=fullaudio"
2021-11-09 12:09:36 -03:00
Mario Jr
db4e2f9c47 update(audio): correctly retrieves the media-server-fullaudio from meta params
Previously we were using the same for listenonly, which for default
environments points to kurento, and didn't make any difference in media server
selection.
This could be problematic in those environments where meta param
for listeonly media server is set , though.
Fullaudio has now it's own meta param that can be passed through API:
"meta_media-server-fullaudio"
2021-11-09 12:09:28 -03:00
Mario Jr
f9dbefe764 feat(audio): basic funcionality for fullaudio bridge
This commit allows user to join/leave audio using the fullaudio bridge.
This is still under development, but to use this now we must set values of
skipCheck to false, and defaultFullAudioBridge to fullaudio. This
depends on newest version of bbb-webrtc-sfu
2021-11-09 12:09:18 -03:00
Mario Jr
42778adeaf feat(audio): add base code for fullaudio bridge
This bridge will work with bbb-webrtc-sfu to handle microphone audio.
2021-11-09 12:08:45 -03:00
Mario Jr
cf2d595f12 fix(audio): correctly retrieve Object class from bridge module 2021-11-09 12:08:31 -03:00
Mario Jr
5c85f4c5b2 fix(audio): promisify loadBridges function
New bridges were being loaded with undefined value, since we didn't
wait for this to fully load before instantiating it
2021-11-09 12:08:25 -03:00
Mario Jr
86ef834476 fix(audio): bridges can be dynamically imported
Added bridge whitelist , to allow bridge modules to be dynamically imported.
2021-11-09 12:08:18 -03:00
Mario Jr
7e218c3eca feat(audio): add bridge configurable scheme
we are now able to switch between audio bridges, by selecting it in
config files.
2021-11-09 12:08:09 -03:00
Anton Georgiev
d725ee7734
Merge pull request #13655 from JoVictorNunes/issue-12840
improvement: video preview modal
2021-11-09 09:51:17 -05:00
Joao Victor
cc85b58ef4 improves video preview modal 2021-11-09 08:36:06 -03:00
Anton Georgiev
5bc33dce2e
Merge pull request #13647 from JoVictorNunes/pub-error-poll
fix: publication for user response polls
2021-11-08 13:43:50 -05:00
Anton Georgiev
752f783e72
Merge pull request #13649 from germanocaumo/f-h-prom-agent
feat(html5): add prometheus instrumentation
2021-11-08 09:14:06 -05:00
Anton Georgiev
f6972b8b55
Merge pull request #13605 from frankemax/rewrite-fullscreen-button
feat(external-videos): rewrite fullscreen button
2021-11-08 09:05:38 -05:00
Anton Georgiev
b2e0fd0b34
Merge pull request #13642 from JoVictorNunes/issue-13618
fix: user list button's arrow
2021-11-08 09:04:33 -05:00
hiroshisuga
4c8f4f9abb
remove unused style 2021-11-06 16:51:25 +09:00
germanocaumo
3dd679761f Merge branch 'v2.4.x-release' of https://github.com/bigbluebutton/bigbluebutton into f-h-prom-agent 2021-11-05 19:38:40 +00:00
germanocaumo
6f1e1d4f4a refactor(prom-html5): serve endpoint via meteor instead of http server +
- separate backend/frontend metrics, only add metrics related to the role
- add role and instance labels
2021-11-05 16:31:23 +00:00
Joao Victor
5e82448be3 fixes the publication for user response polls 2021-11-05 11:11:55 -03:00
João Victor Nunes
4868822216
fix: publish button for user response polls (#13638)
* fixes publish button for user response polls
Co-authored-by: Joao Victor <joaov@imdt.com.br>
2021-11-04 15:12:41 -04:00
Joao Victor
072284fe98 fixes user list button's arrow 2021-11-04 14:30:47 -03:00
prlanzarin
86f8e03e97 fix(screenshare): bad isPresenter transition check
Fixes #13245
2021-11-04 14:47:35 +00:00
Anton Georgiev
85c78cc73e
Merge pull request #13622 from antonbsa/external-video
test: Improves presentation tests
2021-11-02 16:39:04 -04:00
Max Franke
b507eeb80f feat(external-videos): rewrite fullscreen button
Following BBB v2.4 new layout manager fullscreen changes
2021-10-29 10:55:34 -03:00
Anton
f020c0da9d add Presentation test: Start external video 2021-10-28 15:37:56 -03:00
Max Franke
664bad7d08 feat(screenshare): UX updates
Reduce the font size to 21px (1.3rem) and font weight to 600.
2021-10-27 11:51:39 -03:00
Anton
ff338c0198 add Hide/Restore presentation test 2021-10-26 14:59:40 -03:00
Anton Georgiev
0a44cf0ebb
Merge branch 'v2.4.x-release' into discart-poll-button 2021-10-26 12:35:30 -04:00
Anton Georgiev
c834a5bd39
Merge pull request #13563 from antonbsa/polling-tests-improvements
test: Polling tests improvements
2021-10-26 12:32:43 -04:00
Max Franke
1e3c5d1b65 feat(poll): add cancel poll button
Add a new button that adds the option to cancel the polling and its results.
Avoiding the user from having to close the poll, and open another in the
actions bar.
2021-10-26 10:45:52 -03:00
Anton Georgiev
b1656227aa
Merge pull request #13545 from JoVictorNunes/issue-12349
fix: unable to mute from talking indicator bar
2021-10-25 19:30:21 -04:00
Anton
fe95a8a6a9 dismembers random poll test and checks all possibilities 2021-10-25 12:01:40 -03:00
Philipp Memmel
50648b1886 allow to push custom and smart layout to participants 2021-10-24 15:23:34 +00:00
Ramón Souza
ce52d0a23e add overflow wrap to bbb-menu 2021-10-22 17:13:21 +00:00
Ramón Souza
d744206a86 update paragraph text color 2021-10-22 12:46:10 +00:00
Ramón Souza
cac7a37e29 update anonymous poll styles 2021-10-22 12:41:39 +00:00
Ramón Souza
b8f4f4a844 add poll heading styles 2021-10-22 12:26:04 +00:00
Joao Victor
61f2745c7f fix: unable to mute from talking indicator bar 2021-10-22 09:13:33 -03:00
KDSBrowne
39fb8a6baa center chevron in audio controls dropdown 2021-10-21 17:29:44 +00:00
Anton Georgiev
e5c37a7cf8
Merge pull request #13490 from ramonlsouza/old-minimize-button
Restore old button to hide presentation (under a flag)
2021-10-20 13:43:58 -04:00
Anton Georgiev
3ccc59ac63
Merge pull request #13521 from lfzawacki/userdata-layout
Userdata flags for hiding some layout elements
2021-10-20 08:43:18 -04:00