public async Task SendFabricTransportChange(int delay, string relayType,
                                                    List <IceCandidate> localIceCandidates, List <IceCandidate> remoteIceCandidates,
                                                    IceCandidatePair currIceCandidatePairObj, IceCandidatePair prevIceCandidatePairObj,
                                                    string newIceConnectionState, string prevIceConnectionState)
        {
            FabricTransportChangeData ftcd = new FabricTransportChangeData();

            ftcd.localID                = localID;
            ftcd.originID               = originID;
            ftcd.deviceID               = deviceID;
            ftcd.timestamp              = DateTime.UtcNow.ToUnixTimeStampMiliseconds();
            ftcd.remoteID               = remoteID;
            ftcd.connectionID           = connectionID;
            ftcd.localIceCandidates     = localIceCandidates;
            ftcd.remoteIceCandidates    = remoteIceCandidates;
            ftcd.currIceCandidatePair   = currIceCandidatePairObj;
            ftcd.prevIceCandidatePair   = prevIceCandidatePairObj;
            ftcd.currIceConnectionState = newIceConnectionState;
            ftcd.prevIceConnectionState = prevIceConnectionState;
            ftcd.delay     = delay;
            ftcd.relayType = relayType;

            Debug.WriteLine("FabricTransportChange: ");
            await callstats.FabricTransportChange(ftcd);
        }
        public IceCandidatePair GetIceCandidatePairData()
        {
            IceCandidatePair icp = new IceCandidatePair();

            icp.id = Instance.currIceCandidatePair.Id;
            icp.localCandidateId  = Instance.currIceCandidatePair.LocalCandidateId;
            icp.remoteCandidateId = Instance.currIceCandidatePair.RemoteCandidateId;
            icp.state             = Instance.currIceCandidatePair.State.ToString().ToLower();
            icp.priority          = 1;
            icp.nominated         = Instance.currIceCandidatePair.Nominated;

            return(icp);
        }
        public void AddToIceCandidatePairsList()
        {
            for (int i = 0; i < Instance.iceCandidatePairStatsList.Count; i++)
            {
                IceCandidatePairStats icps = Instance.iceCandidatePairStatsList[i];

                IceCandidatePair iceCandidatePair = new IceCandidatePair();

                iceCandidatePair.id = icps.id;
                iceCandidatePair.localCandidateId  = icps.localCandidateId;
                iceCandidatePair.remoteCandidateId = icps.remoteCandidateId;
                iceCandidatePair.state             = icps.state;
                iceCandidatePair.priority          = 1;
                iceCandidatePair.nominated         = icps.nominated;

                Instance.iceCandidatePairList.Add(iceCandidatePair);
            }
        }
        public async Task SendIceTerminated(IceCandidatePair prevIceCandidatePairObj,
                                            string newIceConnectionState, string prevIceConnectionState)
        {
            IceTerminatedData itd = new IceTerminatedData();

            itd.eventType              = "iceTerminated";
            itd.localID                = localID;
            itd.originID               = originID;
            itd.deviceID               = deviceID;
            itd.timestamp              = DateTime.UtcNow.ToUnixTimeStampMiliseconds();
            itd.remoteID               = remoteID;
            itd.connectionID           = connectionID;
            itd.prevIceCandidatePair   = prevIceCandidatePairObj;
            itd.currIceConnectionState = newIceConnectionState;
            itd.prevIceConnectionState = prevIceConnectionState;

            Debug.WriteLine("IceTerminated: ");
            await callstats.IceTerminated(itd);
        }
        public async Task SendIceDisruptionStart(IceCandidatePair currIceCandidatePairObj,
                                                 string newIceConnectionState, string prevIceConnectionState)
        {
            IceDisruptionStartData ids = new IceDisruptionStartData();

            ids.eventType              = "iceDisruptionStart";
            ids.localID                = localID;
            ids.originID               = originID;
            ids.deviceID               = deviceID;
            ids.timestamp              = DateTime.UtcNow.ToUnixTimeStampMiliseconds();
            ids.remoteID               = remoteID;
            ids.connectionID           = connectionID;
            ids.currIceCandidatePair   = currIceCandidatePairObj;
            ids.currIceConnectionState = newIceConnectionState;
            ids.prevIceConnectionState = prevIceConnectionState;

            Debug.WriteLine("IceDisruptionStart: ");
            await callstats.IceDisruptionStart(ids);
        }
        public void SendFabricDropped(int delay, IceCandidatePair currIceCandidatePair,
                                      string newIceConnectionState, string prevIceConnectionState)
        {
            FabricDroppedData fdd = new FabricDroppedData();

            fdd.localID                = localID;
            fdd.originID               = originID;
            fdd.deviceID               = deviceID;
            fdd.timestamp              = DateTime.UtcNow.ToUnixTimeStampMiliseconds();
            fdd.remoteID               = remoteID;
            fdd.connectionID           = connectionID;
            fdd.currIceCandidatePair   = currIceCandidatePair;
            fdd.currIceConnectionState = newIceConnectionState;
            fdd.prevIceConnectionState = prevIceConnectionState;
            fdd.delay = delay;

            Debug.WriteLine("FabricDropped: ");
            var task = callstats.FabricDropped(fdd);
        }
Beispiel #7
0
        public void FabricSetupRemoteCandidate(string candidate)
        {
            string[] separatingChars = { " " };
            string[] words           = candidate.Split(separatingChars, StringSplitOptions.None);

            string[] candidateStr = words[0].Split(":", StringSplitOptions.None);

            var candidateID        = candidateStr[1];
            var candidateTransport = words[2];
            var localCandidateID   = words[3];
            var candidateIp        = words[4];
            var candidatePort      = words[5];
            var candidateType      = words[7];

            Debug.WriteLine($"!!!candidateID: {candidateID}, " +
                            $"candidateTransport: {candidateTransport}, " +
                            $"localCandidateID: {localCandidateID}, " +
                            $"candidateIp: {candidateIp}, " +
                            $"candidatePort: {candidatePort}, " +
                            $"candidateType: {candidateType}");

            IceCandidate remoteIceCandidateObj = new IceCandidate();

            remoteIceCandidateObj.id            = candidateID;
            remoteIceCandidateObj.type          = "remotecandidate";
            remoteIceCandidateObj.ip            = candidateIp;
            remoteIceCandidateObj.port          = int.Parse(candidatePort);
            remoteIceCandidateObj.candidateType = candidateType;
            remoteIceCandidateObj.transport     = candidateTransport;
            remoteIceCandidatesList.Add(remoteIceCandidateObj);

            IceCandidatePair iceCandidatePairObj = new IceCandidatePair();

            iceCandidatePairObj.id = candidateID;
            iceCandidatePairObj.localCandidateId  = localCandidateID;
            iceCandidatePairObj.remoteCandidateId = candidateID;
            iceCandidatePairObj.state             = IceCandidateState.succeeded.ToString();
            iceCandidatePairObj.priority          = 1;
            iceCandidatePairObj.nominated         = true;
            iceCandidatePairsList.Add(iceCandidatePairObj);
        }