Commit Graph

49726 Commits (4c4d23acb00960d1bc812eab4656d3f4cdcd70e3)

Author SHA1 Message Date
Roxie Linden 4c4d23acb0 Renegotiate voice if the voice server type has changed.
The server will send an update with new voice credentials
when another peer comes in requiring vivox, if the channel
was initially webrtc.
2024-04-26 21:31:06 -07:00
Roxie Linden 534ddc5290 Before login, voice device preferences were not populated.
Before login, when the user shows voice device preferences,
the dropdowns were not populated.  This is because WebRTC's view
of the main queue was not configured.
2024-04-23 10:57:02 -07:00
Roxie Linden 98322d5f07 Reconnect when parcel voice params change.
When parcel voice permissions and region/parcel-only voice
settings change, a callback will be made to the viewer with
new voice credential information.  For webrtc, this means
either just the uuid of the voice channel, or nothing if
voice is disabled.

This change looks at that callback and the channel id,
and sets the appropriate flags on the parcel/region as needed
which will cause voice to be renegotiated.

Also, there was a race condition if the voice connect attempt
was made before caps were retrieved, which would have resulted
in full renegotiate attempts.  Now, just wait until the cap
comes in and continue.
2024-04-21 21:12:06 -07:00
Roxie Linden 07d7779d87 Vivox wasn't ren-enabling voice after ending a p2p call 2024-04-20 17:34:27 -07:00
Roxie Linden 1a1af1ce29 Adjust logic for determine what voice server type to use. 2024-04-20 00:26:39 -07:00
Roxie Linden 784dae7e6a re-enabling vivox voice didn't bring it back as it thought it was still in the region and parcel. 2024-04-20 00:19:55 -07:00
Roxie Linden b59ff9edc0 For p2p/adhoc/group calls, prefer voice server type based on what's running on the region 2024-04-19 18:52:32 -07:00
Roxie Linden eac8043ee5 Merge branch 'roxie/webrtc-voice' of https://github.com/secondlife/viewer into roxie/webrtc-voice 2024-04-16 23:24:00 -07:00
Roxie Linden 53c584e1de Fix cases where voice outstanding requests could be dropped, resulting in no voice 2024-04-16 23:23:35 -07:00
Roxie Linden f5c5c5ec94 Issue in WebRTC was disabling custom audio processing (level detection)
There is a case where the custom audio processor, which is used to
determine audio levels, was disabled on connection shutdown even
when another connection was established.

This issue has been patched in the webrtc library.
2024-04-16 23:11:44 -07:00
Roxanne Skelly 75a9ed38c0
Merge pull request #1164 from secondlife/roxie/webrtc-voice 2024-04-09 07:33:13 -07:00
Roxie Linden b425165add Merge branch 'roxie/webrtc-voice' of https://github.com/secondlife/viewer into roxie/webrtc-voice 2024-04-08 21:30:36 -07:00
Roxie Linden 39cb0bca32 Show mute/unmute status in group voice 2024-04-08 21:29:12 -07:00
Roxanne Skelly f2ec9e5cca
Merge pull request #1150 from secondlife/roxie/webrtc-voice 2024-04-08 04:10:34 -07:00
Roxie Linden 648741470f CR suggestions 2024-04-07 19:23:00 -07:00
Roxie Linden 4be63d8c1f missed a file 2024-04-07 14:16:07 -07:00
Roxie Linden 34ed990fa3 Show 'decline' when peer declines p2p voice
The simulator will send a chatterbox notification that
voice is no longer in use for a given channel, and
the viewer should take that as a case where the peer
does not want voice, hence it's a decline.
2024-04-07 14:13:00 -07:00
Roxie Linden 4ecf050439 Tell the user the peer has declined and shut down voice channel
When the server sends up a notification that a peer is not doing
voice in adhoc-style p2p chat, shut down the voice call and
notify the user the peer has declined.
2024-04-06 21:58:17 -07:00
Roxie Linden b6f4cec7d5 checkpoint p2p im decline/accept work 2024-04-04 16:13:33 -07:00
Roxie Linden c2a04568b9 Merge branch 'roxie/webrtc-voice' of github.com:secondlife/viewer into roxie/webrtc-voice 2024-04-04 11:35:19 -07:00
Roxie Linden 3ff1f0f951 An explicit "decline" message for P2P
When declining a P2P voice call for webrtc, instead of relying
on vivox to stop "ringing," we need to send an explicit decline
message from the peer through the server infrastructure.
2024-04-04 11:32:51 -07:00
Roxanne Skelly a0cc1b6bd2
Merge pull request #1108 from secondlife/roxie/webrtc-voice 2024-04-02 08:05:49 -07:00
Roxie Linden fdf0fbce5b oopse 2024-04-01 22:39:59 -07:00
Roxie Linden c826aea079 Fix "default" audio device handling.
Windows and Mac/Linux behave slightly differently with respect
to Default devices, in that mac/linux (I think) simply assumes
the device at index 0 is the default one, and windows has a
separate API for enabling the default device.
2024-04-01 21:39:17 -07:00
Roxanne Skelly d59d0c98fe
Merge pull request #1100 from secondlife/roxie/webrtc-voice
[WebRTC] Add UI for AGC, Echo Cancellation, and Noise Reduction; use Linden STUN servers.
2024-04-01 09:13:32 -07:00
Roxie Linden c6e673cda1 Fix windows crashes
* sampling rate was set to 8khz for audio processing, which was
  causing a 'bands' mismatch with the echo cancler.

