Commit Graph

74 Commits

Author SHA1 Message Date
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
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
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
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
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
prlanzarin
387c453076 refactor(screnshare): let the server generate subscriber offers 2021-08-12 13:45:04 +00: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
e20fe6d4ad fix(screenshare): avoid leaving a dangling HTMLMediaElement in paused state 2021-07-23 02:27:02 +00: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
Ramon Souza
efc15d89ae remove unused code 2021-06-23 16:52:52 -03:00
Pedro Beschorner Marin
4a5b92445a refactor(external videos): system stop
Move all external video's system stop control events to akka-apps:
- on presenter change
- on presenter leave
- on screenshare start
2021-06-02 15:06:17 -03:00
Ramon Souza
5d6c9cbb18 removing unused imports/exports 2021-05-21 09:50:31 -03:00
prlanzarin
84cbda75a3 feat(screenshare): add screen bitrate config in bbb-html5 2021-04-24 19:12:59 +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
740a3a9db9 stop external video if presenter changed 2021-02-21 12:19:01 +00:00
Joao Siebel
7f4b2789f2 Clear screenshare collection when meeting has ended while screensharing 2021-02-09 13:44:49 -03: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
prlanzarin
569ace358b screenshare: improve reconnection procedures and error logging in kurento/sfu bridge 2020-12-15 17:45:20 +00: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
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
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
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
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
Joao Siebel
b2adffa4c2 Merge remote-tracking branch 'upstream/develop' into connection-manager 2020-09-18 16:30:20 -03:00
Anton Georgiev
377dc27a8d Merge branch 'v2.2.x-release' of github.com:bigbluebutton/bigbluebutton into 09-16-merge 2020-09-17 14:37:28 +00:00
prlanzarin
b9e1bd3e31 screenshare: cleanup on old playElement code 2020-09-10 15:01:10 +00:00
prlanzarin
37d21ddd97 screenshare: adjust stun fetch failure log 2020-09-10 14:11:42 +00:00
prlanzarin
7b7c10db64 screenshare: make presenter preview local
Also some much needed code movearound in Kurento`s bridge
2020-09-10 13:48:05 +00:00
Joao Siebel
4be9bc4c94 Adjust publishers to use auth-token-validation collection 2020-09-01 13:31:11 -03:00
Anton Georgiev
c9e996de21 Merge branch 'v2.2.x-release' of github.com:bigbluebutton/bigbluebutton into merge-2.2-into-develop 2020-05-25 17:32:24 +00:00
Anton Georgiev
ead986e3e2
Merge pull request #9542 from prlanzarin/upstream-2.2-safari-ss
Screenshare: add support on Safari 13+ and make constraints configurable
2020-05-21 14:38:32 -04:00
prlanzarin
2cba85e866 html5: refactor STUN/TURN fetch, add fallback STUN, fix deadlock in audio join
Refactored STUN/TURN fetch to be done only once, when successful, per session and cache it in mem to avoid too many reqs. Current way is a bit dumb, this should increase reliability a bit more. The caching is configurable so folks who want to use very short lived TURN credentials can disable it

Add a fallback STUN config option to be used when the default STUN/TURN fetch fails

Clean the safari/no candidate generation pre flight check from 3rd party STUNs

Fix deadlock in audio join when STUN/TURN fetch failed
2020-05-21 04:35:17 +00:00
Paulo Lanzarin
a6a5aaf3d9 screenshare: typo in applyConstraints 2020-05-14 17:44:53 +00:00
prlanzarin
e875408f8d screenshare: add support on Safari 12.1+ and make constraints configurable
This adds support for screensharing on Safari 12.1+ or whichever has getDisplayMedia enabled

To be conservative and backwards compatible, I`ve maintained the current gUM-based code available as a fallback for those still using older versions of FF or Chrome

Made screenshare constraints configurable. The constraints config will be piped directly to gDM, so it`s just a regular gDM constraint dictionary
2020-05-14 16:54:54 +00:00
Anton Georgiev
a8f4827af8 utilize Meteor connection id instead of trusting client side meetingId, userId 2020-02-06 15:48:16 -05:00
Anton Georgiev
2b4506fe2d send redis msg when stopping external video due to screenshare 2019-12-19 16:13:21 -05:00
Anton Georgiev
4e1d55efd2 Prevent parallel screenshare and external-video 2019-12-18 16:40:04 -05:00
Pedro Beschorner Marin
cb53b1b5b7 Getting user name from Auth object 2019-11-28 19:00:31 +00:00
prlanzarin
19bf430760 Add userId and userName to the SFU start calls where they were missing 2019-11-28 18:46:23 +00:00
prlanzarin
7779a5e3a9 Display error toasts for screensharing, improve logs a bit more 2019-09-10 16:20:40 +00:00
prlanzarin
73698b1064 Fix playAndRetry import 2019-09-06 20:54:48 +00:00