Commit Graph

161 Commits

Author SHA1 Message Date
Mario Jr
287c4eb682 feat(audio): use kurento's trickle-ice to improve mic negotiation
Here's what we do when user activates mic:
1 - When we do something similar to listenonly's joining process
until we find a valid candidate-pair. The information about this
local candidate is store.
2 - We then start a new userAgent, and as soon as browser finds
a candidate with the same local ip address, we leave only this
candidate in the SDP and send this to FreeSWITCH. SDP should
contain only a single candidate.
3 - The rest of signaling process is basically the same.
2021-07-01 16:26:44 -03:00
Pedro Beschorner Marin
068b82b1fa refactor(connection status): remove legacy monitor
Remove parts of a previous connection monitor.

To add some context (as far as my memory goes) to the multiple connection
monitor features the product has, `stats` (currently named `connection status`)
was introduced at the Flash client back in ~2016. @fcecagno and I did it
as a BigBlueButton's Summit activity. Our work was squashed into a single
commit in 92554f8b3e :).

I'm not sure about the whole story behind `network information` (the late
connection monitor added to the HTML5 client) but I assume it should work
as a collector for a bunch of different connectivity monitors. I remember
when it was introduced but I don't know why it wasn't adopted. My best guess
would be because of some performance issues the `user list` had back then.

