Exemple #1
0
        private Div GenerateOuputForTotalStats(CallStats totalStats)
        {
            Div statsDiv = new Div()
                           .SetKeepTogether(true)
                           .SetMarginTop(DIV_MARGIN);

            Table statsTable = new Table(new float[2])
                               .SetBorder(Border.NO_BORDER)
                               .UseAllAvailableWidth()
                               .SetFontColor(HEADING_COLOR)
                               .SetFont(REGULAR_FONT)
                               .SetFontSize(REGULAR_FONT_SIZE);

            Cell statsCell = new Cell()
                             .SetBorder(Border.NO_BORDER)
                             .Add(new Paragraph($"Total Calls: {totalStats.TotalCalls} - " +
                                                $"Total Time: {totalStats.Duration}"));

            Cell timeCell = new Cell()
                            .SetBorder(Border.NO_BORDER)
                            .SetTextAlignment(TextAlignment.RIGHT)
                            .Add(new Paragraph($"Report generated on: {DateTime.Now.ToString()}"));

            statsTable.AddCell(statsCell).AddCell(timeCell);

            statsDiv.Add(statsTable);

            return(statsDiv);
        }
Exemple #2
0
        private void OnStats(Core lc, Call call, CallStats stats)
        {
#if WINDOWS_UWP
            Debug.WriteLine("Call stats: " + stats.DownloadBandwidth + " kbits/s / " + stats.UploadBandwidth + " kbits/s");
#else
            Console.WriteLine("Call stats: " + stats.DownloadBandwidth + " kbits/s / " + stats.UploadBandwidth + " kbits/s");
#endif
            call_stats.Text = "Call stats: " + stats.DownloadBandwidth + " kbits/s / " + stats.UploadBandwidth + " kbits/s";
        }
Exemple #3
0
        private CallStats GetStats()
        {
            var fromStats = CallStats.GetStats(CallsFrom);
            var toStats   = CallStats.GetStats(CallsTo);

            return(new CallStats()
            {
                Duration = toStats.Duration + fromStats.Duration,
                TotalCalls = toStats.TotalCalls + fromStats.TotalCalls
            });
        }
Exemple #4
0
        public Dictionary <string, CallStats> GetTotalStats(List <string> employees)
        {
            var filteredCalls = _calls;

            if (employees.Any())
            {
                filteredCalls = _calls
                                .Where(c => employees.Contains(c.ToName, StringComparer.OrdinalIgnoreCase) ||
                                       employees.Contains(c.FromName, StringComparer.OrdinalIgnoreCase));
            }

            var queues = filteredCalls
                         .Where(c => c.CallQueue != string.Empty)
                         .GroupBy(c => c.CallQueue)
                         .ToDictionary(q => q.Key, q => CallStats.GetStats(q));

            var result = queues;

            var totalStats = CallStats.GetStats(filteredCalls);

            result.Add("Total", totalStats);

            return(result);
        }
Exemple #5
0
 void CallStatsUpdated(Core lc, Call call, CallStats stats)
 {
     //System.Diagnostics.Debug.WriteLine("CallStatsUpdated");
 }
Exemple #6
0
 private void OnStats(Core lc, Call call, CallStats stats)
 {
     Log("Call stats: " + stats.DownloadBandwidth + " kbits/s / " + stats.UploadBandwidth + " kbits/s");
 }
