Beispiel #1
0
        public async Task <QueueApiViewModel> GetQueueRestApi(long queueNumber)
        {
retry:
            string token = await GetNewTokenRest();

            ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(delegate { return(true); });
            HttpClient client  = new HttpClient();
            string     postadd = "https://" + IssabeLIP + "/pbxapi/queues/" + queueNumber.ToString();
            var        request = new HttpRequestMessage(HttpMethod.Get, postadd);

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
            var response = await client.SendAsync(request);

            string res = await response.Content.ReadAsStringAsync();


            if (response.IsSuccessStatusCode)
            {
                if (res.Contains("password"))
                {
                    res = res.Substring(31);
                    res = res.Substring(0, (res.Length - 2));

                    //return res;
                    QueueApi          queue      = QueueApi.FromJson(res);
                    QueueApiViewModel queuemodel = new QueueApiViewModel();

                    queuemodel.Extension = Convert.ToInt32(queue.Extension);
                    queuemodel.Name      = queue.Name;
                    queuemodel.Password  = queue.Password;
                    //queuemodel.StaticMembers.Add("2000");// = queue.StaticMembers;
                    queuemodel.RingStrategy   = queue.RingStrategy;
                    queuemodel.SkipBusyAgents = queue.SkipBusyAgents;
                    queuemodel.JoinAnnounceId = queue.JoinAnnounceId;
                    queuemodel.MonitorFormat  = queue.MonitorFormat;
                    //queuemodel.MonitorJoin = "yes";
                    queuemodel.MonitorType = queue.MonitorType;
                    queuemodel.MaxWait     = queue.MaxWait;
                    // queuemodel.SoundThankYou = "queue-thankyou";
                    //queuemodel.SoundCallsWaiting = "queue-callswaiting";
                    //queuemodel.SoundThereAre = "queue-thereare";
                    // queuemodel.SoundYouAreNext = "queue-youarenext";
                    queuemodel.TimeoutPriority        = queue.TimeoutPriority; /////Max Wait Time Mode
                    queuemodel.Timeout                = queue.Timeout;         /////////// Agent Timeout
                    queuemodel.AgentRetry             = queue.AgentRetry;
                    queuemodel.ReportHoldTime         = queue.ReportHoldTime;
                    queuemodel.AutoPause              = queue.AutoPause;
                    queuemodel.AutoPauseDelay         = Convert.ToInt32(queue.AutoPauseDelay);
                    queuemodel.AutoPauseIfBusy        = queue.AutoPauseIfBusy;
                    queuemodel.AutoPauseIfUnavailable = queue.AutoPauseIfUnavailable;
                    queuemodel.MaxCallersWaiting      = queue.MaxCallersWaiting;
                    queuemodel.JoinEmpty              = queue.JoinEmpty;
                    queuemodel.LeaveWhenEmpty         = queue.LeaveWhenEmpty;
                    queuemodel.AnnounceFrequency      = queue.AnnounceFrequency;
                    queuemodel.AnnounceHoldtime       = queue.AnnounceHoldtime;
                    queuemodel.AnnouncePosition       = queue.AnnouncePosition;
                    //queuemodel.EventMemberStatus = "yes";
                    //queuemodel.EventWhenCalled = "yes";
                    queuemodel.CronSchedule = queue.CronSchedule;


                    return(queuemodel);
                }
                else
                {
                    return(null);
                }
            }
            else if (response.StatusCode.ToString() == "500")
            {
                //GetNewToken();
                goto retry;
            }
            else
            {
                return(null);
            }


            //ExtensionApiViewModel extensionViewModel = new ExtensionApiViewModel();
            //extensionViewModel.Extension = extension.Extension.Value;
            //extensionViewModel.Name = extension.Name;
            //extensionViewModel.Secret = extension.Secret;
            //extensionViewModel.DeviceOptions_DtmfMode = extension.DeviceOptions.DtmfMode;
            //extensionViewModel.DeviceOptions_Encryption = extension.DeviceOptions.Encryption;
            //extensionViewModel.DeviceOptions_Nat = extension.DeviceOptions.Nat;
            //extensionViewModel.DeviceOptions_Port = extension.DeviceOptions.Port.Value;
            //extensionViewModel.DeviceOptions_Transport = extension.DeviceOptions.Transport;
            //extensionViewModel.Recording_InboundExternal = extension.Recording.InboundExternal;
            //extensionViewModel.Recording_InboundInternal = extension.Recording.InboundInternal;
            //extensionViewModel.Recording_OutboundExternal = extension.Recording.OutboundExternal;
            //extensionViewModel.Recording_OutboundInternal = extension.Recording.OutboundInternal;
            //extensionViewModel.Recording_Priority = extension.Recording.Priority.Value;

            //extensionViewModel.Voicemail_Voicemail = "selected";
            //extensionViewModel.Voicemail_Password = 2222;
            //extensionViewModel.Voicemail_EmailAddress = "*****@*****.**";
            //extensionViewModel.Voicemail_EmailAttachmen = "yes";
            //extensionViewModel.Voicemail_PlayCID = "yes";
            //extensionViewModel.Voicemail_PlayEnvelope = "yes";
            //extensionViewModel.Voicemail_DeleteVoicemail = "yes";



            //return extensionViewModel;
        }