/// <summary>
        /// Refines the place.
        /// </summary>
        /// <param name="userName">Name of the user.</param>
        /// <param name="placeName">Name of the place.</param>
        /// <param name="agentLoginID">The agent login identifier.</param>
        /// <param name="queueName">Name of the queue.</param>
        /// <param name="agentPassword">The agent password.</param>
        /// <param name="workMode">The work mode.</param>
        /// <returns></returns>
        public OutputValues RefinePlace(string userName, string placeName, string agentLoginID, string queueName, string agentPassword, string workMode)
        {
            var output = OutputValues.GetInstance();
            var read   = new ReadConfigObjects();

            try
            {
                Settings.GetInstance().PlaceName = placeName;
                output = read.ReadPlaceObject();
                if (output.MessageCode == "200")
                {
                    if (Settings.GetInstance().VoiceProtocol != null && Settings.GetInstance().VoiceProtocol.State == ChannelState.Opened)
                    {
                        output = Login(placeName, userName, workMode, queueName, agentLoginID, agentPassword);
                    }
                }
                return(output);
            }
            catch (Exception generalException)
            {
                output.MessageCode = "2001";
                output.Message     = "Error occurred in Softphone RefinePlace() : " + generalException.ToString();
                logger.Error("Softphone_RefinePlace:" + generalException.ToString());
                return(output);
            }
        }
        public OutputValues CheckChatServerStatus()
        {
            OutputValues output = OutputValues.GetInstance();

            try
            {
                try
                {
                    var temp = ProtocolManagers.Instance().ProtocolManager[ServerType.Chatserver.ToString()];
                    if (Pointel.Interactions.Chat.Core.Util.Settings.ChatProtocol.State == Genesyslab.Platform.Commons.Protocols.ChannelState.Closed)
                    {
                        Settings.ChatProtocol = null;
                        output.MessageCode    = "2002";
                        output.Message        = "Chat Server protocol is closed Need to Open it.";
                    }
                    else if (Pointel.Interactions.Chat.Core.Util.Settings.ChatProtocol.State == Genesyslab.Platform.Commons.Protocols.ChannelState.Opened)
                    {
                        output.MessageCode = "200";
                        output.Message     = "Chat Server protocol is opened.";
                    }
                }
                catch
                {
                    output.MessageCode = "2001";
                    output.Message     = "Chat Server protocol is null. Need to create a chat protocol";
                }
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred while Check Chat Server Status " + generalException.ToString());
                output.MessageCode = "2003";
                output.Message     = "Error occurred while Check Chat Server Status";
            }
            return(output);
        }
        /// <summary>
        /// Agents the logout.
        /// </summary>
        /// <param name="proxyId">The proxy identifier.</param>
        /// <returns></returns>
        public OutputValues AgentLogout(int proxyId)
        {
            OutputValues output = OutputValues.GetInstance();

            output.Message     = string.Empty;
            output.MessageCode = string.Empty;
            output.ErrorCode   = 0;
            try
            {
                RequestAgentLogout requestAgentlogout = RequestAgentLogout.Create();
                requestAgentlogout.ProxyClientId = proxyId;

                if (Settings.InteractionProtocol != null && Settings.InteractionProtocol.State == ChannelState.Opened)
                {
                    IMessage message = Settings.InteractionProtocol.Request(requestAgentlogout);
                    if (message != null)
                    {
                        switch (message.Id)
                        {
                        case EventAck.MessageId:
                            EventAck eventAgentLogout = (EventAck)message;
                            logger.Info("-------------AgentLogout----------------");
                            logger.Info("ProxyClientId    :" + proxyId);
                            logger.Info("Name    :" + eventAgentLogout.Name.ToString());
                            logger.Info("----------------------------------------");
                            logger.Trace(eventAgentLogout.ToString());
                            output.MessageCode = "200";
                            output.Message     = "Agent Logout Successful";
                            break;

                        case EventError.MessageId:
                            EventError eventError            = (EventError)message;
                            string     LoginErrorCode        = Convert.ToString(eventError.ErrorCode);
                            string     LoginErrorDescription = Convert.ToString(eventError.ErrorDescription);
                            logger.Trace(eventError.ToString());
                            output.ErrorCode   = eventError.ErrorCode;
                            output.MessageCode = "2002";
                            output.Message     = "AgentLogout() : " + LoginErrorDescription;
                            break;
                        }
                    }
                    else
                    {
                        output.MessageCode = "2001";
                        output.Message     = "Agent Logout UnSuccessful";
                    }
                }
                else
                {
                    logger.Warn("AgentLogout() : Interaction Server Protocol is Null..");
                }
            }
            catch (Exception commonException)
            {
                logger.Error("Error occurred while Agent Logout request " + commonException.ToString());
                output.MessageCode = "2001";
                output.Message     = commonException.Message;
            }
            return(output);
        }
        public static OutputValues GetSearchResult(string query, int maxCount, string searchType)
        {
            OutputValues  output = OutputValues.GetInstance();
            RequestSearch requestContactSearch = new RequestSearch();

            requestContactSearch.Query      = query;
            requestContactSearch.MaxResults = maxCount;
            requestContactSearch.IndexName  = searchType;
            if (Settings.UCSProtocol != null && Settings.UCSProtocol.State == ChannelState.Opened)
            {
                output.IContactMessage = Settings.UCSProtocol.Request(requestContactSearch);
                if (output.IContactMessage.Id == EventSearch.MessageId)
                {
                    output.MessageCode = "200";
                    output.Message     = "Request processed successfully.";
                }
                else
                {
                    output.MessageCode = "2001";
                    output.Message     = "Got Error during perform contact search.";
                }
            }
            else
            {
                output.IContactMessage = null;
                output.MessageCode     = "2001";
                output.Message         = "Universal Contact Server protocol is Null or Closed.";
            }
            return(output);
        }
        /// <summary>
        /// Gets the plugin values.
        /// </summary>
        /// <param name="AppName">Name of the app.</param>
        /// <param name="ConfObject">The conf object.</param>
        /// <returns></returns>
        public OutputValues GetPluginValues(string AppName, ConfService ConfObject)
        {
            ReadApplication read   = new ReadApplication();
            OutputValues    output = OutputValues.GetInstance();

            try
            {
                logger.Debug("ConfigConnectionManager : GetPluginValues Method: Entry");
                StatisticsSetting.GetInstance().confObject = ConfObject;

                read.ReadLoggerDetails(AppName);
                output.MessageCode = "200";
                output.Message     = "Config Server Protocol Opened";
            }
            catch (Exception connectionException)
            {
                logger.Error("ConfigConnectionManager :GetPluginValues Method: " + connectionException.Message.ToString());
            }
            finally
            {
                logger.Debug("ConfigConnectionManager : GetPluginValues Method: Exit");
                GC.Collect();
            }

            return(output);
        }
        public OutputValues CreateChatProtocol()
        {
            OutputValues output = OutputValues.GetInstance();

            try
            {
                ChatConnectionManager chatConnectionManager = new ChatConnectionManager();
                output = chatConnectionManager.OpenChatProtocol(Settings.NickName, Settings.PersonID, Settings.PrimaryApplication, Settings.SecondaryApplication);
                if (output.MessageCode == "200")
                {
                    Settings.MessageToClient.NotifyChatProtocol(Settings.ChatProtocol, Settings.NickName);
                }
                else
                {
                    output.MessageCode = "2001";
                    output.Message     = "Error occurred while Create Chat Protocol : " + output.Message;
                    logger.Error("Error occurred while Create Chat Protocol");
                }
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred while Create Chat Protocol " + generalException.ToString());
                output.MessageCode = "2001";
                output.Message     = "Error occurred while Create Chat Protocol";
            }
            return(output);
        }
