mirror of git://git.sysmocom.de/ofono
109 lines
3.7 KiB
Plaintext
109 lines
3.7 KiB
Plaintext
Man-Machine Interface (MMI) Codes and oFono
|
|
===========================================
|
|
|
|
1.0 Introduction
|
|
|
|
3GPP 22.030 describes the structure of MMI codes for User Equipment. All user
|
|
equipment that wishes to be compliant with the Global Certification Forum
|
|
(GCF) must recognize such codes in the dialer application. This document
|
|
describes the basic design principles for how to handle MMI codes with oFono.
|
|
|
|
|
|
2.0 Basic MMI structure
|
|
|
|
The MMI codes fall into two broad categories: codes that are followed by
|
|
<SEND> and standalone codes. oFono handles all codes that are followed by
|
|
<SEND> while the UI is expected to handle standalone codes.
|
|
|
|
2.1 Supplementary Service Control Codes
|
|
|
|
The following codes are followed by <SEND> and are handled by oFono. The
|
|
general structure of the codes is as follows:
|
|
|
|
* Activation - '*SC*SI#'
|
|
* Registration - '*SC*SI#' and '**SC*SI#'
|
|
* Erasure - '##SC*SI#'
|
|
* Deactivation - '#SC*SI#'
|
|
* Interrogation - '*#SC*SI#'
|
|
|
|
Please refer to 3GPP 22.030 for detailed explanation of the structure of SI
|
|
and SC. oFono currently handles the following SCs:
|
|
|
|
* 33 - Call Barring - All Outgoing
|
|
* 331 - Call Barring - Outgoing International
|
|
* 332 - Call Barring - Outgoing International except Home Country
|
|
* 35 - Call Barring - All Incoming
|
|
* 351 - Call Barring - All Incoming when Roaming
|
|
* 330 - Call Barring - All Barrring Services
|
|
* 333 - Call Barring - All Outgoing Services (e.g. 33, 331, 332)
|
|
* 335 - Call Barring - All Incoming Services (e.g. 35, 351)
|
|
|
|
* 21 - Unconditional Call Forwarding
|
|
* 67 - Call Forwarding on Busy
|
|
* 61 - Call Forwarding on No Reply
|
|
* 62 - Call Forwarding on Unreachable
|
|
* 002 - Call Forwarding All Conditional
|
|
* 004 - Call Forwarding All
|
|
|
|
* 30 - CLIP
|
|
* 31 - CLIR
|
|
* 76 - COLP
|
|
* 77 - COLR
|
|
* 43 - Call Waiting
|
|
* 300 - CNAP
|
|
|
|
2.2 Registration of a new password
|
|
|
|
The following password change strings are followed by <SEND> and are recognized
|
|
by oFono:
|
|
|
|
* 03 * ZZ * OLD_PASSWORD * NEW_PASSWORD * NEW_PASSWORD #
|
|
** 03 * ZZ * OLD_PASSWORD * NEW_PASSWORD * NEW_PASSWORD #
|
|
* 03 ** OLD_PASSWORD * NEW_PASSWORD * NEW_PASSWORD #
|
|
** 03 ** OLD_PASSWORD * NEW_PASSWORD * NEW_PASSWORD #
|
|
|
|
NOTE: ZZ is the Call Barring supplementary service code.
|
|
|
|
2.3 Change of PIN/PIN2
|
|
|
|
The following string allows the user to change the PIN:
|
|
|
|
PIN1: **04*OLD_PIN*NEW_PIN*NEW_PIN#
|
|
PIN2: **042*OLD-PIN2*NEW_PIN2*NEW_PIN2#
|
|
|
|
The following string allows the user to unblock the PIN:
|
|
|
|
PIN1: **05*PIN_UNBLOCKING_KEY*NEW_PIN*NEW_PIN#
|
|
PIN2: **052*PIN2_UNBLOCKING_KEY*NEW_PIN2*NEW_PIN2#
|
|
|
|
Please note that this procedure is not followed by <SEND>. It is up to the
|
|
dialer to recognize this string and act accordingly by using the appropriate
|
|
method on the SimManager interface.
|
|
|
|
2.4 IMEI Display
|
|
|
|
The following string can be used to obtain the IMEI:
|
|
|
|
*#06#
|
|
|
|
Please note that this procedure is not followed by <SEND>. It is up to the
|
|
dialer to recognize this string and display the SerialNumber property of the
|
|
Modem Interface.
|
|
|
|
3.0 General Application Guidelines
|
|
|
|
When the application is taking user input it is expected to match the input
|
|
against all possible strings that are not to be followed by <SEND>. At a
|
|
minimum the PIN change or unlock and the IMEI display strings must be handled
|
|
by the application. Any additional manufacturer-specific strings are also to
|
|
be handled by the application.
|
|
|
|
Once the user presses <SEND> the request should be sent to the
|
|
SupplementaryServices.Initiate() method. If the string is recognized as a
|
|
control string, then the return value will be interpreted according to
|
|
structure specified in doc/supplementaryservices-api.txt. If the error
|
|
NotRecognized is returned, then the string is not recognized as a
|
|
supplementary service string and should be treated as a call setup request
|
|
instead. In this case the application should forward the string to
|
|
VoiceCallManager.Dial() method.
|