public async Task SendFabricSetup(
            string fabricTransmissionDirection, string remoteEndpointType, long gatheringDelayMiliseconds,
            long connectivityDelayMiliseconds, long totalSetupDelay, List <IceCandidate> localIceCandidates,
            List <IceCandidate> remoteIceCandidates, List <IceCandidatePair> iceCandidatePairList)
        {
            FabricSetupData fsd = new FabricSetupData();

            fsd.localID                     = localID;
            fsd.originID                    = originID;
            fsd.deviceID                    = deviceID;
            fsd.timestamp                   = DateTime.UtcNow.ToUnixTimeStampMiliseconds();
            fsd.connectionID                = connectionID;
            fsd.remoteID                    = remoteID;
            fsd.delay                       = totalSetupDelay;
            fsd.iceGatheringDelay           = gatheringDelayMiliseconds;
            fsd.iceConnectivityDelay        = connectivityDelayMiliseconds;
            fsd.fabricTransmissionDirection = fabricTransmissionDirection;
            fsd.remoteEndpointType          = remoteEndpointType;
            fsd.localIceCandidates          = localIceCandidates;
            fsd.remoteIceCandidates         = remoteIceCandidates;
            fsd.iceCandidatePairs           = iceCandidatePairList;

            Debug.WriteLine("FabricSetup: ");
            await callstats.FabricSetup(fsd);
        }
Example #2
0
        public async Task StepsToIntegrate(CreateConferenceData createConferenceData, UserAliveData userAliveData,
                                           FabricSetupData fabricSetupData, FabricSetupFailedData fabricSetupFailedData,
                                           SSRCMapData ssrcMapData, ConferenceStatsSubmissionData conferenceStatsSubmissionData,
                                           FabricTerminatedData fabricTerminatedData, UserLeftData userLeftData)
        {
            string authContent = await Authentication();

            string accessToken = DeserializeJson <AuthenticationResponse>(authContent).access_token;

            _client.DefaultRequestHeaders.Add("Authorization", $"Bearer {accessToken}");

            Debug.WriteLine("CreateConference: ");
            var confContent = await CreateConference(createConferenceData);

            _ucID = DeserializeJson <ConferenceResponse>(confContent.Item2).ucID;

            Timer timer = new Timer(10000);

            timer.Elapsed += async(sender, e) =>
            {
                Debug.WriteLine("UserAlive: ");
                await UserAlive(userAliveData);
            };
            timer.Start();

            Debug.WriteLine("FabricSetup: ");
            var fabricStatus = await FabricSetup(fabricSetupData);

            if (fabricStatus.Item1 != HttpStatusCode.OK)
            {
                Debug.WriteLine("FabricSetupFailed: ");
                await FabricSetupFailed(fabricSetupFailedData);
            }

            Debug.WriteLine("SSRCMap: ");
            await SSRCMap(ssrcMapData);

            Debug.WriteLine("ConferenceStatsSubmission: ");
            await ConferenceStatsSubmission(conferenceStatsSubmissionData);

            Debug.WriteLine("FabricTerminated: ");
            await FabricTerminated(fabricTerminatedData);

            Debug.WriteLine("UserLeft: ");
            await UserLeft(userLeftData);
        }
Example #3
0
 public async Task <Tuple <HttpStatusCode, string> > FabricSetup(FabricSetupData fabricSetupData)
 {
     return(await SendRequest(fabricSetupData, UrlBuilder(Host.events.ToString(),
                                                          $"/v1/apps/{_appID}/conferences/{_confID}/{_ucID}/events/fabric/setup")));
 }