My application is ready and I use it. It has configurable whitelist and blacklist mode and it does its job. It’s Sailjail friendly, including normal access to the contacts database, etc.
However, I am not releasing it yet because besides the ofono patch so that hanging up works correctly in certain networks, there is another problem to solve:
ofono is VERY SLOW to react to the call hangup command, and in many cases it takes it long enough to hangup the call for the first ring to be heard for about 1 second. I’ve noticed that it happens very rarely (almost never) on 3G, but if 4G network is in use (which gets switched to 3G when there’s an incoming voice call) then apparently such a switch from 4G to 3G delays hanging up the call enough for the ringtone to be heard for a second or so ALMOST ALWAYS.
I’ve tried to first silence the ringtone using
QDBusMessage m = QDBusMessage::createMethodCall("org.nemomobile.voicecall",
"/calls/active",
"org.nemomobile.voicecall.VoiceCall",
"silenceRingtone");
QDBusConnection::sessionBus().call(m);
but I can’t make it work at all.
I’m currently using
org.nemomobile.voicecall.VoiceCall.hangup
to reject calls, but maybe using
org.ofono.VoiceCallManager.HangupAll
turns out to be quicker…? I’ll need to further experiment with it in order to make it quick enough to always hangup the call BEFORE it manages to start ringing. Which, I’m afraid, won’t be easy. Only then I will release my app for public use.