Commit Graph

2294 Commits

Author SHA1 Message Date
Pedro Beschorner Marin
4a0882f9f2 fix(userdata): merge breakout room userdata
Avoid using MongoDB to copy breakout room user's userdata. All userdata is
now merged at bbb-web's join API call.
2022-01-19 10:58:13 -03:00
Aleksandar Vasilev
6935b8293c
Merge branch 'bigbluebutton:develop' into position-in-waiting-queue 2022-01-16 02:59:40 +01:00
Aleksandar Vasilev
6103ae960d
Merge branch 'bigbluebutton:develop' into develop-private-guest-lobby-messages 2022-01-16 02:58:43 +01:00
Bohdan Zhemelinskyi
df3da31f39 fixUsersGettBannedFromPhone 2022-01-13 18:43:16 +00:00
prlanzarin
8e822f4a6d fix(screenshare): add state sync between bbb-html5 and akka-apps
A TODO 5 years in the making
2022-01-12 19:36:38 -03:00
Gustavo Trott
7d55cac005 Implements virtualBackgroundsDisabled param to API /create 2022-01-12 18:21:58 -03:00
Anton Georgiev
d30fc98af0
Merge pull request #13894 from ramonlsouza/remove-user-persistent
refactor: Remove unused user data on leave
2022-01-12 14:10:03 -05:00
germanocaumo
b71b9a0c85 fix(polls): fix wrong typed poll results due to race condition
Sometimes a vote for a new answer text was being computed as a vote for the first option due to poll collection late update.
2022-01-12 17:41:02 +00:00
Ramón Souza
f6e65f58c5 merge 2.4 into develop and resolve conflicts - partial 2022-01-12 16:40:45 +00:00
SashoVihVas
1862f60e05 Add private guest lobby messages 2022-01-12 14:10:30 +00:00
SashoVihVas
2d7c82e73d Add position in waiting queue for guest users 2022-01-12 03:08:43 +00:00
Mario Jr
1621834239 feat(audio): add settings for audio websocket connection
Default values were kept, but now this can be changed in settings.yml.
If not set in settings.yml, the old hardcoded values are used.
2022-01-10 18:56:29 -03:00
Tainan Felipe
a0a20e46ac Fix typo in validate authtoken method 2022-01-10 15:29:25 -03:00
Ramón Souza
1ddb15eb8a Merge remote-tracking branch 'upstream/v2.4.x-release' into remove-user-persistent 2022-01-06 16:26:23 +00:00
Daniel Schreiber
6dcc4cab75 Fix telephone dialin
this fixes a crash in bbb-html5 when someone uses phone dialin. The
crash resulted in users joining the audio convference but not being
visible in the users list.

Fixed stack trace:

~~~
error: UserJoinedVoiceConfToClientEvtMsg: Error: Match error: Missing key 'pin'
    at check (packages/check/match.js:36:17)
    at addUser (imports/api/users/server/modifiers/addUser.js:23:3)
    at addDialInUser (imports/api/users/server/modifiers/addDialInUser.js:30:10)
    at EventEmitter.handleJoinVoiceUser (imports/api/voice-users/server/handlers/joinVoiceUser.js:36:5)
    at EventEmitter.emitAsync (/usr/share/meteor/bundle/programs/server/npm/node_modules/eventemitter2/lib/eventemitter2.js:463:31)
    at MeetingMessageQueue.handleTask (imports/startup/server/redis.js:114:10)
    at imports/startup/server/redis.js:126:28
    at Queue.start (/usr/share/meteor/bundle/programs/server/npm/node_modules/queue/index.js:145:17)
    at Queue.<computed> [as push] (/usr/share/meteor/bundle/programs/server/npm/node_modules/queue/index.js:59:12)
    at MeetingMessageQueue.add (imports/startup/server/redis.js:125:16)
    at RedisPubSub.handleMessage (imports/startup/server/redis.js:327:63)
    at runWithEnvironment (packages/meteor.js:1320:24)
