aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/OptionalModules/Avatar/Voice/VivoxVoice/VivoxVoiceModule.cs20
1 files changed, 18 insertions, 2 deletions
diff --git a/OpenSim/Region/OptionalModules/Avatar/Voice/VivoxVoice/VivoxVoiceModule.cs b/OpenSim/Region/OptionalModules/Avatar/Voice/VivoxVoice/VivoxVoiceModule.cs
index 98c39cc..f9d6bd2 100644
--- a/OpenSim/Region/OptionalModules/Avatar/Voice/VivoxVoice/VivoxVoiceModule.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/Voice/VivoxVoice/VivoxVoiceModule.cs
@@ -921,6 +921,21 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.VivoxVoice
921 if (XmlFind(resp, "response.level0.channel-search.count", out count)) 921 if (XmlFind(resp, "response.level0.channel-search.count", out count))
922 { 922 {
923 int channels = Convert.ToInt32(count); 923 int channels = Convert.ToInt32(count);
924
925 // Bug in Vivox Server r2978 where count returns 0
926 // Found by Adam
927 if(channels == 0)
928 {
929 for(int j=0;j<100;j++)
930 {
931 string tmpId;
932 if (!XmlFind(resp, "response.level0.channel-search.channels.channels.level4.id", j, out tmpId))
933 break;
934
935 channels = j + 1;
936 }
937 }
938
924 for (int i = 0; i < channels; i++) 939 for (int i = 0; i < channels; i++)
925 { 940 {
926 string name; 941 string name;
@@ -974,13 +989,14 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.VivoxVoice
974 } 989 }
975 else 990 else
976 { 991 {
977 m_log.Debug("[VivoxVoice] No channels registered."); 992 m_log.Debug("[VivoxVoice] No count element?");
978 } 993 }
979 994
980 channelId = String.Empty; 995 channelId = String.Empty;
981 channelUri = String.Empty; 996 channelUri = String.Empty;
982 997
983 m_log.Debug("[VivoxVoice] Could not find channel in XMLRESP: " + resp.InnerXml); 998 // Useful incase something goes wrong.
999 //m_log.Debug("[VivoxVoice] Could not find channel in XMLRESP: " + resp.InnerXml);
984 1000
985 return false; 1001 return false;
986 } 1002 }