Closed Bug 793178 (MMI) Opened 7 years ago Closed 7 years ago

[meta] B2G RIL: Support MMI codes

Categories

(Core :: DOM: Device Interfaces, defect)

defect
Not set

Tracking

()

RESOLVED FIXED

People

(Reporter: ferjm, Unassigned)

References

Details

Attachments

(1 obsolete file)

Currently we only support USSD codes as specified in 3GPP TS 22.090[1], while we should also be supporting the more general MMI codes spec at 3GPP TS 22.030[2].

"As far as I can tell, MMI codes seems not being correctly handled.
See https://android.googlesource.com/platform/frameworks/opt/telephony/+/master/src/java/com/android/internal/telephony/gsm/GsmMmiCode.java for Android.

Some examples:

    *#6# is expected to return the IMEI
    *#21# is expected to return the call forwarding status

Currently, it seems all those codes are sent as USSDs which is invalid.

For example, Android 4.1.1 on Nexus S, when sendind MMI code #21#, |logcat -b radio| shows:
D/GSM ( 479): dialing w/ mmi 'GsmMmiCode {State=PENDING action=# sc=21 poundString=*#21#}'...

This behavior is explained as of https://android.googlesource.com/platform/frameworks/opt/telephony/+/master/src/java/com/android/internal/telephony/gsm/GSMPhone.java in method dial(), which calls processCode() of the GsmMmiCode class. One can see that all MMI codes defined in this GsmMmiCode have specific handling.

Following the call forwarding status example, we can see that it finally calls a phone.mCM.queryCallForwardStatus(), which is defined in https://android.googlesource.com/platform/frameworks/opt/telephony/+/master/src/java/com/android/internal/telephony/RIL.java which clearly does not looks like a USSD request."

The device certification requirements that depends on MMI codes and that we should take care of are related to:
- SIM/USIM interface via MMI codes (entry, change and unlock of PIN and PIN2).
- Presentation of IMEI.
- Call forwarding.

I'll be filling bugs blocking this one related to each of this features along with other work required for implementing MMI code support.

[1] http://www.quintillion.co.jp/3GPP/Specs/22090-a00.pdf
[2] http://www.quintillion.co.jp/3GPP/Specs/22030-800.pdf
Blocks: b2g-ril
Depends on: 793186
Depends on: 793187
Depends on: 793189
Depends on: 793192
If required for device certification, this should block. Fernando, can you link to the certification requirements?
blocking-basecamp: --- → ?
(In reply to Dietrich Ayala (:dietrich) from comment #1)
> If required for device certification, this should block. Fernando, can you
> link to the certification requirements?

I am afraid that the docs that I have regarding certification requirements are TEF property and I am not sure that I am allowed to make them public. I can ask for it though (Daniel Coloma, in CC, might know). Anyway, if I am not wrong MOZ and TEF are already sharing this docs.

BTW, should we block on meta bugs?
(In reply to Fernando Jiménez Moreno [:ferjm] from comment #2)
> BTW, should we block on meta bugs?

No :)
blocking-basecamp: ? → ---
Fernando told me that this is required for device certification. So, in this case, I think it should block.
blocking-basecamp: --- → +
(In reply to Fernando Jiménez Moreno [:ferjm] from comment #0)
> Currently we only support USSD codes as specified in 3GPP TS 22.090[1],
> while we should also be supporting the more general MMI codes spec at 3GPP
> TS 22.030[2].
> 
> "As far as I can tell, MMI codes seems not being correctly handled.
> See
> https://android.googlesource.com/platform/frameworks/opt/telephony/+/master/
> src/java/com/android/internal/telephony/gsm/GsmMmiCode.java for Android.
> 
> Some examples:
> 
>     *#6# is expected to return the IMEI
I think it should be *#06#. 
>     *#21# is expected to return the call forwarding status
> 
> Currently, it seems all those codes are sent as USSDs which is invalid.
Since this is a meta bug, I will remove the basecamp+ flag and flag all depending bugs on(793186, 793187, 793189, and 793192).
blocking-basecamp: + → ---
(In reply to khu from comment #5)
> (In reply to Fernando Jiménez Moreno [:ferjm] from comment #0)
> > Currently we only support USSD codes as specified in 3GPP TS 22.090[1],
> > while we should also be supporting the more general MMI codes spec at 3GPP
> > TS 22.030[2].
> > 
> > "As far as I can tell, MMI codes seems not being correctly handled.
> > See
> > https://android.googlesource.com/platform/frameworks/opt/telephony/+/master/
> > src/java/com/android/internal/telephony/gsm/GsmMmiCode.java for Android.
> > 
> > Some examples:
> > 
> >     *#6# is expected to return the IMEI
> I think it should be *#06#. 
> >     *#21# is expected to return the call forwarding status
> > 
> > Currently, it seems all those codes are sent as USSDs which is invalid.

Yes it's *#06#, ferjm copied my original bug and I did not noticed that github fucked up this string :)
Depends on: 794011
Blocks: MMI/Gaia
Depends on: 805789
Pointer to Github pull-request
Attachment #678477 - Flags: review?(francisco.jordano)
Comment on attachment 678477 [details]
Pointer to Github pull request: https://github.com/mozilla-b2g/gaia/pull/6179

Sorry, wrong bug... :\
Attachment #678477 - Attachment is obsolete: true
Attachment #678477 - Flags: review?(francisco.jordano)
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Alias: MMI
Depends on: 810178
No longer depends on: 810178
Depends on: 813679
Depends on: 823890
Depends on: 823892
Depends on: 879032
Depends on: 883048
Depends on: 889737
Depends on: 899400
Depends on: 891242
You need to log in before you can comment on or make changes to this bug.