diff --git a/Desktop.Core/Desktop.Core.csproj b/Desktop.Core/Desktop.Core.csproj index 100253e3..942e31c0 100644 --- a/Desktop.Core/Desktop.Core.csproj +++ b/Desktop.Core/Desktop.Core.csproj @@ -46,8 +46,7 @@ - - + diff --git a/Desktop.Core/Services/CasterSocket.cs b/Desktop.Core/Services/CasterSocket.cs index eb67c609..d0eb4d02 100644 --- a/Desktop.Core/Services/CasterSocket.cs +++ b/Desktop.Core/Services/CasterSocket.cs @@ -28,7 +28,7 @@ namespace Remotely.Desktop.Core.Services Task SendCtrlAltDelToAgent(); Task SendDeviceInfo(string serviceID, string machineName, string deviceID); Task SendDtoToViewer(T baseDto, string viewerId); - Task SendIceCandidateToBrowser(string candidateJson, string viewerConnectionID); + Task SendIceCandidateToBrowser(string candidate, int sdpMlineIndex, string sdpMid, string viewerConnectionID); Task SendMessageToViewer(string viewerID, string message); Task SendRtcOfferToBrowser(string sdp, string viewerID, IceServerModel[] iceServers); Task SendViewerConnected(string viewerConnectionId); @@ -164,9 +164,9 @@ namespace Remotely.Desktop.Core.Services var serializedDto = MessagePack.MessagePackSerializer.Serialize(baseDto); return Connection.SendAsync("SendDtoToBrowser", serializedDto, viewerId); } - public async Task SendIceCandidateToBrowser(string candidateJson, string viewerConnectionID) + public async Task SendIceCandidateToBrowser(string candidate, int sdpMlineIndex, string sdpMid, string viewerConnectionID) { - await Connection.SendAsync("SendIceCandidateToBrowser", candidateJson, viewerConnectionID); + await Connection.SendAsync("SendIceCandidateToBrowser", candidate, sdpMlineIndex, sdpMid, viewerConnectionID); } public async Task SendRtcOfferToBrowser(string sdp, string viewerID, IceServerModel[] iceServers) @@ -237,13 +237,13 @@ namespace Remotely.Desktop.Core.Services }); - Connection.On("ReceiveIceCandidate", (string candidateJson, string viewerID) => + Connection.On("ReceiveIceCandidate", (string candidate, int sdpMlineIndex, string sdpMid, string viewerID) => { try { if (conductor.Viewers.TryGetValue(viewerID, out var viewer)) { - viewer.RtcSession.AddIceCandidate(candidateJson); + viewer.RtcSession.AddIceCandidate(sdpMid, sdpMlineIndex, candidate); } } catch (Exception ex) diff --git a/Desktop.Core/Services/DtoMessageHandler.cs b/Desktop.Core/Services/DtoMessageHandler.cs index e5f796e9..1be60778 100644 --- a/Desktop.Core/Services/DtoMessageHandler.cs +++ b/Desktop.Core/Services/DtoMessageHandler.cs @@ -97,6 +97,9 @@ namespace Remotely.Desktop.Core.Services case BaseDtoType.ToggleBlockInput: ToggleBlockInput(message); break; + case BaseDtoType.ToggleWebRtcVideo: + ToggleWebRtcVideo(message, viewer); + break; case BaseDtoType.ClipboardTransfer: await ClipboardTransfer(message); break; @@ -247,5 +250,11 @@ namespace Remotely.Desktop.Core.Services var dto = MessagePackSerializer.Deserialize(message); KeyboardMouseInput.ToggleBlockInput(dto.ToggleOn); } + + private void ToggleWebRtcVideo(byte[] message, Viewer viewer) + { + var dto = MessagePackSerializer.Deserialize(message); + viewer.ToggleWebRtcVideo(dto.ToggleOn); + } } } diff --git a/Desktop.Core/Services/ScreenCaster.cs b/Desktop.Core/Services/ScreenCaster.cs index 72cde6e8..bbfb5a89 100644 --- a/Desktop.Core/Services/ScreenCaster.cs +++ b/Desktop.Core/Services/ScreenCaster.cs @@ -106,7 +106,7 @@ namespace Remotely.Desktop.Core.Services } - if (screenCastRequest.UseWebRtc) + if (EnvironmentHelper.IsWindows && screenCastRequest.UseWebRtc) { await viewer.InitializeWebRtc(); } @@ -118,6 +118,11 @@ namespace Remotely.Desktop.Core.Services { try { + if (viewer.IsUsingWebRtcVideo) + { + Thread.Sleep(100); + continue; + } if (viewer.IsStalled) { // Viewer isn't responding. Abort sending. diff --git a/Desktop.Core/Services/Viewer.cs b/Desktop.Core/Services/Viewer.cs index 6b9ffa4f..815a9512 100644 --- a/Desktop.Core/Services/Viewer.cs +++ b/Desktop.Core/Services/Viewer.cs @@ -60,6 +60,14 @@ namespace Remotely.Desktop.Core.Services } } + public bool IsUsingWebRtcVideo + { + get + { + return RtcSession?.IsPeerConnected == true && RtcSession?.IsVideoTrackConnected == true; + } + } + public string Name { get; set; } public double AverageBytesPerSecond { get; set; } @@ -102,17 +110,11 @@ namespace Remotely.Desktop.Core.Services RtcSession.LocalSdpReady += async (sender, sdp) => { - await CasterSocket.SendRtcOfferToBrowser(sdp.sdp, ViewerConnectionID, iceServers); + await CasterSocket.SendRtcOfferToBrowser(sdp.Content, ViewerConnectionID, iceServers); }; RtcSession.IceCandidateReady += async (sender, candidate) => { - if (candidate is null) - { - Logger.Write("Candidate is null. Aborting send."); - return; - } - - await CasterSocket.SendIceCandidateToBrowser(candidate.toJSON(), ViewerConnectionID); + await CasterSocket.SendIceCandidateToBrowser(candidate.Content, candidate.SdpMlineIndex, candidate.SdpMid, ViewerConnectionID); }; await RtcSession.Init(iceServers); @@ -305,6 +307,11 @@ namespace Remotely.Desktop.Core.Services TimeSpan.FromSeconds(10)); } + public void ToggleWebRtcVideo(bool toggleOn) + { + RtcSession.ToggleWebRtcVideo(toggleOn); + } + private async void AudioCapturer_AudioSampleReady(object sender, byte[] sample) { await SendAudioSample(sample); diff --git a/Desktop.Core/Services/WebRtcSession.cs b/Desktop.Core/Services/WebRtcSession.cs index c7c395b5..26a2fd1a 100644 --- a/Desktop.Core/Services/WebRtcSession.cs +++ b/Desktop.Core/Services/WebRtcSession.cs @@ -1,4 +1,5 @@ using MessagePack; +using Microsoft.MixedReality.WebRTC; using Remotely.Shared.Utilities; using Remotely.Shared.Models; using Remotely.Shared.Models.RemoteControlDtos; @@ -6,59 +7,66 @@ using System; using System.Drawing; using System.Linq; using System.Threading.Tasks; -using SIPSorcery.Net; -using System.Timers; -using System.Collections.Generic; -using System.Text.Json; +using System.Threading; namespace Remotely.Desktop.Core.Services { public class WebRtcSession : IDisposable { - public WebRtcSession(Viewer viewer, IDtoMessageHandler rtcMessageHandler) + public WebRtcSession(Services.Viewer viewer, IDtoMessageHandler rtcMessageHandler) { Viewer = viewer; RtcMessageHandler = rtcMessageHandler; } + public event EventHandler IceCandidateReady; + public event EventHandler LocalSdpReady; - public event EventHandler IceCandidateReady; - - public event EventHandler LocalSdpReady; - - public bool IsDataChannelOpen => CaptureChannel?.readyState == RTCDataChannelState.open; - public bool IsPeerConnected => PeerSession?.connectionState == RTCPeerConnectionState.connected; - - private RTCDataChannel CaptureChannel { get; set; } - private IceServerModel[] IceServers { get; set; } - private RTCPeerConnection PeerSession { get; set; } - private IDtoMessageHandler RtcMessageHandler { get; } - private Viewer Viewer { get; } - - public void AddIceCandidate(string candidateJson) + public ulong CurrentBuffer { get; private set; } + public bool IsDataChannelOpen => CaptureChannel?.State == DataChannel.ChannelState.Open; + public bool IsPeerConnected => PeerSession?.IsConnected == true; + public bool IsVideoTrackConnected { - if (RTCIceCandidateInit.TryParse(candidateJson, out var rtcCandidate)) + get { - PeerSession.addIceCandidate(rtcCandidate); + return Transceiver?.LocalVideoTrack?.Enabled == true; } - else + } + + private DataChannel CaptureChannel { get; set; } + private IceServerModel[] IceServers { get; set; } + private PeerConnection PeerSession { get; set; } + private IDtoMessageHandler RtcMessageHandler { get; } + private Transceiver Transceiver { get; set; } + private ExternalVideoTrackSource VideoSource { get; set; } + private Services.Viewer Viewer { get; } + public void AddIceCandidate(string sdpMid, int sdpMlineIndex, string candidate) + { + PeerSession.AddIceCandidate(new IceCandidate() { - Logger.Write("End of ICE candidates. Adding null candidate."); - PeerSession.addIceCandidate(rtcCandidate); - } + Content = candidate, + SdpMid = sdpMid, + SdpMlineIndex = sdpMlineIndex + }); } public void Dispose() { try { - PeerSession?.DataChannels?.Clear(); - CaptureChannel?.close(); + // Unable to exit process until DataChannel is removed/disposed, + // and this throws internally (at least in 2.0 version). + PeerSession?.RemoveDataChannel(CaptureChannel); } catch { } - - PeerSession?.Dispose(); + PeerSession.Transceivers.RemoveAll(x => true); + Disposer.TryDisposeAll(new IDisposable[] + { + Transceiver?.LocalVideoTrack, + VideoSource, + PeerSession + }); GC.SuppressFinalize(this); } @@ -68,111 +76,171 @@ namespace Remotely.Desktop.Core.Services IceServers = iceServers; - var config = new RTCConfiguration() - { - iceServers = iceServers.Select(x => new RTCIceServer() - { - credential = x.Credential, - credentialType = RTCIceCredentialType.password, - urls = x.Urls, - username = x.Username + PeerSession = new PeerConnection(); - }).ToList() + var iceList = IceServers.Select(x => new IceServer() + { + Urls = { x.Url }, + TurnPassword = x.TurnPassword ?? string.Empty, + TurnUserName = x.TurnUsername ?? string.Empty + }).ToList(); + + var config = new PeerConnectionConfiguration() + { + IceServers = iceList }; - PeerSession = new RTCPeerConnection(config); + await PeerSession.InitializeAsync(config); - PeerSession.oniceconnectionstatechange += PeerSession_oniceconnectionstatechange; - PeerSession.onicecandidate += PeerSession_onicecandidate; + PeerSession.LocalSdpReadytoSend += PeerSession_LocalSdpReadytoSend; + PeerSession.Connected += PeerConnection_Connected; + PeerSession.IceStateChanged += PeerConnection_IceStateChanged; + PeerSession.IceCandidateReadytoSend += PeerSession_IceCandidateReadytoSend; - var dataChannelInit = new RTCDataChannelInit() - { - ordered = true - }; - CaptureChannel = await PeerSession.createDataChannel("RemoteControl", dataChannelInit); + CaptureChannel = await PeerSession.AddDataChannelAsync("ScreenCapture", true, true); + CaptureChannel.BufferingChanged += DataChannel_BufferingChanged; + CaptureChannel.MessageReceived += CaptureChannel_MessageReceived; + CaptureChannel.StateChanged += CaptureChannel_StateChanged; - CaptureChannel.onmessage += CaptureChannel_onmessage; ; - CaptureChannel.onclose += CaptureChannel_onclose; - CaptureChannel.onopen += CaptureChannel_onopen; - CaptureChannel.onerror += CaptureChannel_onerror; + VideoSource = ExternalVideoTrackSource.CreateFromArgb32Callback(GetCaptureFrame); + Transceiver = PeerSession.AddTransceiver(MediaKind.Video); - var offer = PeerSession.createOffer(new RTCOfferOptions()); - LocalSdpReady?.Invoke(this, offer); + PeerSession.CreateOffer(); } - - public Task SendDto(T dto) where T : BaseDto { - CaptureChannel.send(MessagePackSerializer.Serialize(dto)); - - TaskHelper.DelayUntil(() => CaptureChannel.bufferedAmount < 64_000, TimeSpan.FromSeconds(5)); - - return Task.CompletedTask; + return Task.Run(() => + { + CaptureChannel.SendMessage(MessagePackSerializer.Serialize(dto)); + while (CurrentBuffer > 64_000) + { + Thread.Sleep(10); + } + }); } - public Task SetRemoteDescription(string type, string sdp) + public async Task SetRemoteDescription(string type, string sdp) { - if (!Enum.TryParse(type, true, out var sdpMessageType)) + if (!Enum.TryParse(type, true, out var sdpMessageType)) { Logger.Write("Unable to parse remote WebRTC description type."); - return Task.CompletedTask; + return; } - PeerSession.setRemoteDescription(new RTCSessionDescriptionInit() + await PeerSession.SetRemoteDescriptionAsync(new SdpMessage() { - type = sdpMessageType, - sdp = sdp + Content = sdp, + Type = sdpMessageType }); - - if (sdpMessageType == RTCSdpType.offer) + if (sdpMessageType == SdpMessageType.Offer) { - PeerSession.createAnswer(new RTCAnswerOptions()); + PeerSession.CreateAnswer(); + } + } + + public void ToggleWebRtcVideo(bool toggleOn) + { + if (Transceiver?.LocalVideoTrack != null) + { + Transceiver.LocalVideoTrack.Dispose(); + Transceiver.LocalVideoTrack = null; } - return Task.CompletedTask; + if (toggleOn) + { + Transceiver.LocalVideoTrack = LocalVideoTrack.CreateFromSource(VideoSource, new LocalVideoTrackInitConfig() + { + trackName = "ScreenCapture" + }); + } } - private async void CaptureChannel_onmessage(RTCDataChannel dc, DataChannelPayloadProtocols protocol, byte[] data) + private async void CaptureChannel_MessageReceived(byte[] obj) { - await RtcMessageHandler.ParseMessage(Viewer, data); + await RtcMessageHandler.ParseMessage(Viewer, obj); } - - private async void CaptureChannel_onerror(string obj) + private async void CaptureChannel_StateChanged() { // Clear the queue when WebRTC state changes. Viewer.PendingSentFrames.Clear(); - Logger.Write($"DataChannel error: {obj}"); - await Init(IceServers); + Logger.Write($"DataChannel state changed. New State: {CaptureChannel.State}"); + if (CaptureChannel.State == DataChannel.ChannelState.Closed) + { + await Init(IceServers); + } } - private void CaptureChannel_onopen() + private void DataChannel_BufferingChanged(ulong previous, ulong current, ulong limit) { - // Clear the queue when WebRTC state changes. - Viewer.PendingSentFrames.Clear(); - Logger.Write("DataChannel opened."); + CurrentBuffer = current; } - private async void CaptureChannel_onclose() + private void GetCaptureFrame(in FrameRequest request) { - // Clear the queue when WebRTC state changes. - Viewer.PendingSentFrames.Clear(); - Logger.Write("DataChannel closed."); - await Init(IceServers); + try + { + if (!IsVideoTrackConnected) + { + return; + } + + using var currentFrame = Viewer.Capturer.GetNextFrame(); + if (currentFrame == null) + { + return; + } + + var bitmapData = currentFrame.LockBits( + new Rectangle(Point.Empty, Viewer.Capturer.CurrentScreenBounds.Size), + System.Drawing.Imaging.ImageLockMode.ReadOnly, + System.Drawing.Imaging.PixelFormat.Format32bppArgb); + + try + { + var frame = new Argb32VideoFrame() + { + data = bitmapData.Scan0, + height = (uint)currentFrame.Height, + width = (uint)currentFrame.Width, + stride = bitmapData.Stride + }; + request.CompleteRequest(in frame); + } + finally + { + currentFrame.UnlockBits(bitmapData); + } + } + catch (Exception ex) + { + Logger.Write(ex); + } + } - private void PeerSession_oniceconnectionstatechange(RTCIceConnectionState newState) + private void PeerConnection_Connected() + { + Logger.Write("PeerConnection connected."); + } + + private void PeerConnection_IceStateChanged(IceConnectionState newState) { // Clear the queue when WebRTC state changes. Viewer.PendingSentFrames.Clear(); Logger.Write($"Ice state changed to {newState}."); } - private void PeerSession_onicecandidate(RTCIceCandidate candidate) + private void PeerSession_IceCandidateReadytoSend(IceCandidate candidate) { Logger.Write("Ice candidate ready to send."); IceCandidateReady?.Invoke(this, candidate); } + private void PeerSession_LocalSdpReadytoSend(SdpMessage message) + { + Logger.Write($"Local SDP ready."); + LocalSdpReady?.Invoke(this, message); + } } } diff --git a/Desktop.Win/Desktop.Win.csproj b/Desktop.Win/Desktop.Win.csproj index da215d70..8fef046d 100644 --- a/Desktop.Win/Desktop.Win.csproj +++ b/Desktop.Win/Desktop.Win.csproj @@ -34,6 +34,7 @@ + diff --git a/Server/Hubs/CasterHub.cs b/Server/Hubs/CasterHub.cs index 6c5c5fdf..f39764ed 100644 --- a/Server/Hubs/CasterHub.cs +++ b/Server/Hubs/CasterHub.cs @@ -168,11 +168,11 @@ namespace Remotely.Server.Hubs return ViewerHubContext.Clients.Client(viewerId).SendAsync("SendDtoToBrowser", dto); } - public Task SendIceCandidateToBrowser(string candidateJson, string viewerID) + public Task SendIceCandidateToBrowser(string candidate, int sdpMlineIndex, string sdpMid, string viewerID) { if (_appConfig.UseWebRtc) { - return ViewerHubContext.Clients.Client(viewerID).SendAsync("ReceiveIceCandidate", candidateJson); + return ViewerHubContext.Clients.Client(viewerID).SendAsync("ReceiveIceCandidate", candidate, sdpMlineIndex, sdpMid); } return Task.CompletedTask; diff --git a/Server/Hubs/ViewerHub.cs b/Server/Hubs/ViewerHub.cs index f1694770..5ff1fb0f 100644 --- a/Server/Hubs/ViewerHub.cs +++ b/Server/Hubs/ViewerHub.cs @@ -122,9 +122,9 @@ namespace Remotely.Server.Hubs return base.OnDisconnectedAsync(exception); } - public Task SendIceCandidateToAgent(string candidateJson) + public Task SendIceCandidateToAgent(string candidate, int sdpMlineIndex, string sdpMid) { - return CasterHubContext.Clients.Client(ScreenCasterID).SendAsync("ReceiveIceCandidate", candidateJson, Context.ConnectionId); + return CasterHubContext.Clients.Client(ScreenCasterID).SendAsync("ReceiveIceCandidate", candidate, sdpMlineIndex, sdpMid, Context.ConnectionId); } public Task SendRtcAnswerToAgent(string sdp) diff --git a/Server/Pages/RemoteControl.cshtml b/Server/Pages/RemoteControl.cshtml index 8878c3aa..e9a9ab67 100644 --- a/Server/Pages/RemoteControl.cshtml +++ b/Server/Pages/RemoteControl.cshtml @@ -134,6 +134,10 @@
+ + diff --git a/Server/Services/ApplicationConfig.cs b/Server/Services/ApplicationConfig.cs index 7ced7fc1..cf454bb4 100644 --- a/Server/Services/ApplicationConfig.cs +++ b/Server/Services/ApplicationConfig.cs @@ -40,8 +40,8 @@ namespace Remotely.Server.Services { private readonly IceServerModel[] fallbackIceServers = new IceServerModel[] { - new IceServerModel() { Urls = "stun:stun.l.google.com:19302"}, - new IceServerModel() { Urls = "stun:stun4.l.google.com:19302"} + new IceServerModel() { Url = "stun:stun.l.google.com:19302"}, + new IceServerModel() { Url = "stun:stun4.l.google.com:19302"} }; public ApplicationConfig(IConfiguration config) diff --git a/Server/appsettings.json b/Server/appsettings.json index 98e3250f..dee994ec 100644 --- a/Server/appsettings.json +++ b/Server/appsettings.json @@ -18,14 +18,14 @@ "EnforceAttendedAccess": false, "IceServers": [ { - "Urls": "stun:stun.l.google.com:19302", - "Credential": null, - "Username": null + "Url": "stun:stun.l.google.com:19302", + "TurnPassword": "", + "TurnUsername": "" }, { - "Urls": "stun:stun4.l.google.com:19302", - "Credential": null, - "Username": null + "Url": "stun:stun4.l.google.com:19302", + "TurnPassword": "", + "TurnUsername": "" } ], "KnownProxies": [], diff --git a/Server/wwwroot/src/RemoteControl/Enums/BaseDtoType.js b/Server/wwwroot/src/RemoteControl/Enums/BaseDtoType.js index 3cf7e0de..2fdfb570 100644 --- a/Server/wwwroot/src/RemoteControl/Enums/BaseDtoType.js +++ b/Server/wwwroot/src/RemoteControl/Enums/BaseDtoType.js @@ -24,6 +24,7 @@ export var BaseDtoType; BaseDtoType[BaseDtoType["WindowsSessions"] = 23] = "WindowsSessions"; BaseDtoType[BaseDtoType["SetKeyStatesUp"] = 24] = "SetKeyStatesUp"; BaseDtoType[BaseDtoType["FrameReceived"] = 25] = "FrameReceived"; + BaseDtoType[BaseDtoType["ToggleWebRtcVideo"] = 26] = "ToggleWebRtcVideo"; BaseDtoType[BaseDtoType["OpenFileTransferWindow"] = 27] = "OpenFileTransferWindow"; })(BaseDtoType || (BaseDtoType = {})); //# sourceMappingURL=BaseDtoType.js.map \ No newline at end of file diff --git a/Server/wwwroot/src/RemoteControl/Enums/BaseDtoType.js.map b/Server/wwwroot/src/RemoteControl/Enums/BaseDtoType.js.map index 8f5c0196..c7076b1e 100644 --- a/Server/wwwroot/src/RemoteControl/Enums/BaseDtoType.js.map +++ b/Server/wwwroot/src/RemoteControl/Enums/BaseDtoType.js.map @@ -1 +1 @@ -{"version":3,"file":"BaseDtoType.js","sourceRoot":"","sources":["BaseDtoType.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,WA0BX;AA1BD,WAAY,WAAW;IACnB,6DAAgB,CAAA;IAChB,yDAAc,CAAA;IACd,yDAAc,CAAA;IACd,2DAAe,CAAA;IACf,+DAAiB,CAAA;IACjB,2DAAe,CAAA;IACf,6DAAgB,CAAA;IAChB,6DAAgB,CAAA;IAChB,uDAAa,CAAA;IACb,uDAAa,CAAA;IACb,oDAAY,CAAA;IACZ,4CAAQ,CAAA;IACR,0DAAe,CAAA;IACf,oDAAY,CAAA;IACZ,gDAAU,CAAA;IACV,0DAAe,CAAA;IACf,4DAAgB,CAAA;IAChB,sEAAqB,CAAA;IACrB,wEAAsB,CAAA;IACtB,sDAAa,CAAA;IACb,8CAAS,CAAA;IACT,oEAAoB,CAAA;IACpB,kEAAmB,CAAA;IACnB,gEAAkB,CAAA;IAClB,kFAA2B,CAAA;AAC/B,CAAC,EA1BW,WAAW,KAAX,WAAW,QA0BtB"} \ No newline at end of file +{"version":3,"file":"BaseDtoType.js","sourceRoot":"","sources":["BaseDtoType.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,WA2BX;AA3BD,WAAY,WAAW;IACnB,6DAAgB,CAAA;IAChB,yDAAc,CAAA;IACd,yDAAc,CAAA;IACd,2DAAe,CAAA;IACf,+DAAiB,CAAA;IACjB,2DAAe,CAAA;IACf,6DAAgB,CAAA;IAChB,6DAAgB,CAAA;IAChB,uDAAa,CAAA;IACb,uDAAa,CAAA;IACb,oDAAY,CAAA;IACZ,4CAAQ,CAAA;IACR,0DAAe,CAAA;IACf,oDAAY,CAAA;IACZ,gDAAU,CAAA;IACV,0DAAe,CAAA;IACf,4DAAgB,CAAA;IAChB,sEAAqB,CAAA;IACrB,wEAAsB,CAAA;IACtB,sDAAa,CAAA;IACb,8CAAS,CAAA;IACT,oEAAoB,CAAA;IACpB,kEAAmB,CAAA;IACnB,gEAAkB,CAAA;IAClB,wEAAsB,CAAA;IACtB,kFAA2B,CAAA;AAC/B,CAAC,EA3BW,WAAW,KAAX,WAAW,QA2BtB"} \ No newline at end of file diff --git a/Server/wwwroot/src/RemoteControl/Enums/BaseDtoType.ts b/Server/wwwroot/src/RemoteControl/Enums/BaseDtoType.ts index 68f7b050..808911ce 100644 --- a/Server/wwwroot/src/RemoteControl/Enums/BaseDtoType.ts +++ b/Server/wwwroot/src/RemoteControl/Enums/BaseDtoType.ts @@ -23,5 +23,6 @@ WindowsSessions = 23, SetKeyStatesUp = 24, FrameReceived = 25, + ToggleWebRtcVideo = 26, OpenFileTransferWindow = 27 } \ No newline at end of file diff --git a/Server/wwwroot/src/RemoteControl/InputEventHandlers.js b/Server/wwwroot/src/RemoteControl/InputEventHandlers.js index 51777d04..d7d7fdc5 100644 --- a/Server/wwwroot/src/RemoteControl/InputEventHandlers.js +++ b/Server/wwwroot/src/RemoteControl/InputEventHandlers.js @@ -1,10 +1,11 @@ -import { AudioButton, ChangeScreenButton, HorizontalBars, ScreenSelectBar, ClipboardTransferButton, ClipboardTransferBar, TypeClipboardButton, ConnectButton, CtrlAltDelButton, DisconnectButton, FileTransferButton, FileTransferInput, FitToScreenButton, ScreenViewer, BlockInputButton, InviteButton, KeyboardButton, TouchKeyboardTextArea, MenuFrame, MenuButton, ScreenViewerWrapper, WindowsSessionSelect, RecordSessionButton, DownloadRecordingButton, VideoScreenViewer, FileTransferBar, FileUploadButtton, FileDownloadButton, ViewOnlyButton, FullScreenButton } from "./UI.js"; +import { AudioButton, ChangeScreenButton, HorizontalBars, ScreenSelectBar, ClipboardTransferButton, ClipboardTransferBar, TypeClipboardButton, ConnectButton, CtrlAltDelButton, DisconnectButton, FileTransferButton, FileTransferInput, FitToScreenButton, ScreenViewer, BlockInputButton, InviteButton, KeyboardButton, TouchKeyboardTextArea, MenuFrame, MenuButton, ScreenViewerWrapper, WindowsSessionSelect, RecordSessionButton, DownloadRecordingButton, VideoScreenViewer, StreamVideoButton, FileTransferBar, FileUploadButtton, FileDownloadButton, UpdateStreamingToggled, ViewOnlyButton, FullScreenButton } from "./UI.js"; import { Sound } from "./Sound.js"; import { ViewerApp } from "./App.js"; import { UploadFiles } from "./FileTransferService.js"; import { RemoteControlMode } from "./Enums/RemoteControlMode.js"; import { GetDistanceBetween } from "./Utilities.js"; import { ShowMessage } from "./UI.js"; +import { SetSettings } from "./SettingsService.js"; var lastPointerMove = Date.now(); var isDragging; var currentPointerDevice; @@ -173,6 +174,13 @@ export function ApplyInputHandlers() { ev.stopPropagation(); MenuButton.style.top = `${ev.touches[0].clientY}px`; }); + StreamVideoButton.addEventListener("click", (ev) => { + var toggleOn = !StreamVideoButton.classList.contains("toggled"); + ViewerApp.Settings.streamModeEnabled = toggleOn; + SetSettings(ViewerApp.Settings); + UpdateStreamingToggled(toggleOn); + ViewerApp.MessageSender.SendToggleWebRtcVideo(toggleOn); + }); [ScreenViewer, VideoScreenViewer].forEach(viewer => { viewer.addEventListener("pointermove", function (e) { currentPointerDevice = e.pointerType; diff --git a/Server/wwwroot/src/RemoteControl/InputEventHandlers.js.map b/Server/wwwroot/src/RemoteControl/InputEventHandlers.js.map index 9bc0fe20..dddeb8c6 100644 --- a/Server/wwwroot/src/RemoteControl/InputEventHandlers.js.map +++ b/Server/wwwroot/src/RemoteControl/InputEventHandlers.js.map @@ -1 +1 @@ -{"version":3,"file":"InputEventHandlers.js","sourceRoot":"","sources":["InputEventHandlers.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"InputEventHandlers.js","sourceRoot":"","sources":["InputEventHandlers.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/Server/wwwroot/src/RemoteControl/InputEventHandlers.ts b/Server/wwwroot/src/RemoteControl/InputEventHandlers.ts index 35aad20a..e00804f0 100644 --- a/Server/wwwroot/src/RemoteControl/InputEventHandlers.ts +++ b/Server/wwwroot/src/RemoteControl/InputEventHandlers.ts @@ -24,9 +24,11 @@ RecordSessionButton, DownloadRecordingButton, VideoScreenViewer, + StreamVideoButton, FileTransferBar, FileUploadButtton, FileDownloadButton, + UpdateStreamingToggled, ViewOnlyButton, FullScreenButton } from "./UI.js"; @@ -213,6 +215,15 @@ export function ApplyInputHandlers() { ev.stopPropagation(); MenuButton.style.top = `${ev.touches[0].clientY}px`; }); + StreamVideoButton.addEventListener("click", (ev) => { + var toggleOn = !StreamVideoButton.classList.contains("toggled"); + + ViewerApp.Settings.streamModeEnabled = toggleOn; + SetSettings(ViewerApp.Settings); + + UpdateStreamingToggled(toggleOn); + ViewerApp.MessageSender.SendToggleWebRtcVideo(toggleOn); + }); [ ScreenViewer, VideoScreenViewer ].forEach(viewer => { viewer.addEventListener("pointermove", function (e: PointerEvent) { diff --git a/Server/wwwroot/src/RemoteControl/Interfaces/Dtos.js b/Server/wwwroot/src/RemoteControl/Interfaces/Dtos.js index 55caf2dc..430718f8 100644 --- a/Server/wwwroot/src/RemoteControl/Interfaces/Dtos.js +++ b/Server/wwwroot/src/RemoteControl/Interfaces/Dtos.js @@ -99,6 +99,12 @@ export class ToggleBlockInputDto { this.ToggleOn = toggleOn; } } +export class ToggleWebRtcVideoDto { + constructor(toggleOn) { + this.DtoType = BaseDtoType.ToggleWebRtcVideo; + this.ToggleOn = toggleOn; + } +} export class WindowsSessionsDto { constructor() { this.DtoType = BaseDtoType.WindowsSessions; diff --git a/Server/wwwroot/src/RemoteControl/Interfaces/Dtos.js.map b/Server/wwwroot/src/RemoteControl/Interfaces/Dtos.js.map index 480e80fa..4f705f29 100644 --- a/Server/wwwroot/src/RemoteControl/Interfaces/Dtos.js.map +++ b/Server/wwwroot/src/RemoteControl/Interfaces/Dtos.js.map @@ -1 +1 @@ -{"version":3,"file":"Dtos.js","sourceRoot":"","sources":["Dtos.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAsBtD,MAAM,OAAO,oBAAoB;IAC7B,YAAY,IAAY,EAAE,QAAgB;QAO1C,YAAO,GAAgB,WAAW,CAAC,iBAAiB,CAAC;QANjD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;CAKJ;AAGD,MAAM,OAAO,aAAa;IAA1B;QACI,YAAO,GAAgB,WAAW,CAAC,UAAU,CAAC;IAClD,CAAC;CAAA;AASD,MAAM,OAAO,OAAO;IAChB,YAAY,MAAkB,EAC1B,QAAgB,EAChB,SAAiB,EACjB,SAAkB,EAClB,WAAoB;QAexB,YAAO,GAAgB,WAAW,CAAC,IAAI,CAAC;QAbpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;CASJ;AAED,MAAM,OAAO,UAAU;IACnB,YAAY,IAAiB;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACxB,CAAC;CAEJ;AAED,MAAM,OAAO,UAAU;IACnB,YAAY,GAAW;QAKvB,YAAO,GAAgB,WAAW,CAAC,OAAO,CAAC;QAJvC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC;CAIJ;AAED,MAAM,OAAO,WAAW;IACpB,YAAY,GAAW;QAKvB,YAAO,GAAgB,WAAW,CAAC,QAAQ,CAAC;QAJxC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC;CAIJ;AAED,MAAM,OAAO,QAAQ;IACjB,YAAY,GAAW;QAKvB,YAAO,GAAgB,WAAW,CAAC,KAAK,CAAC;QAJrC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC;CAIJ;AAMD,MAAM,OAAO,YAAY;IACrB,YAAY,MAAc,EAAE,QAAgB,EAAE,QAAgB;QAS9D,YAAO,GAAgB,WAAW,CAAC,SAAS,CAAC;QARzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;CAMJ;AAED,MAAM,OAAO,YAAY;IACrB,YAAY,QAAgB,EAAE,QAAgB;QAO9C,YAAO,GAAgB,WAAW,CAAC,SAAS,CAAC;QANzC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;CAKJ;AAED,MAAM,OAAO,UAAU;IACnB,YAAY,MAAc,EAAE,QAAgB,EAAE,QAAgB;QAS9D,YAAO,GAAgB,WAAW,CAAC,OAAO,CAAC;QARvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;CAMJ;AAED,MAAM,OAAO,aAAa;IACtB,YAAY,MAAc,EAAE,MAAc;QAO1C,YAAO,GAAgB,WAAW,CAAC,UAAU,CAAC;QAN1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;CAKJ;AAYD,MAAM,OAAO,eAAe;IACxB,YAAY,WAAmB;QAK/B,YAAO,GAAgB,WAAW,CAAC,YAAY,CAAC;QAJ5C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;CAIJ;AAED,MAAM,OAAO,MAAM;IACf,YAAY,QAAgB,EAAE,QAAgB;QAO9C,YAAO,GAAgB,WAAW,CAAC,GAAG,CAAC;QANnC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;CAKJ;AAED,MAAM,OAAO,cAAc;IACvB,YAAY,QAAiB;QAK7B,YAAO,GAAgB,WAAW,CAAC,WAAW,CAAC;QAJ3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;CAIJ;AAED,MAAM,OAAO,mBAAmB;IAC5B,YAAY,QAAiB;QAK7B,YAAO,GAAgB,WAAW,CAAC,gBAAgB,CAAC;QAJhD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;CAIJ;AAED,MAAM,OAAO,kBAAkB;IAA/B;QAGI,YAAO,GAAgB,WAAW,CAAC,eAAe,CAAC;IACvD,CAAC;CAAA"} \ No newline at end of file +{"version":3,"file":"Dtos.js","sourceRoot":"","sources":["Dtos.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/Server/wwwroot/src/RemoteControl/Interfaces/Dtos.ts b/Server/wwwroot/src/RemoteControl/Interfaces/Dtos.ts index 83d30f78..2167bf53 100644 --- a/Server/wwwroot/src/RemoteControl/Interfaces/Dtos.ts +++ b/Server/wwwroot/src/RemoteControl/Interfaces/Dtos.ts @@ -201,6 +201,16 @@ export class ToggleBlockInputDto implements BaseDto { DtoType: BaseDtoType = BaseDtoType.ToggleBlockInput; } +export class ToggleWebRtcVideoDto implements BaseDto { + constructor(toggleOn: boolean) { + this.ToggleOn = toggleOn; + } + + ToggleOn: boolean; + DtoType: BaseDtoType = BaseDtoType.ToggleWebRtcVideo; +} + + export class WindowsSessionsDto implements BaseDto { WindowsSessions: Array; diff --git a/Server/wwwroot/src/RemoteControl/Interfaces/Settings.ts b/Server/wwwroot/src/RemoteControl/Interfaces/Settings.ts index 490ae6a1..28f51f06 100644 --- a/Server/wwwroot/src/RemoteControl/Interfaces/Settings.ts +++ b/Server/wwwroot/src/RemoteControl/Interfaces/Settings.ts @@ -1,3 +1,4 @@ export interface Settings { displayName: string; + streamModeEnabled: boolean; } \ No newline at end of file diff --git a/Server/wwwroot/src/RemoteControl/MessageSender.js b/Server/wwwroot/src/RemoteControl/MessageSender.js index 7181884a..b102f104 100644 --- a/Server/wwwroot/src/RemoteControl/MessageSender.js +++ b/Server/wwwroot/src/RemoteControl/MessageSender.js @@ -1,5 +1,5 @@ import { ViewerApp } from "./App.js"; -import { CtrlAltDelDto, KeyDownDto, KeyPressDto, KeyUpDto, MouseDownDto, MouseMoveDto, MouseUpDto, MouseWheelDto, SelectScreenDto, TapDto, ToggleAudioDto, ToggleBlockInputDto, ClipboardTransferDto, FileDto, WindowsSessionsDto, GenericDto } from "./Interfaces/Dtos.js"; +import { CtrlAltDelDto, KeyDownDto, KeyPressDto, KeyUpDto, MouseDownDto, MouseMoveDto, MouseUpDto, MouseWheelDto, SelectScreenDto, TapDto, ToggleAudioDto, ToggleBlockInputDto, ClipboardTransferDto, FileDto, WindowsSessionsDto, GenericDto, ToggleWebRtcVideoDto } from "./Interfaces/Dtos.js"; import { CreateGUID, When } from "./Utilities.js"; import { FileTransferProgress } from "./UI.js"; import { BaseDtoType } from "./Enums/BaseDtoType.js"; @@ -94,6 +94,10 @@ export class MessageSender { var dto = new ToggleBlockInputDto(toggleOn); this.SendToAgent(() => ViewerApp.RtcSession.SendDto(dto), () => ViewerApp.ViewerHubConnection.SendDtoToClient(dto)); } + SendToggleWebRtcVideo(toggleOn) { + var dto = new ToggleWebRtcVideoDto(toggleOn); + this.SendToAgent(() => ViewerApp.RtcSession.SendDto(dto), () => ViewerApp.ViewerHubConnection.SendDtoToClient(dto)); + } SendClipboardTransfer(text, typeText) { var dto = new ClipboardTransferDto(text, typeText); this.SendToAgent(() => ViewerApp.RtcSession.SendDto(dto), () => ViewerApp.ViewerHubConnection.SendDtoToClient(dto)); diff --git a/Server/wwwroot/src/RemoteControl/MessageSender.js.map b/Server/wwwroot/src/RemoteControl/MessageSender.js.map index 64d6eafc..2eb2f0b0 100644 --- a/Server/wwwroot/src/RemoteControl/MessageSender.js.map +++ b/Server/wwwroot/src/RemoteControl/MessageSender.js.map @@ -1 +1 @@ -{"version":3,"file":"MessageSender.js","sourceRoot":"","sources":["MessageSender.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"MessageSender.js","sourceRoot":"","sources":["MessageSender.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/Server/wwwroot/src/RemoteControl/MessageSender.ts b/Server/wwwroot/src/RemoteControl/MessageSender.ts index fa65dec9..a2f4917e 100644 --- a/Server/wwwroot/src/RemoteControl/MessageSender.ts +++ b/Server/wwwroot/src/RemoteControl/MessageSender.ts @@ -15,7 +15,8 @@ import { ClipboardTransferDto, FileDto, WindowsSessionsDto, - GenericDto + GenericDto, + ToggleWebRtcVideoDto } from "./Interfaces/Dtos.js"; import { CreateGUID, When } from "./Utilities.js"; import { FileTransferProgress } from "./UI.js"; @@ -138,6 +139,11 @@ export class MessageSender { this.SendToAgent(() => ViewerApp.RtcSession.SendDto(dto), () => ViewerApp.ViewerHubConnection.SendDtoToClient(dto)); } + SendToggleWebRtcVideo(toggleOn: boolean) { + var dto = new ToggleWebRtcVideoDto(toggleOn); + this.SendToAgent(() => ViewerApp.RtcSession.SendDto(dto), + () => ViewerApp.ViewerHubConnection.SendDtoToClient(dto)); + } SendClipboardTransfer(text: string, typeText: boolean) { var dto = new ClipboardTransferDto(text, typeText); this.SendToAgent(() => ViewerApp.RtcSession.SendDto(dto), diff --git a/Server/wwwroot/src/RemoteControl/Models/IceServerModel.ts b/Server/wwwroot/src/RemoteControl/Models/IceServerModel.ts index ccc1b831..fbdd551c 100644 --- a/Server/wwwroot/src/RemoteControl/Models/IceServerModel.ts +++ b/Server/wwwroot/src/RemoteControl/Models/IceServerModel.ts @@ -1,5 +1,5 @@ export class IceServerModel { - Urls: string; - Credential: string; - Username: string; + Url: string; + TurnPassword: string; + TurnUsername: string; } \ No newline at end of file diff --git a/Server/wwwroot/src/RemoteControl/RtcSession.js b/Server/wwwroot/src/RemoteControl/RtcSession.js index 46a4a660..b68bd875 100644 --- a/Server/wwwroot/src/RemoteControl/RtcSession.js +++ b/Server/wwwroot/src/RemoteControl/RtcSession.js @@ -1,21 +1,19 @@ import * as UI from "./UI.js"; import { ViewerApp } from "./App.js"; -import { When } from "./Utilities.js"; export class RtcSession { constructor() { this.MessagePack = window['MessagePack']; } Init(iceServers) { - var servers = iceServers.map(x => { - return { - urls: x.Urls, - username: x.Username, - credential: x.Credential, - credentialType: "password" - }; - }); this.PeerConnection = new RTCPeerConnection({ - iceServers: servers + iceServers: iceServers.map(x => { + return { + urls: x.Url, + username: x.TurnUsername, + credential: x.TurnPassword, + credentialType: "password" + }; + }) }); this.PeerConnection.ondatachannel = (ev) => { console.log("Data channel received."); @@ -25,6 +23,7 @@ export class RtcSession { console.log("Data channel closed."); UI.ConnectionP2PIcon.style.display = "none"; UI.ConnectionRelayedIcon.style.display = "unset"; + UI.StreamVideoButton.setAttribute("hidden", "hidden"); UI.ScreenViewer.removeAttribute("hidden"); UI.VideoScreenViewer.setAttribute("hidden", "hidden"); }; @@ -32,6 +31,7 @@ export class RtcSession { console.log("Data channel error.", ev.error); UI.ConnectionP2PIcon.style.display = "none"; UI.ConnectionRelayedIcon.style.display = "unset"; + UI.StreamVideoButton.setAttribute("hidden", "hidden"); UI.ScreenViewer.removeAttribute("hidden"); UI.VideoScreenViewer.setAttribute("hidden", "hidden"); }; @@ -43,6 +43,11 @@ export class RtcSession { console.log("Data channel opened."); UI.ConnectionP2PIcon.style.display = "unset"; UI.ConnectionRelayedIcon.style.display = "none"; + UI.StreamVideoButton.removeAttribute("hidden"); + if (ViewerApp.Settings.streamModeEnabled) { + UI.UpdateStreamingToggled(true); + ViewerApp.MessageSender.SendToggleWebRtcVideo(true); + } }; }; this.PeerConnection.onconnectionstatechange = function (ev) { @@ -73,12 +78,9 @@ export class RtcSession { await ViewerApp.ViewerHubConnection.SendRtcAnswer(this.PeerConnection.localDescription); console.log("Set RTC offer."); } - async ReceiveCandidate(candidateJson) { - When(() => !!this.PeerConnection).then(async () => { - var rtcCandidate = JSON.parse(candidateJson); - await this.PeerConnection.addIceCandidate(rtcCandidate); - console.log("Set ICE candidate.", rtcCandidate); - }); + async ReceiveCandidate(candidate) { + await this.PeerConnection.addIceCandidate(candidate); + console.log("Set ICE candidate."); } SendDto(dto) { this.DataChannel.send(this.MessagePack.encode(dto)); diff --git a/Server/wwwroot/src/RemoteControl/RtcSession.js.map b/Server/wwwroot/src/RemoteControl/RtcSession.js.map index d3e44027..e72ca855 100644 --- a/Server/wwwroot/src/RemoteControl/RtcSession.js.map +++ b/Server/wwwroot/src/RemoteControl/RtcSession.js.map @@ -1 +1 @@ -{"version":3,"file":"RtcSession.js","sourceRoot":"","sources":["RtcSession.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"RtcSession.js","sourceRoot":"","sources":["RtcSession.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/Server/wwwroot/src/RemoteControl/RtcSession.ts b/Server/wwwroot/src/RemoteControl/RtcSession.ts index aa85c306..33a2c64a 100644 --- a/Server/wwwroot/src/RemoteControl/RtcSession.ts +++ b/Server/wwwroot/src/RemoteControl/RtcSession.ts @@ -1,26 +1,23 @@ import * as UI from "./UI.js"; +import * as Utilities from "./Utilities.js"; import { ViewerApp } from "./App.js"; import { IceServerModel } from "./Models/IceServerModel.js"; -import { When } from "./Utilities.js"; export class RtcSession { PeerConnection: RTCPeerConnection; DataChannel: RTCDataChannel; MessagePack: any = window['MessagePack']; Init(iceServers: IceServerModel[]) { - - var servers = iceServers.map(x => { - return { - urls: x.Urls, - username: x.Username, - credential: x.Credential, - credentialType: "password" - - } as RTCIceServer - }); - + this.PeerConnection = new RTCPeerConnection({ - iceServers: servers + iceServers: iceServers.map(x => { + return { + urls: x.Url, + username: x.TurnUsername, + credential: x.TurnPassword, + credentialType: "password" + } + }) }); this.PeerConnection.ondatachannel = (ev) => { @@ -32,6 +29,7 @@ export class RtcSession { UI.ConnectionP2PIcon.style.display = "none"; UI.ConnectionRelayedIcon.style.display = "unset"; + UI.StreamVideoButton.setAttribute("hidden", "hidden"); UI.ScreenViewer.removeAttribute("hidden"); UI.VideoScreenViewer.setAttribute("hidden", "hidden"); }; @@ -40,6 +38,7 @@ export class RtcSession { UI.ConnectionP2PIcon.style.display = "none"; UI.ConnectionRelayedIcon.style.display = "unset"; + UI.StreamVideoButton.setAttribute("hidden", "hidden"); UI.ScreenViewer.removeAttribute("hidden"); UI.VideoScreenViewer.setAttribute("hidden", "hidden"); }; @@ -52,6 +51,13 @@ export class RtcSession { console.log("Data channel opened."); UI.ConnectionP2PIcon.style.display = "unset"; UI.ConnectionRelayedIcon.style.display = "none"; + + UI.StreamVideoButton.removeAttribute("hidden"); + + if (ViewerApp.Settings.streamModeEnabled) { + UI.UpdateStreamingToggled(true); + ViewerApp.MessageSender.SendToggleWebRtcVideo(true); + } }; }; this.PeerConnection.onconnectionstatechange = function (ev) { @@ -85,14 +91,9 @@ export class RtcSession { await ViewerApp.ViewerHubConnection.SendRtcAnswer(this.PeerConnection.localDescription); console.log("Set RTC offer."); } - async ReceiveCandidate(candidateJson: string) { - When(() => !!this.PeerConnection).then(async () => { - - var rtcCandidate = JSON.parse(candidateJson) as RTCIceCandidate; - - await this.PeerConnection.addIceCandidate(rtcCandidate); - console.log("Set ICE candidate.", rtcCandidate); - }); + async ReceiveCandidate(candidate: RTCIceCandidate) { + await this.PeerConnection.addIceCandidate(candidate); + console.log("Set ICE candidate."); } SendDto(dto: any) { diff --git a/Server/wwwroot/src/RemoteControl/SettingsService.js b/Server/wwwroot/src/RemoteControl/SettingsService.js index 52fc3c9d..fecf17ff 100644 --- a/Server/wwwroot/src/RemoteControl/SettingsService.js +++ b/Server/wwwroot/src/RemoteControl/SettingsService.js @@ -1,4 +1,5 @@ const defaultSettings = { + streamModeEnabled: false, displayName: "" }; export function GetSettings() { diff --git a/Server/wwwroot/src/RemoteControl/SettingsService.js.map b/Server/wwwroot/src/RemoteControl/SettingsService.js.map index 94cd7ab3..c94413ad 100644 --- a/Server/wwwroot/src/RemoteControl/SettingsService.js.map +++ b/Server/wwwroot/src/RemoteControl/SettingsService.js.map @@ -1 +1 @@ -{"version":3,"file":"SettingsService.js","sourceRoot":"","sources":["SettingsService.ts"],"names":[],"mappings":"AAEA,MAAM,eAAe,GAAG;IACpB,WAAW,EAAE,EAAE;CAClB,CAAC;AAGF,MAAM,UAAU,WAAW;IACvB,IAAI;QACA,IAAI,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACvD,IAAI,QAAQ,EAAE;YACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SAC/B;KACJ;IACD,OAAO,EAAE,EAAE;QACP,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KACrB;IAED,WAAW,CAAC,eAAe,CAAC,CAAC;IAC7B,OAAO,eAAe,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAkB;IAC1C,YAAY,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtE,CAAC"} \ No newline at end of file +{"version":3,"file":"SettingsService.js","sourceRoot":"","sources":["SettingsService.ts"],"names":[],"mappings":"AAEA,MAAM,eAAe,GAAG;IACpB,iBAAiB,EAAE,KAAK;IACxB,WAAW,EAAE,EAAE;CAClB,CAAC;AAGF,MAAM,UAAU,WAAW;IACvB,IAAI;QACA,IAAI,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACvD,IAAI,QAAQ,EAAE;YACV,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SAC/B;KACJ;IACD,OAAO,EAAE,EAAE;QACP,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KACrB;IAED,WAAW,CAAC,eAAe,CAAC,CAAC;IAC7B,OAAO,eAAe,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAkB;IAC1C,YAAY,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtE,CAAC"} \ No newline at end of file diff --git a/Server/wwwroot/src/RemoteControl/SettingsService.ts b/Server/wwwroot/src/RemoteControl/SettingsService.ts index 8501dc5f..d2bcf821 100644 --- a/Server/wwwroot/src/RemoteControl/SettingsService.ts +++ b/Server/wwwroot/src/RemoteControl/SettingsService.ts @@ -1,6 +1,7 @@ import { Settings } from "./Interfaces/Settings.js"; const defaultSettings = { + streamModeEnabled: false, displayName: "" }; diff --git a/Server/wwwroot/src/RemoteControl/UI.js b/Server/wwwroot/src/RemoteControl/UI.js index 4ca36459..f02aebb8 100644 --- a/Server/wwwroot/src/RemoteControl/UI.js +++ b/Server/wwwroot/src/RemoteControl/UI.js @@ -20,6 +20,7 @@ export var ScreenSelectBar = document.getElementById("screenSelectBar"); export var ActionsBar = document.getElementById("actionsBar"); export var ViewBar = document.getElementById("viewBar"); export var ChangeScreenButton = document.getElementById("changeScreenButton"); +export var StreamVideoButton = document.getElementById("streamVideoButton"); export var FitToScreenButton = document.getElementById("fitToScreenButton"); export var BlockInputButton = document.getElementById("blockInputButton"); export var DisconnectButton = document.getElementById("disconnectButton"); @@ -105,6 +106,7 @@ export function ToggleConnectUI(shown) { else { DisconnectedBox.style.removeProperty("display"); } + StreamVideoButton.classList.remove("toggled"); BlockInputButton.classList.remove("toggled"); AudioButton.classList.remove("toggled"); } @@ -148,6 +150,18 @@ export function UpdateDisplays(selectedDisplay, displayNames) { }; } } +export function UpdateStreamingToggled(toggleOn) { + if (toggleOn) { + StreamVideoButton.classList.add("toggled"); + VideoScreenViewer.removeAttribute("hidden"); + ScreenViewer.setAttribute("hidden", "hidden"); + } + else { + StreamVideoButton.classList.remove("toggled"); + ScreenViewer.removeAttribute("hidden"); + VideoScreenViewer.setAttribute("hidden", "hidden"); + } +} export function UpdateWindowsSessions(windowsSessions) { while (WindowsSessionSelect.options.length > 0) { WindowsSessionSelect.options.remove(0); diff --git a/Server/wwwroot/src/RemoteControl/UI.js.map b/Server/wwwroot/src/RemoteControl/UI.js.map index e3b090cb..aaaf88a9 100644 --- a/Server/wwwroot/src/RemoteControl/UI.js.map +++ b/Server/wwwroot/src/RemoteControl/UI.js.map @@ -1 +1 @@ -{"version":3,"file":"UI.js","sourceRoot":"","sources":["UI.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"UI.js","sourceRoot":"","sources":["UI.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/Server/wwwroot/src/RemoteControl/UI.ts b/Server/wwwroot/src/RemoteControl/UI.ts index b0028bf2..e9f79037 100644 --- a/Server/wwwroot/src/RemoteControl/UI.ts +++ b/Server/wwwroot/src/RemoteControl/UI.ts @@ -22,6 +22,7 @@ export var ScreenSelectBar = document.getElementById("screenSelectBar") as HTMLD export var ActionsBar = document.getElementById("actionsBar") as HTMLDivElement; export var ViewBar = document.getElementById("viewBar") as HTMLDivElement; export var ChangeScreenButton = document.getElementById("changeScreenButton") as HTMLButtonElement; +export var StreamVideoButton = document.getElementById("streamVideoButton") as HTMLButtonElement; export var FitToScreenButton = document.getElementById("fitToScreenButton") as HTMLButtonElement; export var BlockInputButton = document.getElementById("blockInputButton") as HTMLButtonElement; export var DisconnectButton = document.getElementById("disconnectButton") as HTMLButtonElement; @@ -123,6 +124,7 @@ export function ToggleConnectUI(shown: boolean) { else { DisconnectedBox.style.removeProperty("display"); } + StreamVideoButton.classList.remove("toggled"); BlockInputButton.classList.remove("toggled"); AudioButton.classList.remove("toggled"); } @@ -170,6 +172,19 @@ export function UpdateDisplays(selectedDisplay: string, displayNames: string[]) } } +export function UpdateStreamingToggled(toggleOn: boolean) { + if (toggleOn) { + StreamVideoButton.classList.add("toggled"); + VideoScreenViewer.removeAttribute("hidden"); + ScreenViewer.setAttribute("hidden", "hidden"); + } + else { + StreamVideoButton.classList.remove("toggled"); + ScreenViewer.removeAttribute("hidden"); + VideoScreenViewer.setAttribute("hidden", "hidden"); + } +} + export function UpdateWindowsSessions(windowsSessions: Array) { while (WindowsSessionSelect.options.length > 0) { WindowsSessionSelect.options.remove(0); diff --git a/Server/wwwroot/src/RemoteControl/ViewerHubConnection.js b/Server/wwwroot/src/RemoteControl/ViewerHubConnection.js index 8afb5a65..4afaf986 100644 --- a/Server/wwwroot/src/RemoteControl/ViewerHubConnection.js +++ b/Server/wwwroot/src/RemoteControl/ViewerHubConnection.js @@ -39,12 +39,10 @@ export class ViewerHubConnection { } SendIceCandidate(candidate) { if (candidate) { - console.log(candidate.toJSON); - this.Connection.invoke("SendIceCandidateToAgent", JSON.stringify(candidate.toJSON())); + this.Connection.invoke("SendIceCandidateToAgent", candidate.candidate, candidate.sdpMLineIndex, candidate.sdpMid); } else { - console.log("Sending null candidate."); - this.Connection.invoke("SendIceCandidateToAgent", "{}"); + this.Connection.invoke("SendIceCandidateToAgent", "", 0, ""); } } SendRtcAnswer(sessionDescription) { @@ -121,9 +119,13 @@ export class ViewerHubConnection { ViewerApp.RtcSession.Init(iceServers); await ViewerApp.RtcSession.ReceiveRtcOffer(sdp); }); - hubConnection.on("ReceiveIceCandidate", async (candidateJson) => { - console.log("Ice candidate received.", candidateJson); - await ViewerApp.RtcSession.ReceiveCandidate(candidateJson); + hubConnection.on("ReceiveIceCandidate", (candidate, sdpMlineIndex, sdpMid) => { + console.log("Ice candidate received."); + ViewerApp.RtcSession.ReceiveCandidate({ + candidate: candidate, + sdpMLineIndex: sdpMlineIndex, + sdpMid: sdpMid + }); }); hubConnection.on("ShowMessage", (message) => { ShowMessage(message); diff --git a/Server/wwwroot/src/RemoteControl/ViewerHubConnection.js.map b/Server/wwwroot/src/RemoteControl/ViewerHubConnection.js.map index 96b4e563..a85c18d1 100644 --- a/Server/wwwroot/src/RemoteControl/ViewerHubConnection.js.map +++ b/Server/wwwroot/src/RemoteControl/ViewerHubConnection.js.map @@ -1 +1 @@ -{"version":3,"file":"ViewerHubConnection.js","sourceRoot":"","sources":["ViewerHubConnection.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ViewerHubConnection.js","sourceRoot":"","sources":["ViewerHubConnection.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/Server/wwwroot/src/RemoteControl/ViewerHubConnection.ts b/Server/wwwroot/src/RemoteControl/ViewerHubConnection.ts index a85dec50..191e8a86 100644 --- a/Server/wwwroot/src/RemoteControl/ViewerHubConnection.ts +++ b/Server/wwwroot/src/RemoteControl/ViewerHubConnection.ts @@ -55,12 +55,10 @@ export class ViewerHubConnection { SendIceCandidate(candidate: RTCIceCandidate) { if (candidate) { - console.log(candidate.toJSON); - this.Connection.invoke("SendIceCandidateToAgent", JSON.stringify(candidate.toJSON())); + this.Connection.invoke("SendIceCandidateToAgent", candidate.candidate, candidate.sdpMLineIndex, candidate.sdpMid); } else { - console.log("Sending null candidate."); - this.Connection.invoke("SendIceCandidateToAgent", "{}"); + this.Connection.invoke("SendIceCandidateToAgent", "", 0, ""); } } SendRtcAnswer(sessionDescription: RTCSessionDescription) { @@ -149,9 +147,13 @@ export class ViewerHubConnection { await ViewerApp.RtcSession.ReceiveRtcOffer(sdp); }); - hubConnection.on("ReceiveIceCandidate", async (candidateJson: string) => { - console.log("Ice candidate received.", candidateJson); - await ViewerApp.RtcSession.ReceiveCandidate(candidateJson); + hubConnection.on("ReceiveIceCandidate", (candidate: string, sdpMlineIndex: number, sdpMid: string) => { + console.log("Ice candidate received."); + ViewerApp.RtcSession.ReceiveCandidate({ + candidate: candidate, + sdpMLineIndex: sdpMlineIndex, + sdpMid: sdpMid + } as any); }); hubConnection.on("ShowMessage", (message: string) => { ShowMessage(message); diff --git a/Shared/Enums/BaseDtoType.cs b/Shared/Enums/BaseDtoType.cs index 43444401..5ecbab68 100644 --- a/Shared/Enums/BaseDtoType.cs +++ b/Shared/Enums/BaseDtoType.cs @@ -53,6 +53,8 @@ namespace Remotely.Shared.Enums SetKeyStatesUp = 24, [EnumMember(Value = "FrameReceived")] FrameReceived = 25, + [EnumMember(Value = "ToggleWebRtcVideo")] + ToggleWebRtcVideo = 26, [EnumMember(Value = "OpenFileTransferWindow")] OpenFileTransferWindow = 27 } diff --git a/Shared/Models/IceServerModel.cs b/Shared/Models/IceServerModel.cs index 18d4bf5b..e6afaa33 100644 --- a/Shared/Models/IceServerModel.cs +++ b/Shared/Models/IceServerModel.cs @@ -2,8 +2,8 @@ { public class IceServerModel { - public string Urls { get; set; } - public string Credential { get; set; } - public string Username { get; set; } + public string Url { get; set; } + public string TurnPassword { get; set; } + public string TurnUsername { get; set; } } } diff --git a/Shared/Models/RemoteControlDtos/ToggleWebRtcVideoDto.cs b/Shared/Models/RemoteControlDtos/ToggleWebRtcVideoDto.cs new file mode 100644 index 00000000..8ab705cf --- /dev/null +++ b/Shared/Models/RemoteControlDtos/ToggleWebRtcVideoDto.cs @@ -0,0 +1,15 @@ +using Remotely.Shared.Enums; +using System.Runtime.Serialization; + +namespace Remotely.Shared.Models.RemoteControlDtos +{ + [DataContract] + public class ToggleWebRtcVideoDto : BaseDto + { + [DataMember(Name = "ToggleOn")] + public bool ToggleOn { get; set; } + + [DataMember(Name = "DtoType")] + public new BaseDtoType DtoType { get; } = BaseDtoType.ToggleWebRtcVideo; + } +}