Ejemplo n.º 1
0
        /// <summary>
        /// Clears and fills the adapter Ice Servers list with the default, free, built-in servers.
        /// Use only for development/testing purpose, not production.
        /// </summary>
        public void InitDefaultIceServers()
        {
            var servers = new List <WebRTCIceServer>()
            {
                new WebRTCIceServer()
                {
                    Url = "stun:stun1.l.google.com:19302"
                },
                new WebRTCIceServer()
                {
                    Url = "stun:stun2.l.google.com:19302"
                },
                new WebRTCIceServer()
                {
                    Url = "stun:stun3.l.google.com:19302"
                },
                new WebRTCIceServer()
                {
                    Url = "stun:stun4.l.google.com:19302"
                },
                new WebRTCIceServer()
                {
                    Url = "stun:stun4.l.google.com:19302"
                },
                new WebRTCIceServer()
                {
                    Url = "stun:stun.sipsorcery.com"
                },
                new WebRTCIceServer()
                {
                    Url = "stun:eu-turn4.xirsys.com"
                },
                new WebRTCIceServer()
                {
                    Url = "turn:eu-turn4-back.xirsys.com:80?transport=udp", UserName = "******", Credentials = "1b037dd2-bb66-11eb-8a51-0242ac140004"
                },
                new WebRTCIceServer()
                {
                    Url = "turn:eu-turn4-back.xirsys.com:3478?transport=udp", UserName = "******", Credentials = "1b037dd2-bb66-11eb-8a51-0242ac140004"
                },
                new WebRTCIceServer()
                {
                    Url = "turn:eu-turn4-back.xirsys.com:80?transport=tcp", UserName = "******", Credentials = "1b037dd2-bb66-11eb-8a51-0242ac140004"
                },
                new WebRTCIceServer()
                {
                    Url = "turn:eu-turn4-back.xirsys.com:3478?transport=tcp", UserName = "******", Credentials = "1b037dd2-bb66-11eb-8a51-0242ac140004"
                }
            };

            IceServers.Clear();

            foreach (var server in servers)
            {
                IceServers.Add(server);
            }
        }
Ejemplo n.º 2
0
        private void InitConnection()
        {
            Logger.LogInformation("Initializing connection...");

            var servers = IceServers.DistinctBy(x => x.Url).ToList();

            foreach (var ice in servers)
            {
                Logger.LogInformation($"Adding ice server: '{ice}'...");
            }

            _connection = new RTCPeerConnection(new RTCConfiguration()
            {
                iceServers = servers.Select(x => new RTCIceServer()
                {
                    urls       = x.Url,
                    username   = x.UserName,
                    credential = x.Credentials,
                }).ToList()
            });

            _connection.ondatachannel           += OnDataChannelInitialized;
            _connection.onicecandidate          += OnIceCandidateAvailable;
            _connection.onconnectionstatechange += OnConnectionStateChanged;


            Logger.LogInformation($"Creating data channel {ChannelName}...");

            _dataChannel          = _connection.createDataChannel(ChannelName).GetAwaiter().GetResult();
            _dataChannel.onopen  += OnDataChannelOpened;
            _dataChannel.onclose += OnDataChannelClosed;

            Logger.LogInformation("Starting connection...");
            _connection.Start().GetAwaiter().GetResult();

            _connectionInitialized = true;
        }
 private void OnAddIceServerCommandExecute()
 {
     IceServers.Insert(0, new IceServerViewModel(new IceServer()));
 }
 private void OnDeleteIceServerCommandExecute(IceServerViewModel iceServerVm)
 {
     IceServers.Remove(iceServerVm);
 }