There may be occasions where you are unable to receive push notifications. Depending on the Device, Digital Workplace (DWP) will use the Apple Push Notification Service (APNS) or Google Cloud Messaging (GCM).Once a notification is triggered a DWP API sends the notification along with the users token to either the APNS or GCM Server. This token is what's used to identify the relevant DWP Device Client.
a) First of all, rule out the basics and make sure you have enabled push notification on your device and within your Digital Workplace Notification Settings in the Universal Client.
b) Are you able to receive notifications for other Device Applications ? If not there may be a problem which is more specific to your network.
c) Check the certificates are valid by running the Digital Workplace Health check utility.
d) Open the "connect.properties" file (C:\Program Files\Apache Software Foundation\Tomcat8.0\external-conf) and check to make sure push notification is not disabled (a "true" value indicates enabled).
e) Check the "PUSH_NOTIFICATION_CERT" table contains two records, there should be one for Digital Workplace and another for SmartIT.
The iOS Certificate which is shipped with Digital Workplace needs to be renewed on an annual basis. Please ensure you re-sign the BMC Digital Workplace mobile application with your enterprise credentials as detailed in our documentation.
To check the Digital Workplace client expiration open the cert from the "%MYIT_HOME%\Smart_IT_MyIT\ux\WEB-INF\classes\certification" directory.
The example below uses the shipped iOS client. The password for this private key is bmc-appstores
Once imported, open Certificate Manager by typing "certmgr.msc" from a run box, click on the Personal =>Certificates folder and you should see an expiration date for the Apple Push Certificate. As you can see from the following screenshot, the expiration for this default certificate is the 24th of September 2017.
f) Check the "DEVICE_TOKEN" table for records with OS_TYPE equal to either 0 (iOS) or 1 (Android). If none are present then notifications will NOT be delivered to mobile devices.
If the users token is present and the notification hasn't been sent, delete the row and initiate the notification again (providing previous checks failed). The token should be regenerated once the user logs in again.
g) If you are running Digital Workplace in a cluster make sure you have set the "master.server" value set correctly within the connect.properties file. In a single Server environment it should be commented out whereas in a cluster the primary should be set to "true" and the secondary "false"
h) Check to make sure the outbound notification ports are open to communicate with APNS and GCM, you can confirm this by using "telnet" from the DWP Server.
In the following example you can see a successful connection to APNS.
[root@clm-aus-012345 ~]# telnet gateway.push.apple.com 2195
Connected to gateway.push.apple.com.
Escape character is '^]'.
...and the same for Android.
[root@clm-aus-018772 ~]# telnet android.googleapis.com 443
Connected to android.googleapis.com.
Escape character is '^]'.
For a full list of required ports please refer to the doc link in the "Further Resources" section below
i) If you are using a re-branded app make sure it's using the correct Bundle ID
- Unpack the Enterprise IPA
- Change to the payload directory
- Switch to a command prompt and run the following command.
myuserID$ codesign -dvv MyIT.app/
Executable=/Users/myuser/Desktop/dwp_myuser 2017-07-27 13-48-51/Payload/MyIT.app/MyIT Identifier=com.bmc. Format=app bundle with Mach-O universal (armv7 arm64) CodeDirectory v=20200 size=71988 flags=0x0(none) hashes=2242+5 location=embedded Signature size=4690 Authority=iPhone Distribution: ACME Inc. Authority=Apple Worldwide Developer Relations Certification Authority Authority=Apple Root CA Signed Time=Jul 27, 2017, 13:48:42 Info.plist entries=59 TeamIdentifier=XXXXXXXX Sealed Resources version=2 rules=13 files=1017 Internal requirements count=1 size=176
The MyIT Identifier should match the bundle ID (User ID) from the resigned certificate.
j) Check the notification poller in the "connect.properties" is not commented out. By default it's set to 5 minutes.
com.bmc.bsm.myit.service.assistance.NotificationPoller.PERIOD = 300000
k) If all else fails, turn on push notification debug in the "logback.xml" file by adding the following lines:
<!--Logger for Push Notification-->
<logger name="com.bmc.bsm.myit.service.pushnotification" level="DEBUG" additivity="false">
After 60 seconds, (default scan period) you should see more detailed information related to the push notification process within the ux log file. Pay close attention to any google or apns activity. In the following example a push notification was sent to an iOS device and we can identify the user, client and iOS version. The highlighted device token should match the value in the "DEVICE_TOKEN" table.
DEBUG | c.b.b.m.service.SecurityService | loginId=Allen, authentication=null, tenantId=000000000000001, systemApplicationName=MyIT, userApplicationName=MyIT-ITSM, applicationVersion=3.3.01,apiVersion=3030100, clientLocale=en_US, deviceToken=774f44f59593142fe6f5b341e2d302442aba573bbc33c3822e1b68139a0abe4d, osVersion=iOS 10.3.3, deviceModel=iPhone, verify=true
| c.b.b.m.s.p.apns.APNSService | Pushing alert notification to Apple for Device Token='[774f44f59593142fe6f5b341e2d302442aba573bbc33c3822e1b68139a0abe4d]', payload='TEST'.
l) Restart the "Smart IT/MyIT Application" service(s) and try again.
If push notification problems persist please log a case with us in here in Technical Support.
The following documentation & Knowledge Articles may also help.