Push Notifications – iOS and Android:
Push notifications will occur on iOS and Android regardless of the app being open or closed. We use the push notification mechanisms native to the device. They put zero battery load on the devices. Push notifications should arrive near instantly provided the device has a data connection, and push notifications are enabled for the app. Often a device will lose its data connection, which is why we have an Alerting Policy as a backup using SMS or phone call alerts.
Push Vs. Pull:
Our push notification is really an indicator to the device to ‘pull’ a new message. We don’t send any message details over the Apple or Google push networks, because this would violate HIPAA. So, you need to think of the push notification as a ‘You have a New Message’.
iOS is different than Android:
On Android, the application is always running in the background and is able to ‘Pull’ a message as soon as it gets a push notification. When this happens, the message is marked as ‘Delivered’.
On iOS however, background app refresh is limited by iOS due to factors such as battery life, connection strength, and time to complete background refreshes. When iOS limits background app refresh, there may be delays between the notification being received and the 'Pull' that marks the message as 'Delivered'. If the app doesn't complete the background app refresh, the next time the App is opened the message will be downloaded, marking it as ‘Delivered’. Therefore if we send the push notification to an Apple device, and the user ignores or does not hear the alert, it may still show as ‘Sent’ until they interact with the message. On iOS, VoIP pushes are distinguished from other pushes, and will always cause a background app refresh.
Messages transition through the following states in Telmediq:
'Sent' -> 'Delivered' -> 'Read' -> 'Replied'
Additionally, Telmediq will track statuses such as 'Called', 'Accepted', and 'Rejected'.
'Sent' - When a message was initially sent to the recipient.
'Delivered' - When the message was delivered to the recipient's inbox, or, if it is enabled, when the recipient responds to an SMS text with the confirmation code in an SMS.
'Read' - When the message in the thread was viewed by the recipient.
'Replied' - When the recipient replies with a new message in the thread.
'Called' - When the recipient selected a phone number in the thread to complete a call.
'Accepted' - When the recipient chooses the Accept button in an accept/reject message.
'Rejected' - When the recipient chooses the Reject button in an accept/reject message.