Exemple #7
0
        /*private void cm_ContactFound(object sender, ContactFoundEventArgs e)
         * {
         *  if (e.ContactFound != null)
         *  {
         *      Contact.Text = e.ContactFound.DisplayName;
         *      if (e.PhoneLabel != null)
         *      {
         *          Number.Text = e.PhoneLabel + " : " + e.PhoneNumber;
         *      }
         *      else
         *      {
         *          Number.Text = e.PhoneNumber;
         *      }
         *  }
         * }*/

        private void timerTick(Object sender, Object e)
        {
            Call call = ((InCallModel)this.DataContext).GetCurrentCall();

            if (call == null)
            {
                return;
            }

            //startTime = (DateTimeOffset)call.CallStartTimeFromContext;


            TimeSpan callDuration = new TimeSpan(call.Duration * TimeSpan.TicksPerSecond);
            var      hh           = callDuration.Hours;
            var      ss           = callDuration.Seconds;
            var      mm           = callDuration.Minutes;

            Status.Text = hh.ToString("00") + ":" + mm.ToString("00") + ":" + ss.ToString("00");

            string audioPayloadType       = "";
            string audioDownloadBandwidth = "";
            string audioUploadBandwidth   = "";
            string videoPayloadType       = "";
            string videoDownloadBandwidth = "";
            string videoUploadBandwidth   = "";

            CallParams param = call.CurrentParams;

            ((InCallModel)this.DataContext).MediaEncryption = param.MediaEncryption.ToString();

            CallStats audioStats = null;

            try {
                audioStats = call.GetStats(StreamType.Audio);
            } catch { }

            if (audioStats != null)
            {
                audioDownloadBandwidth = String.Format("{0:0.00}", audioStats.DownloadBandwidth);
                audioUploadBandwidth   = String.Format("{0:0.00}", audioStats.UploadBandwidth);
                ((InCallModel)this.DataContext).ICE = audioStats.IceState.ToString();
            }

            PayloadType audiopt = param.UsedAudioPayloadType;

            if (audiopt != null)
            {
                audioPayloadType = audiopt.MimeType + "/" + audiopt.ClockRate;
            }

            if (param.VideoEnabled)
            {
                CallStats videoStats = call.GetStats(StreamType.Video);
                if (videoStats != null)
                {
                    videoDownloadBandwidth = String.Format("{0:0.00}", videoStats.DownloadBandwidth);
                    videoUploadBandwidth   = String.Format("{0:0.00}", videoStats.UploadBandwidth);
                }

                PayloadType videopt = param.UsedVideoPayloadType;
                if (videopt != null)
                {
                    videoPayloadType = videopt.MimeType;
                }
                VideoDefinition receivedVideoSize    = param.ReceivedVideoDefinition;
                String          NewReceivedVideoSize = String.Format("{0}x{1}", receivedVideoSize.Width, receivedVideoSize.Height);
                String          OldReceivedVideoSize = ((InCallModel)this.DataContext).ReceivedVideoSize;
                if (OldReceivedVideoSize != NewReceivedVideoSize)
                {
                    ((InCallModel)this.DataContext).ReceivedVideoSize = String.Format("{0}x{1}", receivedVideoSize.Width, receivedVideoSize.Height);
                    ((InCallModel)this.DataContext).IsVideoActive     = false;
                    if (NewReceivedVideoSize != "0x0")
                    {
                        ((InCallModel)this.DataContext).IsVideoActive = true;
                    }
                }
                VideoDefinition sentVideoSize = param.SentVideoDefinition;
                ((InCallModel)this.DataContext).SentVideoSize        = String.Format("{0}x{1}", sentVideoSize.Width, sentVideoSize.Height);
                ((InCallModel)this.DataContext).VideoStatsVisibility = Visibility.Visible;
            }
            else
            {
                ((InCallModel)this.DataContext).VideoStatsVisibility = Visibility.Collapsed;
            }

            string downloadBandwidth = audioDownloadBandwidth;

            if ((downloadBandwidth != "") && (videoDownloadBandwidth != ""))
            {
                downloadBandwidth += " - ";
            }
            if (videoDownloadBandwidth != "")
            {
                downloadBandwidth += videoDownloadBandwidth;
            }
            ((InCallModel)this.DataContext).DownBandwidth = String.Format("{0} kb/s", downloadBandwidth);
            string uploadBandwidth = audioUploadBandwidth;

            if ((uploadBandwidth != "") && (videoUploadBandwidth != ""))
            {
                uploadBandwidth += " - ";
            }
            if (videoUploadBandwidth != "")
            {
                uploadBandwidth += videoUploadBandwidth;
            }
            ((InCallModel)this.DataContext).UpBandwidth = String.Format("{0} kb/s", uploadBandwidth);
            string payloadType = audioPayloadType;

            if ((payloadType != "") && (videoPayloadType != ""))
            {
                payloadType += " - ";
            }
            if (videoPayloadType != "")
            {
                payloadType += videoPayloadType;
            }
            ((InCallModel)this.DataContext).PayloadType = payloadType;
        }
Exemple #8
0
        private void OnStats(Core lc, Call call, CallStats stats)
        {
            Debug.WriteLine("Call stats: " + stats.DownloadBandwidth + " kbits/s / " + stats.UploadBandwidth + " kbits/s");

            call_stats.Text = "Call stats: " + stats.DownloadBandwidth + " kbits/s / " + stats.UploadBandwidth + " kbits/s";
        }
