[maguro] Query CLIR SS returns unexpected values

Bug #1263229 reported by Tony Espy
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
ofono (Ubuntu)
Incomplete
Low
Alfonso Sanchez-Beato

Bug Description

This bug is being reported against our upstream github branch, as USSD + SS support was just merged.

When running test case 2 in the USSD Supplementary Provisioning section, I noticed that the status reported both after the activation and subsequent interrogation both showed "enabled" instead of "disabled".

This works properly on mako.

Tony Espy (awe)
Changed in ofono (Ubuntu):
status: New → Confirmed
importance: Undecided → High
assignee: nobody → Alfonso Sanchez-Beato (alfonsosanchezbeato)
Revision history for this message
Alfonso Sanchez-Beato (alfonsosanchezbeato) wrote :

It looks like the logic for this SS is really messed up in some modems. Network-wise, what I see is:

mako:
test-ss "*31#" -> No line number shown in called phone. Shown status is "disabled".
test-ss "#31#" -> Line number shown in called phone. Shown status is "enabled".

maguro:
test-ss "*31#" -> Line number shown in called phone. Shown status is "enabled".
test-ss "#31#" -> No line number shown in called phone. Shown status is "enabled".

In both cases, RIL_REQUEST_SET_CLIR is the same for the same string (*31# or #31#). SIM card is the same.

RIL_REQUEST_GET_CLIR returns:

mako:
After (test-ss "*31#"): {2,4}
After (test-ss "#31#"): {1,4}

maguro:
After (test-ss "*31#"): {2,3}
After (test-ss "#31#"): {1,4}

The reason for the different status displayed is because of the interpretation that is done by the second integer in core ofono call_settings.c:

 case CLIR_STATUS_TEMPORARY_RESTRICTED: // 3
  if (override == OFONO_CLIR_OPTION_SUPPRESSION) // 2
   value = "enabled";
  else
   value = "disabled";
  break;

 case CLIR_STATUS_TEMPORARY_ALLOWED: // 4
  if (override == OFONO_CLIR_OPTION_INVOCATION) // 1
   value = "enabled";
  else
   value = "disabled";
  break;

The values returned by maguro do not really match this.

To complicate things more, ofono core uses inverse logic when activating/deactivating this SS. For control type SS_CONTROL_TYPE_ACTIVATION, it calls clir_set(OFONO_CLIR_OPTION_SUPPRESSION), and for SS_CONTROL_TYPE_DEACTIVATION it calls clir_set(OFONO_CLIR_OPTION_INVOCATION). I do not think this is right, but it certainly matches maguro's behaviour, but not mako's (that is the reason for having the # command activating the SS instead of the * command, which seems to be the right thing looking at the standards).

So, my conclusion is that not all modems behave the right way regarding this SS and somewhat the messy ofono core code proves this. To get this right in both mako and maguro, we need different implementations, or detect the modem type and behave accordingly.

Revision history for this message
Tony Espy (awe) wrote :

@Alfonso

Did we ever resolve this in our rilmodem code? I guess since maguro is no longer supported, we would've changed the logic based on mako's behavior.

How would this bug manifest itself to an end-user? I don't think we expose the line number presentation as a system settings ( I wonder if this is a GCF-required feature ), so the end-user would most likely on encounter this when entering the USSD commands via the dialpad. I guess the end-result would be that the query and/or toggle of clir would be broken on maguro...

Changed in ofono (Ubuntu):
status: Confirmed → Incomplete
Revision history for this message
Tony Espy (awe) wrote :

As this is a maguro bug, I'd like to close it out as WontFix, but I'd like to ensure that we handled this in the rilmodem layer. At minimum, we've hopefully added comments to the code involved so that this can be handled for future modems?

Changed in ofono (Ubuntu):
importance: High → Low
Revision history for this message
Alfonso Sanchez-Beato (alfonsosanchezbeato) wrote :

More testing reveals that depends more on the operator than on the phone:

Pepephone operator, krillin, arale and mako:

test-ss "*31#" -> Number shown in called phone. Shown status is "disabled".
test-ss "#31#" -> Number not shown in called phone. Shown status is "disabled".

Vodafone operator, krillin and mako:

test-ss "*31#" -> Number shown in called phone. Shown status is "disabled".
test-ss "#31#" -> Number not shown in called phone. Shown status is "enabled".

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.