Open atsakiridis opened 8 years ago
@atsakiridis My thoughts and comments on this issue
The best way to support mobile clients and push notification services at Restcomm but still not mess with the core SIP functionality, would be to introduce a new Restcomm plugin (a new module) that will be responsible for the calls/messages with all mobile clients.
This new module should be able to handle both iOS and Android devices.
An important requirement here is to find a way to identify that a client is running on a mobile device and thus bypass the normal call flow Restcomm will follow for regular sip clients. We can use User-Agent header or better a custom header. Using a custom header will allow 3rd party applications to seamlessly integrate with Restcomm.
Using this new module we will be able to:
Important for phase 2 is that there must be an update for the network details.
For example
@atsakiridis You should start working on that new module and I will assist you on the design and the integration with the Restcomm-core
George
Any updates on this?
My company is looking to develop an app using Restcomm and this would be a very helpful feature.
@erikroloff would you like to contribute to the effort in implementing / designing this ?
Right now mobile SDKs cannot receive events when the App is not active or not running, which means that they cannot receive incoming calls or text messages from Restcomm unless the App is active. To aid in that we want to implement Push notifications that work even when the App is not active or even not running and the impact in mobile battery life is minimal. That needs additional functionality on the server side (either Restcomm Core or maybe a new 'hybrid' SIP element, we need to discuss that).
The way this roughly works is that if a SIP request arrives to Restcomm (i.e. INVITE or MESSAGE for now) and the recipient is a mobile device where the App (using our mobile SDK) is deemed inactive, then instead of sending the INVITE to App that won't be able to handle it, send a Push notification to the App via an APN (Apple Push Notification) server that will wake the App and with some additional logic will deliver the call or message properly. We'll discuss how that could be accomplished next and break it to two iterations: 1. text messages and 2. calls, as there are differences in the handling between them and text messages are simpler to implement. Notice that this is a very rough 'architecture' that we need to better investigate from a server perspective to see if it suits us and make more detailed.
1st Iteration: Implement text messages functionality
2nd Iteration: Implement call functionality
@deruelle, @gvagenas: could you have a look since you have a much better understanding of the server side and can evaluate if and how we can realize/implement this?
Some additional notes: