Example #1
0
        private async void ConnectCall_Click(object sender, RoutedEventArgs e)
        {
            Debug.WriteLine("Connect Call Clicked");

            // Get the IP Address in the text box
            var ipString = new ValidableNonEmptyString(IpString.Text);
            var port     = new ValidableIntegerString(PortString.Text);

            var settings = ApplicationData.Current.LocalSettings;

            settings.Values["IpString"]   = IpString.Text;
            settings.Values["PortString"] = PortString.Text;

            // Navigate to the next page.
            if (IsRunningOnHoloLens())
            {
                // Navigate to the immersive view (with the IP address somehow).
                var urhoView = CoreApplication.CreateNewView(
                    new UrhoAppViewSource <HoloApplication>(
                        new ApplicationOptions("Data")));

                var id = ApplicationView.GetForCurrentView().Id;

                await urhoView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async() =>
                {
                    CoreWindow.GetForCurrentThread().Activate();
                    await ApplicationViewSwitcher.SwitchAsync(ApplicationView.GetForCurrentView().Id, id,
                                                              ApplicationViewSwitchingOptions.ConsolidateViews);
                });
            }
            else
            {
                this.Frame.Navigate(typeof(CallPage));
            }
        }
Example #2
0
 public void ConnectToServer(string host, string port, string peerName)
 {
     new Task(() =>
     {
         IsConnecting = true;
         Ip           = new ValidableNonEmptyString(host);
         Port         = new ValidableIntegerString(port);
         ConnectToServer(peerName);
     }).Start();
 }
Example #3
0
 public void ConnectToServer(string host, string port, string peerName, int heartbeatMs)
 {
     Task.Run(() =>
     {
         IsConnecting = true;
         Ip           = new ValidableNonEmptyString(host);
         Port         = new ValidableIntegerString(port);
         ConnectToServer(peerName, heartbeatMs);
     });
 }
        private void LoadSettings()
        {
            var settings = ApplicationData.Current.LocalSettings;

            var ip   = new ValidableNonEmptyString((string)settings.Values["IpString"]);
            var port = new ValidableIntegerString((string)settings.Values["PortString"]);

            Ip   = ip;
            Port = port;
        }
        private async void ConnectCall_Click(object sender, RoutedEventArgs e)
        {
            Debug.WriteLine("Connect Call Clicked");

            // Get the IP Address in the text box
            var ipString = new ValidableNonEmptyString(IpString.Text);
            var port     = new ValidableIntegerString(PortString.Text);

            var settings = ApplicationData.Current.LocalSettings;

            settings.Values["IpString"]   = IpString.Text;
            settings.Values["PortString"] = PortString.Text;

            this.Frame.Navigate(typeof(CallPage));
        }
Example #6
0
        void LoadSettings()
        {
            // Default values:
            var configTraceServerIp   = "127.0.0.1";
            var configTraceServerPort = "55000";

            var ntpServerAddress = new ValidableNonEmptyString("time.windows.com");
            var peerCcServerIp   = new ValidableNonEmptyString("signalingserver.centralus.cloudapp.azure.com");
            var peerCcPortInt    = 3000;

            var configIceServers = new ObservableCollection <IceServer>();

            bool useDefaultIceServers = true;

            if (useDefaultIceServers)
            {
                // Default values:
                configIceServers.Clear();
                configIceServers.Add(new IceServer("stun.l.google.com:19302", IceServer.ServerType.STUN));
                configIceServers.Add(new IceServer("stun1.l.google.com:19302", IceServer.ServerType.STUN));
                configIceServers.Add(new IceServer("stun2.l.google.com:19302", IceServer.ServerType.STUN));
                configIceServers.Add(new IceServer("stun3.l.google.com:19302", IceServer.ServerType.STUN));
                configIceServers.Add(new IceServer("stun4.l.google.com:19302", IceServer.ServerType.STUN));
            }

            RunOnUiThread(() =>
            {
                IceServers = configIceServers;
                Ip         = peerCcServerIp;
                NtpServer  = ntpServerAddress;
                Port       = new ValidableIntegerString(peerCcPortInt, 0, 65535);
                ReevaluateHasServer();
            });

            Conductor.Instance.ConfigureIceServers(configIceServers);
        }
Example #7
0
        async Task LoadSettings()
        {
            // Default values:
            var configTraceServerIp = new ValidableNonEmptyString("127.0.0.1");

            StorageFile configFile = await StorageFile.GetFileFromApplicationUriAsync(
                new Uri(_configFilePath))
                                     .AsTask()
                                     .ConfigureAwait(false);

            string content = await FileIO.ReadTextAsync(configFile)
                             .AsTask()
                             .ConfigureAwait(false);

            JsonValue json = JsonValue.Parse(content);

            // Parses server info.
            var server = json.GetObject().GetNamedString("server");

            var parsed = new Uri(server);

            // if we don't have an explicit port in server, and we do have a port value
            if (parsed.IsDefaultPort && json.GetObject().ContainsKey("port"))
            {
                // use that port value in place of the default port
                var b = new UriBuilder(parsed);
                b.Port = (int)json.GetObject().GetNamedNumber("port");
                parsed = b.Uri;
            }

            // down-convert back to a string
            this.Uri = new ValidableNonEmptyString(parsed.ToString());

            HeartBeat = new ValidableIntegerString(
                (int)json.GetObject().GetNamedNumber("heartbeat"), 0, 65535);

            // parse auth
            if (json.GetObject().ContainsKey("authentication"))
            {
                var authNode = json.GetObject().GetNamedObject("authentication").GetObject();

                AuthCodeUri = authNode.ContainsKey("codeUri") ? authNode.GetNamedString("codeUri") : null;
                AuthPollUri = authNode.ContainsKey("pollUri") ? authNode.GetNamedString("pollUri") : null;
            }

            var configIceServers = new ObservableCollection <IceServer>();

            // Parses turn server.
            if (json.GetObject().ContainsKey("turnServer"))
            {
                JsonValue turnServer = json.GetObject().GetNamedValue("turnServer");
                string    uri        = turnServer.GetObject().GetNamedString("uri");
                IceServer iceServer  = new IceServer(
                    uri.Substring(uri.IndexOf("turn:") + 5),
                    IceServer.ServerType.TURN);

                if (turnServer.GetObject().ContainsKey("provider"))
                {
                    // if we do this, we need to ensure we set the username and credential
                    // in the future - we'll do this in ConnectToServer() by wiring up
                    // an event to the Conductor.TurnClient
                    TempTurnUri = turnServer.GetObject().GetNamedString("provider");
                }
                else
                {
                    iceServer.Username   = turnServer.GetObject().GetNamedString("username");
                    iceServer.Credential = turnServer.GetObject().GetNamedString("password");
                }

                configIceServers.Add(iceServer);
            }

            // Parses stun server.
            if (json.GetObject().ContainsKey("stunServer"))
            {
                JsonValue stunServer = json.GetObject().GetNamedValue("stunServer");
                string    uri        = stunServer.GetObject().GetNamedString("uri");
                IceServer iceServer  = new IceServer(
                    uri.Substring(uri.IndexOf("stun:") + 5),
                    IceServer.ServerType.STUN);

                iceServer.Username   = stunServer.GetObject().GetNamedString("username");
                iceServer.Credential = stunServer.GetObject().GetNamedString("password");
                configIceServers.Add(iceServer);
            }

            // Default ones.
            configIceServers.Add(new IceServer("stun.l.google.com:19302", IceServer.ServerType.STUN));
            configIceServers.Add(new IceServer("stun1.l.google.com:19302", IceServer.ServerType.STUN));
            configIceServers.Add(new IceServer("stun2.l.google.com:19302", IceServer.ServerType.STUN));
            configIceServers.Add(new IceServer("stun3.l.google.com:19302", IceServer.ServerType.STUN));
            configIceServers.Add(new IceServer("stun4.l.google.com:19302", IceServer.ServerType.STUN));

            Conductor.Instance.ConfigureIceServers(configIceServers);
            var ntpServerAddress = new ValidableNonEmptyString("time.windows.com");

            RunOnUiThread(() =>
            {
                IceServers = configIceServers;
                NtpServer  = ntpServerAddress;
                NtpServer  = ntpServerAddress;
                ReevaluateHasServer();
            });

            Conductor.Instance.ConfigureIceServers(configIceServers);
        }