* Some funnybusiness with lambdas and captures and such was causing
  a heap crash with respect to function parameters.
2024-03-30 23:19:38 -07:00
Roxie Linden 567180508f Merge branch 'roxie/webrtc-voice' of https://github.com/secondlife/viewer into roxie/webrtc-voice 2024-03-30 22:03:59 -07:00
Roxie Linden b3bb3d2d51 Renegotiate on remote description error 2024-03-30 22:03:30 -07:00
Roxie Linden cdae5ebc16 Add UI for managing echo cancellation, AGC, and noise control.
Plumb audio settings through from webrtc to the sound preferences
UI (still needs some tweaking, of course.)

Also, choose stun servers based on grid.  Ultimately, the stun
stun servers will be passed up via login or something.
2024-03-30 21:58:00 -07:00
Roxanne Skelly 07ac9ac587
Merge pull request #1039 from secondlife/roxie/webrtc-voice
WebRTC: Throw 'area full' message when voice server indicates the channel is at capacity.
2024-03-24 22:14:41 -07:00
Roxie Linden e272e387d3 Throw 'area full' message when the voice server reports max users for voice 2024-03-24 20:51:08 -07:00
Roxie Linden 92171a42c9 Not sending proper voice server type down when breaking a connection 2024-03-24 20:50:49 -07:00
Roxie Linden 8d14df5984 Not sending proper voice server type down when breaking a connection 2024-03-24 20:42:32 -07:00
Roxanne Skelly 32e3a39e27
Merge pull request #1036 from secondlife/roxie/webrtc-voice-workqueue
Move processIceUpdates into a coroutine
2024-03-22 18:00:21 -07:00
Roxie Linden 168081c7e9 Validate that we're not shutting down after coroutine processing
Coroutine yields can end after shutdown is requested and
voice connections are removed, so we need to check that
a shutdown hasn't occured before attempting to touch
connection objects.

(CR issue)
2024-03-22 17:00:34 -07:00
Roxie Linden e242c129f9 Add Tracy categories for WebRTC Voice
Also:
* Fix a few crashes.
* Only send position data when it changes.
2024-03-22 16:21:02 -07:00
Roxie Linden 4b709e7944 Turn procesIceUpdates into a coroutine to chop up the work a bit. 2024-03-20 11:15:12 -07:00
Roxanne Skelly 6047b61b2a
Merge pull request #1021 from secondlife/roxie/webrtc-voice-workqueue
WebRTC: Make callbacks from webrtc-proper launch workqueue jobs to run code on the main thread, instead of relying on mutexes and such.
2024-03-19 22:47:44 -07:00
Roxie Linden 0e2fc4d35e Clear out observers when terminating a connection 2024-03-19 17:05:56 -07:00
Roxie Linden 5bc92b8031 Simplify workqueue calls. Fix issue with webrtc blocking on destruction. 2024-03-19 15:23:43 -07:00
Roxanne Skelly 410be3b2d0
Merge pull request #119 from secondlife/roxie/webrtc-voice
Update webrtc path; fix crash; fix region voice not always working issue.
2024-03-18 18:13:22 -07:00
Roxie Linden e4dee511ca Use LL::WorkQueue to handle transitions from llwebrtc threads to the main thread 2024-03-18 17:47:56 -07:00
Roxie Linden 3794e3275c use the github release asset path for autobuild webrtc 2024-03-18 17:32:51 -07:00
Roxie Linden 2f40b1fcef update to use public github-based release of autobuild webrtc 2024-03-18 17:13:36 -07:00
Roxie Linden c121d48339 Merge branch 'roxie/webrtc-voice' of github.com:secondlife/viewer-private into roxie/webrtc-voice 2024-03-16 15:19:43 -07:00
Roxie Linden 8530eadd98 Fix crash in setting peer volume/mute
Also fix issue where moving to a 'voice disabled' parcel and back
to the region (with voice) resulted in the voice dot not showing up.
2024-03-16 15:17:35 -07:00
Roxie Linden 0e7b5f5270 Update paths for webrtc-shim 2024-03-15 12:24:37 -07:00
Roxanne Skelly 23ecf64b24
Merge pull request #118 from secondlife/roxie/webrtc-voice
Various WebRTC Fixes and Improvements
2024-03-15 11:12:41 -07:00
Roxie Linden dbbbbc55af Refactor device selection logic
This refactor fixed a few bugs.  There is an annoying 'click' when
changing devices, however.  This will be addressed in the future.
2024-03-14 20:04:39 -07:00
Roxie Linden ef8a3833eb Add increasing random timeout to retries. 2024-03-13 13:15:50 -07:00