public void EndAgentBreak() { try { var reply = ArdsHandler.SendStatusChangeRequestIdel(UserAuth, string.Empty); if (OnAgentBreakEnd != null) { OnAgentBreakEnd(AgentCurrentState, reply.Command == WorkflowResultCode.ACDS403); } IsAgentBreakGranted = false; } catch (Exception exception) { Logger.Instance.LogMessage(Logger.LoggerFiles.DuoDefault, "EndAgentBreak", exception, Logger.LogLevel.Error); } }
private void UpdateAgentStatus(AgentState status) { try { Logger.Instance.LogMessage(Logger.LoggerFiles.DuoLogger5, string.Format("UpdateAgentStatus. {0} To {1}", _agentPreviouState, _agentCurrentState), Logger.LogLevel.Info); new SwitchOnType <AgentState>(status) .Case <AgentAcw>(ac => { OnAgentStatusUpdating(); ArdsHandler.ResourceStatusChangeACW(UserAuth, CallSessionId); OnAgentStatusUpdated(); }) .Case <AgentBreak>(asc => { OnAgentStatusUpdating(); ArdsHandler.ResourceStatusChangeBreak(UserAuth, CallSessionId); OnAgentStatusUpdated(); }) .Case <AgentBusy>(conf => { OnAgentStatusUpdating(); ArdsHandler.ResourceStatusChangeBusy(UserAuth, CallSessionId); OnAgentStatusUpdated(); }) .Case <AgentIdle>(cont => { OnAgentStatusUpdating(); var reply = ArdsHandler.SendStatusChangeRequestIdel(UserAuth, CallSessionId); BreakRequsetHandle(reply.Command); OnAgentStatusUpdated(); }); //.Case<AgentInitiate>(disc => SetDisconnectDialPad()) //.Case<AgentOffline>(spotTrade => SetHoldDialPad()) //.Default<AgentState>(t => DisableRingtone()); } catch (Exception exception) { Logger.Instance.LogMessage(Logger.LoggerFiles.DuoDefault, "UpdateAgentStatus", exception, Logger.LogLevel.Error); OnAgentStatusUpdated(); } }
public override void OnLoggedOn(ref Agent agent, string callSessionId) { ArdsHandler.ResourceModeChange(agent.UserAuth); ArdsHandler.SendStatusChangeRequestIdel(agent.UserAuth, callSessionId); agent.AgentCurrentState = new AgentIdle(); }
public override void OnLogOn(ref Agent agent, string callSessionId) { ArdsHandler.SendStatusChangeRequestIdel(agent.UserAuth, callSessionId); }
private void UserLogin() { try { var settingObject = System.Configuration.ConfigurationSettings.AppSettings; var company = settingObject["Company"]; var auth = DuoAuth.DuoAuthorizationService.Login(txtUserName.Text.Trim(), txtPassword.Text.Trim(), int.Parse(company), "DuoSoftPhone"); if (auth == null) { throw new Exception("Fail to Login to Auth."); } var result = ArdsHandler.ResourceRegistration(auth, GetLocalIPAddress()); if (result.Command == WorkflowResultCode.ACDS101) { result = ArdsHandler.SendStatusChangeRequestIdel(auth, result.SessionID); if (result.Command == WorkflowResultCode.ACDS403 || result.Command == WorkflowResultCode.ACDS405) { result = ArdsHandler.SendModeChangeRequestInbound(auth); if (result.Command == WorkflowResultCode.ACDS601 || result.Command == WorkflowResultCode.ACDS501) { var sip = ProfileManagementHandler.GetSipProfile(auth.SecurityToken, auth.guUserId); if (string.IsNullOrEmpty(sip.userName)) { Logger.Instance.LogMessage(Logger.LoggerFiles.DuoDefault, "Fail to get SIP Profile info", Logger.LogLevel.Error); throw new Exception("Fail to get SIP Profile info."); } // set agent status _agent = new Agent { AgentCurrentState = new AgentInitiate(), AgentCurrentMode = AgentMode.Inbound, SipProfile = sip, AgentSessionId = SessionId.UniqueId(txtUserName.Text.Trim()), UserAuth = auth, }; var frm = new FormDialPad(auth, _agent.AgentSessionId, sip, _agent); _agent.AgentCurrentState.OnLogOn(ref _agent, string.Empty); Hide(); frm.ShowDialog(this); this.Close(); Environment.Exit(0); return; } else { Logger.Instance.LogMessage(Logger.LoggerFiles.DuoDefault, "Fail to set Agent Mode", Logger.LogLevel.Error); MessageBox.Show("Fail to set Agent Mode", "Duo Dialer", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { Logger.Instance.LogMessage(Logger.LoggerFiles.DuoDefault, "Fail to set Agent Status", Logger.LogLevel.Error); MessageBox.Show("Fail to set Agent Status", "Duo Dialer", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { Logger.Instance.LogMessage(Logger.LoggerFiles.DuoDefault, "Fail to ResourceRegistration", Logger.LogLevel.Error); MessageBox.Show("Resource Registration Fail", "Duo Dialer", MessageBoxButtons.OK, MessageBoxIcon.Error); } ArdsHandler.ResourceUnregistration(auth); } catch (Exception exception) { Logger.Instance.LogMessage(Logger.LoggerFiles.DuoDefault, "Login fail", exception, Logger.LogLevel.Error); MessageBox.Show("Login Fail", "Duo Dialer", MessageBoxButtons.OK, MessageBoxIcon.Error); } txtPassword.Text = string.Empty; }
public override void OnEndCallLog(ref Agent agent, string callSessionId) { agent.AgentCurrentState = new AgentIdle(); ArdsHandler.SendStatusChangeRequestIdel(agent.UserAuth, callSessionId); }