To follow on why `connection status` replaced `network information` at the
HTML5 client, when I did the `multiple webcams` feature I had to refactor
a big chunk of the `video provider` (#8374). Something that wasn't really
helping there was the adaptation of `stats` that was made to show local
feedback for each webcam connection. Although this feature wasn't being
used anymore, `network information` did rely on that to build up data. With
this monitor gone I assumed it was my responsibility to provide an alternative
so I promoted Mconf's port of the Flash `stats` monitor to BigBlueButton's
HTML5 client (#8579).

Well, that's my perspective on how things went for those features. If
anyone would like to correct me on something or add something else on
that history I would appreciate to know.
2021-06-13 14:02:46 -03:00
Pedro Beschorner Marin
2e2a978018 refactor(connection status): remove superfluous trailing argument 2021-05-09 14:26:14 -03:00
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
Ramon Souza
05a0d5afbf move browser info to helper + remove unused libs 2021-04-01 08:14:24 -03:00
Ramon Souza
9218262e0a all device info moved to helper 2021-03-31 14:13:36 -03: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
Maxim Khlobystov
5adb3429eb Make typed poll responses grouping case insensitive 2021-03-23 06:30:37 +00:00
prlanzarin
ab17b10c38 listenonly,video-provider,screenshare: remove ICE gathering pre-flight check 2021-03-12 02:51:45 +00:00
Anton Georgiev
3faabd1821 Merge 2.2.29 and 2.2.30 into 2.3.x 2020-11-24 15:13:09 +00:00
prlanzarin
8dda22f8a7 [html5/webrtc] Fix tryGenerateIceCandidates rejections, put it behind a flag
Fixed two occurrences where the tryGenerateIceCandidates workaround rejected without an error, which borked the callers error handling

Also put it behind a config flag. This workaround used to be important when Kurento didnt infer prflx candidates properly, but that`s no longer the case. With the flag, we can disable the workaround to see if there`s any visible regression and hopefully remove it down the road
2020-11-11 13:43:36 +00:00
Anton Georgiev
0c7ead1916 Merge branch 'v2.2.x-release' of github.com:bigbluebutton/bigbluebutton into oct16-merge 2020-10-21 14:48:02 +00:00
Anton Georgiev
41cab38e87 Added allowDefaultLogoutUrl config to optionally ignore non-custom logoutUrl 2020-10-08 05:15:05 -04:00
Mario Jr
619ffa0ec1 Port SIP.js to 0.17.1 release
This considerably changes the way we process audio signaling and start audio elements in user's browser.
We now avoid using AudioContext element for both microphone and listenonly calls, once it is unstable for some iOS devices (cracky audio, user stops hearing audio after a while).
Increased default value for listenOnlyCallTimeout: this avoids activating FreeSWITCH's fallback when ICE negotiation takes longer than 15sec (tested on DO).
Increased listenonly logs.
This fixes #8133 #10388
2020-09-25 20:26:22 -03:00
prlanzarin
dac3259c48 Merge remote-tracking branch 'pedrobmarin/bbb-multiple-webcams' into upstream-2.2-vpeg-base 2020-08-05 14:20:58 +00:00
Anton Georgiev
ac6fd2824c
Merge branch 'develop' into 2.3-audio-stats 2020-05-26 12:36:15 -04: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
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
Pedro Beschorner Marin
9cb7c2bb2f Avoid stopping the stats monitor before connection closed 2020-05-14 10:40:31 -03:00
Pedro Beschorner Marin
ffb07415cb Fixed stats notification timeout 2020-05-14 10:36:19 -03:00
Anton Georgiev
3754d0ab6f Merge branch 'v2.2.x-release' of github.com:bigbluebutton/bigbluebutton into merge-2.2-into-master-feb-28-2020 2020-02-28 17:47:06 -05:00
Anton Georgiev
f1fc72bc01 explicitly import lodash where it is used 2020-02-26 14:48:40 -05:00
Anton Georgiev
4b0452d1fd Merge branch 'v2.2.x-release' of github.com:bigbluebutton/bigbluebutton into feb14-merge-2.2-into-master 2020-02-14 21:43:35 +00:00
Pedro Beschorner Marin
2ac3c2e804 Check if peer connection isn't closed 2020-02-14 18:17:18 -03:00
Pedro Beschorner Marin
11cfea2359 Logging audio stats 2020-01-29 14:54:35 -03:00
Pedro Beschorner Marin
1103663d86 Monitoring audio WebRTC stats 2020-01-28 10:07:21 -03:00
Pedro Beschorner Marin
bc463cc8f2 Fixed jitter gathering in stats 2019-12-20 17:21:00 -03:00
Pedro Beschorner Marin
0bb4d50522
Included missing constant declaration 2019-12-19 11:36:50 -03:00
Chad Pilkey
f5cb7a64fb log the selected sip.js candidate 2019-12-18 16:11:24 -08:00
Pedro Beschorner Marin
8f8463cf91 Log when stats monitor stop 2019-12-10 09:07:07 -03:00
Pedro Beschorner Marin
5c71e2d0bb Included new getStats monitor for audio and video 2019-12-10 09:07:06 -03:00
Pedro Beschorner Marin
315fa755f0 Removed unused video visibility monitor 2019-12-10 09:02:17 -03:00
Chad Pilkey
ae0ad7ff3b fix a typo in the SDP candidate parsing 2019-12-09 13:16:29 -08:00
Chad Pilkey
1b94039a4f move sipjs sdp logging properties under extraInfo 2019-12-06 08:40:58 -08:00
Chad Pilkey
50365aa4da extra log messages for sipjs candidates 2019-12-05 16:33:38 -08:00
Anton Georgiev
52d52cd0d1
Merge pull request #8327 from prlanzarin/2.2-mdns-only
Account for mDNS candidates on gUM fallback for recvonly peers
2019-11-14 16:09:40 -05:00
prlanzarin
215f79f383 Account for mDNS candidates on gUM fallback for recvonly peers
Also added some client logging for those cases

Moved video-provider gUM fallback detection to be used only on recvonly streams
2019-11-14 16:35:56 +00:00
felcaetano
de22a644d6 Added event listener to change slides with Page Up and Page Down
This used to be a feature in the Flash client and this is necessary for presentation remotes to work with the HTML client.
2019-09-18 14:12:05 -03:00
prlanzarin
c8a88148e1 Improve log message for screenshare/listen only/autoplay and harden media play with retries 2019-09-06 18:58:22 +00:00
Anton Georgiev
e22d61b2e1 removed .log() function in favour of logger 2019-08-01 12:47:45 -04:00
Chad Pilkey
e69931a0af Merge remote-tracking branch 'upstream/master' into fix-pan-lag 2019-07-25 16:29:52 -07:00
Chad Pilkey
c344a17adb pan/zoom and cursor refactor for better performance 2019-07-25 15:55:25 -07:00
KDSBrowne
392aac9857 Merge branch 'master' of https://github.com/bigbluebutton/bigbluebutton into issue-7137 2019-07-04 18:37:40 +00:00
KDSBrowne
dbf8938d24 fix chrome on ios blue screen after selecting share webcam / lint issues 2019-06-27 16:02:42 +00:00
Chad Pilkey
70fe159c31 ensure that media.candidates exists before stripping mDNS candidates 2019-06-20 12:13:55 -07:00
Chad Pilkey
1e391695c1 strip mDNS candidates from sip.js SDPs 2019-06-03 18:54:30 +00:00
prlanzarin
9a563a006c Fixed typo in toPlanB conversion
Also tidy some stray lines
2019-05-21 17:38:22 +00:00
prlanzarin
ca9a0fad4a Added unified-plan/plan-b translation for Safari endpoints 2019-05-21 16:48:01 +00:00
KDSBrowne
4920265dc0 Merge branch 'master' of https://github.com/bigbluebutton/bigbluebutton into 2.2-add-create-br-to-manage-user-menu 2019-01-21 17:02:18 +00:00
gustavotrott
c21bb693b4 Store in session if can generate ice candidates, change timeout to 5secs, display error msgs 2019-01-14 22:45:32 -02:00
Gustavo Trott
1767d87f60 Copy ice servers from kurento-utils.js and Close peerConnection 2019-01-14 10:03:19 -02:00
Gustavo Trott
87b4306e7f Add tryGenerateIceCandidates to verify and ask media permission if necessary 2019-01-10 21:22:14 -02:00
Gustavo Trott
219cad3234 Verify if Safari can generate iceCandidates else askDevicesPermission 2019-01-10 19:25:23 -02:00
João Francisco Siebel
6a84618982 increase zoom increment factor to 25. close #6301 2018-12-05 09:00:12 -02:00
Tainan Felipe
c660e656f7 Fix logout handler isn't working on error screen 2018-11-20 18:13:34 -02:00
João Francisco Siebel
016efcc0eb Remove ACL from client side. close #6138 2018-11-05 17:30:37 -02:00
João Francisco Siebel
252bacb917 Add multiUserPenOnly parameter in yml 2018-10-18 14:03:11 -03:00
Tainan Felipe
210dbbbeaf Merge remote-tracking branch 'upstream/master' into zoom-implementation 2018-09-17 15:20:20 -03:00
Tainan Felipe
05a5e911c9 remove class and fix NaN bug 2018-08-28 14:14:01 -03:00
Tainan Felipe
257b4cc8ac port flash code to js and implement initial work in zoom 2018-08-28 14:14:01 -03:00
KDSBrowne
78c81880db Merge branch 'v2.0.x-release' of https://github.com/bigbluebutton/bigbluebutton into 5782-move-set-status 2018-08-01 15:43:31 +00:00
KDSBrowne
aae5cfbd92 fix reported bugs / impliment suggested changes 2018-07-11 20:08:22 +00:00
prlanzarin
d2bdb67ed3 Propagating configs to WebRTC screenshare script and added support for STUN/TURN config to SFU components 2018-07-09 21:29:59 +00:00
KDSBrowne
7b739a9163 swap browser / os checks done by deviceInfo in favor of detect-browser 2018-06-11 23:12:43 +00:00
Anton Georgiev
0aa7d5274e
Merge pull request #5595 from lfzawacki/better-video-stability
[html5] Better video pausing, connection, re-connecting and stability
2018-05-29 16:40:52 -04:00
Lucas Fialho Zawacki
665773ece0 Small naming fixes in visibility events and attachStream function 2018-05-29 18:54:01 +00:00
Lucas Fialho Zawacki
32c587dc0d Merge branch 'v2.0.x-release' of https://github.com/bigbluebutton/bigbluebutton into better-video-stability 2018-05-28 18:43:29 +00:00
Bobak Oftadeh
fe1dbb9fdf Warning modal now displays for iOS Chrome users 2018-05-25 09:24:01 -07:00
Lucas Fialho Zawacki
5433049ab7 Better handle visibility events and paused streams 2018-05-23 17:54:16 +00:00
KDSBrowne
df1ddc94ee prevent whiteboard textarea's flickering / not appearing in Edge 2018-05-13 17:15:18 -07:00
Anton Georgiev
32309b0c3f
Merge pull request #5480 from lfzawacki/stop-streams
Pause streams on media server to save bandwith and processing
2018-05-08 15:53:19 -04:00
KDSBrowne
64c57a6050 add check for IE / simplify conditions in shortcut-help 2018-05-03 08:36:08 -07:00
KDSBrowne
be4dc3f9ff add localized strings and edit deviceInfo.js 2018-05-02 19:20:38 -07:00
KDSBrowne
7cc07011b6 make place to localize OS and Browser type 2018-05-02 13:19:16 -07:00
Lucas Fialho Zawacki
5b65cde0de Stop remote stream tracks for HTML5 video viewers when window is hidden 2018-05-02 20:09:22 +00:00
KDSBrowne
57f3f4389c add functions to deviceInfo utility / improve shortcut modal 2018-05-02 11:55:46 -07:00
KDSBrowne
599ba78b72 add comment 2018-04-21 13:19:42 -07:00
KDSBrowne
a4cb68f387 redirect users on meeting join based on device 2018-04-21 13:09:22 -07:00
Tainan Felipe
0037ebd77d remove locales.js which is unnecessary 2017-12-20 15:15:49 -02:00
Tainan Felipe
d15bb139bb refactor emoji menu 2017-11-23 15:20:27 -02:00
Tainan Felipe
0d25ba5ae7 add blue color on emoji menu for ethe emoji selected 2017-11-21 08:50:20 -02:00
Tainan Felipe
02c617da68 solve error in nav-bar component 2017-10-23 14:26:56 -02:00
Tainan Felipe
4bda76c5bb Merge remote-tracking branch 'upstream/v2.0.x-release' into fix-errors-linter 2017-10-12 15:36:52 -03:00
Anton Georgiev
3b8c410a3c rearrange normalized emojis to match order of emoji definition 2017-10-11 10:09:47 -03:00
Anton Georgiev
50970b6cb3 fixes to change-emoji-button-on-emoji-change 2017-10-11 10:06:23 -03:00
Tainan Felipe
5393051d9d fix errors linter 2017-10-10 10:06:34 -03:00
Oleksandr Zhurbenko
76bcdd55d6 Merge branch 'v2.0.x-release' of https://github.com/bigbluebutton/bigbluebutton into presenter-functionality-2x 2017-10-03 10:34:10 -07:00
Klaus
b3dd84505e Change statuses and remove .scss suffix 2017-09-22 14:03:14 -03:00
Oleksandr Zhurbenko
4a4a3d5574 Moved hex_to_int and int_to_hex functions to imports/utils 2017-09-21 16:52:43 -07:00
Oleksandr Zhurbenko
251bd22738 PR review fixes 2017-09-06 12:36:52 -07:00
Klaus
ade47254d3 Fix inconsistency inside the ACL, #4310 2017-08-28 16:48:46 -03:00
Klaus Klein
d88d4fb0bc Add stuff from 2.x 2017-06-19 10:13:35 -03:00
Oswaldo Acauan
e6412275a6 Linter auto fix 2017-06-02 19:25:02 +00:00
Anton Georgiev
250c6cdb8b Merge pull request #3948 from KDSBrowne/x0-lint-Client
[HTML5] - Fix client lint issues
2017-05-25 13:57:04 -04:00
KDSBrowne
beddf61532 remove new operator 2017-05-19 07:25:24 -07:00
KDSBrowne
df76d33cba set files permission to 644 2017-05-16 09:22:59 -07:00
KDSBrowne
6537a0e28c Fix client lint issues except those which are comment related 2017-05-16 08:37:17 -07:00
KDSBrowne
85a468f4b3 add key codes for left and right arrow 2017-05-05 07:37:01 -07:00
gcampes
eda7648043 Merge remote-tracking branch 'upstream/master' into settings-localization-dropdown
* upstream/master: (51 commits)
  Fix lint issues
  Fix lint issues
  Fix a few lint problems
  fix missing import causing breakouts to not work
  Delete the initially converted swf to be sure that if fallback convertion does not work we get the blank swf loaded.
  Fix poll options remain visible on html5, closes #3806 HTML5
  - user internal userId instead of external userId in register user message
  remove unnecessarily added svgs
  updated icons to v11, adjusted few icons
  Fix merge algoritm problem
  set chat input color to gray (text-color)
  Fixed user leave problem on private chat, close #3799 HTML5
  align emojis horizontally
  Check userId when validating token
  Cleanup  - remove extra > on meeting name on getRecording API response
  Check for WebRTC availability instead of checking for the browser name to display the AudioSelectionWindow browser hint.
  fix event name causing issues with listenOnly status
  Display "Recommend using either Firefox or Chrome for better audio" when any of other browser is used.
  improved logic for updating message-list
  Change to fetch from chat system id, issue #3792 HTML5
  ...
2017-04-17 15:49:35 -03:00
Anton Georgiev
b87ba1f3ea adjust emoji statuses and icon names 2017-04-06 10:42:01 -04:00