summaryrefslogtreecommitdiff
path: root/indra/newview/llvoicevivox.cpp
diff options
context:
space:
mode:
authorRoxie Linden <roxie@lindenlab.com>2024-06-26 12:53:49 -0700
committerRoxie Linden <roxie@lindenlab.com>2024-06-26 12:53:49 -0700
commit0f2bb1bd8307a0802a6e24c7eb50f6a0082edea4 (patch)
tree0049a6812dbfe3816b1c043a95ee5fb665058568 /indra/newview/llvoicevivox.cpp
parent39f0da7ab623ee99106058deb1d0c6a3295b567f (diff)
Make the webrtc viewer work for vivox adhoc/group calls.
There was an issue on the release grid where old-style credentials were being sent over and the webrtc viewer wasn't dealing with them properly.
Diffstat (limited to 'indra/newview/llvoicevivox.cpp')
-rw-r--r--indra/newview/llvoicevivox.cpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp
index 3554933a52..1833aeb54f 100644
--- a/indra/newview/llvoicevivox.cpp
+++ b/indra/newview/llvoicevivox.cpp
@@ -5105,25 +5105,31 @@ void LLVivoxVoiceClient::processChannels(bool process)
bool LLVivoxVoiceClient::isCurrentChannel(const LLSD &channelInfo)
{
- if (!mProcessChannels || (channelInfo["voice_server_type"].asString() != VIVOX_VOICE_SERVER_TYPE))
+ if (!mProcessChannels || (channelInfo.has("voice_server_type") && channelInfo["voice_server_type"].asString() != VIVOX_VOICE_SERVER_TYPE))
{
return false;
}
- if (mAudioSession)
+ // favor the next audio session, as that's the one we're bringing up.
+ sessionStatePtr_t session = mNextAudioSession;
+ if (!session)
+ {
+ session = mAudioSession;
+ }
+ if (session)
{
if (!channelInfo["session_handle"].asString().empty())
{
- return mAudioSession->mHandle == channelInfo["session_handle"].asString();
+ return session->mHandle == channelInfo["session_handle"].asString();
}
- return channelInfo["channel_uri"].asString() == mAudioSession->mSIPURI;
+ return channelInfo["channel_uri"].asString() == session->mSIPURI;
}
return false;
}
bool LLVivoxVoiceClient::compareChannels(const LLSD& channelInfo1, const LLSD& channelInfo2)
{
- return (channelInfo1["voice_server_type"] == VIVOX_VOICE_SERVER_TYPE) &&
- (channelInfo1["voice_server_type"] == channelInfo2["voice_server_type"]) &&
+ return (!channelInfo1.has("voice_server_type") || (channelInfo1["voice_server_type"] == VIVOX_VOICE_SERVER_TYPE)) &&
+ (!channelInfo2.has("voice_server_type") || (channelInfo2["voice_server_type"] == VIVOX_VOICE_SERVER_TYPE)) &&
(channelInfo1["channel_uri"] == channelInfo2["channel_uri"]);
}