示例#7
0
        /// <summary>
        /// Changes the properties.
        /// </summary>
        /// <param name="interactionId">The interaction identifier.</param>
        /// <param name="proxyId">The proxy identifier.</param>
        /// <param name="dispositionNotes">The disposition notes.</param>
        /// <returns></returns>
        public OutputValues ChangeProperties(string interactionId, int proxyId, KeyValueCollection addedProperties, KeyValueCollection changedProperties)
        {
            OutputValues output = OutputValues.GetInstance();

            output.Message     = string.Empty;
            output.MessageCode = string.Empty;
            output.ErrorCode   = 0;
            RequestChangeProperties requestChangeProperties = RequestChangeProperties.Create();

            try
            {
                requestChangeProperties.InteractionId = interactionId;
                requestChangeProperties.ProxyClientId = proxyId;
                if (changedProperties != null)
                {
                    requestChangeProperties.ChangedProperties = changedProperties;
                }
                if (addedProperties != null)
                {
                    requestChangeProperties.AddedProperties = addedProperties;
                }
                if (Settings.InteractionProtocol != null && Settings.InteractionProtocol.State == ChannelState.Opened)
                {
                    IMessage response = Settings.InteractionProtocol.Request(requestChangeProperties);
                    if (response.Id == EventPropertiesChanged.MessageId || response.Id == EventAck.MessageId)
                    {
                        logger.Info("------------RequestChangeProperties-------------");
                        logger.Info("InteractionId  :" + interactionId);
                        logger.Info("ProxyClientId    :" + proxyId);
                        logger.Info(" RequestChangeProperties : response :" + response.ToString());
                        logger.Info("-------------------------------------------------");
                        logger.Trace(response.ToString());
                        output.MessageCode = "200";
                        output.Message     = "Change Properties Successful";
                    }
                    else
                    {
                        output.MessageCode = "2001";
                        output.Message     = "Don't Change Properties Successful";
                    }
                }
                else
                {
                    logger.Warn("ChangeProperties() : Interaction Server Protocol is Null..");
                }
            }
            catch (ProtocolException protocolException)
            {
                logger.Error("Error occurred while change properties request " + protocolException.ToString());
                output.MessageCode = "2001";
                output.Message     = protocolException.Message;
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred while change properties request " + generalException.ToString());
                output.MessageCode = "2001";
                output.Message     = generalException.Message;
            }
            return(output);
        }
        public OutputValues ReadPlaceObject()
        {
            OutputValues output = OutputValues.GetInstance();

            try
            {
                Settings.GetInstance().ACDPosition = string.Empty;
                Settings.GetInstance().ExtensionDN = string.Empty;
                CfgPlace      application          = new CfgPlace(_configContainer.ConfServiceObject);
                CfgPlaceQuery queryApp             = new CfgPlaceQuery();
                queryApp.TenantDbid = _configContainer.TenantDbId;
                queryApp.Name       = Settings.GetInstance().PlaceName;
                application         = _configContainer.ConfServiceObject.RetrieveObject <CfgPlace>(queryApp);

                IList <CfgDN> DNCollection = (IList <CfgDN>)application.DNs;

                if (DNCollection != null && DNCollection.Count > 0)
                {
                    foreach (CfgDN DN in DNCollection)
                    {
                        if (!String.IsNullOrEmpty(DN.Number))
                        {
                            //Code changed to get both DN's by checking its string empty value
                            if (DN.Type == CfgDNType.CFGACDPosition && Settings.GetInstance().SwitchTypeName == "nortel")
                            {
                                Settings.GetInstance().ACDPosition = DN.Number;
                            }
                            if (DN.Type == CfgDNType.CFGExtension)
                            {
                                Settings.GetInstance().ExtensionDN = DN.Number;
                                if (Settings.GetInstance().ACDPosition.Equals(string.Empty))
                                {
                                    Settings.GetInstance().ACDPosition = DN.Number;
                                }
                            }
                            //End
                        }
                    }
                }
                else
                {
                    output.MessageCode = "2001";
                    output.Message     = Settings.GetInstance().ErrorMessages["place.config"];
                }

                output.MessageCode = "200";
                output.Message     = "Login Successful";
            }
            catch (Exception commonException)
            {
                logger.Error("Error occurred while reading " + Settings.GetInstance().PlaceName + "  =  " + commonException.ToString());

                output.MessageCode = "2001";
                output.Message     = Settings.GetInstance().ErrorMessages["place.config"];
            }
            return(output);
        }
        /// <summary>
        /// Gets the contact list.
        /// </summary>
        /// <param name="tenantId">The tenant identifier.</param>
        /// <returns></returns>
        public static OutputValues GetContactList(int tenantId, List <string> attributeNames, int startIndex)
        {
            Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
            OutputValues             output = OutputValues.GetInstance();

            try
            {
                RequestGetContacts requestGetContacts = new RequestGetContacts();
                requestGetContacts.IndexOfFirst = startIndex;
                StringList stringList = new StringList();
                for (int count = 0; count < attributeNames.Count; count++)
                {
                    stringList.Add(attributeNames[count].ToString());
                }
                //stringList.Add("EmailAddress");
                //stringList.Add("FirstName");
                //stringList.Add("LastName");
                requestGetContacts.AttributeList = stringList;
                requestGetContacts.TenantId      = tenantId;
                if (Settings.UCSProtocol != null && Settings.UCSProtocol.State == ChannelState.Opened)
                {
                    logger.Info("------------GetContacts-------------");
                    logger.Info("TenantId    :" + tenantId);
                    logger.Info("AttributeList: " + stringList);
                    logger.Info("-------------------------------------");
                    IMessage message = Settings.UCSProtocol.Request(requestGetContacts);
                    if (message != null)
                    {
                        logger.Trace(message.ToString());
                        output.IContactMessage = message;
                        output.MessageCode     = "200";
                        output.Message         = "Get Contacts Successful";
                    }
                    else
                    {
                        output.IContactMessage = null;
                        output.MessageCode     = "2001";
                        output.Message         = "Don't Get Contacts Successful";
                    }
                }
                else
                {
                    output.IContactMessage = null;
                    output.MessageCode     = "2001";
                    output.Message         = "Universal Contact Server protocol is Null or Closed";
                    logger.Warn("GetContactList() : Universal Contact Server Protocol is Null");
                }
            }
            catch (Exception generalException)
            {
                logger.Error("Error Occurred while Get Contacts request" + generalException.ToString());
                output.IContactMessage = null;
                output.MessageCode     = "2001";
                output.Message         = generalException.Message;
            }
            return(output);
        }
        /// <summary>
        /// Adds the agent favorite response.
        /// </summary>
        /// <param name="stdResponse">The standard response.</param>
        /// <param name="agentId">The agent identifier.</param>
        /// <returns></returns>
        public static OutputValues AddAgentFavoriteResponse(string stdResponse, string agentId)
        {
            Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID"); 
            OutputValues output = OutputValues.GetInstance();
            try
            {
                RequestAddAgentStdRespFavorite requestAddAgentStdRespFavorite = new RequestAddAgentStdRespFavorite();
                requestAddAgentStdRespFavorite.StandardResponse = stdResponse;
                // requestAddFavouriteResponse.Name = stdName;
                // string strAgentID = "1001";
                int? agentid = int.Parse(agentId.ToString());
                requestAddAgentStdRespFavorite.AgentId = agentid;
                // requestAddFavouriteResponse.Name = stdResponse;
                // requestAddFavouriteResponse.Name = name;
                if (Settings.UCSProtocol != null && Settings.UCSProtocol.State == ChannelState.Opened)
                {
                    logger.Info("------------AddAgentFavoriteResponse-------------");
                    logger.Info("StandardResponse  :" + stdResponse);
                    logger.Info("AgentId    :" + agentId);
                    logger.Info("-------------------------------------------------");
                    IMessage response = Settings.UCSProtocol.Request(requestAddAgentStdRespFavorite);
                    if (response != null)
                    {
                        logger.Trace(response.ToString());
                        output.IContactMessage = response;
                        output.MessageCode = "200";
                        output.Message = "Add Agent Standard Response Favorite Successful";
                    }
                    else
                    {
                        output.IContactMessage = null;
                        output.MessageCode = "2001";
                        output.Message = "Don't Add Agent Standard Response Favorite.";
                    }
                }
                else
                {
                    output.IContactMessage = null;
                    output.MessageCode = "2001";
                    output.Message = "Universal Contact Server protocol is Null or Closed";
                    logger.Warn("AddAgentFavoriteResponse() : Universal Contact Server protocol is Null..");
                }
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred while Add Agent Standard Response Favorite request " + generalException.ToString());
                output.IContactMessage = null;
                output.MessageCode = "2001";
                output.Message = generalException.Message;
            }
            return output;

        }
        public static OutputValues GetSnapshotInteractionsbyID(int proxyClientId, int snapshotID, int startFrom, int numberOfInteractions)
        {
            Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");

            OutputValues result = OutputValues.GetInstance();

            result.Message     = string.Empty;
            result.MessageCode = string.Empty;
            result.ErrorCode   = 0;

            try
            {
                RequestGetSnapshotInteractions requestGetSnapshotInteractions = RequestGetSnapshotInteractions.Create();
                requestGetSnapshotInteractions.ProxyClientId        = proxyClientId;
                requestGetSnapshotInteractions.SnapshotId           = snapshotID;
                requestGetSnapshotInteractions.StartFrom            = startFrom;
                requestGetSnapshotInteractions.NumberOfInteractions = numberOfInteractions;

                if (Settings.InteractionProtocol != null && (Settings.InteractionProtocol.State == ChannelState.Opened || Settings.InteractionProtocol.State == ChannelState.Opening))
                {
                    IMessage response = Settings.InteractionProtocol.Request(requestGetSnapshotInteractions);
                    if (response != null)
                    {
                        if (response.Name != EventError.MessageName)
                        {
                            result.MessageCode = "200";
                            result.Message     = " EventSnapshotInteractions received";;
                            result.IMessage    = response;
                        }
                        else
                        {
                            result.MessageCode = "2001";
                            result.Message     = "Event error occurred while getting snapshot interactions from interaction server";
                            result.IMessage    = response;
                        }
                    }
                }
                else
                {
                    result.MessageCode = "2001";
                    result.Message     = "Interaction Server protocol not initialized or not in open state";
                }
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred while getting snapshot interactions" + generalException.ToString());
                result.MessageCode = "2001";
                result.Message     = generalException.Message;
            }
            return(result);
        }
