Ejemplo n.º 1
0
        /// <summary>
        /// DTMFs the send.
        /// </summary>
        /// <returns></returns>

        #region DtmfSend

        public static Pointel.Softphone.Voice.Common.OutputValues DtmfSend(string dtmfDigit)
        {
            var logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
            var output = Pointel.Softphone.Voice.Common.OutputValues.GetInstance();

            try
            {
                var connId          = new Genesyslab.Platform.Voice.Protocols.ConnectionId(Settings.GetInstance().ConnectionID);
                var requestSendDtmf = Genesyslab.Platform.Voice.Protocols.TServer.Requests.Dtmf.RequestSendDtmf.Create(Settings.GetInstance().ACDPosition, connId, dtmfDigit, new Genesyslab.Platform.Commons.Collections.KeyValueCollection(), new Genesyslab.Platform.Commons.Collections.KeyValueCollection());
                Settings.GetInstance().VoiceProtocol.Send(requestSendDtmf);
                logger.Info("---------------DtmfSend------------------");
                logger.Info("ThisDN:" + Settings.GetInstance().ACDPosition);
                logger.Info("ConnectionID:" + connId);
                logger.Info("--------------------------------------------");
                output.MessageCode = "200";
                output.Message     = "Dtmf Send Successful";
            }
            catch (System.Exception commonException)
            {
                logger.Error("Error occurred while DtmfSend " + commonException.ToString());
                output.MessageCode = "2001";
                output.Message     = commonException.Message;
            }
            return(output);
        }
Ejemplo n.º 2
0
        public static Pointel.Softphone.Voice.Common.OutputValues DoRequestQueryCall(string ThisDN, string connectionId)
        {
            var logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
            var output = Pointel.Softphone.Voice.Common.OutputValues.GetInstance();

            try
            {
                var connID           = new Genesyslab.Platform.Voice.Protocols.ConnectionId(connectionId);
                var requestQueryCall = Genesyslab.Platform.Voice.Protocols.TServer.Requests.Queries.RequestQueryCall.Create(ThisDN, connID, Genesyslab.Platform.Voice.Protocols.TServer.CallInfoType.StatusQuery);
                Settings.GetInstance().VoiceProtocol.Send(requestQueryCall);
                logger.Info("---------------RequestQuerycall------------------");
                logger.Info("ThisDN:" + ThisDN);
                logger.Info("ConnectionID:" + connectionId);
                logger.Info("-------------------------------------------------");

                output.MessageCode = "200";
                output.Message     = "Request for Query call Successful";
            }
            catch (System.Exception commonException)
            {
                logger.Error("DoRequestQueryCall : " + commonException.ToString());
                output.MessageCode = "2001";
                output.Message     = commonException.Message;
            }
            return(output);
        }
Ejemplo n.º 3
0
        public static Pointel.Softphone.Voice.Common.OutputValues InitiateTransfer(string pOtherDN, string location, 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
            {
                //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)
                {
                    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("Location :" + location);
                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);
        }
Ejemplo n.º 4
0
        public static Pointel.Softphone.Voice.Common.OutputValues CompleteTransfer()
        {
            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.RequestCompleteTransfer.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

                //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 Genesyslab.Platform.Voice.Protocols.ConnectionId(Settings.GetInstance().ConsultConnectionID);
                    requestCompleteTransfer.TransferConnID = transfConnid;
                }
                //End
                requestCompleteTransfer.ConnID = connId;

                Settings.GetInstance().VoiceProtocol.Send(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 Complete  Transfer call " + commonException.ToString());
                output.MessageCode = "2001";
                output.Message     = commonException.Message;
            }
            return(output);
        }
        /// <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);
        }
Ejemplo n.º 6
0
        public static Genesyslab.Platform.Commons.Protocols.IMessage InitiateTransferResponse(string pOtherDN, Genesyslab.Platform.Commons.Collections.KeyValueCollection reasonCode)
        {
            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 (reasonCode != null)
                {
                    requestInitiateTransfer.Reasons = reasonCode;
                }
                //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("--------------------------------------------");
            }
            catch (System.Exception commonException)
            {
                logger.Error("Error occurred while Initiate  Transfer call " + commonException.ToString());
            }
            return(response);
        }
