Incoming voice calls don't get rejected / hangup (same bug via the UI and programmatically)

REPRODUCIBILITY (% or how often): 99%
BUILD ID = OS VERSION (Settings > About product): 4.3.0.12
HARDWARE (XA2, X10, X10 II, …): XA2 Ultra Dual SIM (single SIM card in slot 1, slot 2 is empty, disabled or enabled doesn’t make any difference)
UI LANGUAGE: Polish, English, doesn’t matter
REGRESSION: (compared to previous public release: Yes, No, ?): Don’t know

DESCRIPTION:

When there’s an incoming call and I want to reject it using the “red handset” button/icon of the Phone UI, the UI behaves as if the call got rejected (the window with incoming call information gets closed, there’s a notification shown that the call has ended, and for a short while everything looks as if the call was hung up) but the actual connection continues - on the calling phone there’s still the normal waiting signal and after a few seconds the call starts ringing another time and the incoming call UI is shown once again. It takes pressing the “red handset” button/icon once again to reject the call, and only this second time it really gets rejected - the actual connection terminates, but still in a wrong way because upon disconnecting the caller hears “beep beep beep” connection error tone instead of being forwarded to voicemail (or hearing busy tone if there’s no voicemail forwarding enabled) like this SIM card behaves on any other phone and OS (and even this same XA2 Ultra when flashed with Android).

This happens most of the time, like 99% or so.

Only very rarely (like 1% or so) it works as it should, i.e. when I press the “red headset” icon/button to reject the incoming call, it does get rejected and the caller gets forwarded to my voicemail (which is as it should be and as it works on all my other phones).

So it looks like a bug in managing voice calls or handling the modem in SFOS.

The exact same thing happens if I try to reject incoming voice calls programmatically. No matter if I call org.nemomobile.voicecall.VoiceCall

m = QDBusMessage::createMethodCall("org.nemomobile.voicecall",
                                                "/calls/active",
                                                "org.nemomobile.voicecall.VoiceCall",
                                                "hangup");
QDBusConnection::sessionBus().call(m); 

or org.ofono.VoiceCallManager

QDBusMessage m = QDBusMessage::createMethodCall("org.ofono",
                                              "/ril_0",
                                             "org.ofono.VoiceCallManager",
                                               "HangupAll");
QDBusConnection::systemBus().call(m);

the result is exactly the same as when rejecting the calls via the UI.

If I try to reject the call from the Terminal using e.g.

dbus-send --system --type=method_call --print-reply --dest=org.ofono /ril_0/voicecall01 org.ofono.VoiceCall.hangup

then when the call starts ringing the second time, I have to use

dbus-send --system --type=method_call --print-reply --dest=org.ofono /ril_0/voicecall02 org.ofono.VoiceCall.hangup

(i.e. voicecall02 instead of voicecall01). So it looks that this “returning call” is seen as a new call.

To make all this even funnier, when the call “comes back” and starts ringing again, two different ringtones play simultaneously (the one that I have configured in SFOS, and the other one is Android’s default ringtone).

So maybe it is the Android support messing with it.

PRECONDITIONS:

STEPS TO REPRODUCE:

  1. Get an incoming voice call (e.g. dial to yourself from another phone)
  2. Try to reject the call on your SFOS phone using the call UI’s “red headset” button
  3. Observe how the call seems to get terminated as the call UI closes and notification that the call has ended (with 0:00:00 connection time) is displayed, but on the calling phone the call is still active and waiting tone is heard, and after a few seconds the same call starts ringing once again on your SFOS phone
  4. Reject it another time, and only this second time it gets terminated. But instead of being forwarded to voicemail (which is what happens with this SIM card on any other phone and OS I’ve used it with) the caller hears “three beeps” connection error tone.
  5. Only in some rare cases (like 1%) the call gets rejected on the first attempt and gets forwarded to voicemail (rather than “beep beep beep” connection error signal).

EXPECTED RESULT:

When you press the “red headset” button to reject a call, it should be hung up (and forwarded to voicemail if you have it configured so in call forwarding settings or otherwise the caller should hear busy tone)

ACTUAL RESULT:

The call doesn’t get rejected. Even though the call UI behaves as if the call was terminated, on the calling phone the connection is still active, and in a few seconds it starts ringing again and the call UI is shown again. Only rejecting it another time pressing the “red headset” button really rejects it (but with a connection error tone rather than forwarding the caller to voicemail).

ADDITIONAL INFORMATION:

As I wrote in the description above, the exact same thing happens if I try to hangup a call programmatically, no matter if using org.ofono.VoiceCallManager HangupAll or org.nemomobile.voicecall.VoiceCall hangup method, or terminal dbus call, or whatever else.

6 Likes

Some further observations:

If I try to reject the call from the Terminal using:

dbus-send --system --print-reply --dest=org.ofono /ril_0/voicecall01 org.ofono.VoiceCall.Hangup

it behaves the same erroneous way as described above (i.e. comes back again) but to terminate it once again I need to use

dbus-send --system --print-reply --dest=org.ofono /ril_0/voicecall02 org.ofono.VoiceCall.Hangup

Note: voicecall01 vs. voicecall02. So it looks that the same connection that failed to get correctly hangup the first time is then seen as a new, separate incoming call.

Interesting, and quite annoying indeed. Tried 3 times on Xperia 10 II, can’t reproduce.

Thanks for testing! Well, I get it all the time (like I wrote, in 95% of cases). So maybe it is XA2 unique…

Can someone with the XA2 test it, please?

I tried 7 times on XA2 4.3 free but I couldn’t reproduce.

Then I really don’t know why it happens all the time on my XA2 Ultra. Is your XA2 Dual SIM?

Well, if no one else can reproduce it then I guess that reflashing the OS will be the only option left for me…

Yes, dual. But not ultra though.

Well, so it really starts looking like my own XA2’s unique problem, not a SFOS bug. I wonder if maybe flashing SFOS on top of Lineage 18.1 (i.e. Android 11) without going back to stock Android 8 or 9 could have been the reason of such misbehavior…

I guess I’ll reflash it later today if I find the time to do it - first to Sony’s stock Android 8.0 (or should I then update it to 9.0?), then SFOS.

I can confirm your issue on a XA2 Dual SIM with SFOS 4.3. After hanging up, the call is not terminated and the ringing starts again after a few seconds.

Thanks! You’ve just saved me a lot of time with reflashing the phone!

Anyway, so it proves that it is a bug. Now the question is why not all devices are affected. Do you have Android support installed? What provider is your SIM card? (mine’s Polish T-Mobile). Maybe that bug is triggered by some specific cellular network configuration…

I did a couple of tests with the Xperia 10 ii, SFOS 4.3. I cannot reproduce the bug although I had the vague feeling that I already encountered this bug (but - if at all - rarely)

do you have multiple users on the phone? It would make sense if you have 2 users and both have ofono running.

Can you try creating 3rd user - should have 3x the ringing

I have only one user.

No, I only have one user.

So… I’ve reflashed the device just to check it.

  1. Reflash to stock Android 8 with EMMA: rejecting calls works as it should.
  2. Reflash to stock Android 9 with EMMA: rejecting calls works as it should.
  3. Flashing SFOS 4.3.0.12: with literally nothing configured and installed yet, and not even the Android support downloaded yet, THIS BUG IS PRESENT RIGHT FROM THE BEGINNING. Rejecting an incoming call doesn’t terminate it and it starts ringing again after a few seconds.

Tested with both Sony binaries (v16 and v17), same sh*t.

As if it wasn’t enough, when the phone starts ringing the second time, two different ringtones play simultaneously (which before reflashing was happening rarely and now every single time).

This is a deal breaker for me as it means no way to silently reject unwanted incoming calls.

Oh, and it’s just one of many telephony related bugs. Another one is that if I accidentally enable SIM card slot 2 (where I have no card) and then I disable it, SIM card in slot 1 magically turns off and the phone says “No network coverage” - until I re-enable slot 2. It takes rebooting the device with slot 2 disabled to have slot 1 work as it should. I hoped that reflash would fix this annoying problem, too. It didn’t.

Sorry to say, but as much as I love the look, feel and openness of this OS, I haven’t seen anything so ruined with bugs in my whole life.

1 Like

So… can a few more people test it, please? Expecially on the XA2. Just call to your SFOS phone from some other phone, try to reject the call and see if it comes back after a few seconds and stats ringing again. Repeat a few times.

As I wrote, I have an application to automatically hangup unwanted calls (based on either blacklist or whitelist) almost ready. I will be happy to finish and share it, but only if this bug is fixed as otherwise it just won’t work as expected. So - if you’re interested in a call filtering app - please help to identify this bug so that Jolla possibly fixes it in some not so distant future.

For me, given that one person already confirmed an identical behavior on his XA2, it definitely is a bug. But I guess that for Jolla to ever take care about it, it takes more than two reported cases.

As said, I couldn’t reproduce the bug on my XA2 but I was wondering:
Could that be related to your operator? did you try with another SIM card/operatot from a friend? (Not saying you should change operator. Just to test)

Well, considering that it does not happen on any other phone that I own (I tested in on BlackBerry Passport, BlackBerry Z10, wife’s iPhone, and even this exact same XA2 Ultra when flashed with either Android 8 or 9) and in all those cases rejecting calls works exactly as it should, I don’t think my operator can have anything to do with it… I tested it on 2G, 3G, 4G, with the card in either slot 1 or 2, I reflashed the device to test it with brand new install and literally nothing touched yet, I carefully tested it when I reflashed the phone with stock Android 8 and 9 (where it worked perfectly OK), so I think I’ve tested it all. That very same SIM card, with everything else but SFOS, rejects calls correctly. On the Passport, for the last 4 years, I had been using it with an application developed by myself to filter calls, and I’d not seen a single time that a rejected call would come back.

I will try to test it with a SIM of some other operator, but it may take a while as we’re now working remotely due to X’th wave of madness, and I temporarily do not have anyone with a SIM of different op within my reach.

Anyway, at least one other person already reported same behavior on his XA2, so at least it proves that it isn’t just me. He apparently happens to live in the same country as I, but I don’t know what operator’s SIM he uses as he didn’t say. But even if it was operator related somehow, considering all my tests on several different phone models and under the same XA2 reflashed to Android, none of which had this issue, it would still only manifest itself on SFOS, so it would be still this OS’es unique (and undesired) behavior.

I will soon try to post a video showing this phenomenon and also submit here some ofono logs from Ofono Logger, but it may take some time to remove private data from both (phone numbers/names from video, numbers, IMEI, IMSI, etc. from call logs, and so on).

Hi there,

can not reproduce it either with my both XA2 single SIM.

Just tried on my XA2+. The caller is informed that my phone was not available. On my vodafone-de network I even get an SMS telling me I missed a call.
Actually I think this behaviour is not correct, as it return signal a busy signal to the caller instead of a not available. AFAIR this has been discussed already and I’d guess it’s another issue as the one you describe.