Apple Push Notification service (APNs) notifications are not coming to my mobile device.
Check the Java JDK version on the host running the Client Web Server; the version should be 8u252 or later. This version of Java is required to support the HTTP/2 the APNs is based on.
The Mobile/Web Messaging API v2 returns error 406 when calling the Get Case History or Close Case methods.
The scenario handling the chat session should specify which CRM case the API can access. This is done by using the Set Case scenario block with the Allow case history access via chat API checkbox marked OR by setting scenario variable $(item.allowChatHistoryForCase) to the ID of the CRM case object.
My mobile application receives the same chat message more than once.
Your mobile application receives the same chat message more than once because there are two way the app can get chat session server events:
- There is background polling for new events on the current chat session. This is done automatically by the iOS and/or Android libraries. The libraries deliver these new events as the iOS ContactCenterEventsDelegating.chatSessionEvents delegate or as the Android ContactCenterEventsInterface.chatSessionEvents callback.
- Another way to get chat session events is to use the Get Chat History request, which will return all events for the current session, including the ones already delivered via callback or delegate. It is the application’s responsibility to coordinate the rendering of these events and avoid rendering the same event twice.
Push notifications on my device’s system notification center title are showing as “keyChatNewMessageTitle, keyChatInactivityTimeoutTitle”. Why?
The title and subtitle of the push notifications are localizable strings. The server uses the iOS client-side localization approach per Apple Documentation. The Android client-side localization is per Firebase Documentation.
The iOS mobile application must use Localizable.strings to specify the strings for each supported language. Android applications should use string resources. The server uses the following string keys for iOS notification:
- keyChatNewMessageTitle: This is the key of the title string for the new message notification; it does not have any arguments. A typical value is, "You have a new message" for iOS or, “You have a new message from %1$s” for Android. When using Android (only) a new message notification sends a single title argument—the name of the sender party (e.g., if the title argument is ["John Doe"], the Android notification will show "You have a new message from John Doe").
- keyChatNewMessageSubtitle: This is the key of the subtitle string for the new message notification; it is present on iOS only. A typical value is, "From %@". A new message notification sends a single subtitle argument—the name of the sender party (e.g., if the subtitle argument is ["John Doe"] the notification will show "From John Doe").
- keyChatTimeoutWarningTitle: This is the key of the title string for the timeout warning notification. A typical value is, "The session is about to time out."
- keyChatInactivityTimeoutTitle: This is the key of the title string for the inactivity timeout notification. A typical value is, "Are you still there?"
Note that for Android the notification only has the title (there is no subtitle), so the message sender name is included in the title string.