Exemple #9
0
        public async Task InitializeCallStats()
        {
            callstats = new CallStats(_localID, _appID, _keyID, _confID, GenerateJWT());

            fabricSetupData.localID                     = _localID;
            fabricSetupData.originID                    = _originID;
            fabricSetupData.deviceID                    = _deviceID;
            fabricSetupData.timestamp                   = DateTime.UtcNow.ToUnixTimeStampMiliseconds();
            fabricSetupData.connectionID                = _connectionID;
            fabricSetupData.remoteID                    = _remoteID;
            fabricSetupData.delay                       = 5;
            fabricSetupData.iceGatheringDelay           = 3;
            fabricSetupData.iceConnectivityDelay        = 2;
            fabricSetupData.fabricTransmissionDirection = FabricTransmissionDirection.sendrecv.ToString();
            fabricSetupData.remoteEndpointType          = RemoteEndpointType.peer.ToString();
            fabricSetupData.localIceCandidates          = localIceCandidatesList;
            fabricSetupData.remoteIceCandidates         = remoteIceCandidatesList;
            fabricSetupData.iceCandidatePairs           = iceCandidatePairsList;

            ssrcMapData.localID      = _localID;
            ssrcMapData.originID     = _originID;
            ssrcMapData.deviceID     = _deviceID;
            ssrcMapData.timestamp    = DateTime.UtcNow.ToUnixTimeStampMiliseconds();
            ssrcMapData.connectionID = _connectionID;
            ssrcMapData.remoteID     = _remoteID;
            ssrcMapData.ssrcData     = ssrcDataList;

            Stats confSubmissionStats = new Stats();

            confSubmissionStats.tracks         = "tracks";
            confSubmissionStats.candidatePairs = "3";
            confSubmissionStats.timestamp      = DateTime.UtcNow.ToUnixTimeStampMiliseconds();
            confSubmissionStatsList.Add(confSubmissionStats);

            conferenceStatsSubmissionData.localID      = _localID;
            conferenceStatsSubmissionData.originID     = _originID;
            conferenceStatsSubmissionData.deviceID     = _deviceID;
            conferenceStatsSubmissionData.timestamp    = DateTime.UtcNow.ToUnixTimeStampMiliseconds();
            conferenceStatsSubmissionData.connectionID = _connectionID;
            conferenceStatsSubmissionData.remoteID     = _remoteID;
            conferenceStatsSubmissionData.stats        = confSubmissionStatsList;

            await callstats.StepsToIntegrate(
                CreateConference(),
                UserAlive(),
                fabricSetupData,
                FabricSetupFailed(),
                ssrcMapData,
                conferenceStatsSubmissionData,
                FabricTerminated(),
                UserLeft());

            //Debug.WriteLine("FabricStateChange: ");
            //await callstats.FabricStateChange(FabricStateChange());

            //Debug.WriteLine("FabricTransportChange: ");
            //await callstats.FabricTransportChange(FabricTransportChange());

            //Debug.WriteLine("FabricDropped: ");
            //await callstats.FabricDropped(FabricDropped());

            //Debug.WriteLine("FabricAction: ");
            //await callstats.FabricAction(FabricAction());

            //Debug.WriteLine("SystemStatusStatsSubmission: ");
            //await callstats.SystemStatusStatsSubmission(SystemStatusStatsSubmission());

            //Debug.WriteLine("IceDisruptionStart: ");
            //await callstats.IceDisruptionStart(IceDisruptionStart());

            //Debug.WriteLine("IceDisruptionEnd: ");
            //await callstats.IceDisruptionEnd(IceDisruptionEnd());

            //Debug.WriteLine("IceRestart: ");
            //await callstats.IceRestart(IceRestart());

            //Debug.WriteLine("IceFailed: ");
            //await callstats.IceFailed(IceFailed());

            //Debug.WriteLine("IceAborted: ");
            //await callstats.IceAborted(IceAborted());

            //Debug.WriteLine("IceTerminated: ");
            //await callstats.IceTerminated(IceTerminated());

            //Debug.WriteLine("IceConnectionDisruptionStart: ");
            //await callstats.IceConnectionDisruptionStart(IceConnectionDisruptionStart());

            //Debug.WriteLine("IceConnectionDisruptionEnd: ");
            //await callstats.IceConnectionDisruptionEnd(IceConnectionDisruptionEnd());

            //Debug.WriteLine("MediaAction: ");
            //await callstats.MediaAction(MediaAction());

            //Debug.WriteLine("MediaPlayback: ");
            //await callstats.MediaPlayback(MediaPlayback());

            //Debug.WriteLine("ConnectedOrActiveDevices: ");
            //await callstats.ConnectedOrActiveDevices(ConnectedOrActiveDevices());

            //Debug.WriteLine("ApplicationErrorLogs: ");
            //await callstats.ApplicationErrorLogs(ApplicationErrorLogs());

            //Debug.WriteLine("ConferenceUserFeedback: ");
            //await callstats.ConferenceUserFeedback(ConferenceUserFeedback());

            //Debug.WriteLine("DominantSpeaker: ");
            //await callstats.DominantSpeaker(DominantSpeaker());

            //Debug.WriteLine("SDPEvent: ");
            //await callstats.SDPEvent(SDPEvent());

            //Debug.WriteLine("BridgeStatistics: ");
            //await callstats.BridgeStatistics(BridgeStatistics());

            //Debug.WriteLine("BridgeAlive: ");
            //await callstats.BridgeAlive(BridgeAlive());

            //System.Timers.Timer timer = new System.Timers.Timer(30000);
            //timer.Elapsed += async (sender, e) =>
            //{
            //    Debug.WriteLine("BridgeAlive: ");
            //    await callstats.BridgeAlive(BridgeAliveData());
            //};
            //timer.Start();
        }
Exemple #10
0
 void CoreListener.CallStatsUpdated(Call call, CallStats stats)
 {
     System.Diagnostics.Debug.WriteLine("CallStatsUpdated");
 }
 void CoreListener.CallStatsUpdated(Call call, CallStats stats)
 {
     System.Diagnostics.Debug.WriteLine("CallStatsUpdated");
 }