Table des matières

Introduction

Conditions préalables

Exigences

Composants utilisés

Informations générales

Dépannage

Solution

Vérifier

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.