summaryrefslogtreecommitdiff
path: root/indra/newview/llimview.cpp
diff options
context:
space:
mode:
authorRoxie Linden <roxie@lindenlab.com>2024-01-25 20:53:19 -0800
committerRoxie Linden <roxie@lindenlab.com>2024-02-08 18:35:21 -0800
commit0e6103e3a943c7f7726a93535048c634eb85eefc (patch)
treeed6fc6c666efd6d2176819ade9a2a10b23a2c18c /indra/newview/llimview.cpp
parentef90eba410c9357f62c8e5eaf7a0447bcb51d72f (diff)
Checkpoint Ad-Hoc voice.
Unlike vivox, P2P uses the ad-hoc voice mechanism, which is also used by group voice.
Diffstat (limited to 'indra/newview/llimview.cpp')
-rw-r--r--indra/newview/llimview.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index 61a01d7418..3e03dbef8f 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -665,8 +665,11 @@ LLIMModel::LLIMSession::LLIMSession(const LLUUID& session_id, const std::string&
// set P2P type by default
mSessionType = P2P_SESSION;
- if (IM_NOTHING_SPECIAL == mType || IM_SESSION_P2P_INVITE == mType)
+ if ((IM_NOTHING_SPECIAL == mType || IM_SESSION_P2P_INVITE == mType) && LLVoiceClient::getInstance()->hasP2PInterface())
{
+ // only use LLVoiceChannelP2P if the provider can handle the special P2P interface,
+ // which uses the voice server to relay calls and invites. Otherwise,
+ // we use the group voice provider.
mVoiceChannel = new LLVoiceChannelP2P(session_id, name, other_participant_id);
}
else
@@ -2034,7 +2037,8 @@ bool LLIMModel::sendStartSession(
return true;
}
- else if ( dialog == IM_SESSION_CONFERENCE_START )
+ else if (( dialog == IM_SESSION_CONFERENCE_START ) ||
+ (((dialog == IM_SESSION_P2P_INVITE) || (dialog == IM_NOTHING_SPECIAL)) && !LLVoiceClient::getInstance()->hasP2PInterface()))
{
LLSD agents;
for (int i = 0; i < (S32) ids.size(); i++)