Example #8
0
        async Task LoadSettings()
        {
            // Default values:
            var configTraceServerIp = new ValidableNonEmptyString("127.0.0.1");

            StorageFile configFile = await StorageFile.GetFileFromApplicationUriAsync(
                new Uri(_configFilePath))
                                     .AsTask()
                                     .ConfigureAwait(false);

            string content = await FileIO.ReadTextAsync(configFile)
                             .AsTask()
                             .ConfigureAwait(false);

            JsonValue json = JsonValue.Parse(content);

            // Parses server info.
            _server = json.GetObject().GetNamedString("server");
            int startId = 0;

            if (_server.StartsWith("http://"))
            {
                startId = 7;
            }
            else if (_server.StartsWith("https://"))
            {
                startId = 8;

                // TODO: Supports SSL
            }

            _server = _server.Substring(startId);
            _port   = new ValidableIntegerString(
                (int)json.GetObject().GetNamedNumber("port"), 0, 65535);

            _heartbeat = new ValidableIntegerString(
                (int)json.GetObject().GetNamedNumber("heartbeat"), 0, 65535);

            var configIceServers = new ObservableCollection <IceServer>();

            // Parses turn server.
            if (json.GetObject().ContainsKey("turnServer"))
            {
                JsonValue turnServer = json.GetObject().GetNamedValue("turnServer");
                string    uri        = turnServer.GetObject().GetNamedString("uri");
                IceServer iceServer  = new IceServer(
                    uri.Substring(uri.IndexOf("turn:") + 5),
                    IceServer.ServerType.TURN);

                iceServer.Credential = turnServer.GetObject().GetNamedString("username");
                iceServer.Username   = turnServer.GetObject().GetNamedString("password");
                configIceServers.Add(iceServer);
            }

            // Parses stun server.
            if (json.GetObject().ContainsKey("stunServer"))
            {
                JsonValue stunServer = json.GetObject().GetNamedValue("stunServer");
                string    uri        = stunServer.GetObject().GetNamedString("uri");
                IceServer iceServer  = new IceServer(
                    uri.Substring(uri.IndexOf("stun:") + 5),
                    IceServer.ServerType.STUN);

                iceServer.Credential = stunServer.GetObject().GetNamedString("username");
                iceServer.Username   = stunServer.GetObject().GetNamedString("password");
                configIceServers.Add(iceServer);
            }

            // Default ones.
            configIceServers.Add(new IceServer("stun.l.google.com:19302", IceServer.ServerType.STUN));
            configIceServers.Add(new IceServer("stun1.l.google.com:19302", IceServer.ServerType.STUN));
            configIceServers.Add(new IceServer("stun2.l.google.com:19302", IceServer.ServerType.STUN));
            configIceServers.Add(new IceServer("stun3.l.google.com:19302", IceServer.ServerType.STUN));
            configIceServers.Add(new IceServer("stun4.l.google.com:19302", IceServer.ServerType.STUN));

            Conductor.Instance.ConfigureIceServers(configIceServers);
            var ntpServerAddress = new ValidableNonEmptyString("time.windows.com");

            RunOnUiThread(() =>
            {
                IceServers = configIceServers;
                NtpServer  = ntpServerAddress;
                NtpServer  = ntpServerAddress;
                Port       = _port;
                Ip         = new ValidableNonEmptyString(_server);
                HeartBeat  = _heartbeat;
                ReevaluateHasServer();
            });

            Conductor.Instance.ConfigureIceServers(configIceServers);
        }