Ejemplo n.º 1
0
        public AgentLineControl GetAgentLineControl(AgentLineControl ag)
        {
            AgentLineControl lControl = ag;

            log.Debug("Received GetAgentLineControl: " + ag.ToString());
            if (Global.cacheMgr != null)
            {
                if (Global.cacheMgr.Contains(ag.directoryNumber))
                {
                    log.Debug("This agent is in cache: " + ag.directoryNumber);
                    lControl = (AgentLineControl)Global.cacheMgr.GetData(ag.directoryNumber);
                    int compteur = 0;
                    while (lControl.Equals(ag) && compteur <= int.Parse(WebConfigurationManager.AppSettings.Get("LineControlServerTimeOut")))
                    {
                        Thread.Sleep(int.Parse(WebConfigurationManager.AppSettings.Get("LineControlServerSleepTime")));
                        lControl = (AgentLineControl)Global.cacheMgr.GetData(ag.directoryNumber);
                        compteur++;
                    }
                }
            }
            else
            {
                log.Debug("Cache Manager is null");
            }
            log.Debug("Return AgentLineControl: " + lControl.ToString());
            return(lControl);
        }
Ejemplo n.º 2
0
        public bool SetLineControl(LineControl lc)
        {
            bool success = false;

            try
            {
                if (Global.cacheMgr != null)
                {
                    log.Debug("Adding or update linecontrol: " + lc.ToString());
                    if (Global.cacheMgr.Contains(lc.directoryNumber))
                    {
                        object linecontrol = Global.cacheMgr.GetData(lc.directoryNumber);
                        if (linecontrol is AgentLineControl)
                        {
                            AgentLineControl currentAgentLineControl = ((AgentLineControl)Global.cacheMgr.GetData(lc.directoryNumber));
                            currentAgentLineControl.doNotDisturb          = lc.doNotDisturb;
                            currentAgentLineControl.forward               = lc.forward;
                            currentAgentLineControl.lineControlConnection = lc.lineControlConnection;
                            currentAgentLineControl.mwiOn     = lc.mwiOn;
                            currentAgentLineControl.status    = lc.status;
                            currentAgentLineControl.monitored = lc.monitored;
                            Global.cacheMgr.Add(lc.directoryNumber, currentAgentLineControl);
                        }
                        else
                        {
                            LineControl currentLineControl = ((LineControl)Global.cacheMgr.GetData(lc.directoryNumber));
                            currentLineControl.doNotDisturb          = lc.doNotDisturb;
                            currentLineControl.forward               = lc.forward;
                            currentLineControl.lineControlConnection = lc.lineControlConnection;
                            currentLineControl.mwiOn     = lc.mwiOn;
                            currentLineControl.status    = lc.status;
                            currentLineControl.monitored = lc.monitored;
                            Global.cacheMgr.Add(lc.directoryNumber, currentLineControl);
                        }
                    }
                    else
                    {
                        Global.cacheMgr.Add(lc.directoryNumber, lc);
                    }
                    success = true;
                }
                return(success);
            }
            catch (Exception e)
            {
                log.Error("Error while setting linecontrol : " + e.Message);
                return(success);
            }
        }
Ejemplo n.º 3
0
        public bool SetAgentLineControl(string extension, string agentid, AgentState state, CallCenterCall ccc)
        {
            bool success = false;

            try
            {
                if (Global.cacheMgr != null)
                {
                    log.Debug("Adding or update agentlinecontrol: " + extension + state.ToString());
                    if (Global.cacheMgr.Contains(extension) && Global.cacheMgr.GetData(extension) is AgentLineControl)
                    {
                        AgentLineControl currentAgentLineControl = ((AgentLineControl)Global.cacheMgr.GetData(extension));
                        currentAgentLineControl.agentstate     = state;
                        currentAgentLineControl.callcentercall = ccc;
                        Global.cacheMgr.Add(extension, currentAgentLineControl);
                    }
                    else
                    {
                        AgentLineControl alc = new AgentLineControl();
                        LineControl      lc  = ((LineControl)Global.cacheMgr.GetData(extension));
                        alc.agentid               = agentid;
                        alc.agentstate            = state;
                        alc.callcentercall        = ccc;
                        alc.directoryNumber       = lc.directoryNumber;
                        alc.doNotDisturb          = lc.doNotDisturb;
                        alc.forward               = lc.forward;
                        alc.lineControlConnection = lc.lineControlConnection;
                        alc.mwiOn     = lc.mwiOn;
                        alc.status    = lc.status;
                        alc.monitored = lc.monitored;
                        Global.cacheMgr.Add(extension, alc);
                    }
                    success = true;
                }
                return(success);
            }
            catch (Exception e)
            {
                log.Error("Error while setting agentlinecontrol : " + e.Message);
                return(success);
            }
        }