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); }
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); } }
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); } }