I'm developing an mission critical Android voice/video communication application where one user on a devices "calls" another user. We are using FCM to try to achieve this. It is critical that these call notifications are received (assuming that the devices have internet access) in a timely manner or they are meaningless. It is also important that as long as both devices have internet connectivity the notification is sent regardless to prior responses to the notification (i.e. the user expects this feature to behave exactly as a phone call would, except they have the potential of streaming audio and video over the call).
However, while developing and testing this feature, we have been seeing occasional lapses were we expect the call to go through but the callee never receives the notification. Trying to determine where the "drops" are occuring is rather complicated since we are using AWS Simple Notification Service to forward the notification to FCM. From what we can tell the AWS service is forwarding the notification properly so it would appear that the issue is with the receiving device or FCM itself. However, I can not find any logging or other way to determine what FCM thinks happened to the message.
The message being sent is a simple "data" FCM message. I've set the time_to_live to be "0" and the priority to "high". Is there any other settings that needs to be added to ensure the message isn't reprioritized or dropped?
Can I set the time_to_live to anything greater than 0 for instance 5, 10 or 15 seconds and still not have the message reprioritized.
Is there some place or API for determining the "status" of a FCM message?
Thanks for any help you can provide,
- timo