private void AssignPreAgentStatus(EventRegistered eReg)
 {
     if (eReg != null && eReg.Extensions.ContainsKey("AgentStatus"))
     {
         int state = Convert.ToInt32(eReg.Extensions["AgentStatus"]);
         if (state > 0)
         {
             Settings.GetInstance().ISAlreadyLogin = true;
         }
         else
         {
             Settings.GetInstance().ISAlreadyLogin = false;
         }
     }
 }
 private void AssignPreCallStatus(EventRegistered eReg)
 {
     if (eReg != null && eReg.Extensions.Contains("status"))
     {
         int status = Convert.ToInt32(eReg.Extensions["status"]);
         if (status == 1)
         {
             if (eReg.Extensions.ContainsKey("conn-1"))
             {
                 Settings.GetInstance().ConnectionID = eReg.Extensions["conn-1"].ToString();
             }
             if (eReg.Extensions.ContainsKey("ps-1"))
             {
                 Settings.GetInstance().PartyState = eReg.Extensions["ps-1"].ToString();
             }
         }
     }
 }
Example #3
0
        public static void RegisterEvent(BackstageEventBase ev)
        {
            System.Diagnostics.Debug.WriteLine("EVENT: " + ev.Title + " - " + ev.Detail);
            EventRegistered.SafeInvoke(ev);
            var tev = ev as TwitterEventBase;

            if (tev == null)
            {
                return;
            }
            lock (_twitterEvents.SyncRoot)
            {
                _twitterEvents.Insert(0, tev);
                if (_twitterEvents.Count > TwitterEventMaxHoldCount)
                {
                    _twitterEvents.RemoveAt(_twitterEvents.Count - 1);
                }
            }
        }
Example #4
0
 public void RegisterEvents(IEnumerable <ICombatEvent> events)
 {
     Events = events;
     EventRegistered?.Invoke(this, new EventArgs());
 }
        public OutputValues Login(string place, string userName, string workMode, string queue, string agentLoginId, string agentPassword)
        {
            logger.Debug("SoftPhone Login:"******"*********************************************");
            logger.Debug("Place: " + place + Environment.NewLine + "UserName: "******"WorkMode: "
                         + workMode + Environment.NewLine + "Queue: " + queue + Environment.NewLine + "AgentLoginId: " + agentLoginId);
            logger.Debug("*********************************************");
            var output = new OutputValues();

            //Input Validation
            CheckException.CheckLoginValues(place, userName);

            //Authenticate User
            Settings.GetInstance().QueueName = queue;

            CheckException.CheckDN(Settings.GetInstance().ACDPosition, Settings.GetInstance().ExtensionDN, Settings.GetInstance().PlaceName);
            EventRegistered evenReg  = null;
            string          fullName = "";

            if (Settings.GetInstance().ACDPosition == Settings.GetInstance().ExtensionDN)
            {
                var message = RegisterDNRequest(Settings.GetInstance().ExtensionDN);
                if (message != null)
                {
                    switch (message.Id)
                    {
                    case EventRegistered.MessageId:
                        evenReg = message as EventRegistered;
                        string AID = string.IsNullOrEmpty(evenReg.AgentID) ? "" : evenReg.AgentID;
                        if (CheckPlcaeTaken(AID, out fullName))
                        {
                            if (Settings.GetInstance().ACDPosition == Settings.GetInstance().ExtensionDN)
                            {
                                Pointel.Softphone.Voice.Core.Request.RequestUnRegisterPlace.UnRegisterDN(Settings.GetInstance().ExtensionDN);
                            }
                            else
                            {
                                Pointel.Softphone.Voice.Core.Request.RequestUnRegisterPlace.UnRegisterDN(Settings.GetInstance().ACDPosition);
                                Pointel.Softphone.Voice.Core.Request.RequestUnRegisterPlace.UnRegisterDN(Settings.GetInstance().ExtensionDN);
                            }
                            output.MessageCode = "2004";
                            output.Message     = "Place is already taken by " + fullName + ".";
                            return(output);
                        }
                        AssignPreAgentStatus(evenReg);
                        AssignPreCallStatus(evenReg);
                        Settings.GetInstance().IsDNRegistered = true;
                        break;

                    case EventError.MessageId:
                        Settings.GetInstance().IsDNRegistered = false;
                        break;
                    }
                }
                Register(Settings.GetInstance().ExtensionDN);
            }
            else
            {
                var message = RegisterDNRequest(Settings.GetInstance().ACDPosition);
                if (message != null)
                {
                    switch (message.Id)
                    {
                    case EventRegistered.MessageId:
                        evenReg = message as EventRegistered;
                        string AID = string.IsNullOrEmpty(evenReg.AgentID) ? "" : evenReg.AgentID;
                        if (CheckPlcaeTaken(AID, out fullName))
                        {
                            if (Settings.GetInstance().ACDPosition == Settings.GetInstance().ExtensionDN)
                            {
                                Pointel.Softphone.Voice.Core.Request.RequestUnRegisterPlace.UnRegisterDN(Settings.GetInstance().ExtensionDN);
                            }
                            else
                            {
                                Pointel.Softphone.Voice.Core.Request.RequestUnRegisterPlace.UnRegisterDN(Settings.GetInstance().ACDPosition);
                                //Pointel.Softphone.Voice.Core.Request.RequestUnRegisterPlace.UnRegisterDN(Settings.GetInstance().ExtensionDN);
                            }
                            output.MessageCode = "2004";
                            output.Message     = "Place is already taken by " + fullName + ".";
                            return(output);
                        }
                        AssignPreAgentStatus(evenReg);
                        Settings.GetInstance().IsDNRegistered = true;
                        break;

                    case EventError.MessageId:
                        Settings.GetInstance().IsDNRegistered = false;
                        break;
                    }
                }
                IMessage message1 = RegisterDNRequest(Settings.GetInstance().ExtensionDN);
                if (message1 != null)
                {
                    switch (message1.Id)
                    {
                    case EventRegistered.MessageId:
                        evenReg = message as EventRegistered;
                        AssignPreCallStatus(evenReg);
                        Settings.GetInstance().IsDNRegistered = true;
                        break;

                    case EventError.MessageId:
                        Settings.GetInstance().IsDNRegistered = false;
                        break;
                    }
                }
                Register(Settings.GetInstance().ACDPosition);
                Register(Settings.GetInstance().ExtensionDN);
            }
            if (!Settings.GetInstance().ISAlreadyLogin&& Settings.GetInstance().IsDNRegistered)
            {
                output = RequestLogin.LoginAgent(workMode, queue, agentLoginId, agentPassword);
            }
            else if (Settings.GetInstance().ISAlreadyLogin)
            {
                output.MessageCode = "201";
                output.Message     = "Agent Login Success";
            }
            if (output.MessageCode == "200")
            {
                output.Message = "Agent Login Success";
            }

            return(output);
        }