Commit Graph

9412 Commits

Author SHA1 Message Date
prlanzarin
3bddbb96cf fix(video): signaling and reconnection edge cases
There are still a bunch of edge cases and issues with reconnection
scenarios for video:
  - Signaling socket refuses to reconnect once maxRetries expire
  - Race conditions on local stream attachment: local camera wouldn't be
    correctly rendered _if_ the attached stream existed _without_ video
    tracks yet
  - Video tracks leak on local streams when replacing them (virtual bgs)
  - Completely ignoring Meteor state when trying to reconnect cameras
  - Streams aren't proactively stopped when the signaling socket dies
  - Outbound request queues aren't isolated by stream nor are they
    flushed when a newer peer with the same ID is created
  - Server originated negotiation errors won't trigger a local peer
    cleanup - thus leaving dangling peers that take way too long to
    reconnect

This commit fixes or improves all of the aforementioned issues, +:
  - Remove unused arguments in the peer (client->SFU) 'start' request
  - Prevent crashes when trying to render video-list-items without user
    data (which might happen on re-connections)
2023-03-08 15:49:35 -03:00
prlanzarin
afa2908ded fix(screenshare): better reconnection timers and UI for abrupt failures
Reconnection timers are far too long for abrupt failures because we
are waiting the original timeouts to elapse (30-60s) before trying it
again - even if a connection worked N-sessions back in that session's
history. The ideal thing to have is another intermediate, smaller and
fixed reconnection timer for sessions that had a working screen share
at least once.
The UI is also not being updated to the reconnecting state on negotiation
failures.

* Add an intermediate reconnection timer for abrupt failures set to 8s.
  This should improve reconnection times.
* Lower default connection timers values (base 20s down from 30s, max
  25s down from 60s)
* Set screen share UI to reconnecting on abrupt failures as well - we
  were only tracking ICE states prior to this, not negotiation errors
2023-03-08 15:48:30 -03:00
prlanzarin
bd0dfa17cc fix(screenshare): default to not flowing is peer was lost
The media monitor responsible for triggering the reconnecting view in
the screen sharing component was maintaing the previous state (eg
flowing) in cases where the peer just failed before media stopped
flowing. That triggered an error in the bps calculations that caused the
previous state to be preserved - eg stuck in flowing while it should be
not_flowing.

These changes make it so that if there's not peer to fetch stats from,
them the bps calculations will correctly return 0 (which translates to
not_flowing).
2023-03-08 15:48:22 -03:00
prlanzarin
5ee0ff9af2 fix(screenshare): add proper signaling heartbeat, +
Same rationale as in video-provider's commit
(34fa37ae4f092af4a5aef0cf01d96c033d97473c).

This commit does the following:
  - Implement actual heartbeat checks to trigger reconnects when
    necessary
  - Properly catch and log WebSocket.send errors
2023-03-08 15:46:55 -03:00
prlanzarin
a83f3b675e fix(video): add proper signaling WS heartbeat, +
video-provider's current ping-pong is as good as nothing in 2.5+. We
were counting on Meteor's (and consequently the component's mount state)
before 2.5 to act as a "heartbeat" as far as the socket is concerned.
The ping-pong served only to sustain traffic for finnicky,
traffic-dependant firewall.
Since 2.5, the component's state is _kind of_ detached from Meteor's -
which means it won't unmount when Meteor disconnects. That causes the
video-provider websocket to lose its borrowed heartbeat and leads to a
bunch of reconnectiong inconsistencies, the worst of them being a stuck,
useless signaling socket that will cause cameras not to work until a
client refresh.

This commit does the following:
  - Implements actual heartbeat checks to trigger signaling socket
    reconnects when necessary, all within the scope of video-provider
  - Remove borked, eons old 'offline'/'online' event handlers: they were
    causing unnecessary camera drops AND causing video-provider to
    generate a stuck signaling socket
  - Properly catch WebSockets.send errors
2023-03-08 15:46:51 -03:00
prlanzarin
e9f0a7347c fix(video): properly render reconnecting view
The stream state change handler in video-list-item is using a component
state reference inside a DOM event callback - which means it is always
presuming `isStreamHealthy` is false (initial value). That prevents the
health state from actually transitioning when necessary (and
consequently rendering the reconnecting view in video-list item).