示例#12
0
        /// <summary>
        /// Does the leave interaction from conference.
        /// </summary>
        /// <param name="interactionID">The interaction identifier.</param>
        /// <param name="proxyID">The proxy identifier.</param>
        /// <param name="agentID">The agent identifier.</param>
        /// <param name="_chatClosingProtocol">The _chat closing protocol.</param>
        /// <returns></returns>
        public OutputValues DoLeaveInteractionFromConference(string interactionID, int proxyID, string agentID)
        {
            OutputValues output = OutputValues.GetInstance();

            try
            {
                output = RequestLeaveConfInteraction.LeaveInteractionFromConference(interactionID, proxyID, agentID);
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred while Do Leave Interaction From Conference " + generalException.ToString());
            }
            return(output);
        }
示例#13
0
        /// <summary>
        /// Does the release party chat session.
        /// </summary>
        /// <param name="sessionID">The session identifier.</param>
        /// <param name="proxyID">The proxy identifier.</param>
        /// <param name="userId">The user identifier.</param>
        /// <param name="chatClosingProtocol">The chat closing protocol.</param>
        /// <returns></returns>
        public OutputValues DoReleasePartyChatSession(string sessionID, int proxyID, string userId, string messageText)
        {
            OutputValues output = OutputValues.GetInstance();

            try
            {
                output = RequestReleaseInteraction.ReleasePartyChatSession(sessionID, proxyID, userId, messageText);
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred while Do Release Party Chat Session " + generalException.ToString());
            }
            return(output);
        }
