diff --git a/OpenSim/Addons/os-webrtc-janus/Janus/JanusAudioBridge.cs b/OpenSim/Addons/os-webrtc-janus/Janus/JanusAudioBridge.cs index f71137015e..b6186b55ab 100644 --- a/OpenSim/Addons/os-webrtc-janus/Janus/JanusAudioBridge.cs +++ b/OpenSim/Addons/os-webrtc-janus/Janus/JanusAudioBridge.cs @@ -89,7 +89,7 @@ namespace osWebRtcVoice JanusRoom ret = null; try { - JanusMessageResp resp = await SendPluginMsg(new AudioBridgeCreateRoomReq(pRoomId, pSpatial, pRoomDesc)); + JanusMessageResp resp = await SendPluginMsg(new AudioBridgeCreateRoomReq(pRoomId, pSpatial, pRoomDesc)).ConfigureAwait(false); AudioBridgeResp abResp = new(resp); m_log.Debug($"{LogHeader} CreateRoom. ReturnCode: '{abResp.AudioBridgeReturnCode}'"); @@ -202,7 +202,7 @@ namespace osWebRtcVoice // The room doesn't exist. Create it. string roomDesc = pRegionId + "/" + pChannelType + "/" + pParcelLocalID + "/" + pChannelID; - JanusRoom ret = await CreateRoom(roomNumber, pSpatial, roomDesc); + JanusRoom ret = await CreateRoom(roomNumber, pSpatial, roomDesc).ConfigureAwait(false); JanusRoom existingRoom = null; if (ret is not null) diff --git a/OpenSim/Addons/os-webrtc-janus/Janus/JanusMessages.cs b/OpenSim/Addons/os-webrtc-janus/Janus/JanusMessages.cs index 5c108bf042..44f4378d56 100644 --- a/OpenSim/Addons/os-webrtc-janus/Janus/JanusMessages.cs +++ b/OpenSim/Addons/os-webrtc-janus/Janus/JanusMessages.cs @@ -563,7 +563,7 @@ namespace osWebRtcVoice public AudioBridgeAgentJoinRoomReq(int pRoomId, UUID Agent) : base(new OSDMap() { { "request", "join" }, { "room", pRoomId }, - { "id", new OSDNLong(Math.Abs((long)(Agent.ulonga ^ Agent.ulongb)))}, + { "id", new OSDLong(Math.Abs((long)(Agent.ulonga ^ Agent.ulongb)))}, { "display", Agent.ToString() } }) { diff --git a/OpenSim/Addons/os-webrtc-janus/Janus/JanusPlugin.cs b/OpenSim/Addons/os-webrtc-janus/Janus/JanusPlugin.cs index 9ce6ceeec3..da3a30d538 100644 --- a/OpenSim/Addons/os-webrtc-janus/Janus/JanusPlugin.cs +++ b/OpenSim/Addons/os-webrtc-janus/Janus/JanusPlugin.cs @@ -88,7 +88,7 @@ namespace osWebRtcVoice bool ret = false; try { - JanusMessageResp resp = await _JanusSession.SendToSession(new AttachPluginReq(PluginName)); + JanusMessageResp resp = await _JanusSession.SendToSession(new AttachPluginReq(PluginName)).ConfigureAwait(false); if (resp is not null && resp.isSuccess) { AttachPluginResp handleResp = new(resp); @@ -126,7 +126,7 @@ namespace osWebRtcVoice _JanusSession.OnEvent -= Handle_Event; _JanusSession.OnMessage -= Handle_Message; // We send the 'detach' message to the plugin URI - JanusMessageResp resp = await _JanusSession.SendToJanus(new DetachPluginReq(), PluginUri); + JanusMessageResp resp = await _JanusSession.SendToJanus(new DetachPluginReq(), PluginUri).ConfigureAwait(false); if (resp is not null && resp.isSuccess) { m_log.DebugFormat("{0} Detach. Detached", LogHeader); diff --git a/OpenSim/Addons/os-webrtc-janus/Janus/JanusRoom.cs b/OpenSim/Addons/os-webrtc-janus/Janus/JanusRoom.cs index b156f25f38..a49911fb4e 100644 --- a/OpenSim/Addons/os-webrtc-janus/Janus/JanusRoom.cs +++ b/OpenSim/Addons/os-webrtc-janus/Janus/JanusRoom.cs @@ -72,7 +72,7 @@ namespace osWebRtcVoice // joinReq.SetJsep("offer", cleanSdp); joinReq.SetJsep("offer", pVSession.Offer); - JanusMessageResp resp = await _AudioBridge.SendPluginMsg(joinReq); + JanusMessageResp resp = await _AudioBridge.SendPluginMsg(joinReq).ConfigureAwait(false); AudioBridgeJoinRoomResp joinResp = new(resp); if (joinResp is not null && joinResp.AudioBridgeReturnCode == "joined" && joinResp.ParticipantId > 0) @@ -86,12 +86,12 @@ namespace osWebRtcVoice { m_log.Warn($"{LogHeader} JoinRoom. Already in a room for agent {pVSession.AgentId}. Attempting recovery."); - bool recovered = await RecoverAlreadyInRoomAndLeave(pVSession.AgentId.ToString()); + bool recovered = await RecoverAlreadyInRoomAndLeave(pVSession.AgentId.ToString()).ConfigureAwait(false); if (recovered) { AudioBridgeAgentJoinRoomReq retryJoinReq = new(RoomId, pVSession.AgentId); retryJoinReq.SetJsep("offer", pVSession.Offer); - JanusMessageResp retryResp = await _AudioBridge.SendPluginMsg(retryJoinReq); + JanusMessageResp retryResp = await _AudioBridge.SendPluginMsg(retryJoinReq).ConfigureAwait(false); AudioBridgeJoinRoomResp retryJoinResp = new(retryResp); if (retryJoinResp is not null && retryJoinResp.AudioBridgeReturnCode == "joined" && retryJoinResp.ParticipantId > 0) @@ -138,7 +138,7 @@ namespace osWebRtcVoice { try { - JanusMessageResp listRoomsRespRaw = await _AudioBridge.SendPluginMsg(new AudioBridgeListRoomsReq()); + JanusMessageResp listRoomsRespRaw = await _AudioBridge.SendPluginMsg(new AudioBridgeListRoomsReq()).ConfigureAwait(false); AudioBridgeResp listRoomsResp = new AudioBridgeResp(listRoomsRespRaw); if (listRoomsResp?.PluginRespData is null || !listRoomsResp.PluginRespData.TryGetValue("list", out OSD roomListNode) || @@ -157,7 +157,7 @@ namespace osWebRtcVoice // if (roomId <= 0) // continue; - JanusMessageResp listParticipantsRespRaw = await _AudioBridge.SendPluginMsg(new AudioBridgeListParticipantsReq(roomId)); + JanusMessageResp listParticipantsRespRaw = await _AudioBridge.SendPluginMsg(new AudioBridgeListParticipantsReq(roomId)).ConfigureAwait(false); AudioBridgeResp listParticipantsResp = new AudioBridgeResp(listParticipantsRespRaw); if (listParticipantsResp?.PluginRespData is null || !listParticipantsResp.PluginRespData.TryGetValue("participants", out OSD participantsNode) || @@ -177,7 +177,7 @@ namespace osWebRtcVoice if (participantId <= 0) continue; - JanusMessageResp leaveRespRaw = await _AudioBridge.SendPluginMsg(new AudioBridgeLeaveRoomReq(roomId, participantId)); + JanusMessageResp leaveRespRaw = await _AudioBridge.SendPluginMsg(new AudioBridgeLeaveRoomReq(roomId, participantId)).ConfigureAwait(false); AudioBridgeResp leaveResp = new(leaveRespRaw); if (leaveResp is not null) @@ -226,7 +226,7 @@ namespace osWebRtcVoice try { JanusMessageResp resp = await _AudioBridge.SendPluginMsg( - new AudioBridgeLeaveRoomReq(RoomId, pAttendeeSession.ParticipantId)); + new AudioBridgeLeaveRoomReq(RoomId, pAttendeeSession.ParticipantId)).ConfigureAwait(false); if (resp is null) { diff --git a/OpenSim/Addons/os-webrtc-janus/Janus/JanusSession.cs b/OpenSim/Addons/os-webrtc-janus/Janus/JanusSession.cs index ab2c1fa169..4fbc71edc9 100644 --- a/OpenSim/Addons/os-webrtc-janus/Janus/JanusSession.cs +++ b/OpenSim/Addons/os-webrtc-janus/Janus/JanusSession.cs @@ -102,7 +102,7 @@ namespace osWebRtcVoice bool ret = false; try { - JanusMessageResp resp = await SendToJanus(new CreateSessionReq()); + JanusMessageResp resp = await SendToJanus(new CreateSessionReq()).ConfigureAwait(false); if (resp is not null && resp.isSuccess) { CreateSessionResp sessionResp = new(resp); @@ -132,7 +132,7 @@ namespace osWebRtcVoice bool ret = false; try { - JanusMessageResp resp = await SendToSession(new DestroySessionReq()); + JanusMessageResp resp = await SendToSession(new DestroySessionReq()).ConfigureAwait(false); if (resp is not null && resp.isSuccess) { // Note that setting IsConnected to false will cause the long poll to exit @@ -185,11 +185,11 @@ namespace osWebRtcVoice // if the audiobridge is active, the trickle message is sent to it if (pVSession.AudioBridge is null) { - ret = await SendToJanusNoWait(new TrickleReq(pVSession, pCandidates)); + ret = await SendToJanusNoWait(new TrickleReq(pVSession, pCandidates)).ConfigureAwait(false); } else { - ret = await SendToJanusNoWait(new TrickleReq(pVSession, pCandidates), pVSession.AudioBridge.PluginUri); + ret = await SendToJanusNoWait(new TrickleReq(pVSession, pCandidates), pVSession.AudioBridge.PluginUri).ConfigureAwait(false); } return ret; } @@ -200,11 +200,11 @@ namespace osWebRtcVoice // if the audiobridge is active, the trickle message is sent to it if (pVSession.AudioBridge is null) { - ret = await SendToJanusNoWait(new TrickleReq(pVSession)); + ret = await SendToJanusNoWait(new TrickleReq(pVSession)).ConfigureAwait(false); } else { - ret = await SendToJanusNoWait(new TrickleReq(pVSession), pVSession.AudioBridge.PluginUri); + ret = await SendToJanusNoWait(new TrickleReq(pVSession), pVSession.AudioBridge.PluginUri).ConfigureAwait(false); } return ret; } @@ -286,11 +286,11 @@ namespace osWebRtcVoice reqMsg.Content = new StringContent(reqStr, System.Text.Encoding.UTF8, MediaTypeNames.Application.Json); reqMsg.Headers.TryAddWithoutValidation("Accept", "application/json"); // HttpResponseMessage response = await httpClient.SendAsync(reqMsg, _CancelTokenSource.Token); - HttpResponseMessage response = await httpClient.SendAsync(reqMsg); + HttpResponseMessage response = await httpClient.SendAsync(reqMsg).ConfigureAwait(false); if (response.IsSuccessStatusCode) { - string respStr = await response.Content.ReadAsStringAsync(); + string respStr = await response.Content.ReadAsStringAsync().ConfigureAwait(false); ret = JanusMessageResp.FromJson(respStr); if (ret.CheckReturnCode("ack")) { @@ -356,8 +356,8 @@ namespace osWebRtcVoice string reqStr = pReq.ToJson(); reqMsg.Content = new StringContent(reqStr, System.Text.Encoding.UTF8, MediaTypeNames.Application.Json); reqMsg.Headers.TryAddWithoutValidation("Accept", "application/json"); - HttpResponseMessage response = await httpClient.SendAsync(reqMsg); - string respStr = await response.Content.ReadAsStringAsync(); + HttpResponseMessage response = await httpClient.SendAsync(reqMsg).ConfigureAwait(false); + string respStr = await response.Content.ReadAsStringAsync().ConfigureAwait(false); ret = JanusMessageResp.FromJson(respStr); } catch (Exception e) @@ -399,12 +399,12 @@ namespace osWebRtcVoice // The following two are required for the WebSocket interface. They are optional for the // HTTP interface since the session and plugin handle are in the URL. // SessionId is added to the message if not already there - if (!pReq.hasSessionId && !string.IsNullOrEmpty(SessionId)) + if (!admin && !pReq.hasSessionId && !string.IsNullOrEmpty(SessionId)) { pReq.AddSessionId(SessionId); } // HandleId connects to the plugin - if (!pReq.hasHandleId && !string.IsNullOrEmpty(PluginId)) + if (!admin && !pReq.hasHandleId && !string.IsNullOrEmpty(PluginId)) { pReq.AddHandleId(PluginId); } @@ -564,7 +564,7 @@ namespace osWebRtcVoice { try { - JanusMessageResp resp = await GetFromJanus(SessionUri, 60000); + JanusMessageResp resp = await GetFromJanus(SessionUri, 60000).ConfigureAwait(false); if (resp is not null) { //_ = Task.Run(() => diff --git a/OpenSim/Addons/os-webrtc-janus/Janus/WebRtcJanusService.cs b/OpenSim/Addons/os-webrtc-janus/Janus/WebRtcJanusService.cs index 0c2eae90eb..a861f66700 100644 --- a/OpenSim/Addons/os-webrtc-janus/Janus/WebRtcJanusService.cs +++ b/OpenSim/Addons/os-webrtc-janus/Janus/WebRtcJanusService.cs @@ -439,7 +439,7 @@ namespace osWebRtcVoice { "sdpMLineIndex", candidate.ContainsKey("sdpMLineIndex") ? candidate["sdpMLineIndex"].AsLong() : 0 } } ]; - resp = await viewerSession.Session.TrickleCandidates(viewerSession, candidatesArray); + resp = await viewerSession.Session.TrickleCandidates(viewerSession, candidatesArray).ConfigureAwait(false); _log.Debug($"{LogHeader} VoiceSignalingRequest: single candidate"); } } @@ -752,7 +752,7 @@ namespace osWebRtcVoice if (_ViewerSession is null || _ViewerSession.Session is null) return; - JanusMessageResp resp = await _ViewerSession.Session.SendToJanusAdmin(new JanusMessageReq("list_sessions")); + JanusMessageResp resp = await _ViewerSession.Session.SendToJanusAdmin(new JanusMessageReq("list_sessions")).ConfigureAwait(false); if (resp is null) { WriteOut("Failed to get sessions (no response)"); @@ -816,7 +816,7 @@ namespace osWebRtcVoice } JanusAudioBridge ab = _ViewerSession.AudioBridge; - AudioBridgeResp roomsResp = await ab.SendAudioBridgeMsg(new AudioBridgeListRoomsReq()); + AudioBridgeResp roomsResp = await ab.SendAudioBridgeMsg(new AudioBridgeListRoomsReq()).ConfigureAwait(false); if (roomsResp is null || !roomsResp.isSuccess || roomsResp.PluginRespData is null) { WriteOut("Failed to get room list"); @@ -853,7 +853,7 @@ namespace osWebRtcVoice WriteOut(" Spatial : {0}", GetMapString(foundRoom, "spatial_audio")); WriteOut(" Recording : {0}", GetMapString(foundRoom, "record")); - AudioBridgeResp participantResp = await ab.SendAudioBridgeMsg(new AudioBridgeListParticipantsReq(roomId)); + AudioBridgeResp participantResp = await ab.SendAudioBridgeMsg(new AudioBridgeListParticipantsReq(roomId)).ConfigureAwait(false); if (participantResp is null || participantResp.PluginRespData is null || !participantResp.PluginRespData.TryGetValue("participants", out OSD participantsNode) || participantsNode is not OSDArray participants) diff --git a/bin/OpenMetaverse.Rendering.Meshmerizer.dll b/bin/OpenMetaverse.Rendering.Meshmerizer.dll index 2a3e7ed3ef..60db9179b7 100755 Binary files a/bin/OpenMetaverse.Rendering.Meshmerizer.dll and b/bin/OpenMetaverse.Rendering.Meshmerizer.dll differ diff --git a/bin/OpenMetaverse.StructuredData.dll b/bin/OpenMetaverse.StructuredData.dll index 51f346e836..85add258ab 100755 Binary files a/bin/OpenMetaverse.StructuredData.dll and b/bin/OpenMetaverse.StructuredData.dll differ diff --git a/bin/OpenMetaverse.dll b/bin/OpenMetaverse.dll index 375ef4da60..265a9fa775 100755 Binary files a/bin/OpenMetaverse.dll and b/bin/OpenMetaverse.dll differ