Introducción
Este documento describe cómo resolver los errores "400 bad request" de APNS; un problema conocido documentado en el bug de Cisco IDCSCvi01660.
Prerequisites
Requirements
Cisco recomienda que tenga conocimiento sobre estos temas:
Apple Push Notifications
configuración.
Apple Push Notifications
funcionalidad.
Componentes Utilizados
Este documento no se limita a versiones específicas de hardware y software.
La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.
Antecedentes
Cuando el clúster está habilitado para las notificaciones automáticas, Cisco Unified Communications Manager y el servicio de mensajería instantánea y presencia utilizan el servicio de notificaciones automáticas de Apple o Google Cloud para enviar notificaciones automáticas a clientes compatibles de Cisco Jabber o Webex que se ejecuten en dispositivos iOS o Android. Las notificaciones automáticas permiten que su sistema se comunique con el cliente, incluso después de que haya entrado en el modo de fondo (también conocido como modo suspendido). Sin Notificaciones automáticas, es posible que el sistema no pueda enviar llamadas o mensajes a los clientes que han entrado en modo de fondo.
Para autenticar con la nube de Cisco, el servidor de Cisco Communications Manager genera un token como parte del proceso de incorporación. Si recibe un mensaje de "400 solicitudes incorrectas", el token de acceso del equipo al servicio de notificaciones automáticas ha caducado y debe actualizar el token de acceso manualmente según la documentación:
https://www.cisco.com/c/en/us/td/docs/voice_ip_comm/cucm/push_notifications/cucm_b_push-notifications-deployment-guide/cucm_b_push-notifications-deployment-guide_chapter_01.html?bookSearch=true
Troubleshoot
Establezca los siguientes registros para depurar y recopilarlos con la Herramienta de monitoreo en tiempo real:
Cisco Unified Communications Manager
:
Servicio Cisco Push Notification
Servicio Cisco Management Agent
Mensajería instantánea y presencia de Cisco Unified Communications Manager:
Administrador de configuración de Cisco XCP
Router XCP de Cisco
En los registros de Cisco Push Notification Service, puede ver que CUCM recibe varias notificaciones 400 respuestas mientras se obtiene el token que hace que APNS falle, por lo tanto, los contadores no aumentan:
2024-07-16 15:09:50,514 DEBUG [Timer-144] ccmpns.CCMPNServer (CCMPNServer.java:306) - fetchAndStoreAccessToken() Response received : 400 2024-07-16 15:19:51,007 DEBUG [Timer-145] ccmpns.CCMPNServer (CCMPNServer.java:306) - fetchAndStoreAccessToken() Response received : 400 2024-07-16 15:29:51,605 DEBUG [Timer-146] ccmpns.CCMPNServer (CCMPNServer.java:306) - fetchAndStoreAccessToken() Response received : 400 2024-07-16 15:39:52,096 DEBUG [Timer-147] ccmpns.CCMPNServer (CCMPNServer.java:306) - fetchAndStoreAccessToken() Response received : 400 2024-07-16 15:49:52,565 DEBUG [Timer-148] ccmpns.CCMPNServer (CCMPNServer.java:306) - fetchAndStoreAccessToken() Response received : 400 2024-07-16 15:59:53,032 DEBUG [Timer-149] ccmpns.CCMPNServer (CCMPNServer.java:306) - fetchAndStoreAccessToken() Response received : 400
Puede ver una respuesta no válida en los registros del router Cisco XCP alrededor del momento en que se realiza la llamada:
2024-07-16 17:21:43,464 DEBUG [Timer-1382] xmlframework.XCPConfigMgr - FetchAndStoreAccessToken: Calling createAccessToken() with granttype:refresh_token, refreshToken:MTc2YzFhN2YtMDA1Ny00MTVlLWJGZmMjcwYTU3MjY1NGI1NzItZmE0, accessTokenURL proxyUsernamenull 2024-07-16 17:21:43,468 INFO [Timer-1382] utilities.CloudOnboarding - TRACKING ID:::::::FOS_e8e8ee93-818f-4fe5-8a23-6b08a879b91b 2024-07-16 17:21:43,790 ERROR [Timer-1382] utilities.TomcatTrustManager - checkServerTrusted:entered 2024-07-16 17:21:43,791 ERROR [Timer-1382] utilities.TomcatTrustManager - checkServerTrusted:entered 2 2024-07-16 17:21:43,958 DEBUG [Timer-1382] xmlframework.XCPConfigMgr - XCPConfigMgr:Inside responseStatus() 2024-07-16 17:21:43,958 ERROR [Timer-1382] xmlframework.XCPConfigMgr - 400 Bad Request: invalid_request, unsupported_grant_type, invalid_client, invalid_refresh_token, tokenlimit_reached 2019-07-16 17:21:43,958 DEBUG [Timer-1382] xmlframework.XCPConfigMgr - XCPConfigMgr:FetchAndStoreAccessToken: Inside Finally Block
Este es un ID de bug de Cisco conocido CSCvi01660.
Solución
Construya un sistema de laboratorio y actualice el token de actualización del laboratorio al sistema de producción.
Una vez que haya implementado el sistema de laboratorio, realice los siguientes pasos:
Paso 1:
En su editor de Call Manager, abra una sesión CLI y ejecute el comando "run sql select * from machineaccount details" y guarde todos los resultados en un archivo .txt:
Una vez guardados todos los resultados, preste especial atención a su Call Manager pkid, por ejemplo, nuestro entorno de laboratorio es "e40c24c0-cd4c-4256".
Además, ejecute el comando "run sql select * from machineaccount details" en su entorno de laboratorio y guarde todos los resultados en un archivo .txt.
Preste especial atención al token de actualización en su entorno de laboratorio, ya que es el token válido que utilizamos para reemplazar el token no válido en su entorno de producción. En nuestro entorno de laboratorio es algo así como "OGYyZGI2MWMtNjUwYy00Y2FiLThh".
Paso 2:
Necesitamos reemplazar su token de actualización actual que no funciona con el token de laboratorio válido.
Después de guardar el pkid de producción, ejecute esta consulta sql en el editor de Call Manager de producción:
ejecute sql update machineaccount details set refresh token='aquí va el token de actualización válido de su entorno de laboratorio' donde pkid='aquí va su pkid de producción'.
La consulta sql anterior cambia su token no operativo con el de trabajo de su entorno de laboratorio.
Paso 3:
Después de haber actualizado los detalles de la cuenta de la máquina con el token de actualización de laboratorio, reinicie estos servicios:
Cisco Unified Communications Manager
::
- Servicio Cisco Management Agent (CMAS)
- Servicio Cisco Push Notification Service (CCMPNS)
- Tomcat
Mensajería instantánea y presencia de Cisco Unified Communications Manager:
- Administrador de configuración XCP
- Router XCP
- Tomcat
Estos servicios deben reiniciarse después de las horas de oficina para evitar cualquier impacto en el servicio.
Verificación
Ahora ejecute nuevamente "run sql select * from machineaccount details" en todos los nodos, incluyendo los IMPs, y verifique ahora que tiene mi token de actualización.