示例#14
0
        public OutputValues DoUpdateCaseDataProperties(string interactionId, int proxyClientID, KeyValueCollection updatedProperties)
        {
            OutputValues output = OutputValues.GetInstance();

            try
            {
                output = RequestToChangeProperties.UpdateProperties(interactionId, proxyClientID, updatedProperties);
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred update case data property " + generalException.ToString());
            }
            return(output);
        }
示例#15
0
        /// <summary>
        /// Does the stop interaction.
        /// </summary>
        /// <param name="interactionID">The interaction identifier.</param>
        /// <param name="proxyID">The proxy identifier.</param>
        /// <returns></returns>
        public OutputValues DoStopInteraction(string interactionID, int proxyID)
        {
            OutputValues output = OutputValues.GetInstance();

            try
            {
                output = RequestAgentStopInteraction.StopInteractionProcess(interactionID, proxyID);
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred while Do Stop Interaction " + generalException.ToString());
            }
            return(output);
        }
        public static OutputValues TakeSnapshotID(int proxyClientId, string condition)
        {
            Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
            OutputValues             result = OutputValues.GetInstance();

            result.Message     = string.Empty;
            result.MessageCode = string.Empty;
            result.ErrorCode   = 0;

            try
            {
                RequestTakeSnapshot requestTakeSnapshot = RequestTakeSnapshot.Create();
                requestTakeSnapshot.CheckInteractionsState = false;
                requestTakeSnapshot.Condition     = condition;
                requestTakeSnapshot.Lock          = false;
                requestTakeSnapshot.ProxyClientId = proxyClientId;

                if (Settings.InteractionProtocol != null && Settings.InteractionProtocol.State == ChannelState.Opened)
                {
                    IMessage response = Settings.InteractionProtocol.Request(requestTakeSnapshot);
                    if (response != null)
                    {
                        if (response.Name != EventError.MessageName)
                        {
                            result.MessageCode = "200";
                            result.Message     = "EventSnapshotTaken received";
                            result.IMessage    = response;
                        }
                        else
                        {
                            result.MessageCode = "2001";
                            result.Message     = "Event error occurred while request workbin type information from interaction server";
                            result.IMessage    = response;
                        }
                    }
                }
                else
                {
                    result.MessageCode = "2001";
                    result.Message     = "Interaction Server protocol not initialized or not in open state";
                }
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred while transfer the interaction" + generalException.ToString());
                result.MessageCode = "2001";
                result.Message     = generalException.Message;
            }
            return(result);
        }
