1 /*
2  * Copyright (C) 2021 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef OHOS_SIM_CONSTANT_H
17 #define OHOS_SIM_CONSTANT_H
18 
19 namespace OHOS {
20 namespace Telephony {
21 enum ControllerType {
22     ICC_CONTROLLER_REQ_BASE = 0x16EFF0,
23     ICC_CONTROLLER_REQ_NONE,
24     ICC_CONTROLLER_REQ_SEND_RESPONSE
25 };
26 
27 // mnc Length type
28 enum MncType {
29     UNINITIALIZED_MNC = -1,
30     UNKNOWN_MNC = 0,
31 };
32 
33 enum MWIType {
34     MSG_SIM_MWI = 0,
35     MSG_SIM_CFI = 1,
36     MSG_SIM_SPN = 2
37 };
38 
39 enum StateMessage {
40     MSG_SIM_OBTAIN_ICC_FILE_DONE = 100,
41     MSG_ICC_REFRESH = 31,
42     MSG_SIM_APP_READY = 1
43 };
44 
45 enum CallForwardType {
46     ICC_CALL_FORWARD_TYPE_DISABLED = 0,
47     ICC_CALL_FORWARD_TYPE_ENABLED = 1,
48     ICC_CALL_FORWARD_TYPE_UNKNOWN = -1
49 };
50 
51 enum SimMessage {
52     MSG_ID_DEFAULT = 0,
53     MSG_SIM_OBTAIN_IMSI_DONE = 0x03,
54     MSG_SIM_OBTAIN_ICCID_DONE,
55     MSG_SIM_OBTAIN_MBI_DONE,
56     MSG_SIM_OBTAIN_MBDN_DONE,
57     MSG_SIM_OBTAIN_MWIS_DONE,
58     MSG_SIM_OBTAIN_VOICE_MAIL_INDICATOR_CPHS_DONE,
59     MSG_SIM_OBTAIN_AD_DONE, // Admin data
60     MSG_SIM_OBTAIN_MSISDN_DONE,
61     MSG_SIM_OBTAIN_CPHS_MAILBOX_DONE,
62     MSG_SIM_OBTAIN_SPN_DONE,
63     MSG_SIM_OBTAIN_LI_LANGUAGE_DONE,
64     MSG_SIM_OBTAIN_PL_LANGUAGE_DONE,
65     MSG_SIM_OBTAIN_SPDI_DONE,
66     MSG_SIM_UPDATE_DONE,
67     MSG_SIM_OBTAIN_PNN_DONE,
68     MSG_SIM_OBTAIN_SST_DONE,
69     MSG_SIM_OBTAIN_ALL_SMS_DONE,
70     MSG_SIM_MARK_SMS_READ_DONE,
71     MSG_SIM_SET_MBDN_DONE,
72     MSG_SIM_SMS_ON_SIM,
73     MSG_SIM_OBTAIN_SMS_DONE,
74     MSG_SIM_OBTAIN_CFF_DONE,
75     MSG_SIM_SET_CPHS_MAILBOX_DONE,
76     MSG_SIM_OBTAIN_INFO_CPHS_DONE,
77     MSG_SIM_SET_MSISDN_DONE,
78     MSG_SIM_OBTAIN_CFIS_DONE,
79     MSG_SIM_OBTAIN_CSP_CPHS_DONE,
80     MSG_SIM_OBTAIN_GID1_DONE,
81     MSG_SIM_OBTAIN_GID2_DONE,
82     MSG_SIM_OBTAIN_PLMN_W_ACT_DONE,
83     MSG_SIM_OBTAIN_OPLMN_W_ACT_DONE,
84     MSG_SIM_OBTAIN_HPLMN_W_ACT_DONE,
85     MSG_SIM_OBTAIN_EHPLMN_DONE,
86     MSG_SIM_OBTAIN_FPLMN_DONE,
87     MSG_SIM_OBTAIN_DEVICE_IDENTITY_DONE,
88     MSG_SIM_OBTAIN_CDMA_SUBSCRIPTION_DONE,
89     MSG_SIM_SMS_ON_RUIM,
90     MSG_SIM_OBTAIN_OPL_DONE,
91     MSG_SIM_OBTAIN_OPL5G_DONE,
92     MSG_SIM_OBTAIN_IMPI_DONE,
93     MSG_SIM_OBTAIN_CSIM_SPN_DONE,
94     MSG_SIM_OBTAIN_IST_DONE,
95 };
96 
97 enum ElementaryFile {
98     // ETSI TS 102 221 V3.3.0 section 13.3 Preferred Languages
99     ELEMENTARY_FILE_PL = 0x2F05,
100     // CPHS V4.2 section B.3.1.1, B.4.1 - B.4.7 CPHS information Call forwarding flags and so on
101     ELEMENTARY_FILE_VOICE_MAIL_INDICATOR_CPHS = 0x6F11,
102     ELEMENTARY_FILE_CFF_CPHS = 0x6F13,
103     ELEMENTARY_FILE_SPN_CPHS = 0x6F14,
104     ELEMENTARY_FILE_CSP_CPHS = 0x6F15,
105     ELEMENTARY_FILE_INFO_CPHS = 0x6F16,
106     ELEMENTARY_FILE_MAILBOX_CPHS = 0x6F17,
107     ELEMENTARY_FILE_SPN_SHORT_CPHS = 0x6F18,
108     // 3GPP TS 51.011 V4.1.0 section 10 contents of the Elementary Files
109     ELEMENTARY_FILE_ICCID = 0x2FE2,
110     ELEMENTARY_FILE_OPL5G = 0x4F08,
111     ELEMENTARY_FILE_IMG = 0x4F20,
112     ELEMENTARY_FILE_HPLMN = 0x6F31,
113     ELEMENTARY_FILE_SST = 0x6F38,
114     ELEMENTARY_FILE_ADN = 0x6F3A,
115     ELEMENTARY_FILE_FDN = 0x6F3B,
116     ELEMENTARY_FILE_SMS = 0x6F3C,
117     ELEMENTARY_FILE_GID1 = 0x6F3E,
118     ELEMENTARY_FILE_GID2 = 0x6F3F,
119     ELEMENTARY_FILE_MSISDN = 0x6F40,
120     ELEMENTARY_FILE_SPN = 0x6F46,
121     ELEMENTARY_FILE_SDN = 0x6F49,
122     ELEMENTARY_FILE_EXT1 = 0x6F4A,
123     ELEMENTARY_FILE_EXT2 = 0x6F4B,
124     ELEMENTARY_FILE_EXT3 = 0x6F4C,
125     ELEMENTARY_FILE_EXT4 = 0x6F4E,
126     ELEMENTARY_FILE_PLMN_W_ACT = 0x6F60,
127     ELEMENTARY_FILE_OPLMN_W_ACT = 0x6F61,
128     ELEMENTARY_FILE_HPLMN_W_ACT = 0x6F62,
129     ELEMENTARY_FILE_FPLMN = 0x6F7B,
130     ELEMENTARY_FILE_AD = 0x6FAD,
131     ELEMENTARY_FILE_PNN = 0x6FC5,
132     ELEMENTARY_FILE_OPL = 0x6FC6,
133     ELEMENTARY_FILE_MBDN = 0x6FC7,
134     ELEMENTARY_FILE_EXT6 = 0x6FC8,
135     ELEMENTARY_FILE_MBI = 0x6FC9,
136     ELEMENTARY_FILE_MWIS = 0x6FCA,
137     ELEMENTARY_FILE_CFIS = 0x6FCB,
138     // 3GPP TS 31.102 V3.5.0 section 4.7 files of ADF USIM
139     ELEMENTARY_FILE_PBR = 0x4F30,
140     ELEMENTARY_FILE_LI = 0x6F05,
141     // for usim extensiom
142     ELEMENTARY_FILE_EXT5 = 0x6F4E,
143     ELEMENTARY_FILE_SPDI = 0x6FCD,
144     ELEMENTARY_FILE_EHPLMN = 0x6FD9,
145     ELEMENTARY_FILE_LRPLMNSI = 0x6FDC,
146     ELEMENTARY_FILE_HPPLMN = 0x6F31,
147     ELEMENTARY_FILE_USIM_ADN = 0x4F3A,
148     ELEMENTARY_FILE_USIM_IAP = 0x4F3B,
149     // CDMA RUIM file ids from 3GPP2 C.S0023-0
150     ELEMENTARY_FILE_CST = 0x6F32,
151     ELEMENTARY_FILE_RUIM_SPN = 0x6F41,
152     ELEMENTARY_FILE_CSIM_LI = 0x6F3A,
153     ELEMENTARY_FILE_CSIM_SPN = 0x6F41,
154     ELEMENTARY_FILE_CSIM_MDN = 0x6F44,
155     ELEMENTARY_FILE_CSIM_IMSIM = 0x6F22,
156     ELEMENTARY_FILE_CSIM_CDMAHOME = 0x6F28,
157     ELEMENTARY_FILE_CSIM_EPRL = 0x6F5A,
158     ELEMENTARY_FILE_CSIM_MIPUPP = 0x6F4D,
159     // ISIM access
160     ELEMENTARY_FILE_IMPU = 0x6F04,
161     ELEMENTARY_FILE_IMPI = 0x6F02,
162     ELEMENTARY_FILE_DOMAIN = 0x6F03,
163     ELEMENTARY_FILE_IST = 0x6F07,
164     ELEMENTARY_FILE_PCSCF = 0x6F09
165 };
166 
167 // file controller constant
168 enum ControllerRequest {
169     CONTROLLER_REQ_READ_BINARY = 0xb0,
170     CONTROLLER_REQ_UPDATE_BINARY = 0xd6,
171     CONTROLLER_REQ_READ_RECORD = 0xb2,
172     CONTROLLER_REQ_UPDATE_RECORD = 0xdc,
173     CONTROLLER_REQ_SEEK = 0xa2,
174     CONTROLLER_REQ_GET_RESPONSE = 0xc0
175 };
176 
177 enum ElementaryFileTile {
178     ELEMENTARY_FILE_TYPE_TRANSPARENT = 0,
179     ELEMENTARY_FILE_TYPE_LINEAR_FIXED = 1,
180     ELEMENTARY_FILE_TYPE_CYCLIC = 3
181 };
182 
183 enum MainFile {
184     ICC_MASTER_FILE = 1,
185     ICC_DEDICATED_FILE = 2,
186     ICC_ELEMENTARY_FILE = 4
187 };
188 
189 enum ResponseFile {
190     GET_RESPONSE_ELEMENTARY_FILE_SIZE_BYTES = 15,
191     GET_RESPONSE_ELEMENTARY_FILE_IMG_SIZE_BYTES = 10
192 };
193 
194 // controller file type
195 enum SizeType {
196     SIZE_ONE_OF_FILE = 2,
197     SIZE_TWO_OF_FILE = 3,
198     TYPE_OF_FILE = 6,
199     STRUCTURE_OF_DATA = 13,
200     LENGTH_OF_RECORD = 14
201 };
202 
203 enum ControllerMessage {
204     MSG_SIM_OBTAIN_SIZE_OF_FIXED_ELEMENTARY_FILE_DONE = 1,
205     MSG_SIM_OBTAIN_FIXED_ELEMENTARY_FILE_DONE = 2,
206     MSG_SIM_OBTAIN_SIZE_OF_TRANSPARENT_ELEMENTARY_FILE_DONE = 3,
207     MSG_SIM_OBTAIN_TRANSPARENT_ELEMENTARY_FILE_DONE = 4,
208     MSG_SIM_OBTAIN_SIZE_OF_LINEAR_ELEMENTARY_FILE_DONE = 5,
209     MSG_SIM_UPDATE_TRANSPARENT_ELEMENTARY_FILE_DONE = 6,
210     MSG_SIM_UPDATE_LINEAR_FIXED_FILE_DONE = 7,
211     MSG_SIM_OBTAIN_ICON_DONE = 10
212 };
213 
214 enum {
215     INVALID_VALUE = -1,
216     BYTE_LENGTH = 8,
217     BYTE_VALUE = 0xFF
218 };
219 
220 enum LockMsg {
221     MSG_SIM_LOCKED_RECORDS_LOADED = 0xf3,
222     MSG_SIM_NETWORK_LOCKED_RECORDS_LOADED = 0xf4,
223     MSG_SIM_SPN_UPDATED = 0xf5
224 };
225 
226 enum SpnType { SPN_INVALID = -1, SPN_COND_PLMN = 1, SPN_COND = 2 };
227 
228 enum SpnShowType {
229     SPN_CONDITION_DISPLAY_SPN = 0x01,
230     SPN_CONDITION_DISPLAY_PLMN = 0x02
231 };
232 
233 enum ActiveState {
234     DEACTIVE = 0,
235     ACTIVE = 1
236 };
237 
238 enum CardShape {
239     ENTITY_CARD = 1,
240     VIRTUAL_CARD = 11
241 };
242 
243 enum CardStand {
244     NOT_MAIN = 0,
245     MAIN_CARD = 1
246 };
247 
248 enum IccStatus {
249     ICC_STATE_UNKNOWN = 0,
250     ICC_STATE_NOT_READY = 1,
251     ICC_STATE_ABSENT = 2,
252     ICC_STATE_READY = 3,
253     ICC_STATE_LOADED = 4,
254     ICC_STATE_IMSI = 5,
255     ICC_STATE_PIN = 6,
256     ICC_STATE_PUK = 7,
257     ICC_STATE_SIMLOCK = 8
258 };
259 
260 enum IccDiallingNumberConstant {
261     LOADER_ERROR = 200,
262     PARAMETER_INCORRECT = 201,
263     NAME_CHAR_POS = 36,
264     CSIM_SPN_OCTET = 0x00,
265     CSIM_SPN_7BIT_ASCII = 0x02,
266     CSIM_SPN_IA5 = 0x03,
267     CSIM_SPN_UNICODE_16 = 0x04,
268     CSIM_SPN_LATIN = 0x08,
269     CSIM_SPN_7BIT_ALPHABET = 0x09
270 };
271 
272 enum RadioProtocolEvent {
273     MSG_SIM_TIME_OUT_ACTIVE = 2000,
274     MSG_SIM_SET_ACTIVE = 2001,
275     MSG_SIM_FORGET_ALLDATA = 2002,
276 };
277 
278 enum VoiceMailConstant {
279     DEFAULT_VOICE_MAIL_COUNT = -2,
280     UNKNOWN_VOICE_MAIL_COUNT = -1,
281 };
282 
283 enum CallForwardingStatus {
284     CALL_FORWARDING_STATUS_DISABLED = 0,
285     CALL_FORWARDING_STATUS_ENABLED = 1,
286     CALL_FORWARDING_STATUS_UNKNOWN = -1,
287 };
288 
289 inline const std::string DATASHARE_READY_EVENT = "usual.event.DATA_SHARE_READY";
290 inline const std::string BUNDLE_SCAN_FINISHED_EVENT = "usual.event.BUNDLE_SCAN_FINISHED";
291 } // namespace Telephony
292 } // namespace OHOS
293 #endif // OHOS_SIM_CONSTANT_H
294