Android have, since API 23, an abstract service that should be implemented by any apps which can make phone calls (VoIP or otherwise) and want those calls to be integrated into the built-in phone app. It is called ConnectionService, and is basically the Android version of CallKit, but with less marketing. So now, when we have webrtc calls, it would be nice if Signal could take advantage of this service, and implement the ConnectionService API.
https://developer.android.com/reference/android/telecom/ConnectionService.html
I don't want this to be mandatory so like Callkit I hope it is opt-out or better yet, opt-in.
Redphone used to have something like this before the merge. IIRC they had a replacement for the call application that called "normal" calls when the contact was not on Redphone.
@Cormak it seems that is is opt-in by default.
I found this on some google for work development site:
Once the developer has implemented ConnectionService, they should add it to the app鈥檚 manifest file and register a PhoneAccount with the TelecomManager. A phone account represents a distinct method to place or receive phone calls, and there can be multiple PhoneAccounts for each ConnectionService. After the phone account is registered, the user can enable it through the dialer settings.
Related: #4486
Huh, thanks @snaggen I didn't realize this existed. The API docs say that it "integrates," but I can't find any more detail about exactly what that means? Like if you place a call from the dialer, it will prompt the user if they want to use Signal for that call? Does it manage the in-call screen as well?
@moxie0 The API is not well marketed and poorly documented in regards of what features it provides. But from a Android for Work related site I got this:
Third-party VoIP apps that need to make phone calls and have those calls integrated into the built-in phone app can implement the ConnectionService API. This is required for any VoIP service used for work calling. These apps benefit by having their calls treated like traditional cellular calls, for example, they show up in the built-in system dialer and the call log.
https://developers.google.com/android/work/network-telephony#third-party_apps_must_implement_connectionservice
So it seems that the idea is to make a more seamless and native feeling for voip... but in the end, I guess this is a situation where it must be implemented and tested to see if it is something usefull.
Yeah this would be a nice feature to have as it would probably make signal calls visible by kde connect for example.
GitHub Issue Cleanup:
See #7598 for more information.
Most helpful comment
@moxie0 The API is not well marketed and poorly documented in regards of what features it provides. But from a Android for Work related site I got this:
So it seems that the idea is to make a more seamless and native feeling for voip... but in the end, I guess this is a situation where it must be implemented and tested to see if it is something usefull.