示例#17
0
        public OutputValues DoHoldInteraction(int proxyID, string sessionID, KeyValueCollection extensions)
        {
            OutputValues output = OutputValues.GetInstance();

            try
            {
                output = RequestHoldInteraction.HoldInteraction(proxyID, sessionID, extensions);
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred while Do Hold Interaction" + generalException.ToString());
            }
            return(output);
        }
示例#18
0
        public OutputValues getWorkbinContent(string agentId, string placeId, string workbinName, int proxyId)
        {
            OutputValues output = new OutputValues();

            output.Message     = string.Empty;
            output.MessageCode = string.Empty;
            output.ErrorCode   = 0;
            try
            {
                RequestGetWorkbinContent getWorkbinContent1 = null;
                WorkbinInfo winfo = null;
                getWorkbinContent1 = RequestGetWorkbinContent.Create();
                getWorkbinContent1.ProxyClientId = proxyId;
                winfo = WorkbinInfo.Create();
                winfo.WorkbinAgentId = agentId;
                if (!string.IsNullOrEmpty(placeId))
                {
                    winfo.WorkbinPlaceId = placeId;
                }
                winfo.WorkbinTypeId        = workbinName;
                getWorkbinContent1.Workbin = winfo;
                if (Settings.InteractionProtocol != null && Settings.InteractionProtocol.State == ChannelState.Opened)
                {
                    IMessage response = Settings.InteractionProtocol.Request(getWorkbinContent1);
                    if (response.Id.Equals(EventWorkbinContent.MessageId))
                    {
                        output.MessageCode = "200";
                        output.IMessage    = response;
                        output.Message     = "Workbin Content retrieved successfully";
                    }
                    else
                    {
                        output.MessageCode = "2001";
                        output.IMessage    = response;
                        output.Message     = "Eorror occurred while retrieve workbin content";
                    }
                }
                else
                {
                    output.MessageCode = "2001";
                    output.Message     = "Interaction server is not active";
                }
            }
            catch (Exception ex)
            {
                OutputValues.GetInstance().Message     = "GetWorkbinContent " + ex.Message;
                OutputValues.GetInstance().MessageCode = "2001";
            }
            return(output);
        }
