1 Man-Machine Interface (MMI) Codes and oFono
2 ===========================================
6 3GPP 22.030 describes the structure of MMI codes for User Equipment. All user
7 equipment that wishes to be compliant with the Global Certification Forum
8 (GCF) must recognize such codes in the dialer application. This document
9 describes the basic design principles for how to handle MMI codes with oFono.
12 2.0 Basic MMI structure
14 The MMI codes fall into two broad categories: codes that are followed by
15 <SEND> and standalone codes. oFono handles all codes that are followed by
16 <SEND> while the UI is expected to handle standalone codes.
18 2.1 Supplementary Service Control Codes
20 The following codes are followed by <SEND> and are handled by oFono. The
21 general structure of the codes is as follows:
23 * Activation - '*SC*SI#'
24 * Registration - '*SC*SI#' and '**SC*SI#'
25 * Erasure - '##SC*SI#'
26 * Deactivation - '#SC*SI#'
27 * Interrogation - '*#SC*SI#'
29 Please refer to 3GPP 22.030 for detailed explanation of the structure of SI
30 and SC. oFono currently handles the following SCs:
32 * 33 - Call Barring - All Outgoing
33 * 331 - Call Barring - Outgoing International
34 * 332 - Call Barring - Outgoing International except Home Country
35 * 35 - Call Barring - All Incoming
36 * 351 - Call Barring - All Incoming when Roaming
37 * 330 - Call Barring - All Barrring Services
38 * 333 - Call Barring - All Outgoing Services (e.g. 33, 331, 332)
39 * 335 - Call Barring - All Incoming Services (e.g. 35, 351)
41 * 21 - Unconditional Call Forwarding
42 * 67 - Call Forwarding on Busy
43 * 61 - Call Forwarding on No Reply
44 * 62 - Call Forwarding on Unreachable
45 * 002 - Call Forwarding All Conditional
46 * 004 - Call Forwarding All
55 2.2 Registration of a new password
57 The following password change strings are followed by <SEND> and are recognized
60 * 03 * ZZ * OLD_PASSWORD * NEW_PASSWORD * NEW_PASSWORD #
61 ** 03 * ZZ * OLD_PASSWORD * NEW_PASSWORD * NEW_PASSWORD #
62 * 03 ** OLD_PASSWORD * NEW_PASSWORD * NEW_PASSWORD #
63 ** 03 ** OLD_PASSWORD * NEW_PASSWORD * NEW_PASSWORD #
65 NOTE: ZZ is the Call Barring supplementary service code.
69 The following string allows the user to change the PIN:
71 PIN1: **04*OLD_PIN*NEW_PIN*NEW_PIN#
72 PIN2: **042*OLD-PIN2*NEW_PIN2*NEW_PIN2#
74 The following string allows the user to unblock the PIN:
76 PIN1: **05*PIN_UNBLOCKING_KEY*NEW_PIN*NEW_PIN#
77 PIN2: **052*PIN2_UNBLOCKING_KEY*NEW_PIN2*NEW_PIN2#
79 Please note that this procedure is not followed by <SEND>. It is up to the
80 dialer to recognize this string and act accordingly by using the appropriate
81 method on the SimManager interface.
85 The following string can be used to obtain the IMEI:
89 Please note that this procedure is not followed by <SEND>. It is up to the
90 dialer to recognize this string and display the SerialNumber property of the
93 3.0 General Application Guidelines
95 When the application is taking user input it is expected to match the input
96 against all possible strings that are not to be followed by <SEND>. At a
97 minimum the PIN change or unlock and the IMEI display strings must be handled
98 by the application. Any additional manufacturer-specific strings are also to
99 be handled by the application.
101 Once the user presses <SEND> the request should be sent to the
102 SupplementaryServices.Initiate() method. If the string is recognized as a
103 control string, then the return value will be interpreted according to
104 structure specified in doc/supplementaryservices-api.txt. If the error
105 NotRecognized is returned, then the string is not recognized as a
106 supplementary service string and should be treated as a call setup request
107 instead. In this case the application should forward the string to
108 VoiceCallManager.Dial() method.