This commit removes the state-based transition check in the state change
handler and unifies the reconnecting view to use the username
placeholde (replacing the loading spinners).
2023-03-08 15:46:44 -03:00
Ramón Souza
f2a3031b04
Merge pull request #16949 from KDSBrowne/bbb-chat-list-a11y
Add List and List Item Roles to Chat Elements
2023-03-08 13:14:56 -03:00
Ramón Souza
8ee8a5508f fix whiteboard crash when adding a new presentation 2023-03-08 10:01:18 -03:00
Anton Georgiev
8e640a7918 fix: avoid wb crash when switching presentation 2023-03-07 16:11:40 -05:00
KDSBrowne
68caf7549c add list and listitem roles to chat 2023-03-07 18:18:15 +00:00
Ramón Souza
3c376e112d
Merge pull request #16936 from ramonlsouza/not-logged-redirect
fix: return logoutUrl on logout even if the user is not logged in
2023-03-07 13:03:20 -03:00
Ramón Souza
4aeb406aaf
Merge pull request #16754 from Scroody/i-16640
fix: Banned user sees message upon return attempt (before - only blue screen)
2023-03-07 13:03:00 -03:00
Anton Georgiev
5fced70d2e
Merge pull request #16932 from hiroshisuga/patch-63
fix: Fix an inline typo
2023-03-07 09:13:18 -05:00
Ramón Souza
5846312f93 return logoutUrl even if the user is not logged in 2023-03-07 09:38:57 -03:00
Ramón Souza
e69f3af339
Merge pull request #16922 from lfzawacki/v2.6.x-release-moderator-layout
feature(layout): Moderators can now setPushLayout
2023-03-07 08:30:05 -03:00
hiroshisuga
20325de995
typo 2023-03-07 13:29:00 +09:00
Lucas Fialho Zawacki
8f5460312a fix(layout): Propagate correct presenter layout when push is off and moderator sets it to true 2023-03-06 18:08:25 -03:00
Ramón Souza
529a6e470c
Merge pull request #16864 from Scroody/I-16437
fix: Switching from breakout room to parent meeting no longer keeps the webcam activated.
2023-03-06 10:25:27 -03:00
imdt
666dc838c8 Not required pieces of code removed. 2023-03-06 10:13:46 -03:00
Ramón Souza
0e28b96aa2
Merge pull request #16906 from Tainan404/fix-restoreOnUpdate-feature
Fix: restoreOnUpdate feature does not work when switching presentation
2023-03-06 09:09:05 -03:00
KDSBrowne
95fd2e3d3e fix moving a group of objects | add select cursor 2023-03-05 23:20:56 +00:00
Lucas Fialho Zawacki
e8a4b654cc feature(layout): Moderators can now setPushLayout 2023-03-03 18:59:47 -03:00
Tainan Felipe
fdc6a64085 Fix restoreOnUpdate feature 2023-03-03 14:58:41 -03:00
Ramón Souza
50000ad806
Merge pull request #16851 from KDSBrowne/bbb-pan-fixes
fix: Prevent Lines Being Drawn While Panning | Style Updates
2023-03-02 17:05:19 -03:00
Ramón Souza
cae4453a1a
Merge pull request #16799 from zhem0004/restorePres
fix: Restore presentation on layout push
2023-03-02 15:52:45 -03:00
Anton Georgiev
932f5ecf71
Merge pull request #16842 from ramonlsouza/issue-16818
fix: Deleting the target object for an arrow crashes the presentation area
2023-03-02 13:25:38 -05:00
Ramón Souza
ad9a2e9a1e
Merge pull request #16860 from hiroshisuga/patch-62
fix: Disable the hidden help icon of tldraw
2023-03-02 15:10:38 -03:00
hiroshisuga
b181a31b38
add button 2023-03-02 09:39:47 +09:00
imdt
23c6217e1c Error now identyfied and treated. 2023-03-01 15:51:33 -03:00
imdt
2a6a5ae555 Fixed: Switching from breakout room to parent meeting no longer keeps webcam activated. 2023-03-01 14:38:55 -03:00
hiroshisuga
e62f5f71ed
reactivate the more icon 2023-03-02 00:49:05 +09:00
hiroshisuga
dec7011239
inactive the hidden help icon 2023-03-02 00:09:33 +09:00
Maxim Khlobystov
39b50fb00c Merge branch 'v2.6.x-release' of https://github.com/bigbluebutton/bigbluebutton into test-layout-management 2023-03-01 07:11:10 +00:00
KDSBrowne
28a528e085 prevent lines being drawn while panning 2023-03-01 03:32:24 +00:00
KDSBrowne
3c8c9de050 update disable pan label | fix pan deselect on zoom | add pan grabbing cursor 2023-03-01 02:03:33 +00:00
Anton Georgiev
ce73288ccf
Merge pull request #16778 from gabriellpr/test-disabled-features
test: disabled features
2023-02-28 15:11:48 -05:00
Ramón Souza
3bb6aa5a2c
Merge pull request #16841 from Scroody/I-16816
feat: Raise hand button now shows current emoji and can also clear emoji.
2023-02-28 15:50:17 -03:00
Anton Georgiev
ac91d48a44
Merge pull request #16822 from ramonlsouza/issue-16725
fix: First slide appears on slide transition later on
2023-02-28 13:47:26 -05:00
Ramón Souza
8b9164adbe
Merge pull request #16845 from Scroody/I-16843
Upload presentation label and icon changed.
2023-02-28 14:33:55 -03:00
imdt
c5d0e02b2b Upload presentation label and icon changed. 2023-02-28 13:24:08 -03:00
Ramón Souza
f57c6a0ae9 fix removing arrow target object 2023-02-28 11:36:50 -03:00
imdt
f7ff7e70cb Raise hand button now shows current emoji and can also clear emoji. 2023-02-28 10:57:31 -03:00
Ramón Souza
aa517df377
Merge pull request #16801 from KDSBrowne/bbb-16662
refactor: Move Pan Tool Next To The Pointer Tool
2023-02-27 16:28:21 -03:00
Gustavo Trott
895f3639b5
Merge pull request #16769 from GuiLeme/issue-16734 2023-02-27 15:19:38 -03:00
Ramón Souza
451d539489
Merge pull request #16819 from Scroody/I-16524
Arrow indicating user list toggle removed on mobile.
2023-02-27 13:26:27 -03:00
Ramón Souza
c685283f21
Update bigbluebutton-html5/imports/ui/components/nav-bar/component.jsx 2023-02-27 13:24:20 -03:00
Ramón Souza
82c559cba0 fix first slide appearing when switching slides 2023-02-27 13:05:29 -03:00
GuiLeme
0dc4f832af [issue-16734] - fixed bugs related to sharedNotesPinned - non-presenter users and smartLayout hidden presentation area 2023-02-27 12:18:23 -03:00
André Castro
dc51d9faa1
Removed no needed pieces of code. 2023-02-27 10:54:27 -03:00
imdt
3e9d8be3f1 Add primary color to button when user list is expanded on mobile. 2023-02-27 10:52:10 -03:00