El conjunto de documentos para este producto aspira al uso de un lenguaje no discriminatorio. A los fines de esta documentación, "no discriminatorio" se refiere al lenguaje que no implica discriminación por motivos de edad, discapacidad, género, identidad de raza, identidad étnica, orientación sexual, nivel socioeconómico e interseccionalidad. Puede haber excepciones en la documentación debido al lenguaje que se encuentra ya en las interfaces de usuario del software del producto, el lenguaje utilizado en función de la documentación de la RFP o el lenguaje utilizado por un producto de terceros al que se hace referencia. Obtenga más información sobre cómo Cisco utiliza el lenguaje inclusivo.
Cisco ha traducido este documento combinando la traducción automática y los recursos humanos a fin de ofrecer a nuestros usuarios en todo el mundo contenido en su propio idioma. Tenga en cuenta que incluso la mejor traducción automática podría no ser tan precisa como la proporcionada por un traductor profesional. Cisco Systems, Inc. no asume ninguna responsabilidad por la precisión de estas traducciones y recomienda remitirse siempre al documento original escrito en inglés (insertar vínculo URL).
Este documento describe la arquitectura detrás de las conexiones Finesse que utilizan secuencias bidireccionales sobre HTTP sincrónico (BOSH) y cómo se pueden diagnosticar los problemas de conexión BOSH.
Cisco recomienda que tenga conocimiento sobre estos temas:
La información que contiene este documento se basa en las siguientes versiones de software y hardware.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.
El protocolo extensible de mensajería y presencia (XMPP) (también conocido como Jabber) es un protocolo stateful en un modelo cliente-servidor. XMPP permite la entrega rápida de pequeños fragmentos de datos estructurados del lenguaje de marcado extensible (XML) de una entidad a otra. XMPP/Jabber se utiliza ampliamente en aplicaciones de mensajería instantánea (IM) y presencia.
Todas las entidades XMPP se identifican mediante su ID de Jabber (JID).
Esquema de direccionamiento de JID: user@domain/resource
usuario | nombre de usuario del cliente en el servidor XMPP o nombre de la sala de conferencias |
domain | Nombre de dominio completo (FQDN) del servidor XMPP |
recurso | identificador de la entidad/terminal específica del usuario (por ejemplo, portátil, smartphone, etc.), un identificador de sesión o nombre de nodo pubsub |
Nota: Los tres componentes JID no se utilizan en todos los casos. Normalmente, un servidor se definiría por el dominio, una sala de conferencias definida por user@domain y un cliente por user@domain/resource.
Los mensajes XMPP se denominan estranzas. Hay tres bases principales en el XMPP:
1. <mensaje>: una dirección, un destinatario
2. <presence>: una dirección, publicar en muchas
3. <iq>: información/consulta - solicitud/respuesta
Todas las estrofas deben y desde las direcciones y la mayoría de las estacionzas también tienen tipo, id y xml:langatributos.
atributo Stanza | Propósito |
a | JID de destino |
desde | JID de origen |
tipo | propósito del mensaje |
id | identificador único utilizado para vincular una solicitud con una respuesta para <iq> stanzas |
xml:lang | define el idioma predeterminado para cualquier XML legible por personas en la lista |
<message to='person1@example' from='person2@example' type='chat'>
<subject> Team meeting </subject>
<body>Hey, when is our meeting today? </body>
<thread>A4567423</thread>
</message>
Si una aplicación web necesita trabajar con XMPP, surgen varios problemas. Los exploradores no admiten XMPP sobre el protocolo de control de transmisión (TCP) de forma nativa, por lo que todo el tráfico XMPP debe ser manejado por un programa que se ejecute dentro del navegador. Los servidores web y los exploradores se comunican a través de mensajes HTTP (del inglés HyperText Transfer Protocol, protocolo de transferencia de hipertexto), por lo que Finesse y otras aplicaciones web ajustan los mensajes XMPP dentro de los mensajes HTTP.
La primera dificultad con este enfoque es que HTTP es un protocolo sin estado. Esto significa que cada solicitud HTTP no está relacionada con ninguna otra solicitud. Sin embargo, este problema se puede solucionar por medios aplicables, por ejemplo mediante el uso de cookies/datos de publicación.
La segunda dificultad es el comportamiento unidireccional de HTTP. Sólo el cliente envía solicitudes y el servidor sólo puede responder. La incapacidad del servidor para enviar datos hace que sea poco natural implementar XMPP sobre HTTP.
Este problema no existe en la especificación original del núcleo XMPP (RFC 6120), donde XMPP está enlazado a TCP. Sin embargo, si desea solucionar el problema con XMPP enlazado a HTTP, por ejemplo, porque Javascript puede enviar solicitudes HTTP, hay dos soluciones posibles. Ambos requieren un puente entre HTTP y XMPP.
Las soluciones propuestas son las siguientes:
1. Sondeo (protocolo heredado): solicitudes HTTP repetidas que piden nuevos datos definidos en XEP-0025: Sondeo HTTP de Jabber
2. El sondeo largo también se conoce como BOSH: protocolo de transporte que emula la semántica de una conexión TCP bidireccional de larga duración entre dos entidades mediante el uso eficiente de varios pares de solicitud/respuesta HTTP sincrónicos sin necesidad del uso de sondeo frecuente definido en XEP-0124: HTTP Binding y extendido por XEP-0206: XMPP sobre BOSH
Finesse implementa BOSH ya que es bastante eficiente desde el punto de vista de la carga del servidor y en el sentido del tráfico. El propósito de utilizar BOSH es ocultar el hecho de que el servidor no tiene que responder tan pronto como haya una solicitud. La respuesta se retrasa hasta un tiempo especificado hasta que el servidor tenga datos para el cliente y luego se envía como respuesta. Tan pronto como el cliente obtiene la respuesta, el cliente realiza una nueva solicitud y así sucesivamente.
El cliente de escritorio Finesse (aplicación web) establece una conexión BOSH obsoleta sobre el puerto TCP 7443 cada 30 segundos. Después de 30 segundos, si no hay actualizaciones del servicio de notificaciones Finesse, el servicio de notificaciones envía una respuesta HTTP con un cuerpo de respuesta 200 OK y (casi) vacío. Si el servicio de notificación tiene una actualización de la presencia de un agente o un evento de diálogo (llamada), por ejemplo, los datos se envían inmediatamente al cliente web Finesse.
Este ejemplo muestra la primera respuesta de solicitud de mensaje XMPP compartida entre el cliente Finesse y el servidor Finesse para configurar la conexión BOSH.
Finesse client request:
<body xmlns="http://jabber.org/protocol/httpbind" xml:lang="en-US" xmlns:xmpp="urn:xmpp:xbosh" hold="1" ver="1.9" to="fin1.ucce.local" wait="30" xmpp:version="1.0" from="47483648@fin1.ucce.local" rid="704654808"/>
Finesse server response:
<body xmlns="http://jabber.org/protocol/httpbind" xmlns:stream="http://etherx.jabber.org/streams" authid="26779701" sid="26779701" secure="true" requests="4" inactivity="60" polling="5" wait="30" hold="1" ack="704654808" maxpause="300" ver="1.6"><stream:features><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>PLAIN</mechanism></mechanisms><compression xmlns="http://jabber.org/features/compress"><method>zlib</method></compression><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"/><session xmlns="urn:ietf:params:xml:ns:xmpp-session"/></stream:features></body>
Para resumir:
Finesse también implementa la especificación XMPP XEP-0060: Publicar-Suscribir. El propósito de esta especificación es permitir que el servidor XMPP (servicio de notificación) obtenga información publicada en nodos XMPP (temas) y, a continuación, envíe eventos XMPP a entidades suscritas al nodo. En el caso de Finesse, el servidor Computer Telephony Integration (CTI) envía mensajes CTI al servicio web Finesse para informar a Finesse sobre las actualizaciones de configuración, como, por ejemplo, la creación del agente o de la cola de servicio de contacto (CSQ) o la información sobre una llamada. A continuación, esta información se convierte en un mensaje XMPP que el servicio web Finesse publica en el servicio de notificación Finesse. El servicio de notificaciones Finesse envía mensajes XMPP sobre BOSH a los agentes suscritos a ciertos nodos XMPP.
Algunos de los objetos de la API Finesse definidos en la Guía del desarrollador de servicios Web Finesse son nodos XMPP. Los clientes web Finesse agente y supervisor pueden suscribirse a las actualizaciones de eventos para algunos de estos nodos XMPP para tener información actualizada sobre eventos en tiempo real (como eventos de llamadas, eventos de estado, etc.). Esta tabla muestra los nodos XMPP que están habilitados para pubsub.
Finesse API Object | Propósito | Suscripción |
/finesse/api/User/<LoginID> | Muestra el estado y la asignación del equipo del agente | Agentes y supervisores |
/finesse/api/User/<LoginID>/Dialogs |
Muestra las llamadas manejadas por el agente | Agentes y supervisores |
/finesse/api/User/<LoginID>/ClientLog |
Se utiliza para capturar registros de clientes desde el botón Enviar informe de error | Agentes y supervisores |
/finesse/api/User/<LoginID>/Queue/<queueID> |
Muestra los datos de estadísticas de cola (si están habilitados) | Agentes y supervisores |
/finesse/api/Team/<TeamID>/Users |
Muestra los agentes que pertenecen a un equipo determinado, incluida la información de estado | Supervisores |
/finesse/api/SystemInfo |
Muestra el estado del servidor Finesse. Se utiliza para determinar si se necesita conmutación por error | Agentes y supervisores |
Paso 1. Descargue e instale el Pidgin del cliente XMPP.
Paso 2. Navegue hasta Cuentas > Modificar > Básico y configure las Opciones de Inicio de Sesión:
Paso 3. Vaya a Cuentas > Modificar > Avanzado y configure:
Nota: El puerto 5222 se utiliza porque sólo los clientes web Finesse pueden utilizar el puerto 7443 para conectarse al servicio de notificación.
Paso 4. Navegue hasta Herramientas > Complementos y habilite la consola XMPP.
Paso 5. Navegue hasta Herramientas > Consola XMPP > Consola XMPP para abrir la Consola XMPP.
Paso 6. Ejecute este mensaje <iq> para ver todos los nodos XMPP que existen.
Por ejemplo:
En un entorno de laboratorio con dos agentes y dos colas de servicio de contacto configuradas, esta salida se incluye en la respuesta de Finesse:
Cada navegador tiene un conjunto de herramientas de desarrollador. La ficha Red de las herramientas de desarrollador muestra los mensajes HTTP enviados y recibidos por el cliente web Finesse (navegador). Por ejemplo, esta imagen muestra cómo el cliente web Finesse envía una solicitud SystemInfo que verifica el estado de Finesse Tomcat cada minuto como una verificación de failover. Además, también se muestran los mensajes http-bind de la conexión BOSH. El servidor Finesse devuelve una respuesta en un plazo de 30 segundos si no hay actualizaciones para publicar en los nodos XMPP a los que está suscrito el cliente web.
Cuando se produce una desconexión de BOSH, se produce el error "Lost connection to {Finesse Server FQDN}. Espere a que se encuentre un servidor Finesse accesible..." se muestra en un banner rojo en la parte superior del escritorio de Finesse.
Se muestra este mensaje porque en este momento no se puede recibir ningún evento de suscripción XMPP del servicio de notificación de Cisco Finesse. Por lo tanto, la información de estado y los detalles de llamada no se pueden mostrar en el escritorio del agente.
En el caso de UCCX, 60 segundos después de que el explorador se desconecte, el agente pasa a un estado Desconexión. El agente puede estar en el estado Preparado o No preparado para que se produzca el cierre de sesión.
Para UCCE, Finesse tarda hasta 120 segundos en detectar cuándo un agente cierra el explorador o el explorador se bloquea y Finesse espera 60 segundos antes de enviar una solicitud de cierre de sesión forzado al servidor CTI, lo que hace que el servidor CTI coloque al agente en un estado No preparado. En estas condiciones, Finesse puede tardar hasta 180 segundos en cerrar la sesión del agente. A diferencia de UCCX, el agente pasa a un estado No preparado en lugar del estado Desconectado.
Nota: El CTI desconecta No preparado frente a El comportamiento del estado de desconexión en UCCE se controla mediante el parámetro PG/LOAD. Según las Release Notes para Unified Contact Center Enterprise y Hosted Release 10.0(1), el /LOAD parámetro está obsoleto a partir de UCCE 10.0.
Para obtener más información sobre el comportamiento del escritorio de UCCE Finesse, refiérase a la sección Comportamiento del Escritorio del capítulo Mecanismos de Failover de Cisco Finesse de la Guía de Administración de Cisco Finesse.
Nota: Los valores del temporizador podrían cambiar en el futuro según el requisito del producto.
Los registros de servicio de notificaciones de Finesse y UCCX se pueden recopilar a través de RTMT o a través de la CLI:
archivo get activelog /desktop recurs compress
Nota: Establezca los registros de nivel de depuración solamente mientras se reproduce un problema. Desactive las depuraciones después de que se haya reproducido el problema.
Nota: Finesse 9.0(1) no tiene registro del nivel de depuración. El registro del nivel de depuración se introdujo en Finesse 9.1(1). El proceso para habilitar el registro es diferente en 9.1(1) comparado con Finesse 10.0(1) - 11.6(1). Para este proceso, consulte la guía Administración y mantenimiento de Finesse.
Habilitar los registros de depuración del servicio de notificación de Unified Contact Center Express (UCCX), como se muestra:
admin:utils uccx notification-service log enable
WARNING! Enabling Cisco Unified CCX Notification Service logging can affect system performance
and should be disabled when logging is not required.
Do you want to proceed (yes/no)? yes
Cisco Unified CCX Notification Service logging enabled successfully.
NOTE: Logging will be disabled automatically if Cisco Unified CCX Notification Service is restarted.
Habilitar los registros de depuración del servicio de notificación de Unified Contact Center Enterprise (UCCE) (Finesse Standalone), como se muestra:
admin:utils finesse notification logging enable
Checking that the Cisco Finesse Notification Service is started...
The Cisco Finesse Notification Service is started.
Cisco Finesse Notification Service logging is now enabled.
WARNING! Cisco Finesse Notification Service logging can affect system performance
and should be disabled when logging is not required.
Note: Logging will be disabled automatically if you restart the Cisco Finesse Notification Service
Estos registros se encuentran en la carpeta /desktop/logs/openfire y se denominan debug.log.
Como se muestra en la imagen, el servicio de notificación (Openfire) debug.log muestra el enlace http con el escritorio junto con la dirección IP y el puerto del equipo agente.
Como se muestra en la imagen, los últimos 0 ms activos muestran que la sesión sigue activa.
Openfire cerrando la sesión inactiva indica que el cierre de sesión del agente se activará en 60 segundos donde Finesse enviará un cierre de sesión forzado con un código de motivo de 255 al servidor CTI. El comportamiento real del escritorio en estas condiciones depende de la configuración de Desconexión del agente (LOAD) en UCCE. En UCCX, este es siempre el comportamiento.
Si el cliente finés no envía mensajes http-bind al servidor Finesse, los registros mostrarán el tiempo de actividad de la sesión y mostrarán el cierre de la sesión.
2017.06.17 00:14:34 Session (id=f382a015) was last active 0 ms ago: 1001003@xxxxx.xxxx.xxx.cisco.com/desktop 2017.06.17 00:15:04 Session (id=f382a015) was last active 13230 ms ago: 1001003@xxxxx.xxxx.xxx.cisco.com/desktop 2017.06.17 00:15:34 Session (id=f382a015) was last active 43230 ms ago: 1001003@xxxxx.xxxx.xxx.cisco.com/desktop 2017.06.17 00:16:04 Session (id=f382a015) was last active 63231 ms ago: 1001003@xxxxx.xxxx.xxx.cisco.com/desktop 2017.06.17 00:17:04 Unable to route packet. No session is available so store offline. <message from="pubsub. xxxxx.xxxx.xxx.cisco. com" to="1001003@xxxxx.xxxx.xxx.cisco.com.cisco.com" id="/finesse/api/User/1001003__1001003@xxxxx.xxxx.xxx.cisco.com__o5Aqb"><event xmlns="http://jabber.org/protocol/pubsub#event"><items node="/finesse/api/User/1001003"><item id="0d78a283-466d-4477-a07e-6e33a856fce388"><notification xmlns="http://jabber.org/protocol/pubsub"><Update>
Estos registros se encuentran en la carpeta /desktop/logs/openfire y se denominan info.log. Si el cliente finés no envía mensajes http-bind al servidor Finesse, los registros mostrarán que la sesión se vuelve inactiva.
2017.06.17 00:16:04 Closing idle session (id=f382a015): 1001003@xxxxx.xxxx.xxx. cisco.com/desktop after being inactive for more than threshold value of 60 2017.06.17 00:16:04 A session is being closed for 1001003@xxxxx.xxxx.xxx. cisco.com/desktop
Estos registros se encuentran en la carpeta /desktop/logs/webservices y se denominan Desktop-webservices.YYY-MM-DDTHH-MM-SS.sss.log. Si el cliente Fineese no envía mensajes http-bind al servidor Finesse dentro del tiempo especificado, los registros mostrarán que la presencia del agente no estará disponible y 60 segundos después, se producirá un cierre de sesión forzado por presense.
0000001043: XX.XX.XX.XXX: Jun 17 2017 00:16:04.630 +0530: %CCBU_Smack Listener Processor (1)-6-PRESENCE_NOTIFICATION_RECIEVED: %[FROM JID=1001003@xxxxx.xxxx.xxx.cisco.com/desktop][PRESENCE_TYPE=unavailable]:Finesse received a presence notifcation 0000000417: XX.XX.XX.XXX: Jun 17 2017 00:16:04.631 +0530: %CCBU_Smack Listener Processor (1)-6-UNSUBSCRIBE_REQUEST_SUCCESS: %[NodeId=/finesse/api/User/1001003/ClientLog][user_id=1001003@xxxxx.xxxx.xxx.cisco.com]: Sucessfully unsubscribed from a node on the XMPP server 0000001044: XX.XX.XX.XXX: Jun 17 2017 00:16:04.631 +0530: %CCBU_Smack Listener Processor (1)-6-AGENT_PRESENCE_MONITOR: %[message_string=Adding agent 1001003 into the expiry hash.]: 0000001051: XX.XX.XX.XXX: Jun 17 2017 00:16:35.384 +0530: %CCBU_pool-8-thread-1-6-AGENT_PRESENCE_MONITOR: %[message_string=[Expired] Removed agent from cache 1001003]: 0000001060: XX.XX.XX.XXX:: Jun 17 2017 00:17:04.632 +0530: %CCBU_CoreImpl-worker12-6-PRESENCE DRIVEN LOGOUT: %[agent_id=1001003]: Performing CTI Logout on basis of the agents unavailable presence 0000001061: XX.XX.XX.XXX:: Jun 17 2017 00:17:04.633 +0530: %CCBU_CoreImpl-worker12-6-MESSAGE_TO_CTI_SERVER: %[cti_message=Invoke id :39 , agentstate : 1, workmode : 0, reason code: 255, forceflag :1, agentcapacity: 1, agentext: 1001003, agentid: 1001003, supervisorid: null, ssoFlag=false][cti_message_name=SetAgentStateReq]: Message going to the backend cti server 0000001066: XX.XX.XX.XXX:: Jun 17 2017 00:17:04.643 +0530: %CCBU_CTIMessageEventExecutor-0-6-DECODED_MESSAGE_FROM_CTI_SERVER: %[cti_message=CTIAgentStateEvent [skillGroupState=1 (LOGOUT), stateDuration=0, skillGroupNumber=-1, skillGroupPriority=0, agentState=1 (LOGOUT), eventReasonCode=255, numFltSkillGroups=0, CTIClientSignature=null, agentID=1001003, agentExtension=1001003, agentInstrument=null, agentID_Long=1001003, duration=null, nextAgentState=null, fltSkillGroupNumberList=[], fltSkillGroupIDList=[], fltSkillGroupPriorityList=[], fltSkillGroupStateList=[], MRDId=1, agentMode=0]CTIMessageBean [invokeID=null, cti_sequence_id=105, msgID=30, timeTracker={"id":"AgentStateEvent","CTI_MSG_RECEIVED":1497638824642,"CTI_MSG_DISPATCH":1497638824643}, msgName=AgentStateEvent, deploymentType=CCX]][cti_response_time=1][dispatch_phase=DnD-CHECKPOINT-3B]: Decoded Message to Finesse from backend cti server
El cliente web configura las conexiones BOSH y el servidor Finesse determina si la presencia del agente no está disponible. Estos problemas son casi siempre problemas del lado del cliente relacionados con el navegador, el equipo agente o la red, ya que la responsabilidad de iniciar la conexión depende del cliente.
Compruebe estos problemas:
1. Problema de red:
Cada minuto, el cliente se conecta al servidor Finesse para calcular la variabilidad y la latencia de la red:
<PC date-time with GMT offset>: : <Finesse FQDN>: <Finesse server date-time with offset>: Header : Client: <date-time>, Server: <date-time>, Drift: <drift> ms, Network Latency (round trip): <RTT> ms
2019-01-11T12:24:14.586 -05:00: : fin1.ucce.local: Jan 11 2019 11:24:14.577 -0600: Header : Client: 2019-01-1
2. Navegador y/o versión no admitidos:
Utilice el navegador/versión compatible y la configuración según las matrices de compatibilidad:
Matriz de compatibilidad de UCCE
Matriz de compatibilidad de UCCX
3. Condición de bloqueo del navegador debido al contenido/procesamiento de otra ficha/ventana:
Verifique el flujo de trabajo del agente para ver si:
4. Ordenador suspendido:
Compruebe si el agente ha suspendido el ordenador antes de cerrar sesión en Finesse o si el temporizador de configuración de suspensión del equipo es muy bajo.
5. Problema de alta CPU o alta memoria en el equipo cliente:
6. Dispositivos de terceros que realizan actividades inesperadas y problemáticas en segundo plano:
Pruebe el comportamiento del escritorio de Finesse con todos los gadgets de terceros eliminados.
7. Problema de NTP en el servidor o cliente:
Compruebe estos problemas:
1. Desconexión del servicio Cisco Unified Communications Manager CTIManager. Si todos los proveedores CTIManager para UCCX se apagan o se bloquean, los agentes de UCCX verán el error de banner rojo. Los agentes de UCCE no ven el banner rojo si esto sucede, pero las llamadas no se enrutan correctamente a los agentes.
Nota: Los nombres de archivo vaciados de núcleo utilizan el formato: core.<ProcessID>.<SignalNumber>.<ProcessName>.<EpochTime>.
Ejemplo: core.24587.6.CTIManager.1533441238
Por lo tanto, el momento del accidente puede determinarse a partir de la época.
2. El servicio de notificación Finesse/UCCX se detuvo o se quebró:
Reinicie Cisco Finesse Tomcat y el servicio de notificación si se sospecha una caída. Esto sólo se recomienda en una situación de inactividad de la red; de lo contrario, se reinician los agentes de desconexión del servidor Finesse.
Configurar Fiddler puede ser una tarea un tanto difícil sin entender los pasos necesarios y entender cómo funciona Fiddler. Fiddler es un proxy web intermediario que se encuentra entre el cliente Finesse (navegador web) y el servidor Finesse. Debido a las conexiones que se protegen entre el cliente Finesse y el servidor Finesse, esto agrega una capa de complejidad a la configuración de Fiddler para ver los mensajes seguros.
Dado que Fiddler se encuentra entre el cliente Finesse y el servidor Finesse, la aplicación Fiddler necesita crear certificados firmados para todos los puertos TCP Finesse que requieran certificados:
Certificados de servicio de Cisco Finesse Tomcat
Certificados del servicio de notificación de Cisco Finesse (Unified CCX)
El descifrado HTTPS se debe habilitar para que Fiddler genere dinámicamente certificados en nombre del servidor Finesse. Esto no está habilitado de forma predeterminada.
Si el descifrado HTTPS no está configurado, se ve la conexión de túnel inicial al servicio de notificación, pero el tráfico http-bind no lo está. Fiddler sólo muestra:
Tunnel to <Finesse server FQDN>:7443
A continuación, el cliente debe confiar en los certificados Finesse firmados por Fiddler. Si estos certificados no son de confianza, al pasar por Establecer conexión cifrada... la etapa de inicio de sesión de Finesse no es posible.
En algunos casos, la aceptación de las excepciones de certificado del inicio de sesión no funciona y el navegador debe confiar en los certificados manualmente.
Precaución: El ejemplo de configuración proporcionado es para Fiddler v5.0.20182.28034 para .NET 4.5y Mozilla Firefox 64.0.2 (32 bits) en Windows 7 x64 en un entorno de laboratorio. Es posible que estos procedimientos no generalicen a todas las versiones de Fiddler, todos los navegadores o todos los sistemas operativos de los equipos. Si su red está activa, asegúrese de comprender el impacto potencial de cualquier configuración. Consulte la documentación oficial de Fiddler para obtener más información.
Paso 1. Descargar Fiddler
Paso 2. Habilitar descifrado HTTPS: Tools > Options > HTTPS > marque la casilla Descifrar tráfico HTTPS
Paso 3. Se abre un cuadro de mensaje de advertencia para solicitar que se confíe en el certificado raíz de Fiddler. Seleccione Yes.
Paso 4. Se abre un cuadro de mensaje de advertencia con el mensaje "Está a punto de instalar un certificado de una entidad de certificación (CA) que afirma representar: DO_NOT_TRUST_FiddlerRoot... ¿Desea instalar este certificado?". Seleccione Yes.
Paso 5. Agregue manualmente los certificados de editor y suscriptor de Finesse al almacén de confianza de certificados del equipo o navegador. Asegúrese de los puertos 8445, 7443 y (sólo para UCCE) 443. Por ejemplo, en Firefox, esto se puede hacer simplemente sin descargar certificados de la página de administración del sistema operativo Finesse:
Options > Find in Options (search) > Certificates > Servers > Add Exception > Location > Enter https://<Finesse server>:port para los puertos relevantes para ambos servidores Finesse.
Paso 6. Inicie sesión en Finesse y vea que los mensajes http-bind dejan el cliente Finesse en el servidor Finesse a través de Fiddler.
En el ejemplo proporcionado, los primeros 5 mensajes muestran los mensajes http-bind a los que respondió el servidor Finesse. El primer mensaje contiene 1571 bytes de datos devueltos en el cuerpo del mensaje. El cuerpo contiene una actualización XMPP relacionada con un evento de agente. El último mensaje http-bind ha sido enviado por el cliente Finesse, pero no ha recibido una respuesta del servidor Finesse. Esto se puede determinar viendo que el resultado HTTP es nulo (-) y el número de bytes en el cuerpo de respuesta es nulo (-1).
Vista más cercana de los datos:
Cuerpo de respuesta para mensaje XMPP:
Wireshark es una herramienta de rastreo de paquetes que se utiliza habitualmente para detectar y descodificar el tráfico HTTPS. El tráfico HTTPS es tráfico HTTP protegido a través de la seguridad de la capa de transporte (TLS). TLS proporciona integridad, autenticación y confidencialidad entre los hosts. Se utiliza comúnmente en aplicaciones web, pero se puede utilizar con cualquier protocolo que utilice TCP como protocolo de capa de transporte. Secure Sockets Layer (SSL) es la versión anterior del protocolo TLS, que ya no se utiliza porque no es seguro. Estos nombres a menudo se utilizan indistintamente y el filtro Wireshark utilizado para el tráfico SSL o TLS es ssl.
Precaución: El ejemplo de configuración proporcionado es para Wireshark 2.6.6 (v2.6.6-0-gdf942cd8) y Mozilla Firefox 64.0.2 (32 bits) en Windows7 x64 en un entorno de laboratorio. Es posible que estos procedimientos no generalicen a todas las versiones de Fiddler, todos los navegadores o todos los sistemas operativos de los equipos. Si su red está activa, asegúrese de comprender el impacto potencial de cualquier configuración. Consulte la documentación oficial de Wireshark SSL para obtener más información. Se requiere Wireshark 1.6 o superior.
Nota: Este método sólo funcionará para Firefox y Chrome. Este método no funciona para Internet Explorer.
Paso 1. En el equipo Windows del agente, navegue hasta Panel de control > Sistema y seguridad > Sistema > Configuración avanzada del sistema Variables ambientales...
Paso 2. Navegue hasta las variables de usuario <username> > New...
Cree una variable denominada SSLKEYLOGFILE.
Cree un archivo para almacenar el secreto de premaster SSL en un directorio privado: SSLKEYLOGFILE=</path/to/private/directory/with/logfile>
Nota: La creación de una variable de sistema en lugar de una variable de usuario y/o el almacenamiento del archivo en un directorio no privado también funcionarán, pero todos los usuarios del sistema pueden acceder al secreto de premaster, que es menos seguro.
Paso 3. Si Firefox o Chrome están abiertos, cierre las aplicaciones. Una vez reabiertos, empezarán a escribir en el SSLKEYLOGFILE.
Paso 4. En Wireshark, navegue hasta Editar > Preferencias...
Navegue hasta Protocolos > SSL.
Paso 5. Ingrese la ubicación del nombre de archivo del registro secreto previo configurado en el Paso 2.
Paso 6. Mediante el filtro Wireshark tcp.port==7443 && ssl, la comunicación HTTP segura entre el cliente Finesse y el servidor Finesse (Servicio de notificación) se ve descifrada.