示例#19
0
        /// <summary>
        /// Does the send message.
        /// </summary>
        /// <param name="userName">Name of the user.</param>
        /// <param name="sessionID">The session identifier.</param>
        /// <param name="messageText">The message text.</param>
        /// <param name="chatProtocol">The chat protocol.</param>
        /// <returns></returns>
        public OutputValues DoSendMessage(string sessionID, string messageText)
        {
            OutputValues output = OutputValues.GetInstance();

            try
            {
                output = RequestSendMessage.SendChatMessage(sessionID, messageText);
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred while Do Send Message " + generalException.ToString());
            }
            return(output);
        }
示例#20
0
        /// <summary>
        /// Does the chat transfer interaction.
        /// </summary>
        /// <param name="interactionId">The interaction identifier.</param>
        /// <param name="agentId">The agent identifier.</param>
        /// <param name="placeId">The place identifier.</param>
        /// <param name="proxyId">The proxy identifier.</param>
        /// <param name="queueName">Name of the queue.</param>
        /// <returns></returns>
        public OutputValues DoChatTransferInteraction(string interactionId, string agentId, string placeId, int proxyId, string queueName, KeyValueCollection userData)
        {
            OutputValues output = OutputValues.GetInstance();

            try
            {
                output = RequestTransferInteraction.TransferChatSession(interactionId, agentId, placeId, proxyId, queueName, userData);
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred while Do Chat Transfer Interaction " + generalException.ToString());
            }
            return(output);
        }
