Commit Graph

2331 Commits

Author SHA1 Message Date
Max Franke
d75734391a fix(webcam): add state sync between bbb-html5 and akka-apps 2022-02-09 16:48:16 -03:00
Ramón Souza
dba04834c7 Merge remote-tracking branch 'upstream/v2.4.x-release' into 2524-feb08 2022-02-09 15:52:42 +00:00
Guilherme Leme
006340489d [issue-14014] - Reverted debug changes in front-end and implemented the new front-end logic to fit the insert api end-point. 2022-02-09 10:37:40 -03:00
Anton Georgiev
f13266e3b9
Merge pull request #14295 from Tainan404/backport-validatonAuthToken
Backport the validationAuthToken refactor
2022-02-07 14:59:28 -05:00
Gustavo Trott
56de9af7d4 Undo comma removing 2022-02-07 16:00:13 -03:00
Gustavo Trott
580ebdc066 Move disabledFeatures to meetingProp, and rename feat screensharing to screenshare 2022-02-07 15:55:45 -03:00
Gustavo Trott
dad9be2a6a Merge remote-tracking branch 'upstream/v2.5.x-release' into api-param-disabledFeatures 2022-02-07 10:23:28 -03:00
Gustavo Trott
de4688bcdc Implement new param disabledFeatures 2022-02-07 10:22:52 -03:00
Guilherme Leme
ea09c7001c [issue-14014] - WIP adding current tag on presentation payload 2022-02-04 14:52:53 -03:00
Anton Georgiev
196e069160
Merge pull request #14173 from GuiLeme/issue-13238
feat(presentation): Add removable and downloadable attributes to payload.
2022-02-03 12:16:10 -05:00
Anton Georgiev
7152d23e39
Merge pull request #14147 from zhem0004/fixPhoneJoinPermission
fix: Phone users to abide by guest policy
2022-02-03 12:07:47 -05:00
Anton Georgiev
68f9c36d8e
Merge pull request #14228 from gustavotrott/breakouts-message-to-all
feat: Send a chat message to all breakouts simultaneously
2022-02-03 10:25:20 -05:00
Guilherme Leme
75f3eab3f8 Resolve merging conflicts 2022-02-03 12:03:26 -03:00
Guilherme Leme
715888584b Front-end changes to fit the removable and downloadable properties. 2022-02-03 11:37:14 -03:00
Bohdan Zhemelinskyi
cc10a31c78 fix on comment 2022-02-02 21:07:18 +00:00
Ramón Souza
c5e9b3a02f remove user data when not needed 2022-02-02 13:53:23 +00:00
prlanzarin
d04d7c92dc feat(fullaudio): handle audio filter/constraint changes in new bridge 2022-02-01 17:19:56 -03:00
prlanzarin
ed89f6e4a5 feat(fullaudio): implement input/output device change in new bridge 2022-02-01 17:19:50 -03:00
prlanzarin
e667f7aecb refactor(fullaudio): make some of the SIP.js input/output code re-usable
To be used by other bridges
2022-01-31 16:30:38 -03:00
Gustavo Trott
eb567eb106 Handle message to all breakouts sent 2022-01-28 14:41:10 -03:00
Ramón Souza
457175dbba allow moderators to see disconnected users data 2022-01-27 18:45:04 +00:00
Bohdan Zhemelinskyi
fe91b448c2 Merge branch 'v2.4.x-release' of https://github.com/bigbluebutton/bigbluebutton into fixPhoneJoinPermission 2022-01-27 15:43:48 +00:00
Gustavo Trott
4e3711c1bd Resolve conflicts on backend marging 24->Develop 2022-01-27 08:29:14 -03:00
Gustavo Trott
759535eb62 Implements message to all breakout rooms 2022-01-26 17:02:38 -03:00
prlanzarin
599a5556b5 refactor(listen-only): use this.bridgeName for logging 2022-01-26 11:03:27 -03:00
prlanzarin
cb84e34833 feat(fullaudio): implement echo test in new full audio bridge
Partially addresses https://github.com/bigbluebutton/bigbluebutton/issues/14191
2022-01-26 11:03:27 -03:00
prlanzarin
f4e6e6c4f4 refactor(fullaudio): make call transfer code reusable
Allows state tracking and transfer execution to be re-used by other audio bridges
2022-01-26 11:03:24 -03:00
Ramón Souza
16cd3c4ebb Merge remote-tracking branch 'upstream/v2.4.x-release' into dev-24-0125 2022-01-25 16:56:52 +00:00
Anton Georgiev
5f4c5cdedb
Merge branch 'develop' into r-r-e-acea 2022-01-24 16:05:57 -05:00
Anton Georgiev
2e72946bc1
Merge pull request #14088 from zhem0004/fixPhoneBan
Fix: Removing phone users always bans them
2022-01-24 15:50:30 -05:00
Anton Georgiev
a761f0177a
Merge pull request #14143 from frankemax/fix-userdata-injection
fix(userdata): consistent breakout room userdata
2022-01-24 15:10:38 -05:00
Anton Georgiev
b8ba4b5c71
Merge pull request #14075 from gustavotrott/api-create-virtual-background-param
Add param to disable Virtual Backgrounds in API /create
2022-01-24 15:04:30 -05:00
Pedro Beschorner Marin
c9043655f1
Merge branch 'develop' into position-in-waiting-queue 2022-01-24 14:31:03 -03:00
Tainan Felipe
4946c1ff41 Backport the validationAuthToken refactor 2022-01-21 21:25:53 -03:00
Pedro Beschorner Marin
810deb907b refactor(etherpad): access control et al.
Move all Etherpad's access control from Meteor to a separated [Node application](https://github.com/bigbluebutton/bbb-pads).
This new app uses [Etherpad's API](https://etherpad.org/doc/v1.8.4/#index_overview)
to create groups and manage session tokens for users to access them. Each group
represents one distinct pad at the html5 client.

- Removed locked users' access to pads: replaced readOnly pad's access with a new pad's content sharing routine
- Pad's access is now controlled by [Etherpad's API](https://etherpad.org/doc/v1.8.4/#index_overview)
- Closed captions edited content now reflects at it's live feedback
- Improved closed caption's dictation mode live feedback
- Moved all Etherpad's API control from Meteor to a separated [app](https://github.com/bigbluebutton/bbb-pads)
- Included access control both in akka-apps and bbb-pads
2022-01-21 16:56:01 -03:00
SashoVihVas
d99c271fa6 This commit includes following changes:
1.HashMap updates in Meeting.java are updated
2.callback is removed from setGuestStatus.js
3.MeetingService.java passes the guest list instead of iterating through it
2022-01-20 18:24:25 +00:00
Bohdan Zhemelinskyi
8582ccd6db fixed join permission for Phone Users 2022-01-19 18:35:04 +00:00
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