public static IMessage UnRegisterDNRequest(string dnNumber) { var logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID"); IMessage message = null; try { //Input Validation Pointel.Softphone.Voice.Core.Exceptions.CheckException.CheckDialValues(dnNumber); var extensions = new Genesyslab.Platform.Commons.Collections.KeyValueCollection(); var requestUnRegisterAddress = Genesyslab.Platform.Voice.Protocols.TServer.Requests.Dn.RequestUnregisterAddress.Create(dnNumber, Genesyslab.Platform.Voice.Protocols.TServer.ControlMode.RegisterDefault, extensions); message = Settings.GetInstance().VoiceProtocol.Request(requestUnRegisterAddress); logger.Info("---------------UnRegisterDNRequest------------------"); logger.Info("DN:" + dnNumber); logger.Info("---------------------------------------------------"); } catch (System.Exception commonException) { logger.Error("Error occurred while Unregister " + dnNumber + " : " + commonException.ToString()); } return(message); }
/// <summary> /// This method used to modify/delete active call user data /// </summary> /// <param name="ThisDN">ThisDN</param> /// <param name="connectionID">ConnectionID</param> /// <param name="userData">UserData</param> #region UpdateAttachData public static Pointel.Softphone.Voice.Common.OutputValues UpdateAttachData(string ThisDN, string connectionId, Genesyslab.Platform.Commons.Collections.KeyValueCollection userData) { var logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID"); var output = Pointel.Softphone.Voice.Common.OutputValues.GetInstance(); try { if (!string.IsNullOrEmpty(connectionId) && !string.IsNullOrEmpty(ThisDN) && userData != null) { var connID = new Genesyslab.Platform.Voice.Protocols.ConnectionId(connectionId); var requestUpdateUserData = Genesyslab.Platform.Voice.Protocols.TServer.Requests.Userdata.RequestUpdateUserData.Create(ThisDN, connID, userData); var cProperties = Genesyslab.Platform.Voice.Protocols.TServer.CommonProperties.Create(); cProperties.ConnID = connID; cProperties.UserData = userData; cProperties.UserEvent = 85; cProperties.ThisDN = ThisDN; Settings.GetInstance().VoiceProtocol.Send(requestUpdateUserData); logger.Info("---------------UpdateAttachData------------------"); logger.Info("ThisDN:" + ThisDN); logger.Info("ConnectionID:" + connectionId); logger.Info("UserData:" + userData); logger.Info("-------------------------------------------------"); output.MessageCode = "200"; output.Message = "UserData has been Updated"; } else { output.MessageCode = "2001"; output.Message = "UserData has not been Updated"; logger.Info("---------------UpdateAttachData------------------"); logger.Info("ThisDN:" + ThisDN); logger.Info("ConnectionID:" + connectionId); logger.Info("UserData:" + userData); logger.Info("-------------------------------------------------"); } } catch (System.Exception commonException) { logger.Error("DoUpdateAttachData : " + commonException.ToString()); output.MessageCode = "2001"; output.Message = commonException.Message; } return(output); }
public void AdicionarDadosLigacao(Dictionary<String, String> dadosUsuario) { try { EnviaMensagemSignalR("ServidorCTI", this.PA + ", " + this.AgentID + ", " + this.PasswordAgentID + ", " + this.Queue); Genesyslab.Platform.Commons.Collections.KeyValueCollection kvColl = new Genesyslab.Platform.Commons.Collections.KeyValueCollection(); kvColl.Add(dadosUsuario); Genesyslab.Platform.Voice.Protocols.ConnectionId currentConnId = connIdAnswered; if (connIdTransfer != null) currentConnId = connIdTransfer; RequestAttachUserData raud = RequestAttachUserData.Create(this.PA, currentConnId, kvColl); pmsTServer[TSERVER_IDENTIFIER].Send(raud); } catch (Exception ex) { EnviaMensagemSignalR("ServidorCTI-Erro", "AdicionarDadosLigacao(...) - EncaminharPara: " + ex.Message); } }
public static Pointel.Softphone.Voice.Common.OutputValues InitiateTransfer(string pOtherDN, Genesyslab.Platform.Commons.Collections.KeyValueCollection reasonCode) { var logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID"); var output = Pointel.Softphone.Voice.Common.OutputValues.GetInstance(); try { //Input Validation Pointel.Softphone.Voice.Core.Exceptions.CheckException.CheckDialValues(pOtherDN); var requestInitiateTransfer = Genesyslab.Platform.Voice.Protocols.TServer.Requests.Party.RequestInitiateTransfer.Create(); //Below condition added to decide which DN going to control the call //05-14-2013 Palaniappan requestInitiateTransfer.ThisDN = (Settings.GetInstance().CallControl == "both" ? Settings.GetInstance().ActiveDN : (Settings.GetInstance().CallControl == "acd" ? Settings.GetInstance().ACDPosition : Settings.GetInstance().ExtensionDN)); //End var connId = new Genesyslab.Platform.Voice.Protocols.ConnectionId(Settings.GetInstance().ConnectionID); requestInitiateTransfer.ConnID = connId; requestInitiateTransfer.OtherDN = pOtherDN; if (reasonCode != null) { requestInitiateTransfer.Reasons = reasonCode; } //Code Added - V.Palaniappan //28.10.2013 if (requestInitiateTransfer.ThisDN != pOtherDN) { Settings.GetInstance().VoiceProtocol.Send(requestInitiateTransfer); } //End logger.Info("---------------InitiateTransfer------------------"); //Below condition added to decide which DN going to control the call //05-14-2013 Palaniappan logger.Info("ThisDN:" + (Settings.GetInstance().CallControl == "both" ? Settings.GetInstance().ActiveDN : (Settings.GetInstance().CallControl == "acd" ? Settings.GetInstance().ACDPosition : Settings.GetInstance().ExtensionDN))); //End logger.Info("ConnectionID:" + connId); logger.Info("OtherDN:" + pOtherDN); logger.Info("--------------------------------------------"); output.MessageCode = "200"; output.Message = "Call Transfer Initiated"; } catch (System.Exception commonException) { logger.Error("Error occurred while Initiate Transfer call " + commonException.ToString()); output.MessageCode = "2001"; output.Message = commonException.Message; } return(output); }
public static Pointel.Softphone.Voice.Common.OutputValues MuteTransfer(string OtherDN, string location, Genesyslab.Platform.Commons.Collections.KeyValueCollection userData, Genesyslab.Platform.Commons.Collections.KeyValueCollection reasons, Genesyslab.Platform.Commons.Collections.KeyValueCollection extensions) { var logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID"); var output = Pointel.Softphone.Voice.Common.OutputValues.GetInstance(); try { var requestCompleteTransfer = Genesyslab.Platform.Voice.Protocols.TServer.Requests.Party.RequestMuteTransfer.Create(); //Below condition added to decide which DN going to control the call //05-14-2013 Palaniappan requestCompleteTransfer.ThisDN = (Settings.GetInstance().CallControl == "both" ? Settings.GetInstance().ActiveDN : (Settings.GetInstance().CallControl == "acd" ? Settings.GetInstance().ACDPosition : Settings.GetInstance().ExtensionDN)); //End requestCompleteTransfer.OtherDN = OtherDN; //Code added by Manikandan on 24/03/2015 to implement Requeue if (!string.IsNullOrEmpty(location)) { requestCompleteTransfer.Location = location; } if (extensions != null && extensions.Count > 0) { requestCompleteTransfer.Extensions = extensions; } if (reasons != null && reasons.Count > 0) { requestCompleteTransfer.Reasons = reasons; } if (userData != null && userData.Count > 0) { requestCompleteTransfer.UserData = userData; } //End //Code Added to handle connectionid based on Switch Type //26/09/2013 V.Palaniappan Genesyslab.Platform.Voice.Protocols.ConnectionId connId; //Genesyslab.Platform.Voice.Protocols.ConnectionId transfConnid; if (string.Compare(Settings.GetInstance().SwitchTypeName, "nortel") == 0) { connId = new Genesyslab.Platform.Voice.Protocols.ConnectionId(Settings.GetInstance().ConnectionID); } else { connId = new Genesyslab.Platform.Voice.Protocols.ConnectionId(Settings.GetInstance().ConnectionID); //transfConnid = new ConnectionId(Settings.GetInstance().ConsultConnectionID); //requestCompleteTransfer.TransferConnID = transfConnid; } //End requestCompleteTransfer.ConnID = connId; Settings.GetInstance().VoiceProtocol.Request(requestCompleteTransfer); logger.Info("---------------CompleteTransfer------------------"); //Below condition added to decide which DN going to control the call //05-14-2013 Palaniappan logger.Info("ThisDN:" + (Settings.GetInstance().CallControl == "both" ? Settings.GetInstance().ActiveDN : (Settings.GetInstance().CallControl == "acd" ? Settings.GetInstance().ACDPosition : Settings.GetInstance().ExtensionDN))); //End logger.Info("ConnectionID:" + connId); logger.Info("--------------------------------------------"); output.MessageCode = "200"; output.Message = "Call Transfer Completed"; } catch (System.Exception commonException) { logger.Error("Error occurred while Mute Transfer call " + commonException.ToString()); output.MessageCode = "2001"; output.Message = commonException.Message; } return(output); }
public static Genesyslab.Platform.Commons.Protocols.IMessage InitiateTransferResponse(string pOtherDN, string location, Genesyslab.Platform.Commons.Collections.KeyValueCollection userData) { var logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID"); Genesyslab.Platform.Commons.Protocols.IMessage response = null; try { //Input Validation Pointel.Softphone.Voice.Core.Exceptions.CheckException.CheckDialValues(pOtherDN); var requestInitiateTransfer = Genesyslab.Platform.Voice.Protocols.TServer.Requests.Party.RequestInitiateTransfer.Create(); //Below condition added to decide which DN going to control the call //05-14-2013 Palaniappan requestInitiateTransfer.ThisDN = (Settings.GetInstance().CallControl == "both" ? Settings.GetInstance().ActiveDN : (Settings.GetInstance().CallControl == "acd" ? Settings.GetInstance().ACDPosition : Settings.GetInstance().ExtensionDN)); //End var connId = new Genesyslab.Platform.Voice.Protocols.ConnectionId(Settings.GetInstance().ConnectionID); requestInitiateTransfer.ConnID = connId; requestInitiateTransfer.OtherDN = pOtherDN; if (!string.IsNullOrEmpty(location)) { requestInitiateTransfer.Location = location; } if (userData != null && userData.Count > 0) { requestInitiateTransfer.UserData = userData; } //Code Added - V.Palaniappan //28.10.2013 if (requestInitiateTransfer.ThisDN != pOtherDN) { response = Settings.GetInstance().VoiceProtocol.Request(requestInitiateTransfer); } //End logger.Info("---------------InitiateTransfer------------------"); //Below condition added to decide which DN going to control the call //05-14-2013 Palaniappan logger.Info("ThisDN:" + (Settings.GetInstance().CallControl == "both" ? Settings.GetInstance().ActiveDN : (Settings.GetInstance().CallControl == "acd" ? Settings.GetInstance().ACDPosition : Settings.GetInstance().ExtensionDN))); //End logger.Info("ConnectionID:" + connId); logger.Info("OtherDN:" + pOtherDN); logger.Info("Location :" + location); logger.Info("--------------------------------------------"); } catch (System.Exception commonException) { logger.Error("Error occurred while Initiate Transfer call " + commonException.ToString()); } return(response); }
/// <summary> /// Joins the consult chat session. /// </summary> /// <param name="sessionID">The session 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 static Pointel.Interactions.Chat.Core.General.OutputValues JoinConsultChatSession(string sessionID, string subject, string message, Genesyslab.Platform.Commons.Collections.KeyValueCollection userData) { Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID"); Pointel.Interactions.Chat.Core.General.OutputValues output = Pointel.Interactions.Chat.Core.General.OutputValues.GetInstance(); try { Genesyslab.Platform.WebMedia.Protocols.BasicChat.Requests.RequestJoin requestJoinChat = Genesyslab.Platform.WebMedia.Protocols.BasicChat.Requests.RequestJoin.Create(); Genesyslab.Platform.WebMedia.Protocols.BasicChat.MessageText newMessageText = Genesyslab.Platform.WebMedia.Protocols.BasicChat.MessageText.Create(); newMessageText.Text = message; requestJoinChat.MessageText = newMessageText; requestJoinChat.SessionId = sessionID; requestJoinChat.UserData = userData; requestJoinChat.Visibility = Genesyslab.Platform.WebMedia.Protocols.BasicChat.Visibility.Int; requestJoinChat.Subject = subject; if (Pointel.Interactions.Chat.Core.Util.Settings.ChatProtocol != null && Pointel.Interactions.Chat.Core.Util.Settings.ChatProtocol.State == Genesyslab.Platform.Commons.Protocols.ChannelState.Opened) { Genesyslab.Platform.Commons.Protocols.IMessage iMessage = Pointel.Interactions.Chat.Core.Util.Settings.ChatProtocol.Request(requestJoinChat); if (iMessage != null) { logger.Info("------------JoinConsultChatSession-------------"); logger.Info("SessionID :" + sessionID); logger.Info("subject :" + subject); logger.Info("MessageText:" + message); logger.Info("----------------------------------------"); logger.Trace(iMessage.ToString()); output.RequestJoinIMessage = iMessage; output.MessageCode = "200"; output.Message = "Join Consult Chat Session Successful"; } else { logger.Warn("JoinConsultChatSession() : IMessage is Null.."); } } else { logger.Warn("JoinConsultChatSession() : Interaction Server protocol is Null.."); } } catch (Exception generalException) { logger.Error("Error occurred while Join the consult chat session request " + generalException.ToString()); output.MessageCode = "2001"; output.Message = generalException.Message; } return(output); }
/// <summary> /// Rejects the chat interaction. /// </summary> /// <param name="ticketID">The ticket identifier.</param> /// <param name="interactionID">The interaction identifier.</param> /// <param name="proxyID">The proxy identifier.</param> /// <returns></returns> public static Pointel.Interactions.Chat.Core.General.OutputValues RejectChatInteraction(int ticketID, string interactionID, int proxyID, Genesyslab.Platform.Commons.Collections.KeyValueCollection data) { Pointel.Interactions.Chat.Core.General.OutputValues output = Pointel.Interactions.Chat.Core.General.OutputValues.GetInstance(); Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID"); try { Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Requests.InteractionDelivery.RequestReject requestReject = Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Requests.InteractionDelivery.RequestReject.Create(); requestReject.TicketId = ticketID; requestReject.InteractionId = interactionID; requestReject.ProxyClientId = proxyID; requestReject.Extension = data; Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.ReasonInfo reasonInfo = Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.ReasonInfo.Create(); reasonInfo.ReasonDescription = "Agent has reject this interaction"; requestReject.Reason = reasonInfo; if (Pointel.Interactions.Chat.Core.Util.Settings.IxnServerProtocol != null && Pointel.Interactions.Chat.Core.Util.Settings.IxnServerProtocol.State == Genesyslab.Platform.Commons.Protocols.ChannelState.Opened) { Genesyslab.Platform.Commons.Protocols.IMessage message = Pointel.Interactions.Chat.Core.Util.Settings.IxnServerProtocol.Request(requestReject); if (message != null) { switch (message.Id) { case Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventAck.MessageId: Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventAck eventInteractionReject = (Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventAck)message; logger.Info("------------RejectChatInteraction-------------"); logger.Info("InteractionId :" + interactionID); logger.Info("ProxyClientId :" + proxyID); logger.Info("---------------------------------------------"); logger.Trace(eventInteractionReject.ToString()); output.MessageCode = "200"; output.Message = "Reject Chat Interaction Successful"; break; case Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventError.MessageId: Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventError eventError = (Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventError)message; string LoginErrorCode = Convert.ToString(eventError.ErrorCode); string LoginErrorDescription = Convert.ToString(eventError.ErrorDescription); logger.Trace(eventError.ToString()); output.MessageCode = "2001"; output.Message = "RejectChatInteraction() : " + LoginErrorDescription; break; } } else { output.MessageCode = "2001"; output.Message = "Chat Media Agent Reject Interaction UnSuccessful"; } } else { logger.Warn("RejectChatInteraction() : Interaction Server protocol is Null.."); } } catch (Exception generalException) { logger.Error("Error occurred while Reject Chat Interaction request " + generalException.ToString()); output.MessageCode = "2001"; output.Message = generalException.Message; } return(output); }
/// <summary> /// Transfers the chat session. /// </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 static Pointel.Interactions.Chat.Core.General.OutputValues TransferChatSession(string interactionId, string agentId, string placeId, int proxyId, string queueName, Genesyslab.Platform.Commons.Collections.KeyValueCollection userData) { Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID"); Pointel.Interactions.Chat.Core.General.OutputValues output = Pointel.Interactions.Chat.Core.General.OutputValues.GetInstance(); try { if (!string.IsNullOrEmpty(placeId) && !string.IsNullOrEmpty(agentId)) { Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Requests.InteractionManagement.RequestTransfer requestTransfer = Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Requests.InteractionManagement.RequestTransfer.Create(); requestTransfer.Extension = userData; requestTransfer.InteractionId = interactionId; requestTransfer.ProxyClientId = proxyId; requestTransfer.PlaceId = placeId; requestTransfer.AgentId = agentId; if (Pointel.Interactions.Chat.Core.Util.Settings.IxnServerProtocol != null && Pointel.Interactions.Chat.Core.Util.Settings.IxnServerProtocol.State == Genesyslab.Platform.Commons.Protocols.ChannelState.Opened) { Genesyslab.Platform.Commons.Protocols.IMessage message = Pointel.Interactions.Chat.Core.Util.Settings.IxnServerProtocol.Request(requestTransfer); if (message != null) { switch (message.Id) { case Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventAck.MessageId: Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventAck eventack = (Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventAck)message; logger.Info("------------TransferChatSession-------------"); logger.Info("InteractionId :" + interactionId); logger.Info("ProxyClientId :" + proxyId); logger.Info("AgentId :" + agentId); logger.Info("PlaceId :" + placeId); logger.Info("--------------------------------------------"); logger.Trace(eventack.ToString()); output.MessageCode = "200"; output.Message = "Transfer Chat Session Successful"; break; case Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventError.MessageId: Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventError eventError = (Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventError)message; string LoginErrorCode = Convert.ToString(eventError.ErrorCode); string LoginErrorDescription = Convert.ToString(eventError.ErrorDescription); logger.Info("------------TransferChatSession-------------"); logger.Error(LoginErrorCode + ":" + LoginErrorDescription); logger.Info("--------------------------------------------"); logger.Trace(eventError.ToString()); output.MessageCode = "2001"; output.Message = LoginErrorDescription; break; } } } else { logger.Warn("TransferChatSession() : Interaction Server protocol is Null.."); } } else if (!string.IsNullOrEmpty(queueName)) { Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Requests.InteractionManagement.RequestChangeProperties requestChangeProperties = Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Requests.InteractionManagement.RequestChangeProperties.Create(); Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Requests.InteractionManagement.RequestPlaceInQueue requestPlaceInQueue = Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Requests.InteractionManagement.RequestPlaceInQueue.Create(); Genesyslab.Platform.Commons.Collections.KeyValueCollection attachData = new Genesyslab.Platform.Commons.Collections.KeyValueCollection(); attachData.Add("ChatSkills", queueName); requestChangeProperties.ChangedProperties = attachData; requestChangeProperties.InteractionId = interactionId; requestChangeProperties.ProxyClientId = proxyId; requestPlaceInQueue.InteractionId = interactionId; requestPlaceInQueue.Queue = queueName; requestPlaceInQueue.ProxyClientId = proxyId; requestPlaceInQueue.AddedProperties = attachData; if (Pointel.Interactions.Chat.Core.Util.Settings.IxnServerProtocol != null && Pointel.Interactions.Chat.Core.Util.Settings.IxnServerProtocol.State == Genesyslab.Platform.Commons.Protocols.ChannelState.Opened) { Genesyslab.Platform.Commons.Protocols.IMessage message = Pointel.Interactions.Chat.Core.Util.Settings.IxnServerProtocol.Request(requestPlaceInQueue); if (message != null) { switch (message.Id) { case Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventAck.MessageId: Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventAck eventAck = (Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventAck)message; logger.Info("------------Chat Transfer Interaction By Queue-------------"); logger.Info("InteractionId :" + interactionId); logger.Info("ProxyClientId :" + proxyId); logger.Info("QueueName :" + queueName); logger.Info("----------------------------------------------------------"); logger.Trace(eventAck.ToString()); output.MessageCode = "200"; output.Message = "Chat Transfer interaction Successful"; break; case Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventError.MessageId: Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventError eventError = (Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventError)message; logger.Info("------------Error on Chat Transfer Interaction By Queue-------------"); logger.Info("InteractionId :" + interactionId); logger.Info("ProxyClientId :" + proxyId); logger.Info("QueueName :" + queueName); logger.Info("-------------------------------------------------------------------"); logger.Trace(eventError.ToString()); output.MessageCode = "2001"; output.Message = Convert.ToString(eventError.ErrorDescription); logger.Error("Error occurred while chat transferring interaction : " + Convert.ToString(eventError.ErrorDescription)); break; } } else { output.MessageCode = "2001"; output.Message = "Chat Transfer Interaction UnSuccessful"; } logger.Info("------------TransferChatSession-------------"); logger.Info("InteractionId :" + interactionId); logger.Info("ProxyClientId :" + proxyId); logger.Info("QueueName :" + queueName); logger.Info("--------------------------------------------"); logger.Info(requestChangeProperties.ToString()); logger.Info(requestPlaceInQueue.ToString()); } else { logger.Warn("TransferChatSession() : Interaction Server protocol is Null.."); } } } catch (Exception generalException) { logger.Error("Error occurred while Transfer Chat Session request " + generalException.ToString()); output.MessageCode = "2001"; output.Message = generalException.Message; } return(output); }
public static Pointel.Softphone.Voice.Common.OutputValues AgentNotReady(string reason, string code, bool isSolicited) { var logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID"); var output = Pointel.Softphone.Voice.Common.OutputValues.GetInstance(); try { var requestAgentNotReady = Genesyslab.Platform.Voice.Protocols.TServer.Requests.Agent.RequestAgentNotReady.Create(Settings.GetInstance().ACDPosition, Settings.GetInstance().WorkMode); var ReasonCode = new Genesyslab.Platform.Commons.Collections.KeyValueCollection(); //Code Added to check whether send configurable reason key and code/default key and code to tserver //27.09.2013 V.Palaniappan if (!string.IsNullOrEmpty(Settings.GetInstance().NotReadyKey)) { ReasonCode.Add(Settings.GetInstance().NotReadyKey, reason); } if (!string.IsNullOrEmpty(Settings.GetInstance().NotReadyCodeKey)) { ReasonCode.Add(Settings.GetInstance().NotReadyCodeKey, code); } if (string.IsNullOrEmpty(Settings.GetInstance().NotReadyKey) && string.IsNullOrEmpty(Settings.GetInstance().NotReadyCodeKey)) { ReasonCode.Add("Name", reason); ReasonCode.Add("Code", code); } if (string.IsNullOrEmpty(reason) && string.IsNullOrEmpty(code)) { ReasonCode = null; } //End if (string.Compare(Settings.GetInstance().NotReadyRequest.ToLower(), "extensions", true) == 0) { requestAgentNotReady.Extensions = ReasonCode; } else { requestAgentNotReady.Reasons = ReasonCode; } //Code Added - To resolve agent not ready issue in client box //11.10.2013 V.Palaniappan if (Settings.GetInstance().QueueName.ToLower() != "optional" && Settings.GetInstance().QueueName.ToLower() != "none") { requestAgentNotReady.ThisQueue = Settings.GetInstance().QueueName; } logger.Info("---------------AgentNotReady------------------"); logger.Info("ThisDN:" + Settings.GetInstance().ACDPosition); logger.Info("Reason:" + reason); logger.Info("Reasoncode:" + code); logger.Info("--------------------------------------------"); output.MessageCode = "200"; output.Message = "Not Ready Successful"; //End if (isSolicited) { output.IMessage = Settings.GetInstance().VoiceProtocol.Request(requestAgentNotReady); } else { Settings.GetInstance().VoiceProtocol.Send(requestAgentNotReady); } } catch (System.Exception commonException) { logger.Error("Error occurred while Agent Not Ready " + commonException.ToString()); output.MessageCode = "2001"; output.Message = commonException.Message; } return(output); }
/// <summary> /// Consults the chat session. /// </summary> /// <param name="interactionId">The interaction unique identifier.</param> /// <param name="agentID">The agent unique identifier.</param> /// <param name="placeId">The place unique identifier.</param> /// <param name="proxyId">The proxy unique identifier.</param> /// <param name="userData">The user data.</param> /// <returns></returns> public static Pointel.Interactions.Chat.Core.General.OutputValues ConsultChatSession(string interactionId, string agentID, string placeId, int proxyId, Genesyslab.Platform.Commons.Collections.KeyValueCollection userData) { Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID"); Pointel.Interactions.Chat.Core.General.OutputValues output = Pointel.Interactions.Chat.Core.General.OutputValues.GetInstance(); try { Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Requests.InteractionManagement.RequestConference requestConference = Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Requests.InteractionManagement.RequestConference.Create(); requestConference.PlaceId = placeId; requestConference.AgentId = agentID; requestConference.InteractionId = interactionId; requestConference.ProxyClientId = proxyId; requestConference.Extension = userData; requestConference.Extension.Add("ConsultUserData", "separate"); requestConference.VisibilityMode = Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.VisibilityMode.Coach; if (Pointel.Interactions.Chat.Core.Util.Settings.IxnServerProtocol != null && Pointel.Interactions.Chat.Core.Util.Settings.IxnServerProtocol.State == Genesyslab.Platform.Commons.Protocols.ChannelState.Opened) { Genesyslab.Platform.Commons.Protocols.IMessage message = Pointel.Interactions.Chat.Core.Util.Settings.IxnServerProtocol.Request(requestConference); if (message != null) { switch (message.Id) { case Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventAck.MessageId: Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventAck eventack = (Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventAck)message; logger.Info("------------ConsultChatSession-------------"); logger.Info("InteractionId :" + interactionId); logger.Info("ProxyClientId :" + proxyId); logger.Info("AgentId :" + agentID); logger.Info("PlaceId :" + placeId); logger.Info("--------------------------------------------"); logger.Trace(eventack.ToString()); output.MessageCode = "200"; output.Message = "Consult Chat Session Successful"; break; case Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventError.MessageId: Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventError eventError = (Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventError)message; string LoginErrorCode = Convert.ToString(eventError.ErrorCode); string LoginErrorDescription = Convert.ToString(eventError.ErrorDescription); logger.Info("------------ConsultChatSession-------------"); logger.Error(LoginErrorCode + ":" + LoginErrorDescription); logger.Info("--------------------------------------------"); logger.Trace(eventError.ToString()); output.MessageCode = "2001"; output.Message = LoginErrorDescription; break; } } } else { logger.Warn("ConferenceChatSession() : Interaction Server protocol is Null.."); } } catch (Exception generalException) { logger.Error("Error occurred while Conference Chat Session request " + generalException.ToString()); output.MessageCode = "2001"; output.Message = generalException.Message; } return(output); }
/// <summary> /// Updates the properties. /// </summary> /// <param name="interactionId">The interaction identifier.</param> /// <param name="keyvalues">The key values.</param> /// <returns></returns> public static Pointel.Interactions.Chat.Core.General.OutputValues UpdateProperties(string interactionId, int proxyClientID, Genesyslab.Platform.Commons.Collections.KeyValueCollection keyvalues) { Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID"); Pointel.Interactions.Chat.Core.General.OutputValues output = Pointel.Interactions.Chat.Core.General.OutputValues.GetInstance(); try { Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Requests.InteractionManagement.RequestChangeProperties updateProperties = Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Requests.InteractionManagement.RequestChangeProperties.Create(); updateProperties.InteractionId = interactionId; updateProperties.ProxyClientId = proxyClientID; if (keyvalues != null) { updateProperties.ChangedProperties = keyvalues; } if (Pointel.Interactions.Chat.Core.Util.Settings.IxnServerProtocol != null && Pointel.Interactions.Chat.Core.Util.Settings.IxnServerProtocol.State == Genesyslab.Platform.Commons.Protocols.ChannelState.Opened) { Genesyslab.Platform.Commons.Protocols.IMessage response = Pointel.Interactions.Chat.Core.Util.Settings.IxnServerProtocol.Request(updateProperties); if (response.Id == Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventPropertiesChanged.MessageId || response.Id == Genesyslab.Platform.OpenMedia.Protocols.InteractionServer.Events.EventAck.MessageId) { logger.Info("------------updateProperties-------------"); logger.Info("InteractionId :" + interactionId); logger.Info("ProxyClientId :" + proxyClientID); logger.Info(" UpdateProperties : response :" + response.ToString()); logger.Info("-----------------------------------------------"); logger.Trace(response.ToString()); output.MessageCode = "200"; output.Message = "Update Properties Successful"; } else { output.MessageCode = "2001"; output.Message = "Don't Update Properties Successful"; } } else { logger.Warn("UpdateProperties() : Interaction Server Protocol is Null.."); } } catch (Exception generalException) { logger.Error("Error occurred while update properties request " + generalException.ToString()); output.MessageCode = "2001"; output.Message = generalException.Message; } return(output); }
public void ColocarPausa(TiposDePausa tipoPausa) { try { EnviaMensagemSignalR("ServidorCTI", this.PA + ", " + this.AgentID + ", " + this.PasswordAgentID + ", " + this.Queue); Genesyslab.Platform.Commons.Collections.KeyValueCollection reasons = new Genesyslab.Platform.Commons.Collections.KeyValueCollection(); reasons.Add(tipoPausa.ToString(), ((int)tipoPausa).ToString()); RequestAgentNotReady rar = RequestAgentNotReady.Create(this.PA, AgentWorkMode.WalkAway, this.Queue, reasons, null); pmsTServer[TSERVER_IDENTIFIER].Send(rar); } catch (Exception ex) { EnviaMensagemSignalR("ServidorCTI-Erro", "ColocarPausa(...) - exception: " + ex.Message); } }