Introduction
Ce document décrit comment dépanner les erreurs APNS « 400 bad request » ; un problème connu documenté dans le bogue Cisco IDCSCvi01660.
Conditions préalables
Exigences
Cisco vous recommande de prendre connaissance des rubriques suivantes :
Apple Push Notifications
configuration.
Apple Push Notifications
fonctionnalité.
Composants utilisés
Ce document n'est pas limité à des versions matérielles et logicielles spécifiques.
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 votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
Informations générales
Lorsque votre cluster est activé pour les notifications Push, Cisco Unified Communications Manager et le service de messagerie instantanée et de présence utilisent le service de notification Push d'Apple ou du cloud de Google pour envoyer des notifications Push aux clients Cisco Jabber ou Webex compatibles qui s'exécutent sur des appareils iOS ou Android. Les notifications Push permettent à votre système de communiquer avec le client, même après son passage en mode arrière-plan (également appelé mode suspendu). Sans les notifications Push, le système est peut-être incapable d'envoyer des appels ou des messages aux clients qui sont entrés en mode arrière-plan.
Pour vous authentifier auprès du cloud Cisco, votre serveur Cisco Communications Manager génère un jeton dans le cadre du processus d'intégration. Si vous recevez un message « 400 bad request », votre jeton d'accès machine au service Push Notifications a expiré et vous devez mettre à jour manuellement le jeton d'accès conformément à la documentation :
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
Dépannage
Définissez les journaux suivants pour le déboguer et le collecter avec l'outil de surveillance en temps réel :
Solutions Cisco Unified Communications Manager
:
Service de notification Push Cisco
Service Cisco Management Agent
Messagerie instantanée et présence Cisco Unified Communications Manager :
Gestionnaire de configuration Cisco XCP
Routeur Cisco XCP
Dans les journaux du service de notification Push de Cisco, vous pouvez voir que le CUCM reçoit plusieurs 400 réponses lors de l'extraction du jeton qui fait échouer APNS, donc les compteurs n'augmentent pas :
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
Vous pouvez voir une réponse non valide dans les journaux du routeur Cisco XCP à peu près au moment où l'appel est passé :
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
Il s'agit d'un bogue connu de Cisco, ID CSCvi01660.
Solution
Créer un système de laboratoire et mettre à jour le jeton de rafraîchissement du laboratoire au système de production.
Une fois que vous avez déployé le système de laboratoire, procédez comme suit :
Étape 1 :
Sur votre éditeur Call Manager, ouvrez une session CLI et exécutez la commande « run sql select * from machineaccountdetails » et enregistrez tous les résultats dans un fichier .txt :
Une fois toutes les sorties enregistrées, prêtez une attention particulière à votre Call Manager pkid, par exemple, notre environnement de laboratoire est «e40c24c0-cd4c-4256».
Exécutez également la commande « run sql select * from machine account details » dans votre environnement de laboratoire et enregistrez tous les résultats dans un fichier .txt.
Faites particulièrement attention au jeton d'actualisation dans votre environnement de laboratoire, car il s'agit du jeton valide que nous utilisons pour remplacer le jeton non valide dans votre environnement de production. Dans notre environnement de laboratoire est quelque chose comme "OGYyZGI2MWMtNjUwYy00Y2FiLThh".
Étape 2 :
Nous devons remplacer votre jeton d'actualisation non fonctionnel actuel par le jeton de laboratoire valide.
Après avoir enregistré votre pkid de production, exécutez cette requête SQL dans votre serveur de publication Call Manager de production :
exécutez sql update machineaccountdetails set refreshtoken='voici le jeton d'actualisation valide de votre environnement de laboratoire' où pkid='voici votre pkid de production'.
La requête SQL précédente modifie votre jeton non fonctionnel avec celui fonctionnel de votre environnement de laboratoire.
Étape 3 :
Après avoir mis à jour les détails du compte de machine avec le jeton d'actualisation des travaux pratiques, veuillez redémarrer ces services :
Solutions Cisco Unified Communications Manager
::
- Service Cisco Management Agent (CMAS)
- Service de notification Push de Cisco (CCMPNS)
- Tomcat
Messagerie instantanée et présence Cisco Unified Communications Manager :
- Gestionnaire de configuration XCP
- Routeur XCP
- Tomcat
Ces services doivent être redémarrés en dehors des heures de bureau pour éviter tout impact sur les services.
Vérifier
Maintenant, exécutez à nouveau «run sql select * from machineaccount details» sur tous les noeuds, y compris les IMP et vérifiez maintenant que vous avez mon jeton d'actualisation.