~~~
2022-01-03 14:22:28 +01:00
Max Franke
85ad9a5e30 feat(video): webcam video pinning server side logic
Add the new ChangeUserPinState messages to handle the new video pinning
functionality
2021-12-21 16:58:38 -03:00
Anton Georgiev
c7206bb59e
Merge pull request #13866 from ramonlsouza/presenter-polls
fix: increase current-poll security
2021-12-15 13:40:19 -05:00
Ramón Souza
fd874aa10a Merge remote-tracking branch 'upstream/v2.4.x-release' into remove-user-persistent 2021-12-15 18:04:02 +00:00
Anton Georgiev
0b82fb9fdb
Merge pull request #13893 from Tainan404/fix-the-auth-loop
re-implement the server-side connection close when user is removed
2021-12-15 12:41:12 -05:00
Anton Georgiev
ff63e6541f
Merge pull request #13927 from Tainan404/fix-loop-auth
Revert auth token validation publisher changes
2021-12-15 11:51:15 -05:00
Anton Georgiev
b0c66caef9
Merge pull request #13915 from prlanzarin/u24-sprawling-pier
feat(webcams): add option to allow moderators to close another user's webcams
2021-12-15 09:24:11 -05:00
Tainan Felipe
da065cb6ea Revert auth token validation publisher changes 2021-12-15 11:06:07 -03:00
Anton Georgiev
a1fff7508d
Merge pull request #13876 from prlanzarin/u24-malibu-bubu
fix(fullaudio): remove cross wired configs
2021-12-14 16:44:59 -05:00
Anton Georgiev
ad97eb2ebe
Merge pull request #13871 from prlanzarin/u24-lifeforms-longforms
feat(bbb-html5): add a general forceRelay flag
2021-12-14 16:44:36 -05:00
Paulo Lanzarin
775150471c
Merge pull request #13688 from Arthurk12/screenshare-volume
feat(screenshare): volume control
2021-12-14 14:06:37 -03:00
prlanzarin
21c124b854 feat(webcams): server-side logic to allow moderators to close user's webcams
Includes a new create param/web conf called allowModsToEjectCameras, false by
default.

Ejection does not work in breakout rooms or with non-mod users

Ejection closes _all_ webcams shared by the target user
2021-12-13 19:49:41 +00:00
Ramón Souza
d1c516fef6 resolve html5 conflicts 2021-12-10 21:07:35 +00:00
Ramón Souza
b10544aba5 remove user data on leave + video fix 2021-12-10 19:13:26 +00:00
Tainan Felipe
fb6aae1a02 re-implement the server-side connection close when user is removed 2021-12-10 15:38:55 -03:00
Anton Georgiev
328b3c1563
Revert "fix: Fix server side connection close on user disconnection" 2021-12-09 17:27:35 -05:00
Anton Georgiev
b6cf565ca6
Revert "refactor: Remove unused user data on leave" 2021-12-09 16:56:25 -05:00
Anton Georgiev
797fc49633 TEMP 2021-12-09 20:37:05 +00:00
prlanzarin
93b5f4c93d feat(bbb-html5): add a general forceRelay flag
public.media.forceRelay forces relay usage on all browsers, environments and media modules

