Inleiding
In dit document wordt beschreven hoe u APNS "400 bad request"-fouten kunt oplossen; een bekend probleem dat is gedocumenteerd in de Cisco-bug IDCSCvi01660.
Voorwaarden
Vereisten
Cisco raadt kennis van de volgende onderwerpen aan:
Apple Push Notifications
configuratie.
Apple Push Notifications
functionaliteit.
Gebruikte componenten
Dit document is niet beperkt tot specifieke hardware- en softwareversies.
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
Achtergrondinformatie
Wanneer uw cluster is ingeschakeld voor pushmeldingen, gebruiken Cisco Unified Communications Manager en de IM- en aanwezigheidsservice de Push Notification-service van Apple of Google Cloud om pushmeldingen te verzenden naar compatibele Cisco Jabber- of Webex-clients die op iOS- of Android-apparaten worden uitgevoerd. Met pushmeldingen kan uw systeem communiceren met de client, zelfs nadat deze in de achtergrondmodus is gegaan (ook bekend als de opgeschorte modus). Zonder Push Notifications is het systeem mogelijk niet in staat om oproepen of berichten te verzenden naar clients die in de achtergrondmodus zijn gegaan.
Als u zich wilt verifiëren met de Cisco Cloud, genereert uw Cisco Communications Manager Server een token als onderdeel van het onboarding-proces. Als u een bericht met "400 bad request" ontvangt, is uw machine-toegangstoken voor de Push Notifications-service verlopen en moet u het toegangstoken handmatig bijwerken volgens de documentatie:
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
Problemen oplossen
Stel de volgende logs in om te debuggen en verzamel deze met de Real Time Monitoring Tool:
Cisco Unified Communications Manager:
Cisco Push Notification Service
Cisco Management Agent Service
Cisco Unified Communications Manager IM en aanwezigheid:
Cisco XCP Config Manager
Cisco XCP Router
In de logboeken van de Cisco Push Notification Service ziet u dat de CUCM meerdere 400 reacties ontvangt terwijl het token wordt opgehaald waardoor APNS mislukt, waardoor de tellers niet toenemen:
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
U kunt een ongeldig antwoord zien op de Cisco XCP Router-logboeken rond het tijdstip waarop de oproep wordt gedaan:
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
Dit is een bekende Cisco bug ID CSCvi01660.
Oplossing
Bouw een laboratoriumsysteem en werk de Refresh Token bij van het laboratorium naar het productiesysteem.
Nadat u het laboratoriumsysteem hebt geïmplementeerd, voert u de volgende stappen uit:
Stap 1:
Open op uw Call Manager-uitgever een CLI-sessie en voer de opdracht "voer SQL select * uit machine-accountgegevens" uit en sla alle uitvoer op in een .txt-bestand:

Als alle uitvoer is opgeslagen, let dan vooral op uw Call Manager-pkid, bijvoorbeeld onze laboratoriumomgeving is "e40c24c0-cd4c-4256".
Voer ook de opdracht "Voer SQL select * uit van machine accountgegevens" uit in uw laboratoriumomgeving en sla alle uitvoer op in een .txt-bestand.
Besteed speciale aandacht aan de refreshtoken in uw laboratoriumomgeving, omdat dit het geldige token is dat we gebruiken om het ongeldige token in uw productieomgeving te vervangen. In onze laboratoriumomgeving is zoiets als "OGYyZGI2MWMtNjUwYy00Y2FiLThh".
Stap 2:
We moeten uw huidige niet-werkende verversingstoken vervangen door het geldige laboratoriumtoken.
Nadat u uw productie-exemplaar hebt opgeslagen, voert u deze SQL-query uit in uw productie Call Manager Publisher:
Voer SQL Update MachineAccountDetails uit Set refreshtoken='Hier gaat de geldige refresh token van uw laboratoriumomgeving' waar PKID='Hier gaat uw productie-PKID'.
De vorige SQL-query wijzigt uw niet-werkende token met de werkende token vanuit uw laboratoriumomgeving.
Stap 3:
Nadat u de accountgegevens van de machine hebt bijgewerkt met de token voor laboratoriumvernieuwing, start u deze services opnieuw op:
Cisco Unified Communications Manager::
- Cisco Management Agent Service (CMAS)
- Cisco Push Notification Service (CCMPNS)
- Tomcat
Cisco Unified Communications Manager IM en aanwezigheid:
- XCP-configuratiebeheer
- XCP-router
- Tomcat
Deze diensten moeten na kantooruren opnieuw worden opgestart om eventuele gevolgen voor de service te voorkomen.
Verifiëren
Voer nu opnieuw "voer sql select * uit machine accountgegevens" uit op alle knooppunten, inclusief de IMP's en controleer nu dat u mijn verversingstoken hebt.