Ejemplo n.º 7
0
        public static IMessage DoRequestQueryCall(string ThisDN, string connectionId, bool isUnsolicited)
        {
            var      logger  = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
            IMessage message = null;

            try
            {
                var connID           = new Genesyslab.Platform.Voice.Protocols.ConnectionId(connectionId);
                var requestQueryCall = Genesyslab.Platform.Voice.Protocols.TServer.Requests.Queries.RequestQueryCall.Create(ThisDN, connID, Genesyslab.Platform.Voice.Protocols.TServer.CallInfoType.StatusQuery);
                requestQueryCall.CallInfoType = Genesyslab.Platform.Voice.Protocols.TServer.CallInfoType.PartiesQuery;
                message = Settings.GetInstance().VoiceProtocol.Request(requestQueryCall);
                logger.Info("---------------RequestQuerycall------------------");
                logger.Info("ThisDN:" + ThisDN);
                logger.Info("ConnectionID:" + connectionId);
                logger.Info("-------------------------------------------------");
            }
            catch (System.Exception commonException)
            {
                logger.Error("DoRequestQueryCall : " + commonException.ToString());
                message = null;
            }
            return(message);
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        public static Pointel.Softphone.Voice.Common.OutputValues Reconnect(PhoneFunctions pStatus)
        {
            var logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID");
            var output = Pointel.Softphone.Voice.Common.OutputValues.GetInstance();

            try
            {
                var requestReconnectCall = Genesyslab.Platform.Voice.Protocols.TServer.Requests.Party.RequestReconnectCall.Create();
                //Below condition added to decide which DN going to control the call
                //05-14-2013 Palaniappan
                requestReconnectCall.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);
                var reconnectConnID = new Genesyslab.Platform.Voice.Protocols.ConnectionId(Settings.GetInstance().ConsultConnectionID);
                //requestReconnectCall.ConnID = connId;
                //requestReconnectCall.PreviousConnID = reconnectConnID;

                requestReconnectCall.ConnID         = reconnectConnID;
                requestReconnectCall.PreviousConnID = connId;
                Settings.GetInstance().VoiceProtocol.Send(requestReconnectCall);
                logger.Info("---------------Reconnect------------------");
                //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:" + reconnectConnID);
                logger.Info("PreviousConnectionID:" + connId);
                logger.Info("--------------------------------------------");
                switch (pStatus)
                {
                case PhoneFunctions.CancelTransfer:

                    output.MessageCode = "200";
                    output.Message     = "Call Reconnected";
                    break;

                case PhoneFunctions.CancelConference:
                    output.MessageCode = "200";
                    output.Message     = "Call Reconnected";
                    break;
                }
            }
            catch (System.Exception commonException)
            {
                logger.Error("Error occurred while reconnect the  call " + commonException.ToString());
                switch (pStatus)
                {
                case PhoneFunctions.CancelTransfer:

                    output.MessageCode = "2001";
                    output.Message     = commonException.Message;
                    break;

                case PhoneFunctions.CancelConference:

                    output.MessageCode = "2001";
                    output.Message     = commonException.Message;
                    break;
                }
            }
            return(output);
        }
