Actually, this begins with following question: Can I create a virtual Bluetooth headset to manipulate call stream?
I'm sure this can be done by replacing kernel module for Bluetooth with something made-up. So Virtual bluetooth device on Android? sounds like definitely possible.
And, of course, one may simply use Raspberry Pi, which is capable of emulating a headset (at least, A2DP playback only) bluetooth profile, or even one of these Bluegiga modules, to hook a custom virtual headset with Android and let it play sounds into call. (Oh, well, it's enough to just solder headset's mic input into PC's soundcard..)
It seems, that Android (at least, rooted) allows some flexibility with hacking into other applications by some sort of hooks - https://play.google.com/store/apps/details?id=com.trigonesoft.iti; there's an app which from my desktop experience with JVMTI and jaspects, it also seems that Java-based apps can be tricked well. -
So in theory, there is a way to just make the system think that bluetooth connection manager is actually connected to headset, thus force it to use Bluetooth route to play sound into.
But there's no way to actually "play" into phone conversation, of which I know - so questions like Is it possible to create a simple answering machine in android? are in fact 100% unanswered. I guess it's due to the hardware limitations (and with all that energy-saving audio-routing bells&whistles, it seems to be true)
So, the question is: can the Bluetooth device be emulated without having to replace vendor's bluetooth kernel module (for example, on MTK phones its mtk_stp_bt) with custom stub?
(Honestly it sounds like I'm giving out a bluetooth-sdk-in-userspace idea, well, lets state that I do it for CC-BY-NC license
)