summaryrefslogtreecommitdiff
path: root/indra/llwebrtc
diff options
context:
space:
mode:
authorRoxie Linden <roxie@lindenlab.com>2024-04-21 21:12:06 -0700
committerRoxie Linden <roxie@lindenlab.com>2024-04-21 21:12:06 -0700
commit98322d5f070b260f1e46eb5d9fcd54fa43151329 (patch)
tree45cb5b6dcdfd6d458c87951c794f269b96bcce0d /indra/llwebrtc
parent07d7779d87552133e98df835bfdcb0a1fb5b10ca (diff)
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.
Diffstat (limited to 'indra/llwebrtc')
-rw-r--r--indra/llwebrtc/llwebrtc.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/indra/llwebrtc/llwebrtc.cpp b/indra/llwebrtc/llwebrtc.cpp
index eb9bb65e67..e08ace12c5 100644
--- a/indra/llwebrtc/llwebrtc.cpp
+++ b/indra/llwebrtc/llwebrtc.cpp
@@ -735,6 +735,10 @@ bool LLWebRTCPeerConnectionImpl::initializeConnection(const LLWebRTCPeerConnecti
else
{
RTC_LOG(LS_ERROR) << __FUNCTION__ << "Error creating peer connection: " << error_or_peer_connection.error().message();
+ for (auto &observer : mSignalingObserverList)
+ {
+ observer->OnRenegotiationNeeded();
+ }
return;
}