示例#21
0
        /// <summary>
        /// Adds the case information.
        /// </summary>
        /// <param name="interactionid">The interactionid.</param>
        /// <param name="keyvalues">The keyvalues.</param>
        /// <returns></returns>
        public OutputValues AddCaseInformation(string interactionId, int proxyClientID, KeyValueCollection keyvalues)
        {
            OutputValues output = OutputValues.GetInstance();

            output.Message     = string.Empty;
            output.MessageCode = string.Empty;
            output.ErrorCode   = 0;
            try
            {
                RequestChangeProperties addedProperties = RequestChangeProperties.Create();
                addedProperties.InteractionId = interactionId;
                addedProperties.ProxyClientId = proxyClientID;
                if (keyvalues != null)
                {
                    addedProperties.AddedProperties = keyvalues;
                }
                if (Settings.InteractionProtocol != null && Settings.InteractionProtocol.State == ChannelState.Opened)
                {
                    IMessage response = Settings.InteractionProtocol.Request(addedProperties);
                    if (response.Id == EventPropertiesChanged.MessageId || response.Id == EventAck.MessageId)
                    {
                        logger.Info("------------AddCaseInformation-------------");
                        logger.Info("InteractionId  :" + interactionId);
                        logger.Info("ProxyClientId    :" + proxyClientID);
                        logger.Info(" AddCaseInformation : response :" + response.ToString());
                        logger.Info("-----------------------------------------");
                        logger.Trace(response.ToString());
                        output.MessageCode = "200";
                        output.Message     = "Add Case Information Successful";
                    }
                    else
                    {
                        logger.Trace(response.ToString());
                        output.MessageCode = "2001";
                        output.Message     = "Add Properties UnSuccessful";
                    }
                }
                else
                {
                    logger.Warn("AddCaseInformation() : Interaction Server Protocol is Null..");
                }
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred while doing Add Case Information:" + generalException.ToString());
                output.MessageCode = "2001";
                output.Message     = generalException.Message;
            }
            return(output);
        }
示例#22
0
        /// <summary>
        /// Documents the consult chat join.
        /// </summary>
        /// <param name="interactionID">The interaction unique identifier.</param>
        /// <param name="subject">The subject.</param>
        /// <param name="message">The message.</param>
        /// <param name="userData">The user data.</param>
        /// <returns></returns>
        public OutputValues DOConsultChatJoin(string interactionID, string subject, string message, KeyValueCollection userData)
        {
            OutputValues output = OutputValues.GetInstance();

            try
            {
                output = RequestJoinChatSession.JoinConsultChatSession(interactionID, subject, message, userData);
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred while Do Consult Chat Join " + generalException.ToString());
            }
            return(output);
        }
示例#23
0
        /// <summary>
        /// Documents the send type stop notification.
        /// </summary>
        /// <param name="sessionID">The session unique identifier.</param>
        /// <param name="noticeText">The notice text.</param>
        /// <param name="chatProtocol">The chat protocol.</param>
        /// <returns></returns>
        public OutputValues DoSendTypeStopNotification(string sessionID, string noticeText)
        {
            OutputValues output = OutputValues.GetInstance();

            try
            {
                output = RequestNotifyMessage.SendTypeStopNotification(sessionID, noticeText);
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred while Do Send Type Stop Notification " + generalException.ToString());
            }
            return(output);
        }
