diff options
author | Roxie Linden <roxie@lindenlab.com> | 2024-06-26 12:53:49 -0700 |
---|---|---|
committer | Roxie Linden <roxie@lindenlab.com> | 2024-06-26 12:53:49 -0700 |
commit | 0f2bb1bd8307a0802a6e24c7eb50f6a0082edea4 (patch) | |
tree | 0049a6812dbfe3816b1c043a95ee5fb665058568 /indra/newview/llvoicevivox.cpp | |
parent | 39f0da7ab623ee99106058deb1d0c6a3295b567f (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.cpp | 18 |
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"]); } |