If true, overrides public.kurento.[4~forceRelayOnFirefox
2021-12-09 11:35:56 +00:00
prlanzarin
d59f910d84 fix(fullaudio): remove cross wired configs
Offer direction should only be controlled that way in listen only
2021-12-08 23:45:45 -03:00
Ramón Souza
6a6f690282 increase current-poll security 2021-12-08 19:30:04 +00:00
prlanzarin
e49aa1c959 refactor(screenshare): revert volume control to HTMLMediaElement, make it configurable
I have growing concerns about gain node`s effect on audio quality the way it
was implemented, so I opted to fall back to HTMLMediaElement`s volume control
for the time being until we can gauge quality impacts properly later on

Add a new configuration flag enableVolumeControl, false by default while the
feature undergoes a field trial
2021-12-08 16:24:31 +00:00
hiroshisuga
0bc62f66f4
Feat(meeting): minimise sequential user pick (#13831)
Updating random user picker to reduce the probability that the exact same viewers would be selected first in successive random-pick runs
2021-12-07 12:36:34 -05:00
Anton Georgiev
578332a094
Merge pull request #13731 from schrd/cluster_proxy
Allow BBB to run behind a proxy the avoid gUM permission queries per node
2021-12-03 11:32:07 -05:00
Anton Georgiev
8bbb2b3cae
Merge pull request #13773 from ramonlsouza/remove-persistent-on-leave
Remove unused user data on leave
2021-12-02 15:37:34 -05:00
Gustavo Trott
9488392116 Removes breakoutStarted handler once it will not be listened anymore 2021-12-02 16:02:28 -03:00
Gustavo Trott
ba5f38f504 Merge with breakout-history pr 2021-12-02 14:22:51 -03:00
Paulo Lanzarin
a52091e2ab
Merge pull request #13789 from prlanzarin/u24-spiraling-dynamically
chore: add forceRelayOnFirefox option (false by default)
2021-12-02 11:27:29 -03:00
Gustavo Trott
54d510bae1 Merge remote-tracking branch 'upstream/develop' into fix-breakout-freejoin-assignments 2021-12-02 11:10:58 -03:00
Gustavo Trott
fe944c1bdb Fix breakouts assignments when freeJoin is true 2021-12-02 11:05:42 -03:00
Anton Georgiev
bdd31b4dbc
Merge pull request #13802 from Tainan404/remove-parameters-from-publishers
Removes parameters usage in the group-chat-messages and authtoken-validation publishers
2021-12-01 15:29:12 -05:00
Anton Georgiev
94f85ad68a
Merge pull request #13678 from gustavotrott/breakouts-n-groups-assignments-2.5
feat: Auto assign Breakouts (names and users) using previous rooms info or groups info
2021-12-01 15:01:23 -05:00
Tainan Felipe
091ef11d6a Remove parameters usage from group-chat-messages and authtoken-validation 2021-12-01 14:47:08 -03:00
prlanzarin
da6ab02122 chore: add forceRelayOnFirefox option (false by default)
- forceRelayOnFirefox: whether TURN/relay usage should be forced to work
around Firefox's lack of support for regular nomination when dealing with
ICE-litee peers (e.g.: mediasoup).
  * See: https://bugzilla.mozilla.org/show_bug.cgi?id=1034964
- iOS endpoints are ignored from the trigger because _all_ iOS browsers
  are either native WebKit or WKWebView based (so they shouldn't be affected)
2021-11-30 20:31:12 +00:00
Ramón Souza
f5cde413f2 fix external video streamer leak 2021-11-30 20:22:41 +00:00
Maxim Khlobystov
b7cf670aec Remove the support for iframe postMessage API (recording and self-muting) 2021-11-29 22:53:12 +00:00
Anton Georgiev
5bdf2b86ac
Merge pull request #13763 from ramonlsouza/poll-response-leak
fix: prevent poll response leak
2021-11-29 13:58:04 -05:00
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
Gustavo Trott
90837505ff use the absolute path 2021-11-22 11:35:44 -03:00
Gustavo Trott
a2aeae8ac4 use the absolute path 2021-11-22 11:27:30 -03:00
Gustavo Trott
a300b4c66d use the absolute path 2021-11-22 11:25:21 -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
Gustavo Trott
cf61057e94 Adds publicationSafeGuard to breakouts-history 2021-11-19 17:42:33 -03:00
Gustavo Trott
305e26172e Migrates breakout-history to new local collections 2021-11-19 16:34:37 -03:00
Gustavo Trott
0458212531 Merge remote-tracking branch 'upstream/develop' into breakouts-n-groups-assignments-2.5 2021-11-19 16:16:00 -03:00
Anton Georgiev
542db847ff
Merge pull request #13574 from Tainan404/smooth-reconnection-25
Improve data structure to not break on reconnections
2021-11-17 15:55:21 -05:00
Ramón Souza
4207502db1 remove unused imports/exports 2021-11-17 12:26:26 +00: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
Gustavo Trott
ad4ab7ed48 Undo wrong changes 2021-11-11 14:08:01 -03:00
Gustavo Trott
8555187df3 Resolve conflicts with Develop branch 2021-11-11 14:02:03 -03:00
Gustavo Trott
e919e24b38 Auto assign breakout names and users using lastBreakout or groups 2021-11-11 10:10:31 -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
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
9372d0b0a2
Merge pull request #13630 from zhem0004/randomUserOrdering
Random user ordering
2021-11-04 13:48:25 -04:00
Bohdan Zhemelinskyi
d5c80fc060 Improvement based on comments 2021-11-04 15:16:47 +00:00
Bohdan Zhemelinskyi
a20ee430ed Improvements based on sonar cloud feedback 2021-11-03 19:16:55 +00:00
Tainan Felipe
f5eef03f3f Improve data structure to not break on reconnections 2021-11-03 14:37:54 -03:00
Anton Georgiev
019a0b25b9
Merge pull request #13564 from jfsiebel/remove-unused-property-chat-message
Remove unused properties from chat message event
2021-11-02 15:12:56 -04:00
Anton Georgiev
13aba985cb
Merge pull request #10737 from hiroshisuga/fillshape
feat: Fill shape in whiteboard
2021-11-02 15:03:22 -04:00
Tainan Felipe
3e7d88586e Enhances authToken validation to solely use Meteor.call 2021-10-28 15:16:16 -03:00
Bohdan Zhemelinskyi
7ae476af3d Stabilized rndom user select(commented) 2021-10-27 19:17:21 +00:00
Bohdan Zhemelinskyi
bb0ee66977 Stabilized rndom user select 2021-10-27 18:47:48 +00:00
Anton Georgiev
c60ef3c179
Merge pull request #13253 from ramonlsouza/PR-11359
feat: multiple choice poll
2021-10-26 14:42:29 -04:00
Joao Siebel
7a118ed3b8 Remove unused properties from chat message event record. close #11696 2021-10-25 14:46:59 -03:00
Anton Georgiev
1622425cbc Merge branch 'develop' of github.com:bigbluebutton/bigbluebutton into 2.4-into-develop 2021-10-22 19:12:58 +00: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
Ramón Souza
1cc066366f Merge remote-tracking branch 'upstream/develop' into PR-11359 2021-10-19 16:41:36 +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
24d672a832 Merge branch 'v2.4.x-release' of github.com:bigbluebutton/bigbluebutton into merge-24-dev 2021-10-14 15:13:17 +00:00
Tainan Felipe
1de8e0779d Add server side reactivity to publications 2021-10-13 15:00:52 -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