示例#24
0
        public OutputValues InitializeChatMedia(string userName, ConfService configObject, string applicationName)
        {
            OutputValues      output = OutputValues.GetInstance();
            ReadConfigObjects read   = new ReadConfigObjects();

            //Print DLL Info
            try
            {
                Assembly assemblyVersion = Assembly.LoadFrom(Environment.CurrentDirectory + @"\Pointel.Interactions.Chat.Core.dll");
                if (assemblyVersion != null)
                {
                    logger.Info("*********************************************");
                    logger.Info(assemblyVersion.GetName().Name + " : " + assemblyVersion.GetName().Version);
                    logger.Info("*********************************************");
                }
            }
            catch (Exception versionException)
            {
                logger.Error("Error occurred while getting the version of the chat core library " + versionException.ToString());
                output.MessageCode = "2001";
                output.Message     = "Error occurred while Initialize Chat Media : " + versionException.ToString();
            }
            try
            {
                ChatConnectionSettings.GetInstance().ComObject = configObject;
                read.ReadApplicationObject(applicationName);
                Settings.PersonID = Settings.Person.EmployeeID.ToString();
                if (Settings.NickNameFormat != null || Settings.NickNameFormat != string.Empty)
                {
                    GetNickName(Settings.NickNameFormat);
                }
                else
                {
                    if (Settings.Person != null)
                    {
                        Settings.NickName = Settings.Person.UserName;
                    }
                }
                output.MessageCode = "200";
                output.Message     = "Initialized Chat Media Successful.";
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred while Initialize Chat Media " + generalException.ToString());
                output.MessageCode = "2001";
                output.Message     = "Error occurred while Initialize Chat Media : " + generalException.ToString();
            }
            return(output);
        }
        /// <summary>
        /// Gets the interactions count.
        /// </summary>
        /// <param name="mediaType">Type of the media.</param>
        /// <returns></returns>
        public static OutputValues GetInteractionsCount(string mediaType)
        {
            Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
            OutputValues             output = OutputValues.GetInstance();

            try
            {
                RequestGetInteractionsWithStatus requestGetInteractionsWithStatus = new RequestGetInteractionsWithStatus();
                requestGetInteractionsWithStatus.MediaType          = mediaType;
                requestGetInteractionsWithStatus.InteractionType    = "Inbound";
                requestGetInteractionsWithStatus.InteractionSubtype = "InboundNew";
                requestGetInteractionsWithStatus.Status             = new Genesyslab.Platform.Contacts.Protocols.ContactServer.NullableStatuses(Statuses.InProcess);
                if (Settings.UCSProtocol != null && Settings.UCSProtocol.State == ChannelState.Opened)
                {
                    logger.Info("--------GetInteractionsCount---------");
                    logger.Info("MediaType    :" + mediaType);
                    logger.Info("-------------------------------------");
                    IMessage response = Settings.UCSProtocol.Request(requestGetInteractionsWithStatus);
                    if (response != null)
                    {
                        logger.Trace(response.ToString());
                        output.IContactMessage = response;
                        output.MessageCode     = "200";
                        output.Message         = "Get Interaction Count Successful";
                    }
                    else
                    {
                        output.IContactMessage = null;
                        output.MessageCode     = "2001";
                        output.Message         = "Don't Get Interaction Count Successful";
                    }
                }
                else
                {
                    output.IContactMessage = null;
                    output.MessageCode     = "2001";
                    output.Message         = "Universal Contact Server protocol is Null or Closed";
                    logger.Warn("GetInteractionsCount() : Universal Contact Server protocol is Null..");
                }
            }
            catch (Exception generalException)
            {
                logger.Error("Error Occurred while Get Interaction Count request" + generalException.ToString());
                output.IContactMessage = null;
                output.MessageCode     = "2001";
                output.Message         = generalException.Message;
            }
            return(output);
        }
        public OutputValues AddCaseDataProperties(string interactionId, int proxyClientID, KeyValueCollection addedProperties)
        {
            OutputValues output = OutputValues.GetInstance();

            try
            {
                RequestToChangeProperties requestToChangeProperties = new RequestToChangeProperties();
                output = requestToChangeProperties.AddCaseInformation(interactionId, proxyClientID, addedProperties);
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred add case data property " + generalException.ToString());
            }
            return(output);
        }
        public OutputValues TransferInteractiontoQueue(int proxyClientId, string interactionID, string queueName)
        {
            OutputValues output = OutputValues.GetInstance();

            try
            {
                RequestTransferInteraction requestTransferInteraction = new RequestTransferInteraction();
                output = requestTransferInteraction.TransferInteractiontoQueue(proxyClientId, interactionID, queueName);
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred while transferring " + generalException.ToString());
            }
            return(output);
        }
        public OutputValues StopProcessingInteraction(int proxyClientId, string interactionID)
        {
            OutputValues output = OutputValues.GetInstance();

            try
            {
                RequestStopProcessingInteraction requestStopProcessingInteraction = new RequestStopProcessingInteraction();
                output = requestStopProcessingInteraction.StopProcessingInteraction(proxyClientId, interactionID);
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred while stop processing the interaction " + generalException.ToString());
            }
            return(output);
        }
        public OutputValues PullInteraction(int tenantId, int proxyClientId, KeyValueCollection interactionIDs)
        {
            OutputValues output = OutputValues.GetInstance();

            try
            {
                RequestPullInteraction requestTransferInteraction = new RequestPullInteraction();
                output = requestTransferInteraction.PullInteraction(tenantId, proxyClientId, interactionIDs);
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred while pull the interaction " + generalException.ToString());
            }
            return(output);
        }
        public OutputValues GetInteractionProperties(int proxyClientId, string interactionID)
        {
            OutputValues output = OutputValues.GetInstance();

            try
            {
                RequesttoGetInteractionProperties requesttoGetInteractionProperties = new RequesttoGetInteractionProperties();
                output = requesttoGetInteractionProperties.GetInteractionProperties(proxyClientId, interactionID);
            }
            catch (Exception generalException)
            {
                logger.Error("Error occurred while getting interaction properties " + generalException.ToString());
            }
            return(output);
        }