Commit Graph

2181 Commits

Author SHA1 Message Date
Ramón Souza
304c16c519 remove voiceUsers data on leave 2021-11-29 13:59:21 +00:00
Ramón Souza
9a078b1bd6 remove previous connections auth-token-validation data 2021-11-29 13:50:31 +00:00
Ramón Souza
50546934c9 remove user persistent-data from collection on leave 2021-11-29 13:34:09 +00:00
Ramón Souza
69689646b7 prevent poll response leak 2021-11-26 17:02:06 +00:00
Anton Georgiev
60c1339a1f
Merge pull request #13757 from ramonlsouza/typed-poll-single-answer
fix: prevent users from being able to send more than one typed poll answer
2021-11-26 10:24:47 -05:00
Ramón Souza
30f6a642dd prevent users from being able to send more than one typed poll answer 2021-11-25 17:51:36 +00:00
Tainan Felipe
24ae9d3628 Fix server side connection close on user disconnection 2021-11-23 17:45:49 -03:00
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
Arthurk12
c2e90ede11 feat(screenshare): gain node
Splits screenshare stream into video and audio and adds gain node to audio
stream in order to permit volume control by the user. Volume is normalized
between [0, 2](muted and 2x boost).
2021-11-12 16:30:39 +00: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
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
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
3ccc59ac63
Merge pull request #13521 from lfzawacki/userdata-layout
Userdata flags for hiding some layout elements
2021-10-20 08:43:18 -04:00
Lucas Zawacki
8f346b6ae4 feature(layout): userdata to hide navbar 2021-10-19 20:43:33 +00:00
Lucas Zawacki
e5ac30fd46 feature(layout): userdata flag for hiding actions bar 2021-10-19 19:20:31 +00:00
Gustavo Trott
0102104fbe Makes bbb-web provide LearningDashboard data while meeting is alive 2021-10-14 14:00:25 -03:00
Anton Georgiev
d2d8287fb6 Merge branch 'v2.3.x-release' of github.com:bigbluebutton/bigbluebutton into merge-23-24 2021-10-06 17:27:37 +00:00
Anton Georgiev
585c263129
Merge pull request #13425 from pedrobmarin/f-cc-cr
fix(closed captions): captions recording
2021-10-06 10:00:21 -04:00
Pedro Beschorner Marin
3bf1eeeeaf fix(closed captions): captions recording
Missing updates on Meteor's data validation for the closed captions
backend recording events.
2021-10-06 10:50:07 -03:00
Anton Georgiev
59fc722529 Merge branch 'v2.3.x-release' of github.com:bigbluebutton/bigbluebutton into merge-23-24 2021-10-05 17:14:46 +00:00
Anton Georgiev
563bf2caca
Merge pull request #13392 from pedrobmarin/f-sn-aps
fix(shared notes): avoid padId subscription
2021-10-05 12:26:37 -04:00
Anton Georgiev
c2a48a5e9d
Merge pull request #13396 from pedrobmarin/f-cc-aps
fix(closed captions): avoid padId subscription
2021-10-05 12:26:26 -04:00
Anton Georgiev
9bc10c1a88
Merge pull request #13402 from ramonlsouza/pr-13396-24
fix(closed captions): avoid padId subscription (2.4)
2021-10-05 12:25:17 -04:00
Ramón Souza
3840d4ff63 fix(closed captions): avoid padId subscription
Remove padIds from the closed captions MongoDB collection subscription.

Users now have to fetch the padId from Meteor when needed. Meteor is
responsible for checking the user's access level and return the
proper id.
2021-10-04 19:22:18 +00:00
Pedro Beschorner Marin
c42d66a68f fix(shared notes): avoid padId subscription
Remove padIds from the shared notes MongoDB collection subscription.

Users now have to fetch the padId from Meteor when needed. Meteor is
responsible for checking the user's access level and return the
proper id.
2021-10-04 18:01:19 +00:00
Pedro Beschorner Marin
b65d253143 fix(closed captions): check owner on text append
Avoid appendText call if the requester is not the closed captions' pad
owner.
2021-10-04 14:40:43 -03:00
Pedro Beschorner Marin
f7793bdc4b fix(closed captions): avoid padId subscription
Remove padIds from the closed captions MongoDB collection subscription.

