Commit Graph

185 Commits

Author SHA1 Message Date
Mario Jr
df67d2e680 Better handling audio reconnection
When getting disconnected with 1001 ("websocket closed unexpectedly" error) we were creating a new SIP session, therefore a new FreeSWITCH channel.
While reconnecting the socket, instead of closing the SIP session, we keep it alive during reconnection (audio should keep working in the meantime). When reconnected we keep using this same session (avoiding the creation of an extra one).
We also better handle WebSocket error codes from SIP.js.
FF immediately closes websocket when unloading page, so we now to stop user agent when 'beforeunload' event is triggered, to avoid leaving open sessions in FreeSWITCH when user leaves page.
2020-10-15 11:24:23 -03:00
Mario Jr
e9e436378a Correctly set audio input/output devices
When refusing ("thumbs down" button) echo test, user is able to select a different input device. This should work fine for chrome, firefox and safari (once user grants permission when asked by html5client).
For output devices, we depend on setSinkId function, which is enabled by default on current chrome release (2020) but not in Firefox (user needs to enable "setSinkId in about:config page). This implementation is listed as (?) in MDN.
In other words, output device selection should work out of the box for chrome, only.
When selecting an outputDevice, all alert sounds (hangup, screenshare , polling, etc) also goes to the same output device.
This solves #10592
2020-10-06 20:37:55 -03:00
Mario Jr
e1b9ad3536 Map stun/turn servers into WebRTC's iceServers, when using fallback stun 2020-10-02 16:19:55 -03:00
Mario Jr
49bfe9f48d Set stun/turn server for audio's peer in html5 client
Latest SIP.js version sets this using peerConnectionConfiguration property instead of UserAgent option.
This solves #10569
2020-10-01 10:16:48 -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
Tainan Felipe
cb53b42c0e Merge remote-tracking branch 'upstream/develop' into issue-9723 2020-08-10 16:52:58 -03:00
Tainan Felipe
cc9662b6b8 Implement speaker change and add device update feature 2020-08-10 16:43:49 -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
Pedro Beschorner Marin
ab31861544 Add a minimum socket validation to full-audio connection 2020-07-29 15:51:19 -03:00
Pedro Beschorner Marin
19e301e28e Add a minimum socket validation to full-audio connection 2020-07-29 13:10:17 -03:00
Tainan Felipe
0ba6ff5cf6 Merge remote-tracking branch 'upstream/develop' into issue-9723 2020-07-27 17:02:44 -03:00
Tainan Felipe
2c61d5ee75 Add input/output dynamic audio change 2020-07-27 16:49:26 -03:00
prlanzarin
1dbafffa26 audio: make listen only call timeout configurable 2020-07-09 18:02:18 +00:00
Joao Siebel
3e95ed0e4b Merge remote-tracking branch 'upstream/v2.2.x-release' into merge-2.2 2020-06-16 16:40:56 -03:00
Anton Georgiev
ddb54273c1 Added callerIdName in audio logs where possible 2020-06-12 21:13:49 +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
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
Anton Georgiev
8129468300 Merge branch 'v2.2.x-release' of github.com:bigbluebutton/bigbluebutton into merging 2020-03-04 23:36:21 +00:00
Chad Pilkey
5a678a4faf react to voice call state when connecting with FS LO 2020-03-04 10:25:54 -08:00
Chad Pilkey
ecfbe5e506 implmenent sip.js fallback for playing audio with web audio api 2020-02-29 00:38:30 +00: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
Chad Pilkey
6a4ba7a300 watch for voice call state updates instead of DTMFs in the client 2020-02-18 14:03:06 -08: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
Chad Pilkey
162dc4dbe4 the client will end the call when kicked 2020-01-09 15:50:10 -08:00
Chad Pilkey
f5cb7a64fb log the selected sip.js candidate 2019-12-18 16:11:24 -08:00
Pedro Beschorner Marin
5c71e2d0bb Included new getStats monitor for audio and video 2019-12-10 09:07:06 -03:00
Chad Pilkey
50365aa4da extra log messages for sipjs candidates 2019-12-05 16:33:38 -08:00
Chad Pilkey
7218f36e44 listen only logging improvements 2019-12-02 14:15:46 -08:00
Chad Pilkey
66a705a87d hangup the sip.js call when a timeout hits 2019-11-22 13:48:46 -08:00
Chad Pilkey
c70577b05f add a counter to sipjs caller id 2019-11-13 16:00:47 -08: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
73698b1064 Fix playAndRetry import 2019-09-06 20:54:48 +00: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
prlanzarin
01b53728f8 Only handle autoplay when DOMEx is NotAlllowedError
Add check to prevent re-handling autoplay multiple times for cams

Screenshare viewer element muted by default
2019-08-05 17:28:36 +00:00
prlanzarin
9942dd0aa2 Merge remote-tracking branch 'upstream/master' into 2.2-ap-ui 2019-08-02 21:36:44 +00:00
prlanzarin
8d65ce565d Add UI prompts when autoplay is blocked for video/screenshare/listen only 2019-08-02 21:32:42 +00:00
Anton Georgiev
0f5331aba7
Merge pull request #7839 from prlanzarin/2.2-listenonly-reconnect
Add auto-reconnect to SFU listen only (#6994)
2019-08-01 13:04:35 -04:00
prlanzarin
6844132eb4 Add auto-reconnect to SFU listen only if it fails during an ongoing session 2019-07-26 09:28:11 +00:00
Chad Pilkey
e69931a0af Merge remote-tracking branch 'upstream/master' into fix-pan-lag 2019-07-25 16:29:52 -07:00
prlanzarin
39cf33b194 Yet another workaround for autoplay issues 2019-07-25 17:36:19 +00:00
prlanzarin
a3a5d2f6a4 Refactor screenshare/listen only client-side logs 2019-07-15 20:59:00 +00:00
Anton Georgiev
612aca99e6 sipjs logCode-s preserve inconsistencies 2019-07-02 20:50:25 +00:00
Anton Georgiev
b71bd48490 remove redundant audio log 2019-07-02 20:11:48 +00:00
Anton Georgiev
004547f681 prepend sip.js logCode-s 2019-07-02 19:56:25 +00:00
Anton Georgiev
86a178fbf6 video-provider logger with extraInfo 2019-07-02 19:51:35 +00:00
Anton Georgiev
3fcb95ab44 log structure {logCode, extraInfo}, comment 2019-06-28 21:45:50 +00:00
Anton Georgiev
fc1c4ed53f pass baseErrorCodes on SIPSession create 2019-06-25 19:13:31 +00:00
Anton Georgiev
8b53c32565 baseErrorCodes not defined 2019-06-24 20:41:58 +00:00
Fred Dixon
2c617fed7b
Merge pull request #7610 from capilkey/ipv4-audio-fallback
IPv4 FS audio fallback, auto-reconnect, and fixed input select
2019-06-12 19:41:15 -04:00
Chad Pilkey
cc7513279e IPv4 FS audio fallback, auto-reconnect, and fixed input select 2019-06-12 21:01:20 +00:00
Anton Georgiev
8946951f08
Merge pull request #7575 from capilkey/improve-kurento-lo-errors
Try to improve Kurento listen-only error reporting
2019-06-05 15:00:43 -04:00
Chad Pilkey
42f18a15fe try to improve kurento listen-only error reporting 2019-06-05 10:50:21 -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
8a7b53db20 Fixed safari detection on sip.js bridge 2019-05-21 16:56:57 +00:00
prlanzarin
ca9a0fad4a Added unified-plan/plan-b translation for Safari endpoints 2019-05-21 16:48:01 +00:00
Chad Pilkey
2bee179eff improved audio connect and transfer 2019-05-09 21:01:34 +00:00
Chad Pilkey
8c9d09dd49 increase audio timeouts in HTML5 2019-04-12 15:23:22 -07:00
Anton Georgiev
e5cdc3a0ce omit appending of username and userid 2019-04-10 21:22:33 +00:00
Anton Georgiev
d716f8360e provide safe value for user id and name in kurento bridge 2019-04-10 20:49:45 +00:00
Chad Pilkey
242a9f019f add transfer dtmf resend for firefox users 2019-03-14 14:02:51 -07:00
Anton Georgiev
8380875e70 remove Verto code 2019-03-08 19:41:19 +00:00
Chad Pilkey
5827ec7ff5 increase call connect timeout and only apply to firefox 2019-02-21 13:58:27 -08:00
Chad Pilkey
50670365c5 dont log ice closed if user requested hangup 2019-02-21 12:53:39 -08:00
Chad Pilkey
160ea38f5b Replace double quotes in audio name with single quotes 2019-02-21 12:49:04 -08:00
Chad Pilkey
89b8189087 html5 sipjs bridge has useful errors now 2019-02-20 13:58:37 -08:00
Pedro Beschorner Marin
b5427737d7 Includes a minimal authentication step before SFU connections 2019-02-06 09:37:05 -02:00
Anton Georgiev
cd531f91ff
Merge pull request #6702 from MaximKhlobystov/html5-logs
Improve logging
2019-02-01 16:03:23 -05:00
Maxim Khlobystov
b86a990612 Add logCode and build number to log messages 2019-02-01 14:12:06 -05:00
Chad Pilkey
f2ba2c8bc9 update the html5 sipjs logging with more messages 2019-01-31 15:15:29 -08:00
Chad Pilkey
d5189549bf webrtc call is ready in Edge when ICE completed not connected 2019-01-29 16:11:20 -08:00
Chad Pilkey
032460480d update the version of adapterjs and renable sipjs logging 2019-01-25 10:03:01 -08:00
Gustavo Trott
6d4cca9306 Fix audio in ios webview 2018-12-21 15:14:05 -02:00
Chad Pilkey
7e99929214 [HTML5] delay the notfication that the echo test is connected 2018-10-29 09:41:05 -07:00
Fred Dixon
c807da095f
Update sip.js
Fix #6167
2018-10-24 16:26:20 -04:00
prlanzarin
2741022cb2 Updated kurento-utils WebRTC calls, added permission request on listen only for safari
Also fixed a resource leak on listen only fallback and transitioned the SFU listen only from a tag-based approach to MediaStream
2018-10-03 18:39:55 +00:00
prlanzarin
dc767d9bdb Fixed server-side error handling for listen only via SFU, correctly handling KMS abrupt shutdown 2018-08-30 02:41:02 +00:00
prlanzarin
a7bfb985d3 Improvements to Safari/Chrome autoplay policies with placeholder buffer on audiocontext and bogus audio + upstarting audio tag as muted 2018-08-29 19:12:34 +00:00
prlanzarin
4f99173d38 Using default input stream for SFU listne only 2018-08-28 15:24:06 +00:00
Lucas Fialho Zawacki
f8d8e5c8e5 Prettier obj logs in audio, video, screenshare 2018-07-26 16:29:55 -03:00
Lucas Fialho Zawacki
e36c494252 Use newer logging calls for video,audio,screenshare 2018-07-26 15:26:56 -03:00
Lucas Fialho Zawacki
2fc85f75e1 New Logging format for listenonly audio and screenshare 2018-07-25 19:08:24 -03:00
Bobak Oftadeh
a5354c9c10 Merge branch 'v2.0.x-release' of https://github.com/bigbluebutton/bigbluebutton into fixes3 2018-07-13 12:18:55 -07:00
Bobak Oftadeh
c98bd10024 Replaced console.errors with client logger and alterted logger configurations 2018-07-13 12:16:50 -07: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
Anton Georgiev
915c1bae8b
Merge pull request #5757 from Tainan404/issue-5714
Add some messages about audio errors
2018-07-03 11:22:45 -04:00
prlanzarin
8c50ddf762 Removed audio failure listeners on graceful exit 2018-07-02 16:36:54 +00:00
prlanzarin
769143ad48 Fixed audio state bug regarding ICE connection 2018-07-02 15:36:48 +00:00
prlanzarin
6a63887ebb Fixed kurento audio bridge meetingId fetching and removed uneeded object assignments 2018-06-28 18:59:36 +00:00
prlanzarin
d4858b6e70 Fixed userId/userName sending to SFU audio component
Also did some refactoring to kurento-extension parameters
2018-06-28 18:50:56 +00:00
Tainan Felipe
c21749992d Tiny fixes 2018-06-28 15:16:28 -03:00
prlanzarin
2f5aa09fe5 Merge remote-tracking branch 'upstream/v2.0.x-release' into sfu-opt-audio 2018-06-27 17:34:33 +00:00
Tainan Felipe
7dc251fc5a add treater of webrtc error 2018-06-27 10:56:03 -03:00
Anton Georgiev
f38271b3f8 pass correct structure for TURNs 2018-06-11 20:20:32 +00:00
Anton Georgiev
e4a6f31abc revert special api changes made for html5 client 2018-05-24 18:42:59 +00:00
prlanzarin
37564a0c6f Fixed userName/userId usage in kurento-extension 2018-05-07 17:17:48 +00:00
prlanzarin
4a9ba0b37a Added kurento audio bridge callbacks and sip.js depency to SFU 2018-05-07 13:39:39 +00:00
prlanzarin
c2143f9a50 Added first working versions of join/exitAudio for kurento bridge and fixed SFU session termination for freeswitch adapter 2018-04-29 00:18:54 +00:00
prlanzarin
47120111dd Fixed adapter calls in SFU and added bridge hooks for kurento listen only 2018-04-27 21:37:41 +00:00