Ejemplo n.º 10
0
        private void TServerEventsHandler(object sender, EventArgs e)
        {
            IMessage message = ((MessageEventArgs)e).Message;
            switch (message.Id)
            {
                case Genesyslab.Platform.Voice.Protocols.TServer.Events.EventAgentLogin.MessageId:
                    var eventAgentLogin = (Genesyslab.Platform.Voice.Protocols.TServer.Events.EventAgentLogin)message;
                    //EnviaMensagemSignalR("ServidorCTI", eventAgentLogin.ToString());
                    AtualizaEstadoAgente(eventAgentLogin.AgentID, eventAgentLogin.ThisDN, Genesyslab.Platform.Voice.Protocols.TServer.Events.EventAgentLogin.MessageId, eventAgentLogin.ThisQueue, message.Name);
                    break;

                case Genesyslab.Platform.Voice.Protocols.TServer.Events.EventAgentLogout.MessageId:
                    var eventAgentLogout = (Genesyslab.Platform.Voice.Protocols.TServer.Events.EventAgentLogout)message;
                    AtualizaEstadoAgente(eventAgentLogout.AgentID, eventAgentLogout.ThisDN, Genesyslab.Platform.Voice.Protocols.TServer.Events.EventAgentLogout.MessageId, eventAgentLogout.ThisQueue, message.Name);
                    break;

                case Genesyslab.Platform.Voice.Protocols.TServer.Events.EventAgentReady.MessageId:
                    var eventAgentReady = (Genesyslab.Platform.Voice.Protocols.TServer.Events.EventAgentReady)message;
                    AtualizaEstadoAgente(eventAgentReady.AgentID, eventAgentReady.ThisDN, Genesyslab.Platform.Voice.Protocols.TServer.Events.EventAgentReady.MessageId, eventAgentReady.ThisQueue, message.Name);
                    break;

                case Genesyslab.Platform.Voice.Protocols.TServer.Events.EventAgentNotReady.MessageId:
                    var eventAgentNotReady = (Genesyslab.Platform.Voice.Protocols.TServer.Events.EventAgentNotReady)message;
                    EnviaMensagemSignalR("ServidorCTI", eventAgentNotReady.ToString());
                    AtualizaEstadoAgente(eventAgentNotReady.AgentID, eventAgentNotReady.ThisDN, Genesyslab.Platform.Voice.Protocols.TServer.Events.EventAgentNotReady.MessageId, eventAgentNotReady.ThisQueue, message.Name);
                    break;

                case Genesyslab.Platform.Voice.Protocols.TServer.Events.EventRinging.MessageId:
                    var eventRinging = (Genesyslab.Platform.Voice.Protocols.TServer.Events.EventRinging)message;
                    connIdAnswered = new Genesyslab.Platform.Voice.Protocols.ConnectionId(eventRinging.ConnID);
                    EnviaMensagemSignalR("ServidorCTI", "EventRinging(...) connId: " + connIdAnswered.ToString());
                    AtualizaEstadoAgente(eventRinging.AgentID, eventRinging.ThisDN, Genesyslab.Platform.Voice.Protocols.TServer.Events.EventRinging.MessageId, eventRinging.ThisQueue, message.Name);
                    break;

                case Genesyslab.Platform.Voice.Protocols.TServer.Events.EventDialing.MessageId:
                    var eventDialing = (Genesyslab.Platform.Voice.Protocols.TServer.Events.EventDialing)message;
                    connId = new Genesyslab.Platform.Voice.Protocols.ConnectionId(eventDialing.ConnID);

                    if (eventDialing.TransferConnID != null)
                        connIdTransfer = new Genesyslab.Platform.Voice.Protocols.ConnectionId(eventDialing.TransferConnID);

                    EnviaMensagemSignalR("ServidorCTI", "EventDialing(...) connId: " + connId.ToString());
                    AtualizaEstadoAgente(eventDialing.AgentID, eventDialing.ThisDN, Genesyslab.Platform.Voice.Protocols.TServer.Events.EventDialing.MessageId, eventDialing.ThisQueue, message.Name);
                    break;

                case Genesyslab.Platform.Voice.Protocols.TServer.Events.EventEstablished.MessageId:
                    var eventEstabilished = (Genesyslab.Platform.Voice.Protocols.TServer.Events.EventEstablished)message;

                    if (connId == null)
                        connId = new Genesyslab.Platform.Voice.Protocols.ConnectionId(eventEstabilished.ConnID);

                    if (eventEstabilished != null && eventEstabilished.UserData != null)
                    {
                        foreach (var chave in eventEstabilished.UserData.AllKeys)
                            EnviaMensagemSignalR("ServidorCTI", String.Format("[{0}] = {1}", chave, eventEstabilished.UserData[chave]));
                    }

                    EnviaMensagemSignalR("ServidorCTI", "EventRinging(...) connId: " + eventEstabilished.ToString());
                    AtualizaEstadoAgente(eventEstabilished.AgentID, eventEstabilished.ThisDN, Genesyslab.Platform.Voice.Protocols.TServer.Events.EventReleased.MessageId, eventEstabilished.ThisQueue, message.Name);
                    break;

                case Genesyslab.Platform.Voice.Protocols.TServer.Events.EventReleased.MessageId:
                    var eventReleased = (Genesyslab.Platform.Voice.Protocols.TServer.Events.EventReleased)message;
                    AtualizaEstadoAgente(eventReleased.AgentID, eventReleased.ThisDN, Genesyslab.Platform.Voice.Protocols.TServer.Events.EventReleased.MessageId, eventReleased.ThisQueue, message.Name);
                    break;

                case Genesyslab.Platform.Voice.Protocols.TServer.Events.EventError.MessageId:
                    var eventError = (Genesyslab.Platform.Voice.Protocols.TServer.Events.EventError)message;
                    EnviaMensagemSignalR("ServidorCTI-Erro", eventError.ToString());
                    break;

                default:
                    EnviaMensagemSignalR("ServidorCTI", String.Format("MessageID: {0} - MessageName: {1}", message.Id, message.Name));
                    break;
            }
        }