Commit Graph

2098 Commits

Author SHA1 Message Date
Pedro Beschorner Marin
83c813ac6f refactor(connection status): interval and log configuration
Simplify how connection status inteval is configured and make server
log the solo logging option.
2021-04-23 19:15:32 -03:00
Pedro Beschorner Marin
19d6e32229 chore(connection status): log status change at the server
Includes a log at Meteor's addConnectionStatus method to log danger,
critical and recoveries triggers on user's connection status change.
2021-04-23 18:47:56 -03:00
Mario Jr
2f78fc05d2 fix: breakout audio don't use previously selected output device
When joining breakout audio, the output device selected in the main room is
used in breakout.
When returning from breakout rooms, the output audio device previously set in
the main room is restored.

Some specific info:
SIPSession doesn't handle Storage anymore, we do this in SIPBridge, since
it has more info about the current selected device and it doesn't depend of
a session being oppened.
We also now pass the  output device ID when joining audio sessions. We can
then keep this information in the Storage.
Closes #11663
2021-04-23 11:28:30 -03:00
Anton Georgiev
36b67971ee
Merge pull request #12054 from mariogasparoni/fix-12023-and-other-two-fixes
fix: mic selection (firefox/all browsers) and muted alert when mic is changed
2021-04-20 13:40:54 -04:00
Joao Siebel
c5071093d9 Improve feedback to user after a failed file upload 2021-04-20 14:21:12 -03:00
Anton Georgiev
3ebb2cf46d
Merge pull request #12004 from prlanzarin/u23-isitcoldinthewater
video: voice activity video sorting
2021-04-20 09:47:43 -04:00
Ramon Souza
d5d1c86c70 remove unused imports 2021-04-20 09:12:22 -03:00
Anton Georgiev
da2ee3517d
Merge pull request #12057 from ramonlsouza/issue-11998-2
Add delay to userRemove
2021-04-19 14:19:52 -04:00
Ramon Souza
98ad9289ab add inline comment 2021-04-16 16:32:16 -03:00
Ramon Souza
ab8cfe5109 add delay to userRemove 2021-04-16 14:58:53 -03:00
Anton Georgiev
ed19c65fa1
Merge pull request #12011 from ramonlsouza/publish-cursor-userid
Publish cursor using reliable userId
2021-04-16 09:53:59 -04:00
Mario Jr
e8d59ed14a fix: mic selection (firefox/all browsers) and muted alert when mic is changed
This commit contains three fixes: one already reported and two detected
during the investigation of the solution.
This started as a fix for firefox (#12023), but i also fixed the muted
alert/banner when device changes: the banner wasn't detecting device changes,
unless audio was deactived/actived.

There's another fix for the microphone stream: we now keep sender's track
disabled if it was already disabled for the sender's track of the previous
selected device.

Also did small refactor for eslint checking.

Some technical information: in sip bridge (bridge/sip.js), setInputStream and
liveChangeInputDevice function were both fully turned into promises, which
guarantees we have everything ready when it resolves to the respective values.
This helps AudioManager (audio-manager/index.js) to sequentially sets and
tracks the state of the current microphone stream (inputStream), when calling
liveChangeInputDevice function: we first set the current stream to null,
creats a new one and then set it to the newly created value - this is needed
because MutedAlert (muted-alert/component.jsx) can then gracefully
allocate/deallocate the cloned stream when it is set to a non-null/null value
(the cloned stream is used for speech detection with hark).
In MutedAlert we also make sure to enable the cloned stream's audio
tracks, just in case the user change the device when muted (audio track is
disabled in this case), which also leaves the cloned stream muted (we then
enable the track to allow speech detection).

Closes #12023
2021-04-16 10:45:40 -03:00
Ramon Souza
91661acb78 add bars to chat poll results 2021-04-15 15:32:53 -03:00
hiroshisuga
4db28a2824
Fancy random viewer selection (#11297)
* Revert "Delete bbb-icons-ori.woff"

This reverts commit 84937a0d07.

* Revert "Add files via upload"

This reverts commit 391434445a.

* Revert "Delete bbb-icons.woff"

This reverts commit 7c245c666d.

* Revert "Add files via upload"

This reverts commit 6f8c764c4b.

* Revert "Delete tmp.woff"

This reverts commit 5141e65359.

* Revert "Add files via upload"

This reverts commit c8f7b17b04.

* Revert "Create tmp.woff"

This reverts commit 73c4506594.

* Revert "Delete bbb-icons.woff"

This reverts commit 9d01d58527.

* Revert "Revert "Delete bbb-icons.woff""

This reverts commit d221d290cd.

* Revert "Revert "Revert "Delete bbb-icons.woff"""

This reverts commit c415ff02d1.

* Revert "Revert "Delete bbb-icons.woff""

This reverts commit d221d290cd.

* Revert "Revert "Create tmp.woff""

This reverts commit 267dc412d5.

* Revert "Delete bbb-icons-ori.woff"

This reverts commit 84937a0d07.

* Revert "Delete bbb-icons.woff"

This reverts commit 7c245c666d.

* Revert "Add files via upload"

This reverts commit 6f8c764c4b.

* Revert "Add files via upload"

This reverts commit c8f7b17b04.

* Revert "Create tmp.woff"

This reverts commit 73c4506594.

* Revert "Delete bbb-icons.woff"

This reverts commit 9d01d58527.

* Revert "Revert "Delete bbb-icons.woff""

This reverts commit 64a48f2bd6.

* Revert "Revert "Revert "Delete bbb-icons.woff"""

This reverts commit 9d1b4a068a.

* Revert "Revert "Revert "Revert "Delete bbb-icons.woff""""

This reverts commit b60491d933.

* Revert "Revert "Revert "Revert "Revert "Delete bbb-icons.woff"""""

This reverts commit 16e357091d.

* Revert "Revert "Revert "Revert "Revert "Revert "Delete bbb-icons.woff""""""

This reverts commit e0b70f2055.

* Revert "Revert "Revert "Revert "Revert "Revert "Revert "Delete bbb-icons.woff"""""""

This reverts commit 7b1bde97ed.

* Update UsersMgs.scala

* Update selectRandomViewer.js

* Update clearRandomlySelectedUser.js

* Update addMeeting.js

* Update updateRandomViewer.js

* Update component.jsx

* Update container.jsx

* Update component.jsx

* Update container.jsx

* Update styles.scss

* Update en.json

* Update SelectRandomViewerReqMsgHdlr.scala

* code simplification

* in case only one person to be selected

* Update en.json

* Create en.json

* Update en.json

* Update component.jsx

* Update styles.scss

* Update en.json

* Update updateRandomViewer.js

Fix a typo

* Update component.jsx

When the presenter is moved to a viewer, in the modal of ex-presenter "somebody is selected" should be displayed. Before this modification, "somebody is the only viewer" was displayed.

* add a comment

explaining why a condition is needed.

* Update en.json

* Update en.json

* revert (due to the rename UserMgs -> UserMsgs)

* Update UsersMsgs.scala
2021-04-15 11:12:10 -04:00
Ramon Souza
d3ec10f3e2 publish cursor using reliable userId 2021-04-13 14:36:46 -03:00
prlanzarin
001ab9554c video: added voice activity stream sorting, made stream sorting extensible
Video streams can be sorted by voice floor activity in the client according to FreeSWITCH´s floor events. The feature works together with pagination, essentially giving an Last-N like experience while not disrupting too much

Made video stream sorting extensible in a way. The sorting modes for pagination and unbounded can be configured in settings.yml and new sorting modes can be added to the stream sorting util under video-provider. Inline docs explain how to do that

Changed how the stream ID attribute from video-streams collection was passed to downstream components; we had an array map that was executed every change just to map stream to cameraId, which is bizarre. So I changed the cameraId usage in downstream components to be conformat with the collection attributes and shaved off the map where it wasnt needed

Add better selectors to video-list-item container´s VoiceUser fetch
2021-04-12 19:06:07 +00:00
Ramon Souza
086d370428 remove returnless function use 2021-04-09 10:08:59 -03:00
Anton Georgiev
9b4337454c
Merge pull request #11909 from pedrobmarin/update-users-persistent-data
Update users persistent data
2021-04-07 13:26:41 -04:00
Mario Jr
5eced7fe5b fix: dial-in users don't appear in participant's list
Closes #11860
2021-04-06 18:44:54 -03:00
Pedro Beschorner Marin
5cc213d93c Update user persistent data on role change 2021-04-06 16:32:04 -03:00
Pedro Beschorner Marin
ae4a44b713 Refactor logged out status error message 2021-04-06 16:31:16 -03:00
Anton Georgiev
9ec5408c9e
Merge pull request #11847 from ramonlsouza/offline-users-connection
Re-include offline users to the connection modal's users list
2021-04-05 12:10:47 -04:00
Pedro Beschorner Marin
7737241141 Reduce pad's hash size
Etherpad has a limitation of 50 characters for it's pad ids. Although
our SHA1 hash function generates 40 characters length values, after
prefixing (Meteor's instance id) and suffixing (closed captions support)
the pad id we can reach an invalid size.
2021-04-02 13:22:11 -03:00
Mario Jr
951fc0ade8 fix: MEDIA_ERROR when joining room using Firefox
Firefox doesn't create a  device called 'default' and we were trying
to set this when user is joining the room. We don't do this anymore, letting
devices to be changed when there's some user request.

Moved outputDeviceId inputDeviceId information to be managed in bridge
(just like we do with inputDeviceId), we don't store this duplicated
information in audio container anymore.

Fixed the eslint warning in "playAlertSound(url) { ..."

We are safe to let users try to change input/output devices because the
device list is retrieved from enumerateDevices.
2021-04-01 15:53:43 -03:00
Ramon Souza
3be14632de adding meetingId to usersPersistentData 2021-04-01 15:53:03 -03:00
Anton Georgiev
258a1e12ad remove withInstanceId from note/server/helpers 2021-04-01 18:19:44 +00:00
Anton Georgiev
ff45cccd66 Merge branch 'v2.2.x-release' of github.com:bigbluebutton/bigbluebutton into apr1-merge 2021-04-01 18:11:13 +00:00
Ramon Souza
05a0d5afbf move browser info to helper + remove unused libs 2021-04-01 08:14:24 -03:00
Anton Georgiev
6695f7a119
Merge pull request #11813 from mariogasparoni/merge-update-pr-10129
Update and some improvements on PR #10129 - dynamic change audio device
2021-03-30 13:50:30 -04:00
Anton Georgiev
85a84f7cbf
Revert "Change browser detection library from browser-detect to bowser" 2021-03-30 13:16:10 -04:00
Anton Georgiev
027658ac5c
Merge pull request #11806 from ramonlsouza/mobile-detect
Change browser detection library from browser-detect to bowser
2021-03-30 12:28:13 -04:00
Anton Georgiev
87b770fee7
Merge pull request #11807 from jfsiebel/handle-reason-code
Rework banned users
2021-03-30 11:21:56 -04:00
Joao Siebel
c1503a2931 Remove banned users structure and handle reasonCode in validateAuthToken 2021-03-30 10:09:25 -03:00
Ramon Souza
3fa193005b change browser detection lib to bowser 2021-03-30 09:53:47 -03:00
Anton Georgiev
e51f569a8a
Merge pull request #11800 from pedrobmarin/pad-server-refactor
Refactor Etherpad API calls
2021-03-30 06:45:57 -04:00
Mario Jr
60378e8c63 Merge branch 'develop' into merge-update-pr-10129 2021-03-29 19:07:27 -03:00
Mario Jr
cddca95ad1 Fixes and improvements on pr #10129 - dynamic change audio device
Allow listenonly users to change output devices
Fixed dynamic audio device change for firefox
Fixed shortcuts for audio join/leave
Show (with a bold font) the current selected device
[performance] Prevent calling mediaDevices.enumerateDevices every time we render
the selector. This adds a delay (~200ms, on my chrome setup) to render this component
[performance] Do not call enumerateDevices to search for new devices, instead we listen on mediaDevices.deviceChange event
Small refactoring and fixed a few errors that were being throw in browser's console
Fixed device selection when this is done in audio-settings modal
Fallback to default device when current device is removed
Truncate device name length
Renamed "Input","Output" labels to "Microphone","Speakers", respectively
Update eslint rule for accessKey
2021-03-29 18:55:17 -03:00
Mario Jr
cec88c996d Merge remote-tracking branch 'tainan/issue-9723' into merge-update-pr-10129 2021-03-29 18:52:12 -03:00
Pedro Beschorner Marin
1aa7685dcc Refactor Etherpad API calls
Isolate most Pad related functions and secure shared notes and closed
captions creation to only when there is a reachable Etherpad server
configured.
2021-03-29 18:35:33 -03:00
prlanzarin
2e51482c7c audio: make sdpSemantics configurable
Plan B is going to be phased out of Chrome soon and we should be testing it with unified plan
2021-03-29 20:01:33 +00:00
Anton Georgiev
b836e5f7ca
Merge pull request #11758 from pedrobmarin/connection-status-button
Move connection-status to nav-bar
2021-03-29 11:44:49 -04:00
Pedro Beschorner Marin
280b32d21d Move connection-status to nav-bar
- Removed the connection-status history from the user list's gear
icon and now is opened by the connection-status button. Moderators will
render the same modal as before and viewers will only have access to their
own data.

 - Added data-savings shortcut at the connection-status modal.

 - Added websocket round-trip time.
2021-03-26 10:12:09 -03:00
Anton Georgiev
ded205e196
Merge pull request #11722 from Tainan404/issue-11081
Add collection user persistent data
2021-03-26 08:56:41 -04:00
Anton Georgiev
f1fe98b403
Merge pull request #11734 from Tainan404/remove-props-from-message
Remove `sender.name` and `color` from message payload
2021-03-26 08:40:02 -04:00
Anton Georgiev
f197bde121
Merge pull request #11747 from ramonlsouza/annotations-delay
Retry sending annotations if user information is not available
2021-03-25 10:15:22 -04:00
Ramon Souza
84f5ef9133 check+retry sending annotations if userid is not available 2021-03-25 09:47:57 -03:00
Tainan Felipe
b5e52012ec Remove sender.name and color from message payload 2021-03-24 16:57:09 -03:00
Ramon Souza
6a2496fcb3 Merge remote-tracking branch 'upstream/develop' into improve-poll-function 2021-03-24 14:22:43 -03:00
Pedro Beschorner Marin
0c4cf0135d Handle pad's events and Meteor's instances
Since Meteor was split in multiple process and events started to be
filtered by instances, all Etherpad's Redis events were being discarded.

Etherpad has a Redis' publisher plugin that is unaware of BigBlueButton's
existence. All the communication between them is kept simple with minimal
of internal data exchange. The concept of distincts subscribers at Meteor's
side broke part of this simplicity and, now, Etherpad has to know which
instance must receive it's messages. To provide such information I decided
to include Meteor's instance as part of the pad's id. Should look like:

 - [instanceId]padId for the shared notes
 - [instanceId]padId_cc_(locale) for the closed captions

With those changes the pad id generation made at the recording scripts had to
be re-done because there is no instance id available. Pad id is now recorded at
akka-apps and queried while archiving the shared notes.
2021-03-23 18:03:50 -03:00
Anton Georgiev
8f3140897d
Merge pull request #11709 from jfsiebel/invalidated-logged-out-user
Prevent logged out user to spam validateAuthToken
2021-03-23 13:52:45 -04:00
Maxim Khlobystov
5adb3429eb Make typed poll responses grouping case insensitive 2021-03-23 06:30:37 +00:00
Tainan Felipe
ba91dcb17c Implements user persistent data to user context and redo users status logic on chat item 2021-03-22 17:44:53 -03:00
Joao Siebel
4d759ad63c Prevent logged out user tp spam validateAuthToken 2021-03-22 09:37:17 -03:00
Tainan Felipe
e8f4d11446 Add collection user persistent data 2021-03-19 17:12:27 -03:00
Ramon Souza
70ab1f099a show poll question in chat 2021-03-18 13:13:57 -03:00
Anton Georgiev
5284a39323
Merge pull request #11671 from ramonlsouza/poll-chat-escape
Escaping user typed poll results
2021-03-17 16:53:19 -04:00
Ramon Souza
8a2ddd5b9f escape all <br/> 2021-03-17 11:44:09 -03:00
Ramon Souza
e450173bd0 escaping typed poll response before displaying results in chat 2021-03-17 08:26:12 -03:00
Pedro Beschorner Marin
d90ba5e286 Merge branch '2.3-per-user-wb' into develop 2021-03-16 20:28:39 -03:00
Pedro Beschorner Marin
381c5cb15c Isolated whiteboard access
Modified the previous implementation of the whiteboard individual access to remove
multiple Collections dependency on this feature. Multi-user whiteboard is now an
array instead of a boolean value and most of the access control can be synchronized
and handled by akka-apps.
2021-03-16 19:55:25 -03:00
Ramon Souza
ca345de246 add check after extractCredentials is used 2021-03-16 13:15:41 -03:00
Pedro Beschorner Marin
defc33a043 Removed callback from setGuestPolicy 2021-03-12 09:22:08 -03:00
Lucas Zawacki
07b51a6bf0 Correctly set guestPolicy to not overwrite userProps 2021-03-12 09:19:53 -03:00
Pedro Beschorner Marin
af64232e45 Change guest policy 2021-03-12 09:19:22 -03:00
Anton Georgiev
3fbb40875f
Merge pull request #11631 from prlanzarin/u23-planZETA
audio: make sdpSemantics configurable
2021-03-12 05:34:10 -05:00
Anton Georgiev
9f841bd64b
Merge pull request #11622 from prlanzarin/u23-ilgiardino
[screenshare] Rewrite SFU/Kurento screensharing bridge (+reconnections|audio sharing|QoL, was #11025)
2021-03-12 05:13:11 -05:00
prlanzarin
f20fb3eef2 audio: make sdpSemantics configurable
Plan B is going to be phased out of Chrome soon and we should be testing it with unified plan
2021-03-12 03:04:55 +00:00
prlanzarin
775cbf4124 screenshare: move end alert sound to a reliable place 2021-03-12 00:44:38 +00:00
prlanzarin
7eb91f9273 Merge branch 'u22-screenshare18102020' of https://github.com/prlanzarin/bigbluebutton-1 into u23-ilgiardino 2021-03-11 18:49:14 +00:00
Anton Georgiev
4f2f0d123d
Merge pull request #11596 from Tainan404/fix-chat-issues
re-implement chat sync and fix stucked loading indicator
2021-03-11 12:29:01 -05:00
Joao Siebel
c9650ba8f1 Inform akka that user intentionality logged out from meeting 2021-03-11 14:32:01 +00:00
Tainan Felipe
87ebdbd02a Merge remote-tracking branch 'upstream/develop' into fix-chat-issues 2021-03-11 10:07:16 -03:00
Anton Georgiev
bbec7efb57
Merge pull request #11593 from pedrobmarin/2.3-lobby-message
Add guest lobby messages
2021-03-10 11:35:35 -05:00
Pedro Beschorner Marin
17f47fa4ea
Removed callback from setGuestLobbyMessage 2021-03-10 09:09:15 -03:00
Tainan Felipe
927e2167bc Re-implements chat sync and clear 2021-03-09 17:52:20 -03:00
Pedro Beschorner Marin
0365018e92 Add guest lobby messages
Moderators are able to send a message to the meeting's guest lobby. This new
event reaches bbb-web and is sent to the guest user with her/his status response
while polling. All guest users that are waiting for acceptance will be able to
read this message.

enableGuestLobbyMessage is disabled by default.
2021-03-09 11:02:25 -03:00
Ramon Souza
826c420788 update meetingEndedBy with information coming from bbb core 2021-03-08 16:45:09 -03:00
Ramon Souza
c9ac737207 display name of the user who ended the meeting 2021-03-08 13:05:33 -03:00
Anton Georgiev
c9bbcebe59
Revert "Add reconnection and sync handler" 2021-03-05 03:53:36 -05:00
Mario Jr
209b06db2e Avoid setting an unknown input deviceId
Without 'exact' match, the browser fallbacks to the default inputDeviceId

This prevents the error (input device error)  when breakout is ended and we try
to skipCheck the microphone when user returns to main room (assuming the
user had the microphone active before joining breakout room).
2021-03-05 00:33:54 -03:00
Anton Georgiev
228bad03d5 Merge branch 'v2.2.x-release' of github.com:bigbluebutton/bigbluebutton into march4-merge 2021-03-04 21:25:47 +00:00
Tainan Felipe
21045abf16 Merge remote-tracking branch 'upstream/develop' into issue-11438 2021-03-04 11:29:01 -03:00
Anton Georgiev
eba2d0ab58
Merge pull request #11535 from pedrobmarin/etherpad-patch
Rework padIds and turn bbb-web pad aware
2021-03-02 14:48:34 -05:00
Tainan Felipe
71e0ca9d92 Add sync and reconnection handler 2021-03-02 11:35:26 -03:00
Anton Georgiev
879c54981e
Merge pull request #11447 from antobinary/external-video-sync-lucas-amguirado73
External video events propagated through akka-apps
2021-03-02 08:53:09 -05:00
Anton Georgiev
1268663030 wrap collection modifiers in try-catch blocks 2021-03-02 00:44:49 +00:00
Anton Georgiev
550bf6d282
Merge pull request #11525 from gustavotrott/develop
Adds lastAuthTokenValidatedOn to users
2021-03-01 13:56:16 -05:00
Mario Jr
de05622d19 Avoid setting an unknown input deviceId
Without 'exact' match, the browser fallbacks to the default inputDeviceId

This prevents the error (input device error)  when breakout is ended and we try
to skipCheck the microphone when user returns to main room (assuming the
user had the microphone active before joining breakout room). Related
to the feature c451666d52
2021-02-28 17:15:08 -03:00
Pedro Beschorner Marin
540ce10c24 Recording external video events 2021-02-26 00:59:40 +00:00
Lucas Fialho Zawacki
ddc7a974bf Register external video playback events to Redis 2021-02-25 21:58:43 +00:00
Anton Georgiev
aff272cbf3 Merge #7484 into #11447 ExternalVideo recording events 2021-02-25 19:54:22 +00:00
Gustavo Trott
63e00bd7ca Adds lastAuthTokenValidatedOn to users in Akka, send it in ValidateAuthTokenRespMsg pubSub msg, makes Meteor store it as authTokenValidatedTime 2021-02-25 16:52:20 -03:00
Anton Georgiev
0eac03394c remove duplicated logging of pengingAuth 2021-02-22 19:48:14 +00:00
Tainan Felipe
b298bf4384 WIP add timestamp greater than to publisher 2021-02-22 13:35:32 -03:00
Anton Georgiev
740a3a9db9 stop external video if presenter changed 2021-02-21 12:19:01 +00:00
Anton Georgiev
0b6496618c Merge branch 'develop' of github.com:amguirado73/bigbluebutton into external-video-sync-lucas 2021-02-21 11:04:39 +00:00
KDSBrowne
e2156157f5 remove comment 2021-02-21 06:12:38 +00:00
KDSBrowne
babaf1b578 Merge branch 'develop' of https://github.com/bigbluebutton/bigbluebutton into 2.3-per-user-wb 2021-02-21 00:04:36 +00:00
Ramon Souza
043fa4bac8 fix user-sent poll result messages 2021-02-19 10:57:11 -03:00
Anton Georgiev
55e8de4357 Merge branch 'v2.2.x-release' of github.com:bigbluebutton/bigbluebutton into feb18-merge 2021-02-18 20:33:19 +00:00
Anton Georgiev
e966d6c7b6
Merge pull request #11366 from MaximKhlobystov/updating-poll-ui
Updated poll UI: question field and typed responses
2021-02-18 10:32:33 -05:00
Anton Georgiev
49cdf9faef
Merge pull request #11413 from gustavotrott/develop
Include registeredOn date in pubSub user creation messages to replace loginTime creation in Meteor
2021-02-17 16:56:53 -05:00
Gustavo Trott
573bfc107b Remove changes not related to issue 2021-02-17 09:39:36 -03:00
Gustavo Trott
91f4eba678 Replace registeredOn params to Long (timestamp) instead of String (ISO_OFFSET_DATE_TIME) 2021-02-17 09:20:55 -03:00
Anton Georgiev
b2c4244276 Merge branch 'develop' of github.com:bigbluebutton/bigbluebutton into 2.3-alpha5-with-split-meteor-roles-10349 2021-02-16 19:55:10 +00:00
Gustavo Trott
12e363eb92 Removes loginTime creation from Meteor and use the registeredOn date created on Akka. Makes Akka send the registeredOn date throught PubSub messages: UserRegisteredRespMsg, GuestsWaitingForApprovalEvtMsg and ValidateAuthTokenRespMsg. 2021-02-16 14:46:30 -03:00
Anton Georgiev
1cedc56504 process only some of CreateMeeting logic in frontends to avoid meeting duplication 2021-02-16 15:12:25 +00:00
Anton Georgiev
f43560d535 Support for backend vs frontend nodejs instances bbb-html5 2021-02-16 03:19:31 +00:00
Anton Georgiev
1476deb268
Merge pull request #11173 from Tainan404/develop+pr10919+pr10838
Chat with adapter and context
2021-02-12 16:35:22 -05:00
Mario Jr
b7216dd100 Preserve mutestatus when disconnecting/reconnecting microphone
After audio reconnection, a muted user would have it's microphone unmuted by default, unless muteOnStart is set to true. This fix this problem.
Fixes #9016
2021-02-11 23:55:34 -03:00
Pedro Beschorner Marin
09b39a8d63 Add extra pad validation
Associate pads with meetings so session validation is restricted to the
meeting's valid session tokens.

Meteor will dispatch new redis events on shared notes and closed captions
pads creation. This event will go through apps and reach web to populate
a new meeting's pad collection that contains all valid pad id's for that
session. Nginx will use this collection to check if the user's session token
belongs to the pad's authorized users.

Besides these modifications, an extra change will be needed at notes.nginx.
Location /pad/p/ needs to change it's auth_request:

from /bigbluebutton/connection/checkAuthorization;
to /bigbluebutton/connection/validatePad;
2021-02-10 13:37:04 -03:00
Tainan Felipe
e05d8886c6 Handle clear chat and fix clear message 2021-02-10 10:14:30 -03:00
Anton Georgiev
adefc6a20c
Merge pull request #11341 from ramonlsouza/breakout-invitation-settings
Add property to settings.yml to enable/disable breakout invitations to moderators
2021-02-09 15:50:24 -05:00
Joao Siebel
0e79203119 Clear screenshare collection when meeting has ended while screensharing 2021-02-09 14:26:43 -03:00
Joao Siebel
7f4b2789f2 Clear screenshare collection when meeting has ended while screensharing 2021-02-09 13:44:49 -03:00
Pedro Beschorner Marin
c0a7f9cd92 Replace FNV32a pad's id generator with salted SHA1
When managing Etherpad's pads, Meteor makes API calls to initiate the closed captions
and shared notes modules. The pad id was being mapped to a shorter id than the meeting
id because of a Etherpad lenght limitation.

Changed to something less guessable.
2021-02-09 12:59:59 -03:00
Anton Georgiev
3d78045363 Clear meeting-time-remaining collection 2021-02-09 12:44:33 -03:00
Joao Siebel
811d6d3f98 Clear guestUsers, voiceCallStates and whiteboard-multi-user collections on meeting end 2021-02-09 12:44:10 -03:00
Anton Georgiev
6b3c97037f Clear meeting-time-remaining collection 2021-02-09 11:23:51 -03:00
Tainan Felipe
e99825f60a Merge remote-tracking branch 'upstream/develop' into develop+pr10919+pr10838 2021-02-09 10:40:39 -03:00
Joao Siebel
2eb8abcba9 Clear guestUsers, voiceCallStates and whiteboard-multi-user collections on meeting end 2021-02-09 09:30:09 -03:00
Anton Georgiev
e2e0b78d40 Merge branch 'develop' of github.com:bigbluebutton/bigbluebutton into split-meteor-roles-on-top-of-2.3-alpha6 2021-02-08 23:39:42 +00:00
Maxim Khlobystov
ff4260dc98 Merge branch 'develop' of https://github.com/bigbluebutton/bigbluebutton into updating-poll-ui 2021-02-08 21:41:43 +00:00
Tainan Felipe
3e921ee93b Remove filter for messages before login time 2021-02-08 17:35:16 -03:00
Ramon Souza
a3780209f3 Add property to settings.yml to enable/disable breakout invitations to moderators 2021-02-08 14:40:03 -03:00
Pedro Beschorner Marin
d7c0975b61 Fix mobile user-list identification
Added the missing extractCredential method and replaced the old callback strategy
with the new try-catch block.
2021-02-08 09:55:38 -03:00
Anton Georgiev
363c801338
Merge pull request #11215 from pedrobmarin/guest-draft
Disable authenticated guests
2021-02-05 16:13:46 -05:00
Anton Georgiev
8c0f0fdd52 Split Meteor roles backend-frontend revisit 2021-02-05 17:47:46 +00:00
Anton Georgiev
5a6f232989
Merge pull request #11285 from ramonlsouza/issue-10454
Changes on webcam skip preview behavior
2021-02-04 13:43:46 -05:00
KDSBrowne
0abdf00a25
Add new join param skip echo test on first join only (#11284)
* add param to force echo test when user joins audio after init

* fix UI stuck on connecting when userdata-bbb_auto_join_audio=false

* fix conditions for joinFullAudioImmediately and joinFullAudioEchoTest | remove old format

* remove extra param in getItem

* recover audioLocked | only set getEchoTest if doesnt exist
2021-02-04 13:42:31 -05:00
Ramon Souza
b1cb4435ee introduce userdata-bbb_skip_video_preview_on_first_join parameter 2021-02-04 15:05:48 -03:00
Tainan Felipe
9cf483d18f Change message getter 2021-02-03 17:49:58 -03:00
Mario Jr
b582b1ca78 Correctly return MediaStream object when calling audio-manager's inputStream
This was missed in recent audio/sip.js changes.
MediaStream is now returned from SIP.js
Related to #10733
2021-01-29 19:05:51 -03:00
Anton Georgiev
09e6ba8dfd Merge branch 'v2.2.x-release' of github.com:bigbluebutton/bigbluebutton into merge-Jan30 2021-01-29 20:58:05 +00:00
Joao Siebel
09f5931d65 Keep track of active connection id for users 2021-01-29 17:29:07 -03:00
Anton Georgiev
d122639042
Merge pull request #11239 from jfsiebel/sync-with-active-connections
Synchronize users with active connections
2021-01-29 12:28:07 -05:00
Joao Siebel
68b2752e0d Add flag to enable sync 2021-01-29 14:27:13 -03:00
Mario Jr
f2de2806eb Add setting for enabling/disabling microphone audio filters
As explained in #11143, disabling audio filters is desired in some scenarios.
This basically adds an option for user to disable default constraints.
When user doesn't change this value in Settings > Application, the default
value for each audio constraints is retrieved from settings.yml.
When user changes this value in Settings > Application, audio
filters (AGC, Noise Supression and Echo Cancellation) are all set to
true/false, according to the value selected in the Settings GUI.

To start it simple, we decided to not to add a different setting in the GUI for
each audio contraint. This may be added in the future, though (perhaps in a
dedicated Audio Settings tab)
This is related to #4873
2021-01-29 14:18:15 -03:00
Joao Siebel
8c7c21f936 Sync users in collection with server active connections 2021-01-26 16:22:32 -03:00
Mario Jr
b753ef5d8d Fix wrong path in settings for audio constraints
Using now 'application' instead of old 'audio' path
2021-01-26 14:12:18 -03:00
Anton Georgiev
6c27e815fc Only publish full users to client side, no dummy users 2021-01-26 16:56:28 +00:00
Mario Jr
7858ba94ba Avoid setting empty/undefined constraint
This removes the console warning about invalid constraint
2021-01-25 23:45:27 -03:00
Pedro Beschorner Marin
85ee3b283f Identify mobile users at user list 2021-01-23 21:57:55 -03:00
Pedro Beschorner Marin
0bbef12ac7 Authenticated guests feature controlled at bbb-web properties 2021-01-23 21:48:02 -03:00
Anton Georgiev
45c1ff6e40
Merge pull request #11175 from MaximKhlobystov/select-random-user
Presenter selecting a random viewer
2021-01-22 15:31:00 -05:00
Mario Jr
97c76900cb Add setting for enabling/disabling microphone audio filters
As explained in #11143, disabling audio filters is desired in some scenarios.
This basically adds an option for user to disable default constraints.
When user doesn't change this value in Settings > Application, the default
value for each audio constraints is retrieved from settings.yml.
When user changes this value in Settings > Application, audio
filters (AGC, Noise Supression and Echo Cancellation) are all set to
true/false, according to the value selected in the Settings GUI.

To start it simple, we decided to not to add a different setting in the GUI for
each audio contraint. This may be added in the future, though (perhaps in a
dedicated Audio Settings tab)
This is related to #4873
2021-01-22 16:30:42 -03:00
Joao Siebel
8f36ac3586 Add throttle to startUserTyping function 2021-01-21 13:05:41 -03:00
Joao Siebel
fa0fd8a054 Add configurable process interval for cursor and annotations 2021-01-20 11:36:40 -03:00
Ramon Souza
39b63368e2 Fixes #11116 2021-01-19 17:16:29 -03:00
Maxim Khlobystov
5238dac647 Remove callbacks from update and clear Mongo operations for randomly selecting a user 2021-01-19 01:53:13 +00:00
prlanzarin
0a36da1e46 screensharing: remake error locales, split them into error classes
There are new locale strings for screensharing errors with a new format (Code X. #What to do) to make it easier for the end user
2021-01-13 09:43:28 -03:00
prlanzarin
25f5139973 screenshare: clean up getDisplayMedia method bindings 2021-01-13 09:05:24 -03:00
prlanzarin
077369c442 screenshare: add a centralized error code/message helper 2021-01-13 09:05:18 -03:00
Mario Jr
92708da447 Allow audio constraints to be changed in bbb-html5's settings.yml
In some scenarios, there's no need for the browser to apply such audio filters. For example, when user's microphone already does audio filtering (echo cancellation, noise supression ...).
This commit doens't change the current behavior (filters still follow browser's default config): admins need to uncomment/set these values if disabling/enabling specific filters if desired.
This is related to #4873
2021-01-12 14:42:27 -03:00
Anton Georgiev
fc93b5a91c correctly add chat message without flattening 2020-12-17 22:02:38 +00:00
Anton Georgiev
c1ffced27d Merge branch 'v2.2.x-release' of github.com:bigbluebutton/bigbluebutton into develop 2020-12-17 21:14:29 +00:00
Anton Georgiev
99ff801d34 remove obsolete callback from user remove 2020-12-15 22:04:26 +00:00
Joao Siebel
3ad269c24c Check if metrics are enabled 2020-12-15 16:20:32 -03:00
prlanzarin
569ace358b screenshare: improve reconnection procedures and error logging in kurento/sfu bridge 2020-12-15 17:45:20 +00:00
Joao Siebel
c5b8f30f5d Add option to generate heapdump file and improve metrics 2020-12-15 13:10:39 -03:00
Anton Georgiev
0be8773e4c Loadbalance bbb-html5 in bbb-web based on CPU 2020-12-11 21:36:06 +00:00
Anton Georgiev
9a04087c12
Merge pull request #11006 from mariogasparoni/v2.2.x-release
Add keep alive message to audio's websocket
2020-12-11 10:41:33 -05:00
Joao Siebel
b07b200a2f Prevent calling function when parameters are undefined 2020-12-11 11:24:03 -03:00
Mario Jr
6113113af9 Add option to disable traceSip logs
Audio client logs already cover audio session progress the way we need.
This avoids keepAlive and other unnecessary messages to be logged in browser's console.
If setting is not present, default value is set to false.
2020-12-11 00:31:10 -03:00
Mario Jr
c65fa2b350 Add keep alive message to audio's websocket
This was added as an option (websocketKeepAliveInterval), which is the interval to send keep alive messages.
Setting websocketKeepAliveInterval to 0 disables the keep alive, producing the same old behavior.
This helps avoid websocket disconnection due to socket inactivity, preventing it to unnecessarily reconnect.
Also, sometimes reconnect fails and error 1005 is triggered.
Fixes problems reported in #10985.
Also reduces occurrences of error 1005.
2020-12-10 23:48:01 -03:00
Joao Siebel
ec2cb2dbde Chek for queueMetrics 2020-12-10 14:07:46 -03:00
Joao Siebel
bf5a45d303 Create Metrics class 2020-12-10 12:07:06 -03:00
prlanzarin
1383ab4def screenshare/html5: rewrite most of the client side code
Added new SFU broker for screen sharing

Removed kurento-extension entirely

Added inbound and outbound reconnection procedures

Improve UI responsiveness when sharing

Add reconnection UI states

Redo error handling

Refactor actions-bar screen share components. Make it smarter with less prop drilling and less re-rendering. Also more readable. Still work to do in that I think

Add a connection retry procedure for screen presenters when they are sharing; try a configurable amount of times when failure is triggered, with configurable min and max reconn timeouts and timeout increase factor

Make local preview attachment smarter

ADD PARTIAL SUPPORT FOR AUDIO SHARING VIA SCREEN SHARING WITH GET DISPLAY MEDIA, RECORDING STILL NOT SUPPORTED!!!
2020-12-09 22:00:54 +00:00
Anton Georgiev
675d440fa6
Merge pull request #10996 from jfsiebel/fix-sync-chat-msgs
Prevent exception when there is no message to sync
2020-12-09 11:30:09 -05:00
Anton Georgiev
a97bb541af
Merge pull request #10945 from prlanzarin/u22-lov18102020
[listenonly] Rewrite SFU/Kurento listen only bridge
2020-12-09 11:29:07 -05:00
Joao Siebel
dd8c3fafc1 Prevent exception when there is no message to sync 2020-12-09 10:33:01 -03:00
prlanzarin
f24460192c screeshare+audio: reorganize some audio checks, pass the flag to SFU 2020-12-08 20:30:30 +00:00
germanocaumo
83fe68db08 Play screenshare audio when present 2020-12-08 20:30:22 +00:00
Anton Georgiev
a5ea33b2b8
Merge pull request #10934 from jfsiebel/throttle-bulk-add-msg
Add bulk chat message insert and optimize chat message insert
2020-12-01 15:28:13 -05:00
Anton Georgiev
244a239810 Merge branch 'v2.2.x-release' of github.com:bigbluebutton/bigbluebutton into 2020-12-01-merge 2020-12-01 20:02:50 +00:00
prlanzarin
1bef5f37a6 [sip.js] Annotate every audio-manager callback call with a bridge name identifier
Useful when parsing logs to split errors by bridge type
2020-12-01 18:23:14 +00:00
prlanzarin
338e8f8291 [listenonly] Rewrite listen only SFU/Kurento bridge
Fixed listen only reconnection handling

Added proper error handling; now all errors have proper mapped codes which are funneled through to audio-manager logger and should be easier to gauge types of errors

Fixed botched reconnection error rejection, audio modal shouldnt be stuck anymore when it fails

Remove every tie that listen only bridge had to kurento-extension
2020-12-01 18:19:31 +00:00
Anton Georgiev
e62710298d
Fix typo 2020-11-30 15:59:12 -05:00
Joao Siebel
c0f42a3c07 Add missing semicolon 2020-11-30 17:11:57 -03:00
Joao Siebel
77d493792f Prevent a case where voiceUser collection was being clean for entire server 2020-11-30 17:01:41 -03:00
Joao Siebel
c6adb2988d Merge remote-tracking branch 'upstream/v2.2.x-release' into throttle-bulk-add-msg 2020-11-30 14:10:30 -03:00
Anton Georgiev
f34826718d include instanceId in resources url 2020-11-30 16:09:35 +00:00
Joao Siebel
b07786b9b8 WIP add bulk insert and throttle for chat messages 2020-11-30 11:27:26 -03:00
Tiago D J
1e4c634dd9
Merge branch 'v2.2.x-release' into remove-callbacks 2020-11-27 13:43:36 -03:00
Anton Georgiev
08a0a38f30 do not log client issues to Winston, only via nginx 2020-11-26 15:39:04 -05:00
Anton Georgiev
698199454c Reduce cursor logging, fix ExternalVideo object logging 2020-11-26 15:31:00 -05:00
Joao Siebel
ccda3b3a34 WIP remove callback from update methods 2020-11-26 13:23:57 -03:00
Joao Siebel
e4a5e88986 Fix selectors 2020-11-26 10:36:44 -03:00
Mario Jr
214cd12c59 Fix typo on dtmf log 2020-11-26 00:01:58 -03:00
Mario Jr
370e3cb39d Use INFO message as default for sending dtmf on call transfer
Instead of sending using rfc4733 standard, we use INFO message for all transfers
INFO message was used in older SIP.js version. Although this is not a standard for sending DTMF tones, this has more reliability (once it sent over TCP)
This might reduce occurrences of 1008
2020-11-25 18:33:45 -03:00
Joao Siebel
11f1a1ac47 Merge remote-tracking branch 'upstream/v2.2.x-release' into remove-callbacks 2020-11-25 10:54:18 -03:00
Joao Siebel
a244fc1acf WIP remove callback from remove operations 2020-11-24 17:44:13 -03:00
Anton Georgiev
3faabd1821 Merge 2.2.29 and 2.2.30 into 2.3.x 2020-11-24 15:13:09 +00:00
Anton Georgiev
21644a1a43 Remove string interpolation for server debug and verbose logs 2020-11-23 14:35:59 -05:00
Mario Jr
af48c8977d Reduce delay for the first reconnection attempt of audio's websocket
This is the same behavior we used to have on older sip.js version code
By doing this we reduce errors when user try to perform join/hangup during an websocket reconnection
2020-11-23 12:40:38 -03:00
Joao Siebel
bcc1d6c880 WIP remove callback from mongo operations 2020-11-23 10:13:46 -03:00
Tainan Felipe
af7479df28 add missing file 2020-11-20 17:32:21 -03:00
Tainan Felipe
091c5f3932 Port Handle chat messages in sync way for 2.3 2020-11-20 16:26:34 -03:00
Mario Jr
2b89dd7db2 Do not trigger reconnect when ICE connection terminates before hanging up process is finished
This could leave users to have your audio reconnected in the main room, while joining a breakout room
Some information can be found in #10528
2020-11-20 00:25:46 -03:00
Mario Jr
9a2fcd27e0 Revert "Prevent Error 1006 when user has two or more occurrences of ':' (colon) in your name"
This reverts commit 0a601359bb.
2020-11-20 00:23:43 -03:00