Users now have to fetch the padId from Meteor when needed. Meteor is
responsible for checking the user's access level and return the
proper id.
2021-10-04 14:35:53 -03:00
Anton Georgiev
9e972f0534
Merge pull request #13325 from jfsiebel/prevent-setInPod-loop
fix: Prevent a case where the setInPod get stuck on a loop
2021-10-04 10:41:34 -04:00
Pedro Beschorner Marin
995b6aad41 fix(shared notes): avoid padId subscription
Remove padIds from the shared notes MongoDB collection subscription.

Users now have to fetch the padId from Meteor when needed. Meteor is
responsible for checking the user's access level and return the
proper id.
2021-10-04 10:18:40 -03:00
Gustavo Trott
b07012df16 Removes prop users from BreakoutModel and add prop url_ instead 2021-10-01 13:19:01 -03:00
Gustavo Trott
be4f0bcebf Removes prop users from BreakoutModel and add prop url_ instead 2021-10-01 10:44:01 -03:00
Ramon Souza
a820461b63 fix 13232 regression 2021-09-29 14:52:30 -03:00
Joao Siebel
e1c825136c Prevent a case where the setInPod get stuck on a loop. close #12284 2021-09-29 13:22:18 -03:00
Mario Jr
7ed1cbfc30 Merge branch 'v2.4.x-release' into fix-13242 2021-09-29 09:20:58 -03:00
Mario Jr
519883e89a update(audio): adjust reference to ignoreCallState flag 2021-09-24 14:48:22 -03:00
prlanzarin
1cb412529d feat(webrtc): add EXPERIMENTAL option to disable ICE candidate signaling
ICE lite servers (eg mediasoup) dont need candidates signaled out-of-band; neither does KMS in certain scenarios

Disable their signaling saves us some ticks in bbb-webrtc-sfu and some bandwidth all around
2021-09-24 17:24:06 +00:00
Mario Jr
1c08fc852a fix(audio): audio controls crash when ending call during brekout audio transfer
Restored the old behavior when ending breakout rooms while user is in the
breakout audio transfer, which is to the trigger the reconnection to the audio
in the main room.
This behavior could be improved by (instead of reconnecting) transfering user
back to the main room, but this requires some changes in akka-apps/fsesl
which can be treated in a different issue.

Closes #13242
2021-09-21 11:22:05 -03:00
Ramon Souza
de53770d77 fix breakout room multiple invitations 2021-09-15 14:43:51 -03:00
Ramon Souza
58cd6b2241 ensure breakout invitation is sent 2021-09-06 15:54:12 -03:00
prlanzarin
9d9ed9ce72 fix(screenshare): propagate media server metadata to screen sharing viewers
Originally the adapter was inferred server side; I removed that
2021-08-31 01:26:39 +00:00
prlanzarin
58a8e99195 feat: add media server configuration via metadata
Applies to video, listen only and screen sharing

