Commit Graph

47 Commits

Author SHA1 Message Date
prlanzarin
acefde48a1 refactor: use webrtc-adapter package, remove static script from compatibility 2022-05-20 19:11:12 +00:00
prlanzarin
d8c67aa428 refactor: remove play and retry code from kurento-utils
Code was marked for review - isn't necessary anymore and was triggering a static
code analysis alert as well. Simplified it to a good extent.

Also removed some trailing whitespaces from the file so that my editor stops
bothering me.
2022-05-08 20:33:08 +00:00
prlanzarin
46f281ec6b chore(virtual-backgrounds): move tensorflow wrappers to compatibility 2021-09-23 17:06:42 +00:00
Ramon Souza
5313df76c2 fix off-by-one index check 2021-08-25 14:29:30 -03:00
prlanzarin
d8dae1ec90 fix(webcams): handle Firefox video stream cleanup edge case
Firefox doesnt fire the ended evt/onended callback for live video mediastreamtracks. That caused the stream storage to not run the cleanup procedure in some scenarios

Manually emit the ended event which works with the onended callback when a track is stopped
2021-07-05 16:26:24 +00:00
prlanzarin
3dff2ac820 video,screeshare,listenonly: remove Safari gathering barrier for the SDP offer generation
Back when Safari 11 was still a thing, there was an annoying bug where peer connectiocs COULD get stuck during it`s JSEP handshaking phase if, due to some unknown trigger, the SDP was generated BEFORE the ICE candidate gathering had run its course.

I dont believe this is the case anymore and this workaround is _very_ harmful to Safari endpoints, mainly when gathering might take a long time due to additional network interfaces or restricted network environments. So its being removed.

Ive tested this with the widest array of Safari endpoints I could get my hands on: iPhones 8-12, iPads 6-8 and Pro, macOS Safari 12-14
2021-03-27 02:55:14 +00:00
Mario Jr
af4f9dbf26 Merge branch 'v2.2.x-release' into merge-2.2-develop 2021-03-23 17:10:28 -03:00
prlanzarin
d4d391b2c2 html5, kurento-utils: update js.merge to v2.1.1 (was v1.2.0) 2021-03-18 14:47:36 -03:00
prlanzarin
efd0ff2ff1 html5, kurento-utils: update UAParser to v0.7.24 (was v0.7.17) 2021-03-18 14:05:27 -03: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
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
3faabd1821 Merge 2.2.29 and 2.2.30 into 2.3.x 2020-11-24 15:13:09 +00:00
prlanzarin
a1f0276b64 [html5/audio] Add hackViaWs to SIP.js and make it configurable in settings.yml, 1002 workaround
This adds the possibility to configure the SIP Via header to plain WS to allow reverse proxying from WSS to WS, internally, to work around a bug in freeswitch where the WSS stack would get deadlocked due to a still unidentified bug in there that has to do with SSL termination
2020-11-10 15:04:45 +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
Mario Jr
2d2a034729 Add sessionDescriptionHandlerModifiersPostICEGathering option to SIP.js INVITER
Current sessionDescriptionHandlerModifiers of SIP.js acts before ICE gathering is done. This means we are not able to modify/strip candidates in local SDP.
This modifier acts on local SDP, by allowing user to modify SDP before it is sent on INVITE message.
2020-09-25 20:26:28 -03: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
Anton Georgiev
00656ddf63 Removed unused bowser.js 2020-09-21 14:31:32 +00: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
8eb6235b1e sip.js/kurento-utils: remove default 3rd party STUN servers
Removing 3rd party default STUN servers from those dependencies as to prevent unexpected behaviour
2020-05-21 04:31:40 +00:00
prlanzarin
fe8e719757 kurento-extension: add optional stream paremeter to avoid gUM/gDM if already done 2020-05-14 16:41:47 +00:00
prlanzarin
79c435f9f9 kurento-utils: add a fallback for getTracks
Add a fallback in case getTracks isnt available (ahem safari 12.1). Use addStream directly on the peer instead
2020-05-14 16:41:33 +00:00
basisbit
72620b6293
Reduce "Connecting to Echotest" waiting time by 4 seconds
one of the most annoying things about breakout rooms is that the users have to do the echo test again. So they have to wait 7 to 12 seconds again (for most typical bbb configurations) just for the echo test to connect. This change reduces the iceCheckingTimeout from 5 seconds to 1 second, which is still way more than enough unless there is a configuration or network load issue. Depending on network of the used client, this change saves the user between 4 to 8 seconds for every time they activate audio playback or microphone.
The original 5 seconds timeout is not part of the official sip.js library but instead was added in #2877
2020-04-14 21:24:13 +02:00
prlanzarin
a2944955a9 Track listen only ICE connection state to trigger reconnection on failures 2020-03-04 20:39:58 +00:00
Chad Pilkey
ecfbe5e506 implmenent sip.js fallback for playing audio with web audio api 2020-02-29 00:38:30 +00:00
Chad Pilkey
f5cb7a64fb log the selected sip.js candidate 2019-12-18 16:11:24 -08:00
Chad Pilkey
50365aa4da extra log messages for sipjs candidates 2019-12-05 16:33:38 -08:00
prlanzarin
19bf430760 Add userId and userName to the SFU start calls where they were missing 2019-11-28 18:46:23 +00:00
Chad Pilkey
d114d381bd handle sip.js autoplay failure - temp UI 2019-11-22 21:38:52 +00:00
Chad Pilkey
927cbf35bb add option to reconnect audio with relay only 2019-10-26 02:57:49 +00:00
prlanzarin
7779a5e3a9 Display error toasts for screensharing, improve logs a bit more 2019-09-10 16:20:40 +00:00
prlanzarin
308c860c90 Revert "Further normalize kurento-extension script errors"
This reverts commit 5caac33e33.
2019-09-10 14:46:33 +00:00
prlanzarin
5caac33e33 Further normalize kurento-extension script errors 2019-09-06 20:56:20 +00:00
prlanzarin
397286b7c2 Add an ICE queue to kurento-extension to only process candidates after the remote answer is set
This fixes a webkit quirk and should get rid of some of the screensharing/listen only problems with Safari

Also improved the extraInfo error logging in the script to log only the name instead of the whole object on browser errors
2019-09-06 19:00:34 +00:00
prlanzarin
8d65ce565d Add UI prompts when autoplay is blocked for video/screenshare/listen only 2019-08-02 21:32:42 +00:00
prlanzarin
39cf33b194 Yet another workaround for autoplay issues 2019-07-25 17:36:19 +00:00
Anton Georgiev
bc2eddc779 Log if the content is provided (kurento-extension.js) 2019-07-23 17:46:15 +00:00
prlanzarin
d185762e97 Missing break 2019-07-16 20:10:37 +00:00
prlanzarin
08044feb0d Fixed SFU error response handling to actually display something useful 2019-07-16 20:08:43 +00:00
prlanzarin
a3a5d2f6a4 Refactor screenshare/listen only client-side logs 2019-07-15 20:59:00 +00:00
Anton Georgiev
02a09b9f1f
Avoid re-defining userAgent in kurento-utils.js
Addresses the error seen in
`"stackTrace":"TypeError: can't redefine non-configurable property \"userAgent\""`

Note, there are still definitions of `ua` in the code so ideally we need to extract this out.
2019-07-04 12:53:40 -04: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
Chad Pilkey
5173ab3b50 move plain js libs into the public dir 2019-04-24 15:13:50 -07:00