diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-03-25 00:26:47 +0200 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-03-25 00:26:47 +0200 |
| commit | 42c06402ff6648c356fba8315958283762ed2542 (patch) | |
| tree | 24edf6b746afef0f3a7887e8d83d371d3cf351dc /Software | |
| parent | c7ceaf96e0ae6d8cb0e1ae7373e6a054f72f52cd (diff) | |
| download | Tango-42c06402ff6648c356fba8315958283762ed2542.tar.gz Tango-42c06402ff6648c356fba8315958283762ed2542.zip | |
Added Download menu implementation to file system.
Added several stun and turn servers to web rtc.
Diffstat (limited to 'Software')
15 files changed, 219 insertions, 12 deletions
diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModels/FileSystemViewVM.cs b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModels/FileSystemViewVM.cs index 4e2ca1882..e10cc0ad1 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModels/FileSystemViewVM.cs +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/ViewModels/FileSystemViewVM.cs @@ -58,6 +58,7 @@ namespace Tango.FSE.PPCConsole.ViewModels public RelayCommand<List<FileSystemItem>> CutPasteCommand { get; set; } public RelayCommand<List<FileSystemItem>> DownloadCommand { get; set; } public RelayCommand<FileSystemItem> RenameCommand { get; set; } + public RelayCommand NewFolderCommand { get; set; } public FileSystemViewVM() @@ -78,6 +79,7 @@ namespace Tango.FSE.PPCConsole.ViewModels CutPasteCommand = new RelayCommand<List<FileSystemItem>>((items) => PasteItems(items, true)); DownloadCommand = new RelayCommand<List<FileSystemItem>>(DownloadSelectedItems); RenameCommand = new RelayCommand<FileSystemItem>(RenameFileSystemItem); + NewFolderCommand = new RelayCommand(CreateNewFolder); } private async void NavigateBack() @@ -341,7 +343,24 @@ namespace Tango.FSE.PPCConsole.ViewModels var result = await StorageProvider.SelectFolder("Select download destination folder"); if (result) { + + String destination = result.SelectedItem; + Debug.WriteLine($"Download to {result.SelectedItem}"); + + foreach (var item in items.Where(x => x.Type != FileSystemItemType.Drive)) + { + if (File.Exists(Path.Combine(destination, item.Name)) || Directory.Exists(Path.Combine(destination, item.Name))) + { + if (!await NotificationProvider.ShowWarningQuestion($"'{item.Name}' already exists on '{Path.GetDirectoryName(destination)}'. Do you want to overwrite?")) + { + continue; + } + } + + var handler = await FileSystemProvider.Download(item, destination); + FileSystemHandlers.Insert(0, handler); + } } } @@ -376,6 +395,40 @@ namespace Tango.FSE.PPCConsole.ViewModels } } + private async void CreateNewFolder() + { + if (CurrentItem == null) return; + if (CurrentItem is FolderItem) + { + if ((CurrentItem as FolderItem).IsRoot) return; + } + + var result = await NotificationProvider.ShowInputBox( + "New Folder", + $"Please enter a folder name and press 'ENTER'.", + PackIconKind.FolderAdd, "untitled", + "folder name", + 100, + "CREATE"); + + if (result.Confirmed) + { + try + { + using (NotificationProvider.PushTaskItem("Creating new folder...")) + { + var folderItem = await FileSystemProvider.CreateFolder(CurrentItem, result.Input); + NavigateToCurrentPath(); //Instead of inserting folder item just refresh the current path... + } + } + catch (Exception ex) + { + LogManager.Log(ex, $"Error creating new folder '{Path.Combine(CurrentItem.Path,result.Input)}."); + await NotificationProvider.ShowError($"Error creating folder '{result.Input}'.\n{ex.FlattenMessage()}"); + } + } + } + private void OnCurrentItemChanged() { CurrentPath = CurrentItem.Path; diff --git a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/FileSystemView.xaml b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/FileSystemView.xaml index d1143ede4..67f1dc1c5 100644 --- a/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/FileSystemView.xaml +++ b/Software/Visual_Studio/FSE/Modules/Tango.FSE.PPCConsole/Views/FileSystemView.xaml @@ -121,6 +121,7 @@ <RowDefinition Height="100" MinHeight="0" /> </Grid.RowDefinitions> <controls:FileSystemControl + x:Name="fileSystemControl" IsEnabled="{Binding MachineProvider.IsConnected}" AllowDrag="True" AllowDrop="True" @@ -135,7 +136,8 @@ CopyPasteCommand="{Binding CopyPasteCommand}" DownloadCommand="{Binding DownloadCommand}" BackCommand="{Binding BackCommand}" - RenameCommand="{Binding RenameCommand}"/> + RenameCommand="{Binding RenameCommand}" + NewFolderCommand="{Binding NewFolderCommand}"/> <GridSplitter Grid.Row="1" Height="5" HorizontalAlignment="Stretch" VerticalAlignment="Center" /> @@ -163,7 +165,18 @@ <Border Margin="5 5 5 0" CornerRadius="3" BorderBrush="{StaticResource FSE_PrimaryBackgroundLightBrush}" BorderThickness="2" Padding="10"> <DockPanel Height="40"> <Grid DockPanel.Dock="Left" Width="40"> - <Image HorizontalAlignment="Left" Source="{Binding FileSystemItem.Icon}" RenderOptions.BitmapScalingMode="Fant" Stretch="Uniform" /> + <Image HorizontalAlignment="Left" RenderOptions.BitmapScalingMode="Fant" Stretch="Uniform"> + <Image.Style> + <Style TargetType="Image"> + <Setter Property="Source" Value="{Binding FileSystemItem.Icon}"></Setter> + <Style.Triggers> + <DataTrigger Binding="{Binding FileSystemItem.Type}" Value="Folder"> + <Setter Property="Source" Value="{Binding ElementName=fileSystemControl,Path=FolderIcon}"></Setter> + </DataTrigger> + </Style.Triggers> + </Style> + </Image.Style> + </Image> <Ellipse Margin="-5 -5 0 0" Fill="{StaticResource FSE_PrimaryBackgroundDarkBrush}" HorizontalAlignment="Left" VerticalAlignment="Top" Width="20" Height="20" /> <material:PackIcon Margin="-3 -3 0 0" HorizontalAlignment="Left" VerticalAlignment="Top" Width="15" Height="15"> <material:PackIcon.Style> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/FileSystemControl.xaml b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/FileSystemControl.xaml index eb1007609..5bc75ca54 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/FileSystemControl.xaml +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/Controls/FileSystemControl.xaml @@ -49,6 +49,13 @@ <material:PackIcon Kind="SubdirectoryArrowRight" /> </MenuItem.Icon> </MenuItem> + <Separator/> + <MenuItem Header="New Folder" InputGestureText="Ctrl+N" Command="{TemplateBinding NewFolderCommandInternal}"> + <MenuItem.Icon> + <material:PackIcon Kind="FolderAdd" /> + </MenuItem.Icon> + </MenuItem> + <Separator/> <MenuItem Header="Copy" InputGestureText="Ctrl+C" Command="{TemplateBinding CopyCommand}"> <MenuItem.Icon> <material:PackIcon Kind="ContentCopy" /> @@ -93,7 +100,7 @@ </Border.ContextMenu> <Grid Background="Transparent"> - <ListBox x:Name="PART_listbox" IsTextSearchEnabled="True" TextSearch.TextPath="Name" Background="Transparent" SelectionMode="{TemplateBinding SelectionMode}" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Auto" ItemsSource="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},Path=CurrentItem.Items}" SelectedItem="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},Path=SelectedItem,Mode=TwoWay}"> + <ListBox x:Name="PART_listbox" IsTextSearchEnabled="True" TextSearch.TextPath="Name" Background="Transparent" SelectionMode="{TemplateBinding SelectionMode}" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Auto" ItemsSource="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},Path=CurrentItem.Items}"> <ListBox.Style> <Style TargetType="ListBox" BasedOn="{StaticResource {x:Type ListBox}}"> <Setter Property="Visibility" Value="Collapsed"></Setter> @@ -164,7 +171,7 @@ </Style.Triggers> </Style> </Grid.Style> - <local:FileSystemDataGrid x:Name="PART_datagrid" IsTextSearchEnabled="True" TextSearch.TextPath="Name" ItemsSource="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},Path=CurrentItem.Items}" SelectedItem="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},Path=SelectedItem,Mode=TwoWay}" CellStyle="{StaticResource FileSystemCellStyle}"> + <local:FileSystemDataGrid x:Name="PART_datagrid" IsTextSearchEnabled="True" TextSearch.TextPath="Name" ItemsSource="{Binding RelativeSource={RelativeSource Mode=TemplatedParent},Path=CurrentItem.Items}" CellStyle="{StaticResource FileSystemCellStyle}"> <DataGrid.Style> <Style TargetType="DataGrid" BasedOn="{StaticResource {x:Type DataGrid}}"> <Setter Property="Background" Value="Transparent"></Setter> diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Common/FileSystem/IFileSystemProvider.cs b/Software/Visual_Studio/FSE/Tango.FSE.Common/FileSystem/IFileSystemProvider.cs index 253bf801b..00546094e 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.Common/FileSystem/IFileSystemProvider.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.Common/FileSystem/IFileSystemProvider.cs @@ -21,5 +21,6 @@ namespace Tango.FSE.Common.FileSystem Task Move(FileSystemItem source, FileSystemItem target); Task Rename(FileSystemItem source, String newName); Task Delete(FileSystemItem item); + Task<FolderItem> CreateFolder(FileSystemItem parent, String folderName); } } diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/FileSystem/DefaultFileSystemProvider.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/FileSystem/DefaultFileSystemProvider.cs index 1f6641f3a..b13b797e9 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/FileSystem/DefaultFileSystemProvider.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/FileSystem/DefaultFileSystemProvider.cs @@ -399,5 +399,16 @@ namespace Tango.FSE.UI.FileSystem Path = item.Path }, new TransportRequestConfig() { Timeout = TimeSpan.FromSeconds(120) }); } + + public async Task<FolderItem> CreateFolder(FileSystemItem parent, string folderName) + { + var response = await _machineProvider.MachineOperator.SendGenericRequest<CreateFolderRequest, CreateFolderResponse>(new CreateFolderRequest() + { + Path = parent.Path, + FolderName = folderName, + }); + + return FileSystemItem.FromDTO(response.FolderItem) as FolderItem; + } } } diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Storage/DefaultStorageProvider.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/Storage/DefaultStorageProvider.cs index 9a40888a3..627b380da 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Storage/DefaultStorageProvider.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Storage/DefaultStorageProvider.cs @@ -29,7 +29,7 @@ namespace Tango.FSE.UI.Storage [TangoInject(Mode = TangoInjectMode.WhenAvailable)] private INotificationProvider NotificationProvider { get; set; } - public bool UseNativeDialogs { get; set; } = false; + public bool UseNativeDialogs { get; set; } = true; private bool _isOpened; public bool IsOpened diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModels/LoginViewVM.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModels/LoginViewVM.cs index 8622daab2..8b14ac69e 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModels/LoginViewVM.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/ViewModels/LoginViewVM.cs @@ -131,9 +131,9 @@ namespace Tango.FSE.UI.ViewModels try { - var s = await StorageProvider.SelectFolder("Select download destination folder"); + //var s = await StorageProvider.SelectFolder("Select download destination folder"); - return; + //return; if (!Validate()) { diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/FileSystem/DefaultFileSystemService.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/FileSystem/DefaultFileSystemService.cs index 512935b50..edb004344 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/FileSystem/DefaultFileSystemService.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/FileSystem/DefaultFileSystemService.cs @@ -334,6 +334,20 @@ namespace Tango.PPC.Common.FileSystem } } + [ExternalBridgeRequestHandlerMethod(typeof(CreateFolderRequest))] + public async void OnCreateFolderRequest(CreateFolderRequest request, String token, ExternalBridgeReceiver receiver) + { + try + { + var dto = _manager.CreateFolder(request.Path, request.FolderName); + await receiver.SendGenericResponse(new CreateFolderResponse() { FolderItem = dto }, token); + } + catch (Exception ex) + { + await receiver.SendErrorResponse(ex, token); + } + } + public void OnReceiverDisconnected(ExternalBridgeReceiver receiver) { if (_webRtcClients.ContainsKey(receiver)) diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/app.manifest b/Software/Visual_Studio/PPC/Tango.PPC.UI/app.manifest index d72e75011..efc5f8179 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/app.manifest +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/app.manifest @@ -16,7 +16,7 @@ Remove this element if your application requires this virtualization for backwards compatibility. --> - <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> + <!--<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />--> </requestedPrivileges> </security> </trustInfo> diff --git a/Software/Visual_Studio/Tango.FileSystem/FileExplorerControl.cs b/Software/Visual_Studio/Tango.FileSystem/FileExplorerControl.cs index c624178a0..3660a18f0 100644 --- a/Software/Visual_Studio/Tango.FileSystem/FileExplorerControl.cs +++ b/Software/Visual_Studio/Tango.FileSystem/FileExplorerControl.cs @@ -105,6 +105,22 @@ namespace Tango.FileSystem public static readonly DependencyProperty DeleteCommandInternalProperty = DependencyProperty.Register("DeleteCommandInternal", typeof(ICommand), typeof(FileExplorerControl), new PropertyMetadata(null)); + public ICommand NewFolderCommandInternal + { + get { return (ICommand)GetValue(NewFolderCommandInternalProperty); } + set { SetValue(NewFolderCommandInternalProperty, value); } + } + public static readonly DependencyProperty NewFolderCommandInternalProperty = + DependencyProperty.Register("NewFolderCommandInternal", typeof(ICommand), typeof(FileExplorerControl), new PropertyMetadata(null)); + + public ICommand NewFolderCommand + { + get { return (ICommand)GetValue(NewFolderCommandProperty); } + set { SetValue(NewFolderCommandProperty, value); } + } + public static readonly DependencyProperty NewFolderCommandProperty = + DependencyProperty.Register("NewFolderCommand", typeof(ICommand), typeof(FileExplorerControl), new PropertyMetadata(null)); + public ICommand DropCommand { get { return (ICommand)GetValue(DropCommandProperty); } @@ -273,7 +289,6 @@ namespace Tango.FileSystem public static readonly DependencyProperty SelectionModeProperty = DependencyProperty.Register("SelectionMode", typeof(SelectionMode), typeof(FileExplorerControl), new PropertyMetadata(SelectionMode.Extended)); - static FileExplorerControl() { DefaultStyleKeyProperty.OverrideMetadata(typeof(FileExplorerControl), new FrameworkPropertyMetadata(typeof(FileExplorerControl))); @@ -343,21 +358,43 @@ namespace Tango.FileSystem OpenCommand = new RelayCommand(() => { ItemDoubleClickedCommand?.Execute(SelectedItems.FirstOrDefault()); - }, () => SelectedItems != null && SelectedItems.Count == 1); + }, () => + { + return SelectedItems != null && SelectedItems.Count == 1; + }); DeleteCommandInternal = new RelayCommand(() => { DeleteCommand?.Execute(SelectedItems.ToList()); - }, () => SelectedItems != null && SelectedItems.Count > 1 && SelectedItems.All(x => x.Type != FileSystemItemType.Drive)); + }, () => SelectedItems != null && SelectedItems.Count > 0 && SelectedItems.All(x => x.Type != FileSystemItemType.Drive)); - RenameCommandInternal = new RelayCommand(() => + RenameCommandInternal = new RelayCommand(() => { RenameCommand?.Execute(SelectedItems.FirstOrDefault()); }, () => SelectedItems != null && SelectedItems.Count == 1 && SelectedItems.All(x => x.Type != FileSystemItemType.Drive)); + + NewFolderCommandInternal = new RelayCommand(() => + { + NewFolderCommand?.Execute(null); + }, + () => + { + if (CurrentItem == null) return false; + + if (CurrentItem is FolderItem) + { + if ((CurrentItem as FolderItem).IsRoot) + { + return false; + } + } + + return true; + }); } private void OnIsContextMenuOpenedChanged() @@ -370,6 +407,7 @@ namespace Tango.FileSystem (OpenCommand as RelayCommand)?.RaiseCanExecuteChanged(); (DeleteCommandInternal as RelayCommand)?.RaiseCanExecuteChanged(); (RenameCommandInternal as RelayCommand)?.RaiseCanExecuteChanged(); + (NewFolderCommandInternal as RelayCommand)?.RaiseCanExecuteChanged(); if (IsContextMenuOpened) { @@ -479,6 +517,13 @@ namespace Tango.FileSystem DownloadCommandInternal.Execute(null); } } + else if (e.Key == Key.N && Keyboard.IsKeyDown(Key.LeftCtrl)) + { + if (NewFolderCommandInternal != null && NewFolderCommandInternal.CanExecute(null)) + { + DownloadCommandInternal.Execute(null); + } + } else if (e.Key == Key.F2) { if (RenameCommandInternal != null && RenameCommandInternal.CanExecute(null)) diff --git a/Software/Visual_Studio/Tango.FileSystem/FileSystemManager.cs b/Software/Visual_Studio/Tango.FileSystem/FileSystemManager.cs index f72785f81..46ca080a2 100644 --- a/Software/Visual_Studio/Tango.FileSystem/FileSystemManager.cs +++ b/Software/Visual_Studio/Tango.FileSystem/FileSystemManager.cs @@ -181,5 +181,22 @@ namespace Tango.FileSystem throw new FileNotFoundException("Could not locate the source file or folder."); } } + + public FileSystemItemDTO CreateFolder(String path, String folderName) + { + String fullPath = Path.Combine(path, folderName); + + if (Directory.Exists(fullPath)) + { + throw new IOException("The specified directory name already exists."); + } + + Directory.CreateDirectory(fullPath); + + return GetFolder(new GetFileSystemItemRequest() + { + Path = fullPath + }); + } } } diff --git a/Software/Visual_Studio/Tango.FileSystem/Network/CreateFolderRequest.cs b/Software/Visual_Studio/Tango.FileSystem/Network/CreateFolderRequest.cs new file mode 100644 index 000000000..77452dcdf --- /dev/null +++ b/Software/Visual_Studio/Tango.FileSystem/Network/CreateFolderRequest.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.FileSystem.Network +{ + public class CreateFolderRequest + { + public String Path { get; set; } + public String FolderName { get; set; } + } +} diff --git a/Software/Visual_Studio/Tango.FileSystem/Network/CreateFolderResponse.cs b/Software/Visual_Studio/Tango.FileSystem/Network/CreateFolderResponse.cs new file mode 100644 index 000000000..d52e52c47 --- /dev/null +++ b/Software/Visual_Studio/Tango.FileSystem/Network/CreateFolderResponse.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.FileSystem.Network +{ + public class CreateFolderResponse + { + public FileSystemItemDTO FolderItem { get; set; } + } +} diff --git a/Software/Visual_Studio/Tango.FileSystem/Tango.FileSystem.csproj b/Software/Visual_Studio/Tango.FileSystem/Tango.FileSystem.csproj index a1218f12d..a31af216c 100644 --- a/Software/Visual_Studio/Tango.FileSystem/Tango.FileSystem.csproj +++ b/Software/Visual_Studio/Tango.FileSystem/Tango.FileSystem.csproj @@ -60,6 +60,8 @@ <Compile Include="Network\ChunkDownloadResponse.cs" /> <Compile Include="Network\CopyRequest.cs" /> <Compile Include="Network\CopyResponse.cs" /> + <Compile Include="Network\CreateFolderRequest.cs" /> + <Compile Include="Network\CreateFolderResponse.cs" /> <Compile Include="Network\DeleteRequest.cs" /> <Compile Include="Network\DeleteResponse.cs" /> <Compile Include="Network\InitWebRtcRequest.cs" /> diff --git a/Software/Visual_Studio/Tango.WebRTC/WebRtcClient.cs b/Software/Visual_Studio/Tango.WebRTC/WebRtcClient.cs index e1d49e18c..f2ac1212a 100644 --- a/Software/Visual_Studio/Tango.WebRTC/WebRtcClient.cs +++ b/Software/Visual_Studio/Tango.WebRTC/WebRtcClient.cs @@ -157,9 +157,26 @@ namespace Tango.WebRTC { ManagedConductor.InitializeSSL(); + //Stun _conductor.AddServerConfig("stun:stun.l.google.com:19302", String.Empty, String.Empty); _conductor.AddServerConfig("stun:stun.anyfirewall.com:3478", String.Empty, String.Empty); _conductor.AddServerConfig("stun:stun.stunprotocol.org:3478", String.Empty, String.Empty); + _conductor.AddServerConfig("stun:stun1.l.google.com:19302", String.Empty, String.Empty); + _conductor.AddServerConfig("stun:stun2.l.google.com:19302", String.Empty, String.Empty); + _conductor.AddServerConfig("stun:stun3.l.google.com:19302", String.Empty, String.Empty); + _conductor.AddServerConfig("stun:stun4.l.google.com:19302", String.Empty, String.Empty); + _conductor.AddServerConfig("stun:eu-turn3.xirsys.com", "mjyn-kODdallq7iIZN1-eCYHo4GZy36urKu-8GTtdKwcuEUe8i4LjeHVoej-OePwAAAAAF56hb1Sb3liZW4=", "83b30e94-6e1c-11ea-b4c3-72c9c257b255"); + _conductor.AddServerConfig("stun:numb.viagenie.ca:3478", "roy.mail.net@gmail.com", "X7jPGh8Y@BjTi8G"); + + //Turn + _conductor.AddServerConfig("turn:eu-turn3.xirsys.com:80?transport=udp", "mjyn-kODdallq7iIZN1-eCYHo4GZy36urKu-8GTtdKwcuEUe8i4LjeHVoej-OePwAAAAAF56hb1Sb3liZW4=", "83b30e94-6e1c-11ea-b4c3-72c9c257b255"); + _conductor.AddServerConfig("turn:eu-turn3.xirsys.com:3478?transport=udp", "mjyn-kODdallq7iIZN1-eCYHo4GZy36urKu-8GTtdKwcuEUe8i4LjeHVoej-OePwAAAAAF56hb1Sb3liZW4=", "83b30e94-6e1c-11ea-b4c3-72c9c257b255"); + _conductor.AddServerConfig("turn:eu-turn3.xirsys.com:80?transport=tcp", "mjyn-kODdallq7iIZN1-eCYHo4GZy36urKu-8GTtdKwcuEUe8i4LjeHVoej-OePwAAAAAF56hb1Sb3liZW4=", "83b30e94-6e1c-11ea-b4c3-72c9c257b255"); + _conductor.AddServerConfig("turn:eu-turn3.xirsys.com:3478?transport=tcp", "mjyn-kODdallq7iIZN1-eCYHo4GZy36urKu-8GTtdKwcuEUe8i4LjeHVoej-OePwAAAAAF56hb1Sb3liZW4=", "83b30e94-6e1c-11ea-b4c3-72c9c257b255"); + _conductor.AddServerConfig("turns:eu-turn3.xirsys.com:443?transport=tcp", "mjyn-kODdallq7iIZN1-eCYHo4GZy36urKu-8GTtdKwcuEUe8i4LjeHVoej-OePwAAAAAF56hb1Sb3liZW4=", "83b30e94-6e1c-11ea-b4c3-72c9c257b255"); + _conductor.AddServerConfig("turns:eu-turn3.xirsys.com:5349?transport=tcp", "mjyn-kODdallq7iIZN1-eCYHo4GZy36urKu-8GTtdKwcuEUe8i4LjeHVoej-OePwAAAAAF56hb1Sb3liZW4=", "83b30e94-6e1c-11ea-b4c3-72c9c257b255"); + _conductor.AddServerConfig("turn:numb.viagenie.ca:3478", "roy.mail.net@gmail.com", "X7jPGh8Y@BjTi8G"); + _conductor.AddServerConfig("turn:turn.anyfirewall.com:443?transport=tcp", "webrtc", "webrtc"); _conductor.SetAudio(false); _conductor.SetVideoCapturer(FrameWidth, FrameHeight, FrameRate, false); |