New metadata values: media-server-video, media-server-listenonly, media-server-screenshare; parameter is a String
2021-08-31 00:39:45 +00:00
prlanzarin
c57fb0b388 feat(audio): add media server adapter config for listen only in bbb-html5
Allows configuring, via bbb-html5, which media server adapter will be used by listen only; server wide
2021-08-31 00:24:41 +00:00
prlanzarin
86a715dc15 feat(screenshare): add media server adapter config in bbb-html5
Allows configuring, via bbb-html5, which media server adapter will be used by screen sharing; server wide
2021-08-31 00:19:51 +00:00
Gustavo Trott
6970a0ab30
Merge branch 'develop' into learning-dashboard-improvements2 2021-08-30 15:23:04 -03:00
Anton Georgiev
4ecb24b4fa Merge branch 'v2.3.x-release' of github.com:bigbluebutton/bigbluebutton into merge-aug30 2021-08-30 18:11:16 +00:00
Gustavo Trott
b7f14537ed Improvements to Learning Dashboard 2021-08-26 15:21:15 -03:00
Anton Georgiev
34453b8528
fix: Fix log message (LGTM)
Updating string for audio connected audio. Thanks @stweil
2021-08-25 13:17:27 -04:00
Gustavo Trott
cd15f17394 Refactor all references for activity-report renaming to learning-dashboard 2021-08-25 11:38:35 -03:00
Anton Georgiev
e6eebfaa81
Merge pull request #12983 from prlanzarin/u24-fantas
refactor(webcams, screenshare, listen-only): let the server generate subscriber offers
2021-08-24 16:37:44 -04:00
Mario Jr
00e01c1872 add screenshare's peer information to video stats in connection status modal
Added support for getStats in screenshare's service. This works similar
to the getStats for video provider, and the information retrieved from
screenshare is added to the video information for cameras.
2021-08-23 12:36:01 -03:00
Mario Jr
cf366e5090 Get user and audio data, shows it and allows it to be copied to clipboard
Using getStats api and peer information to retrieve upload/download rates
and transport information
2021-08-12 16:39:04 -03:00
prlanzarin
54d04fdb77 refactor(listen-only): let the server generate subscriber offers 2021-08-12 13:45:18 +00:00
prlanzarin
387c453076 refactor(screnshare): let the server generate subscriber offers 2021-08-12 13:45:04 +00:00
Joao Siebel
4df47c08de Fix a problem where the first moderator to join wasn't flaged as presenter 2021-08-11 16:46:26 -03:00
Anton Georgiev
5cfb723e07 Merge branch 'v2.3.x-release' of github.com:bigbluebutton/bigbluebutton into aug6-merge 2021-08-06 15:23:36 +00:00
Anton Georgiev
c8577dd76d
Merge pull request #12908 from antobinary/fix-12890
fix: Re-subscribe user to guestUser collection on promotion/demotion
2021-08-05 09:30:31 -04:00
Anton Georgiev
daed82d63c fix: re-subscribe user to guestUser collection on promotion/demotion 2021-08-04 15:34:52 +00:00
Anton Georgiev
e4826afa29 fix: Grant current-poll access to attendee presenter too 2021-08-04 15:13:00 +00:00
Joao Siebel
4cae6bb5dc Prevent edge case where the UI show wrong info about current presenter 2021-08-04 11:02:10 -03:00
Anton Georgiev
73da9c15da Merge branch 'v2.3.x-release' of github.com:bigbluebutton/bigbluebutton into merge-23-july-30 2021-07-30 23:43:27 +00:00
Anton Georgiev
ac3d627d15 fix(guests): Propagate list of pending guests only to mods 2021-07-30 19:31:04 +00:00
Anton Georgiev
21cb175d40 fix(polls): Avoid viewer manually subscribing to current-poll 2021-07-30 16:49:16 +00:00
Mario Jr
c0d1255924 Merge branch 'v2.3.x-release' into fix-1005-logging 2021-07-30 12:28:34 -03:00
Anton Georgiev
aa0ea21990 fix(breakouts): Do not allow users to obtain 'redirectToHtml5JoinURL' for others 2021-07-30 13:35:44 +00:00
Anton Georgiev
b0b386c690 add meetingId to chatIds selector 2021-07-29 12:42:43 +00:00
Joao Siebel
9b31ded342 Fix auto assigned presenter when previous one left the meeting. close #12679 2021-07-23 15:50:51 -03:00
Anton Georgiev
4806e71fe8
ConnectionStatus - log info on 'warning'
Until now we only logged for `normal`, `danger` and `critical` leading to some ambiguity in log analysis
2021-07-23 14:18:23 -04:00
Anton Georgiev
a37843d2a7 Merge branch 'v2.3.x-release' of github.com:bigbluebutton/bigbluebutton into merge238-into-24 2021-07-23 17:09:18 +00:00
prlanzarin
168f66310e fix(listen-only): avoid leaving a dangling HTMLMediaElement in paused state 2021-07-23 02:35:47 +00:00
prlanzarin
e20fe6d4ad fix(screenshare): avoid leaving a dangling HTMLMediaElement in paused state 2021-07-23 02:27:02 +00:00
Gustavo Trott
e4ef1582f2
Merge branch 'develop' into activity-report 2021-07-22 11:33:47 -03:00
Gustavo Trott
3c6155a73e Creates config activityReportTracking to enable Activity Report 2021-07-22 11:09:44 -03:00
Mario Jr
2f75f6107e fix(audio): prevent false positive alerts of 1005 error
After reconnecting (with 1007 or 1005), user may gets 1005 when meeting
is ended by moderator.
2021-07-22 09:28:14 -03:00
Anton Georgiev
1abedcc698
Merge pull request #12789 from jfsiebel/implement-default-layout-config
Allow default layout config in bbb-web
2021-07-21 16:11:08 -04:00
Gustavo Trott
b0f9835ffd Merge branch 'develop' into activity-report 2021-07-21 14:20:27 -03:00
Anton Georgiev
472c9a6107 Merge branch 'v2.3.x-release' of github.com:bigbluebutton/bigbluebutton into 237-into-develop 2021-07-20 15:21:21 +00:00
Mario Jr
6db69c39d8 fix(audio): prevent duplicated error logging
We now let audio-manager log errors, using the specified error code.
These errors are still logged in bridge layer, but as a warning.
This commit doens't change error codes behavior, they are still being
logged as errors and with the same code numbers.
2021-07-20 11:10:04 -03:00
Ramon Souza
1be7fd28ce Merge remote-tracking branch 'upstream/v2.3.x-release' into issue-12665 2021-07-19 14:30:45 -03:00
Joao Siebel
8462465a5f Allow default layout config in bbb-web. close #12668 2021-07-19 11:02:58 -03:00
Mario Jr
431a6c7c3b chore(audio): add secondsToGatherIce as extraInfo in server log 2021-07-16 11:16:24 -03:00
Gustavo Trott
c70967e7f1 Adds UI buttons to moderators open Activity Report 2021-07-15 21:23:16 -03:00
Mario Jr
f5713869bf fix(audio): correct log the time needed for ice gathering 2021-07-15 11:15:53 -03:00
Gustavo Trott
45d4c310c2 Merge branch 'develop' into activity-report 2021-07-13 11:12:45 -03:00
Ramon Souza
604ae9cf6f change default layout to smart 2021-07-13 09:25:53 -03:00
Anton Georgiev
37c6175f09
Merge pull request #12704 from jfsiebel/hide-poll-response-viewers
Filter anonymous poll data for presenter, moderators and viewers
2021-07-12 08:51:29 -04:00
Ramon Souza
8fe8a0ac6b display endWhenNoModerator message 2021-07-08 11:51:00 -03:00
prlanzarin
67fca54d76 fix(screenshare): fix client crash on presenter change
Scenario: presenter`s client could crash when the presenter changed while they were sharing their screen

That is due to a race condition on the stop procedure in the bridge: two stops can be triggered (one from the server-side websocket tear off and another from the client itself detecting the presenter change)

That could create a scenario where the broker was cleaned in one stop procedure after the second had checked its availability, causing an attribute access of a null member
2021-07-07 19:29:17 +00:00
prlanzarin
e5aec7beab refactor(screenshare): append error message to failure log 2021-07-07 19:29:11 +00:00
Anton Georgiev
6cf863ff3d
Merge pull request #12604 from KDSBrowne/bbb-api-unit-tests
test: Add Unit Tests For Meteor Polls API
2021-07-06 16:56:46 -04:00
Anton Georgiev
b9cc633286 Merge branch 'v2.3.x-release' of github.com:bigbluebutton/bigbluebutton into merge-2.3.5-into-develop 2021-07-06 19:36:19 +00:00
Joao Siebel
2cda889d51 Previne loggedOut property to be undefined. close #12656 2021-07-05 16:04:26 -03:00
Anton Georgiev
0150862eb1
Merge pull request #12705 from mariogasparoni/feat-trickle-ice-mic
feat(audio): use kurento's trickle-ice to improve mic negotiation
2021-07-02 17:44:05 -04:00
Anton Georgiev
0457868e4b
Merge pull request #12703 from jfsiebel/hide-poll-response-for-viewers
fix: Filter poll data for moderator and viewers
2021-07-02 16:06:06 -04:00
Joao Siebel
7e46f31bf8 Remove responses fields from minimongo when the poll is anonymous 2021-07-02 16:58:33 -03:00
Joao Siebel
65ff7bca6c Hide poll responses and number of votes for viewers in minimongo 2021-07-02 16:47:00 -03:00
Anton Georgiev
2d0e31cce4
Merge pull request #12702 from jfsiebel/prevent-add-connection-status-spam
Prevent addConnectionStatus log spam when not authenticated
2021-07-02 15:01:56 -04:00