Jan 4, 2021
So, what I want to make is an android app which can place calls and show its own call UI. I don't want to use VoIP though, i just want to make a normal call. I also don't want to replace the default phone app - it should just be it's standalone thing. Ideally I would also need the audio stream, because I need to listen to it, which is not really possible my getting it back through the microphone.

The only thing I found is how to tell the android system that I'm starting a call, but I can't find anything about how to actually transmit the voice over a normal phone call. I've tried following the docs with creating a self managed ConnectionService, but it doesn't place a call or do anything. Is it even possible to do something like that or can't i place normal calls without becoming the default phone app?

Thanks in advance.
I think only the native phone application is able to do typical voice calls. Even apps which replace the dialer interface wind up "calling" back to the native phone app to actually place the call.
So my only option would be to either make a VoIP call or become the default calling app?
Actually, I tried that. And I'm not sure if I missed something, but it's not working.
The system knows that I placed a call, because if I then start a call with another app, it first asks me if I want to cancel the call from my app.
But it doesn't ring the phone of anyone or call anyone like normal.
Are you sure it is possible to place a normal call or is it just for your own VoIP calls?
I also found this which gives a summary about what the possibilities are: https://developer.android.com/guide/topics/connectivity/telecom
I've read this multiple times now and I'm still unsure if it is possible.
The first paragraph says the following: "The Android Telecom framework manages audio and video calls on an Android device. This includes SIM-based calls (e.g. using the Telephony framework) as well as VOIP calls provided by implementors of the ConnectionService API."
There is no further instruction or link for the Telephony Framework, which, if I'm correct, would be what I need. That would also mean that the current approach I'm taking (so basically the selfManaged link you talked about) only works for VoIP calls.
Am I misunderstanding something? And can I use the Telephony framework somehow?
Sorry, I'm not actually a developer so the technical implementation is a bit beyond my reach. Based on reading that documentation it seems like it should be possible but that's as far as I can take it.