Ejemplo n.º 1
0
        public void SetAuth(UserAuth auth)
        {
            try
            {
                Auth = auth;

                ResoursHandler = new ResourceHandler(Auth.SecurityToken, Auth.TenantID, Auth.CompanyID);

                SipSetting = ProfileManagementHandler.GetSipProfile(auth.SecurityToken, auth.guUserId);
                if (SipSetting == null)
                {
                    Logger.Instance.LogMessage(Logger.LoggerFiles.DuoDefault, "Fail to Get SIP Profile", Logger.LogLevel.Error);
                    MessageBox.Show("Fail to Get SIP Profile", "Duo Dialer", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                ResoursHandler.OnResourceRegistrationCompleted += (r) =>
                {
                    try
                    {
                        switch (r.Command)
                        {
                        case WorkflowResultCode.ACDS101:     //- Agent sucessfully registered (ACDS101)
                            ResoursHandler.SendModeChangeRequestInbound(Auth);
                            break;

                        case WorkflowResultCode.ACDE101:     //- Agent already registered with different IP (ACDE101)
                            Logger.Instance.LogMessage(Logger.LoggerFiles.DuoDefault, "Agent already registered with different IP-ARDS Code : ACDE101", Logger.LogLevel.Info);
                            MessageBox.Show("Agent already registered with different IP", "Duo Dialer", MessageBoxButtons.OK, MessageBoxIcon.Error);

                            break;

                        default:
                            Logger.Instance.LogMessage(Logger.LoggerFiles.DuoDefault, "Login Fail-- ARDS not allow to Login. ARDS Code : " + r.Command, Logger.LogLevel.Info);
                            MessageBox.Show("Login Fail", "Duo Dialer", MessageBoxButtons.OK, MessageBoxIcon.Error);

                            break;
                        }
                    }
                    catch (Exception exception)
                    {
                        Logger.Instance.LogMessage(Logger.LoggerFiles.DuoDefault, "OnResourceRegistrationCompleted", exception, Logger.LogLevel.Error);
                    }
                };

                ResoursHandler.OnSendModeChangeRequestInboundCompleted += (s) =>
                {
                    try
                    {
                        CallHandler = new CallHandler(auth.SecurityToken, auth.TenantID, auth.CompanyID);
                        UiState.InInitiateMsgState(CallHandler.AutoAnswerByDefault(), (CallHandler.AutoAnswerByDefault() && CallHandler.AutoAnswerCanAgentEnable()), auth.UserName);
                    }
                    catch (Exception exception)
                    {
                        Logger.Instance.LogMessage(Logger.LoggerFiles.DuoDefault, "OnSendModeChangeRequestInboundCompleted", exception, Logger.LogLevel.Error);
                    }
                };

                ResoursHandler.OnStatusUpdatedMessage += (s) =>
                {
                    try
                    {
                        Logger.Instance.LogMessage(Logger.LoggerFiles.DuoDefault, string.Format("OnStatusUpdatedMessage : {0}", s), Logger.LogLevel.Info);
                        //if (!string.IsNullOrEmpty(s.ExtraData))
                        //    mynotifyicon.ShowBalloonTip(5, "Duo Soft Phone", s.ExtraData, ToolTipIcon.Info);
                    }
                    catch (Exception exception)
                    {
                        Logger.Instance.LogMessage(Logger.LoggerFiles.DuoDefault, "OnStatusUpdatedMessage", exception, Logger.LogLevel.Error);
                    }
                };

                ResoursHandler.OnSendStatusChangeRequestIdelCompleted += (s) =>
                {
                    try
                    {
                        Logger.Instance.LogMessage(Logger.LoggerFiles.DuoDefault, string.Format("OnSendStatusChangeRequestIdelCompleted : {0}", s), Logger.LogLevel.Info);
                    }
                    catch (Exception exception)
                    {
                        Logger.Instance.LogMessage(Logger.LoggerFiles.DuoDefault, "OnSendStatusChangeRequestIdelCompleted", exception, Logger.LogLevel.Error);
                    }
                };
            }
            catch (Exception exception)
            {
                Logger.Instance.LogMessage(Logger.LoggerFiles.DuoDefault, "SetAuth", exception, Logger.LogLevel.Error);
            }
        }