dom/system/gonk/ril_consts.js

branch
TOR_BUG_9701
changeset 15
b8a032363ba2
equal deleted inserted replaced
-1:000000000000 0:f794cded397f
1 /* Copyright 2012 Mozilla Foundation and Mozilla contributors
2 *
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 // Set to true to debug all RIL layers
17 this.DEBUG_ALL = false;
18
19 // Set individually to debug specific layers
20 this.DEBUG_WORKER = false || DEBUG_ALL;
21 this.DEBUG_CONTENT_HELPER = false || DEBUG_ALL;
22 this.DEBUG_RIL = false || DEBUG_ALL;
23
24 this.REQUEST_GET_SIM_STATUS = 1;
25 this.REQUEST_ENTER_SIM_PIN = 2;
26 this.REQUEST_ENTER_SIM_PUK = 3;
27 this.REQUEST_ENTER_SIM_PIN2 = 4;
28 this.REQUEST_ENTER_SIM_PUK2 = 5;
29 this.REQUEST_CHANGE_SIM_PIN = 6;
30 this.REQUEST_CHANGE_SIM_PIN2 = 7;
31 this.REQUEST_ENTER_NETWORK_DEPERSONALIZATION_CODE = 8;
32 this.REQUEST_GET_CURRENT_CALLS = 9;
33 this.REQUEST_DIAL = 10;
34 this.REQUEST_GET_IMSI = 11;
35 this.REQUEST_HANGUP = 12;
36 this.REQUEST_HANGUP_WAITING_OR_BACKGROUND = 13;
37 this.REQUEST_HANGUP_FOREGROUND_RESUME_BACKGROUND = 14;
38 this.REQUEST_SWITCH_WAITING_OR_HOLDING_AND_ACTIVE = 15;
39 this.REQUEST_CONFERENCE = 16;
40 this.REQUEST_UDUB = 17;
41 this.REQUEST_LAST_CALL_FAIL_CAUSE = 18;
42 this.REQUEST_SIGNAL_STRENGTH = 19;
43 this.REQUEST_VOICE_REGISTRATION_STATE = 20;
44 this.REQUEST_DATA_REGISTRATION_STATE = 21;
45 this.REQUEST_OPERATOR = 22;
46 this.REQUEST_RADIO_POWER = 23;
47 this.REQUEST_DTMF = 24;
48 this.REQUEST_SEND_SMS = 25;
49 this.REQUEST_SEND_SMS_EXPECT_MORE = 26;
50 this.REQUEST_SETUP_DATA_CALL = 27;
51 this.REQUEST_SIM_IO = 28;
52 this.REQUEST_SEND_USSD = 29;
53 this.REQUEST_CANCEL_USSD = 30;
54 this.REQUEST_GET_CLIR = 31;
55 this.REQUEST_SET_CLIR = 32;
56 this.REQUEST_QUERY_CALL_FORWARD_STATUS = 33;
57 this.REQUEST_SET_CALL_FORWARD = 34;
58 this.REQUEST_QUERY_CALL_WAITING = 35;
59 this.REQUEST_SET_CALL_WAITING = 36;
60 this.REQUEST_SMS_ACKNOWLEDGE = 37;
61 this.REQUEST_GET_IMEI = 38;
62 this.REQUEST_GET_IMEISV = 39;
63 this.REQUEST_ANSWER = 40;
64 this.REQUEST_DEACTIVATE_DATA_CALL = 41;
65 this.REQUEST_QUERY_FACILITY_LOCK = 42;
66 this.REQUEST_SET_FACILITY_LOCK = 43;
67 this.REQUEST_CHANGE_BARRING_PASSWORD = 44;
68 this.REQUEST_QUERY_NETWORK_SELECTION_MODE = 45;
69 this.REQUEST_SET_NETWORK_SELECTION_AUTOMATIC = 46;
70 this.REQUEST_SET_NETWORK_SELECTION_MANUAL = 47;
71 this.REQUEST_QUERY_AVAILABLE_NETWORKS = 48;
72 this.REQUEST_DTMF_START = 49;
73 this.REQUEST_DTMF_STOP = 50;
74 this.REQUEST_BASEBAND_VERSION = 51;
75 this.REQUEST_SEPARATE_CONNECTION = 52;
76 this.REQUEST_SET_MUTE = 53;
77 this.REQUEST_GET_MUTE = 54;
78 this.REQUEST_QUERY_CLIP = 55;
79 this.REQUEST_LAST_DATA_CALL_FAIL_CAUSE = 56;
80 this.REQUEST_DATA_CALL_LIST = 57;
81 this.REQUEST_RESET_RADIO = 58;
82 this.REQUEST_OEM_HOOK_RAW = 59;
83 this.REQUEST_OEM_HOOK_STRINGS = 60;
84 this.REQUEST_SCREEN_STATE = 61;
85 this.REQUEST_SET_SUPP_SVC_NOTIFICATION = 62;
86 this.REQUEST_WRITE_SMS_TO_SIM = 63;
87 this.REQUEST_DELETE_SMS_ON_SIM = 64;
88 this.REQUEST_SET_BAND_MODE = 65;
89 this.REQUEST_QUERY_AVAILABLE_BAND_MODE = 66;
90 this.REQUEST_STK_GET_PROFILE = 67;
91 this.REQUEST_STK_SET_PROFILE = 68;
92 this.REQUEST_STK_SEND_ENVELOPE_COMMAND = 69;
93 this.REQUEST_STK_SEND_TERMINAL_RESPONSE = 70;
94 this.REQUEST_STK_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM = 71;
95 this.REQUEST_EXPLICIT_CALL_TRANSFER = 72;
96 this.REQUEST_SET_PREFERRED_NETWORK_TYPE = 73;
97 this.REQUEST_GET_PREFERRED_NETWORK_TYPE = 74;
98 this.REQUEST_GET_NEIGHBORING_CELL_IDS = 75;
99 this.REQUEST_SET_LOCATION_UPDATES = 76;
100 this.REQUEST_CDMA_SET_SUBSCRIPTION_SOURCE = 77;
101 this.REQUEST_CDMA_SET_ROAMING_PREFERENCE = 78;
102 this.REQUEST_CDMA_QUERY_ROAMING_PREFERENCE = 79;
103 this.REQUEST_SET_TTY_MODE = 80;
104 this.REQUEST_QUERY_TTY_MODE = 81;
105 this.REQUEST_CDMA_SET_PREFERRED_VOICE_PRIVACY_MODE = 82;
106 this.REQUEST_CDMA_QUERY_PREFERRED_VOICE_PRIVACY_MODE = 83;
107 this.REQUEST_CDMA_FLASH = 84;
108 this.REQUEST_CDMA_BURST_DTMF = 85;
109 this.REQUEST_CDMA_VALIDATE_AND_WRITE_AKEY = 86;
110 this.REQUEST_CDMA_SEND_SMS = 87;
111 this.REQUEST_CDMA_SMS_ACKNOWLEDGE = 88;
112 this.REQUEST_GSM_GET_BROADCAST_SMS_CONFIG = 89;
113 this.REQUEST_GSM_SET_BROADCAST_SMS_CONFIG = 90;
114 this.REQUEST_GSM_SMS_BROADCAST_ACTIVATION = 91;
115 this.REQUEST_CDMA_GET_BROADCAST_SMS_CONFIG = 92;
116 this.REQUEST_CDMA_SET_BROADCAST_SMS_CONFIG = 93;
117 this.REQUEST_CDMA_SMS_BROADCAST_ACTIVATION = 94;
118 this.REQUEST_CDMA_SUBSCRIPTION = 95;
119 this.REQUEST_CDMA_WRITE_SMS_TO_RUIM = 96;
120 this.REQUEST_CDMA_DELETE_SMS_ON_RUIM = 97;
121 this.REQUEST_DEVICE_IDENTITY = 98;
122 this.REQUEST_EXIT_EMERGENCY_CALLBACK_MODE = 99;
123 this.REQUEST_GET_SMSC_ADDRESS = 100;
124 this.REQUEST_SET_SMSC_ADDRESS = 101;
125 this.REQUEST_REPORT_SMS_MEMORY_STATUS = 102;
126 this.REQUEST_REPORT_STK_SERVICE_IS_RUNNING = 103;
127 this.REQUEST_CDMA_GET_SUBSCRIPTION_SOURCE = 104;
128 this.REQUEST_ISIM_AUTHENTICATION = 105;
129 this.REQUEST_ACKNOWLEDGE_INCOMING_GSM_SMS_WITH_PDU = 106;
130 this.REQUEST_STK_SEND_ENVELOPE_WITH_STATUS = 107;
131 this.REQUEST_VOICE_RADIO_TECH = 108;
132 this.REQUEST_DIAL_EMERGENCY_CALL = 10016;
133
134 // Mozilla-specific request codes
135 this.REQUEST_GET_UNLOCK_RETRY_COUNT = 150;
136
137 // Akami/Maguro specific parcel types.
138 this.REQUEST_IMS_REGISTRATION_STATE = 106;
139 this.REQUEST_IMS_SEND_SMS = 107;
140 this.REQUEST_GET_DATA_CALL_PROFILE = 108;
141 this.REQUEST_SET_UICC_SUBSCRIPTION = 109;
142 this.REQUEST_SET_DATA_SUBSCRIPTION = 110;
143 this.REQUEST_GET_UICC_SUBSCRIPTION = 111;
144 this.REQUEST_GET_DATA_SUBSCRIPTION = 112;
145 this.REQUEST_SET_SUBSCRIPTION_MODE = 113;
146 this.REQUEST_SET_TRANSMIT_POWER = 114;
147 this.REQUEST_SETUP_QOS = 115;
148 this.REQUEST_RELEASE_QOS = 116;
149 this.REQUEST_GET_QOS_STATUS = 117;
150 this.REQUEST_MODIFY_QOS = 118;
151 this.REQUEST_SUSPEND_QOS = 119;
152 this.REQUEST_RESUME_QOS = 120;
153
154 // Fugu specific parcel types.
155 this.RIL_REQUEST_GPRS_ATTACH = 5018;
156 this.RIL_REQUEST_GPRS_DETACH = 5019;
157
158 // UICC Secure Access
159 this.REQUEST_SIM_OPEN_CHANNEL = 121;
160 this.REQUEST_SIM_CLOSE_CHANNEL = 122;
161 this.REQUEST_SIM_ACCESS_CHANNEL = 123;
162
163 this.RESPONSE_TYPE_SOLICITED = 0;
164 this.RESPONSE_TYPE_UNSOLICITED = 1;
165
166 this.UNSOLICITED_RESPONSE_BASE = 1000;
167 this.UNSOLICITED_RESPONSE_RADIO_STATE_CHANGED = 1000;
168 this.UNSOLICITED_RESPONSE_CALL_STATE_CHANGED = 1001;
169 this.UNSOLICITED_RESPONSE_VOICE_NETWORK_STATE_CHANGED = 1002;
170 this.UNSOLICITED_RESPONSE_NEW_SMS = 1003;
171 this.UNSOLICITED_RESPONSE_NEW_SMS_STATUS_REPORT = 1004;
172 this.UNSOLICITED_RESPONSE_NEW_SMS_ON_SIM = 1005;
173 this.UNSOLICITED_ON_USSD = 1006;
174 this.UNSOLICITED_ON_USSD_REQUEST = 1007;
175 this.UNSOLICITED_NITZ_TIME_RECEIVED = 1008;
176 this.UNSOLICITED_SIGNAL_STRENGTH = 1009;
177 this.UNSOLICITED_DATA_CALL_LIST_CHANGED = 1010;
178 this.UNSOLICITED_SUPP_SVC_NOTIFICATION = 1011;
179 this.UNSOLICITED_STK_SESSION_END = 1012;
180 this.UNSOLICITED_STK_PROACTIVE_COMMAND = 1013;
181 this.UNSOLICITED_STK_EVENT_NOTIFY = 1014;
182 this.UNSOLICITED_STK_CALL_SETUP = 1015;
183 this.UNSOLICITED_SIM_SMS_STORAGE_FULL = 1016;
184 this.UNSOLICITED_SIM_REFRESH = 1017;
185 this.UNSOLICITED_CALL_RING = 1018;
186 this.UNSOLICITED_RESPONSE_SIM_STATUS_CHANGED = 1019;
187 this.UNSOLICITED_RESPONSE_CDMA_NEW_SMS = 1020;
188 this.UNSOLICITED_RESPONSE_NEW_BROADCAST_SMS = 1021;
189 this.UNSOLICITED_CDMA_RUIM_SMS_STORAGE_FULL = 1022;
190 this.UNSOLICITED_RESTRICTED_STATE_CHANGED = 1023;
191 this.UNSOLICITED_ENTER_EMERGENCY_CALLBACK_MODE = 1024;
192 this.UNSOLICITED_CDMA_CALL_WAITING = 1025;
193 this.UNSOLICITED_CDMA_OTA_PROVISION_STATUS = 1026;
194 this.UNSOLICITED_CDMA_INFO_REC = 1027;
195 this.UNSOLICITED_OEM_HOOK_RAW = 1028;
196 this.UNSOLICITED_RINGBACK_TONE = 1029;
197 this.UNSOLICITED_RESEND_INCALL_MUTE = 1030;
198 this.UNSOLICITED_CDMA_SUBSCRIPTION_SOURCE_CHANGED = 1031;
199 this.UNSOLICITED_CDMA_PRL_CHANGED = 1032;
200 this.UNSOLICITED_EXIT_EMERGENCY_CALLBACK_MODE = 1033;
201 this.UNSOLICITED_RIL_CONNECTED = 1034;
202
203 // Akami/Maguro specific parcels.
204 this.UNSOLICITED_VOICE_RADIO_TECH_CHANGED = 1034;
205 this.UNSOLICITED_RESPONSE_IMS_NETWORK_STATE_CHANGED = 1035;
206 this.UNSOLICITED_RESPONSE_TETHERED_MODE_STATE_CHANGED = 1036;
207 this.UNSOLICITED_RESPONSE_DATA_NETWORK_STATE_CHANGED = 1037;
208 this.UNSOLICITED_ON_SS = 1038;
209 this.UNSOLICITED_STK_CC_ALPHA_NOTIFY = 1039;
210 this.UNSOLICITED_UICC_SUBSCRIPTION_STATUS_CHANGED = 1040;
211 this.UNSOLICITED_QOS_STATE_CHANGED_IND = 1041;
212
213 this.ERROR_SUCCESS = 0;
214 this.ERROR_RADIO_NOT_AVAILABLE = 1;
215 this.ERROR_GENERIC_FAILURE = 2;
216 this.ERROR_PASSWORD_INCORRECT = 3;
217 this.ERROR_SIM_PIN2 = 4;
218 this.ERROR_SIM_PUK2 = 5;
219 this.ERROR_REQUEST_NOT_SUPPORTED = 6;
220 this.ERROR_CANCELLED = 7;
221 this.ERROR_OP_NOT_ALLOWED_DURING_VOICE_CALL = 8;
222 this.ERROR_OP_NOT_ALLOWED_BEFORE_REG_TO_NW = 9;
223 this.ERROR_SMS_SEND_FAIL_RETRY = 10;
224 this.ERROR_SIM_ABSENT = 11;
225 this.ERROR_SUBSCRIPTION_NOT_AVAILABLE = 12;
226 this.ERROR_MODE_NOT_SUPPORTED = 13;
227 this.ERROR_FDN_CHECK_FAILURE = 14;
228 this.ERROR_ILLEGAL_SIM_OR_ME = 15;
229 this.ERROR_DIAL_MODIFIED_TO_USSD = 17;
230 this.ERROR_DIAL_MODIFIED_TO_SS = 18;
231 this.ERROR_DIAL_MODIFIED_TO_DIAL = 19;
232 this.ERROR_USSD_MODIFIED_TO_DIAL = 20;
233 this.ERROR_USSD_MODIFIED_TO_SS = 21;
234 this.ERROR_USSD_MODIFIED_TO_USSD = 22;
235 this.ERROR_SS_MODIFIED_TO_DIAL = 23;
236 this.ERROR_SS_MODIFIED_TO_USSD = 24;
237 this.ERROR_SS_MODIFIED_TO_SS = 25;
238 this.ERROR_SUBSCRIPTION_NOT_SUPPORTED = 26;
239 this.ERROR_INVALID_PARAMETER = 27;
240 this.ERROR_REJECTED_BY_REMOTE = 28;
241
242 this.GECKO_ERROR_SUCCESS = null;
243 this.GECKO_ERROR_RADIO_NOT_AVAILABLE = "RadioNotAvailable";
244 this.GECKO_ERROR_GENERIC_FAILURE = "GenericFailure";
245 this.GECKO_ERROR_PASSWORD_INCORRECT = "IncorrectPassword";
246 this.GECKO_ERROR_SIM_PIN2 = "SimPin2";
247 this.GECKO_ERROR_SIM_PUK2 = "SimPuk2";
248 this.GECKO_ERROR_REQUEST_NOT_SUPPORTED = "RequestNotSupported";
249 this.GECKO_ERROR_CANCELLED = "Cancelled";
250 this.GECKO_ERROR_ILLEGAL_SIM_OR_ME = "IllegalSIMorME";
251 this.GECKO_ERROR_OP_NOT_ALLOWED_DURING_VOICE_CALL = "OpNotAllowedDuringVoiceCall";
252 this.GECKO_ERROR_OP_NOT_ALLOWED_BEFORE_REG_TO_NW = "OpNotAllowedBeforeRegToNw";
253 this.GECKO_ERROR_SMS_SEND_FAIL_RETRY = "SmsSendFailRetry";
254 this.GECKO_ERROR_SIM_ABSENT = "SimAbsent";
255 this.GECKO_ERROR_SUBSCRIPTION_NOT_AVAILABLE = "SubscriptionNotAvailable";
256 this.GECKO_ERROR_MODE_NOT_SUPPORTED = "ModeNotSupported";
257 this.GECKO_ERROR_FDN_CHECK_FAILURE = "FdnCheckFailure";
258 this.GECKO_ERROR_DIAL_MODIFIED_TO_USSD = "DialModifiedToUssd";
259 this.GECKO_ERROR_DIAL_MODIFIED_TO_SS = "DialModifiedToSs";
260 this.GECKO_ERROR_DIAL_MODIFIED_TO_DIAL = "DialModifiedToDial";
261 this.GECKO_ERROR_USSD_MODIFIED_TO_DIAL = "UssdModifiedToDial";
262 this.GECKO_ERROR_USSD_MODIFIED_TO_SS = "UssdModifiedToSs";
263 this.GECKO_ERROR_USSD_MODIFIED_TO_USSD = "UssdModifiedToUssd";
264 this.GECKO_ERROR_SS_MODIFIED_TO_DIAL = "SsModifiedToDial";
265 this.GECKO_ERROR_SS_MODIFIED_TO_USSD = "SsModifiedToUssd";
266 this.GECKO_ERROR_SS_MODIFIED_TO_SS = "SsModifiedToSs";
267 this.GECKO_ERROR_SUBSCRIPTION_NOT_SUPPORTED = "SubscriptionNotSupported";
268 this.GECKO_ERROR_INVALID_PARAMETER = "InvalidParameter";
269 this.GECKO_ERROR_REJECTED_BY_REMOTE = "RejectedByRemote";
270
271 this.RIL_ERROR_TO_GECKO_ERROR = {};
272 RIL_ERROR_TO_GECKO_ERROR[ERROR_SUCCESS] = GECKO_ERROR_SUCCESS;
273 RIL_ERROR_TO_GECKO_ERROR[ERROR_RADIO_NOT_AVAILABLE] = GECKO_ERROR_RADIO_NOT_AVAILABLE;
274 RIL_ERROR_TO_GECKO_ERROR[ERROR_GENERIC_FAILURE] = GECKO_ERROR_GENERIC_FAILURE;
275 RIL_ERROR_TO_GECKO_ERROR[ERROR_PASSWORD_INCORRECT] = GECKO_ERROR_PASSWORD_INCORRECT;
276 RIL_ERROR_TO_GECKO_ERROR[ERROR_SIM_PIN2] = GECKO_ERROR_SIM_PIN2;
277 RIL_ERROR_TO_GECKO_ERROR[ERROR_SIM_PUK2] = GECKO_ERROR_SIM_PUK2;
278 RIL_ERROR_TO_GECKO_ERROR[ERROR_REQUEST_NOT_SUPPORTED] = GECKO_ERROR_REQUEST_NOT_SUPPORTED;
279 RIL_ERROR_TO_GECKO_ERROR[ERROR_CANCELLED] = GECKO_ERROR_CANCELLED;
280 RIL_ERROR_TO_GECKO_ERROR[ERROR_OP_NOT_ALLOWED_DURING_VOICE_CALL] = GECKO_ERROR_OP_NOT_ALLOWED_DURING_VOICE_CALL;
281 RIL_ERROR_TO_GECKO_ERROR[ERROR_OP_NOT_ALLOWED_BEFORE_REG_TO_NW] = GECKO_ERROR_OP_NOT_ALLOWED_BEFORE_REG_TO_NW;
282 RIL_ERROR_TO_GECKO_ERROR[ERROR_SMS_SEND_FAIL_RETRY] = GECKO_ERROR_SMS_SEND_FAIL_RETRY;
283 RIL_ERROR_TO_GECKO_ERROR[ERROR_SIM_ABSENT] = GECKO_ERROR_SIM_ABSENT;
284 RIL_ERROR_TO_GECKO_ERROR[ERROR_SUBSCRIPTION_NOT_AVAILABLE] = GECKO_ERROR_SUBSCRIPTION_NOT_AVAILABLE;
285 RIL_ERROR_TO_GECKO_ERROR[ERROR_MODE_NOT_SUPPORTED] = GECKO_ERROR_MODE_NOT_SUPPORTED;
286 RIL_ERROR_TO_GECKO_ERROR[ERROR_FDN_CHECK_FAILURE] = GECKO_ERROR_FDN_CHECK_FAILURE;
287 RIL_ERROR_TO_GECKO_ERROR[ERROR_ILLEGAL_SIM_OR_ME] = GECKO_ERROR_ILLEGAL_SIM_OR_ME;
288 RIL_ERROR_TO_GECKO_ERROR[ERROR_DIAL_MODIFIED_TO_USSD] = GECKO_ERROR_DIAL_MODIFIED_TO_USSD;
289 RIL_ERROR_TO_GECKO_ERROR[ERROR_DIAL_MODIFIED_TO_SS] = GECKO_ERROR_DIAL_MODIFIED_TO_SS;
290 RIL_ERROR_TO_GECKO_ERROR[ERROR_DIAL_MODIFIED_TO_DIAL] = GECKO_ERROR_DIAL_MODIFIED_TO_DIAL;
291 RIL_ERROR_TO_GECKO_ERROR[ERROR_USSD_MODIFIED_TO_DIAL] = GECKO_ERROR_USSD_MODIFIED_TO_DIAL;
292 RIL_ERROR_TO_GECKO_ERROR[ERROR_USSD_MODIFIED_TO_SS] = GECKO_ERROR_USSD_MODIFIED_TO_SS;
293 RIL_ERROR_TO_GECKO_ERROR[ERROR_USSD_MODIFIED_TO_USSD] = GECKO_ERROR_USSD_MODIFIED_TO_USSD;
294 RIL_ERROR_TO_GECKO_ERROR[ERROR_SS_MODIFIED_TO_DIAL] = GECKO_ERROR_SS_MODIFIED_TO_DIAL;
295 RIL_ERROR_TO_GECKO_ERROR[ERROR_SS_MODIFIED_TO_USSD] = GECKO_ERROR_SS_MODIFIED_TO_USSD;
296 RIL_ERROR_TO_GECKO_ERROR[ERROR_SS_MODIFIED_TO_SS] = GECKO_ERROR_SS_MODIFIED_TO_SS;
297 RIL_ERROR_TO_GECKO_ERROR[ERROR_SUBSCRIPTION_NOT_SUPPORTED] = GECKO_ERROR_SUBSCRIPTION_NOT_SUPPORTED;
298 RIL_ERROR_TO_GECKO_ERROR[ERROR_INVALID_PARAMETER] = GECKO_ERROR_INVALID_PARAMETER;
299 RIL_ERROR_TO_GECKO_ERROR[ERROR_REJECTED_BY_REMOTE] = GECKO_ERROR_REJECTED_BY_REMOTE;
300
301 // 3GPP 23.040 clause 9.2.3.6 TP-Message-Reference(TP-MR):
302 // The number of times the MS automatically repeats the SMS-SUBMIT shall be in
303 // the range 1 to 3 but the precise number is an implementation matter.
304 this.SMS_RETRY_MAX = 3;
305
306 this.RADIO_STATE_OFF = 0;
307 this.RADIO_STATE_UNAVAILABLE = 1;
308 this.RADIO_STATE_ON = 10; // RIL v7
309
310 // RIL v5 legacy constants:
311 this.RADIO_STATE_SIM_NOT_READY = 2;
312 this.RADIO_STATE_SIM_LOCKED_OR_ABSENT = 3;
313 this.RADIO_STATE_SIM_READY = 4;
314 this.RADIO_STATE_RUIM_NOT_READY = 5;
315 this.RADIO_STATE_RUIM_READY = 6;
316 this.RADIO_STATE_RUIM_LOCKED_OR_ABSENT = 7;
317 this.RADIO_STATE_NV_NOT_READY = 8;
318 this.RADIO_STATE_NV_READY = 9;
319
320 this.CARD_STATE_ABSENT = 0;
321 this.CARD_STATE_PRESENT = 1;
322 this.CARD_STATE_ERROR = 2;
323
324 this.CARD_PERSOSUBSTATE_UNKNOWN = 0;
325 this.CARD_PERSOSUBSTATE_IN_PROGRESS = 1;
326 this.CARD_PERSOSUBSTATE_READY = 2;
327 this.CARD_PERSOSUBSTATE_SIM_NETWORK = 3;
328 this.CARD_PERSOSUBSTATE_SIM_NETWORK_SUBSET = 4;
329 this.CARD_PERSOSUBSTATE_SIM_CORPORATE = 5;
330 this.CARD_PERSOSUBSTATE_SIM_SERVICE_PROVIDER = 6;
331 this.CARD_PERSOSUBSTATE_SIM_SIM = 7;
332 this.CARD_PERSOSUBSTATE_SIM_NETWORK_PUK = 8;
333 this.CARD_PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK = 9;
334 this.CARD_PERSOSUBSTATE_SIM_CORPORATE_PUK = 10;
335 this.CARD_PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK = 11;
336 this.CARD_PERSOSUBSTATE_SIM_SIM_PUK = 12;
337 this.CARD_PERSOSUBSTATE_RUIM_NETWORK1 = 13;
338 this.CARD_PERSOSUBSTATE_RUIM_NETWORK2 = 14;
339 this.CARD_PERSOSUBSTATE_RUIM_HRPD = 15;
340 this.CARD_PERSOSUBSTATE_RUIM_CORPORATE = 16;
341 this.CARD_PERSOSUBSTATE_RUIM_SERVICE_PROVIDER = 17;
342 this.CARD_PERSOSUBSTATE_RUIM_RUIM = 18;
343 this.CARD_PERSOSUBSTATE_RUIM_NETWORK1_PUK = 19;
344 this.CARD_PERSOSUBSTATE_RUIM_NETWORK2_PUK = 20;
345 this.CARD_PERSOSUBSTATE_RUIM_HRPD_PUK = 21;
346 this.CARD_PERSOSUBSTATE_RUIM_CORPORATE_PUK = 22;
347 this.CARD_PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK = 23;
348 this.CARD_PERSOSUBSTATE_RUIM_RUIM_PUK = 24;
349
350 this.CARD_APPSTATE_ILLEGAL = -1;
351 this.CARD_APPSTATE_UNKNOWN = 0;
352 this.CARD_APPSTATE_DETECTED = 1;
353 this.CARD_APPSTATE_PIN = 2; // If PIN1 or UPin is required.
354 this.CARD_APPSTATE_PUK = 3; // If PUK1 or Puk for UPin is required.
355 this.CARD_APPSTATE_SUBSCRIPTION_PERSO = 4; // perso_substate should be looked
356 // at when app_state is assigned
357 // to this value.
358 this.CARD_APPSTATE_READY = 5;
359
360 this.CARD_PINSTATE_UNKNOWN = 0;
361 this.CARD_PINSTATE_ENABLED_NOT_VERIFIED = 1;
362 this.CARD_PINSTATE_ENABLED_VERIFIED = 2;
363 this.CARD_PINSTATE_DISABLED = 3;
364 this.CARD_PINSTATE_ENABLED_BLOCKED = 4;
365 this.CARD_PINSTATE_ENABLED_PERM_BLOCKED = 5;
366
367 this.CARD_APPTYPE_UNKNOWN = 0;
368 this.CARD_APPTYPE_SIM = 1;
369 this.CARD_APPTYPE_USIM = 2;
370 this.CARD_APPTYPE_RUIM = 3;
371 this.CARD_APPTYPE_CSIM = 4;
372 this.CARD_APPTYPE_ISIM = 5;
373
374 this.CARD_MAX_APPS = 8;
375
376 this.GECKO_CARD_TYPE = [
377 null,
378 "sim",
379 "usim",
380 "ruim",
381 "csim",
382 "isim"
383 ];
384
385 this.NETWORK_STATE_UNKNOWN = "unknown";
386 this.NETWORK_STATE_AVAILABLE = "available";
387 this.NETWORK_STATE_CONNECTED = "connected";
388 this.NETWORK_STATE_FORBIDDEN = "forbidden";
389
390 this.NETWORK_SELECTION_MODE_AUTOMATIC = 0;
391 this.NETWORK_SELECTION_MODE_MANUAL = 1;
392
393 this.NETWORK_INFO_VOICE_REGISTRATION_STATE = "voiceRegistrationState";
394 this.NETWORK_INFO_DATA_REGISTRATION_STATE = "dataRegistrationState";
395 this.NETWORK_INFO_OPERATOR = "operator";
396 this.NETWORK_INFO_NETWORK_SELECTION_MODE = "networkSelectionMode";
397 this.NETWORK_INFO_SIGNAL = "signal";
398 this.NETWORK_INFO_MESSAGE_TYPES = [
399 NETWORK_INFO_VOICE_REGISTRATION_STATE,
400 NETWORK_INFO_DATA_REGISTRATION_STATE,
401 NETWORK_INFO_OPERATOR,
402 NETWORK_INFO_NETWORK_SELECTION_MODE,
403 NETWORK_INFO_SIGNAL
404 ];
405
406 this.GECKO_PREFERRED_NETWORK_TYPE_WCDMA_GSM = "wcdma/gsm";
407 this.GECKO_PREFERRED_NETWORK_TYPE_GSM_ONLY = "gsm";
408 this.GECKO_PREFERRED_NETWORK_TYPE_WCDMA_ONLY = "wcdma";
409 this.GECKO_PREFERRED_NETWORK_TYPE_WCDMA_GSM_AUTO = "wcdma/gsm-auto";
410 this.GECKO_PREFERRED_NETWORK_TYPE_CDMA_EVDO = "cdma/evdo";
411 this.GECKO_PREFERRED_NETWORK_TYPE_CDMA_ONLY = "cdma";
412 this.GECKO_PREFERRED_NETWORK_TYPE_EVDO_ONLY = "evdo";
413 this.GECKO_PREFERRED_NETWORK_TYPE_WCDMA_GSM_CDMA_EVDO = "wcdma/gsm/cdma/evdo";
414 this.GECKO_PREFERRED_NETWORK_TYPE_LTE_CDMA_EVDO = "lte/cdma/evdo";
415 this.GECKO_PREFERRED_NETWORK_TYPE_LTE_WCDMA_GSM = "lte/wcdma/gsm";
416 this.GECKO_PREFERRED_NETWORK_TYPE_LTE_WCDMA_GSM_CDMA_EVDO = "lte/wcdma/gsm/cdma/evdo";
417 this.GECKO_PREFERRED_NETWORK_TYPE_LTE_ONLY = "lte";
418 this.RIL_PREFERRED_NETWORK_TYPE_TO_GECKO = [
419 GECKO_PREFERRED_NETWORK_TYPE_WCDMA_GSM,
420 GECKO_PREFERRED_NETWORK_TYPE_GSM_ONLY,
421 GECKO_PREFERRED_NETWORK_TYPE_WCDMA_ONLY,
422 GECKO_PREFERRED_NETWORK_TYPE_WCDMA_GSM_AUTO,
423 GECKO_PREFERRED_NETWORK_TYPE_CDMA_EVDO,
424 GECKO_PREFERRED_NETWORK_TYPE_CDMA_ONLY,
425 GECKO_PREFERRED_NETWORK_TYPE_EVDO_ONLY,
426 GECKO_PREFERRED_NETWORK_TYPE_WCDMA_GSM_CDMA_EVDO,
427 GECKO_PREFERRED_NETWORK_TYPE_LTE_CDMA_EVDO,
428 GECKO_PREFERRED_NETWORK_TYPE_LTE_WCDMA_GSM,
429 GECKO_PREFERRED_NETWORK_TYPE_LTE_WCDMA_GSM_CDMA_EVDO,
430 GECKO_PREFERRED_NETWORK_TYPE_LTE_ONLY
431 ];
432
433 this.GECKO_SUPPORTED_NETWORK_TYPES_DEFAULT = "gsm,wcdma";
434 this.GECKO_SUPPORTED_NETWORK_TYPES = [
435 "gsm",
436 "wcdma",
437 "cdma",
438 "evdo",
439 "lte"
440 ];
441
442 // Network registration states. See TS 27.007 7.2
443 this.NETWORK_CREG_STATE_NOT_SEARCHING = 0;
444 this.NETWORK_CREG_STATE_REGISTERED_HOME = 1;
445 this.NETWORK_CREG_STATE_SEARCHING = 2;
446 this.NETWORK_CREG_STATE_DENIED = 3;
447 this.NETWORK_CREG_STATE_UNKNOWN = 4;
448 this.NETWORK_CREG_STATE_REGISTERED_ROAMING = 5;
449 this.NETWORK_CREG_STATE_NOT_SEARCHING_EMERGENCY_CALLS = 10;
450 this.NETWORK_CREG_STATE_SEARCHING_EMERGENCY_CALLS = 12;
451 this.NETWORK_CREG_STATE_DENIED_EMERGENCY_CALLS = 13;
452 this.NETWORK_CREG_STATE_UNKNOWN_EMERGENCY_CALLS = 14;
453
454 this.NETWORK_CREG_TECH_UNKNOWN = 0;
455 this.NETWORK_CREG_TECH_GPRS = 1;
456 this.NETWORK_CREG_TECH_EDGE = 2;
457 this.NETWORK_CREG_TECH_UMTS = 3;
458 this.NETWORK_CREG_TECH_IS95A = 4;
459 this.NETWORK_CREG_TECH_IS95B = 5;
460 this.NETWORK_CREG_TECH_1XRTT = 6;
461 this.NETWORK_CREG_TECH_EVDO0 = 7;
462 this.NETWORK_CREG_TECH_EVDOA = 8;
463 this.NETWORK_CREG_TECH_HSDPA = 9;
464 this.NETWORK_CREG_TECH_HSUPA = 10;
465 this.NETWORK_CREG_TECH_HSPA = 11;
466 this.NETWORK_CREG_TECH_EVDOB = 12;
467 this.NETWORK_CREG_TECH_EHRPD = 13;
468 this.NETWORK_CREG_TECH_LTE = 14;
469 this.NETWORK_CREG_TECH_HSPAP = 15;
470 this.NETWORK_CREG_TECH_GSM = 16;
471
472 this.CALL_STATE_UNKNOWN = -1;
473 this.CALL_STATE_ACTIVE = 0;
474 this.CALL_STATE_HOLDING = 1;
475 this.CALL_STATE_DIALING = 2;
476 this.CALL_STATE_ALERTING = 3;
477 this.CALL_STATE_INCOMING = 4;
478 this.CALL_STATE_WAITING = 5;
479
480 this.TOA_INTERNATIONAL = 0x91;
481 this.TOA_UNKNOWN = 0x81;
482
483 this.CALL_PRESENTATION_ALLOWED = 0;
484 this.CALL_PRESENTATION_RESTRICTED = 1;
485 this.CALL_PRESENTATION_UNKNOWN = 2;
486 this.CALL_PRESENTATION_PAYPHONE = 3;
487
488 // Call forwarding actions, see TS 27.007 7.11 "mode"
489 this.CALL_FORWARD_ACTION_QUERY_STATUS = 2;
490
491 // ICC commands, see TS 27.007 +CRSM commands
492 this.ICC_COMMAND_SEEK = 0xa2;
493 this.ICC_COMMAND_READ_BINARY = 0xb0;
494 this.ICC_COMMAND_READ_RECORD = 0xb2;
495 this.ICC_COMMAND_GET_RESPONSE = 0xc0;
496 this.ICC_COMMAND_UPDATE_BINARY = 0xd6;
497 this.ICC_COMMAND_UPDATE_RECORD = 0xdc;
498
499 // ICC constants, GSM SIM file ids from TS 51.011
500 this.ICC_EF_ICCID = 0x2fe2;
501 this.ICC_EF_IMG = 0x4f20;
502 this.ICC_EF_PBR = 0x4f30;
503 this.ICC_EF_PLMNsel = 0x6f30; // PLMN for SIM
504 this.ICC_EF_SST = 0x6f38;
505 this.ICC_EF_UST = 0x6f38; // For USIM
506 this.ICC_EF_ADN = 0x6f3a;
507 this.ICC_EF_FDN = 0x6f3b;
508 this.ICC_EF_SMS = 0x6f3c;
509 this.ICC_EF_MSISDN = 0x6f40;
510 this.ICC_EF_CBMI = 0x6f45;
511 this.ICC_EF_SPN = 0x6f46;
512 this.ICC_EF_CBMID = 0x6f48;
513 this.ICC_EF_SDN = 0x6f49;
514 this.ICC_EF_EXT1 = 0x6f4a;
515 this.ICC_EF_EXT2 = 0x6f4b;
516 this.ICC_EF_EXT3 = 0x6f4c;
517 this.ICC_EF_CBMIR = 0x6f50;
518 this.ICC_EF_AD = 0x6fad;
519 this.ICC_EF_PHASE = 0x6fae;
520 this.ICC_EF_PNN = 0x6fc5;
521 this.ICC_EF_OPL = 0x6fc6;
522 this.ICC_EF_MBDN = 0x6fc7;
523 this.ICC_EF_EXT6 = 0x6fc8; // Ext record for EF[MBDN]
524 this.ICC_EF_MBI = 0x6fc9;
525 this.ICC_EF_MWIS = 0x6fca;
526 this.ICC_EF_CFIS = 0x6fcb;
527 this.ICC_EF_SPDI = 0x6fcd;
528
529 // CSIM files
530 this.ICC_EF_CSIM_IMSI_M = 0x6f22;
531 this.ICC_EF_CSIM_CDMAHOME = 0x6f28;
532 this.ICC_EF_CSIM_CST = 0x6f32; // CDMA Service table
533 this.ICC_EF_CSIM_SPN = 0x6f41;
534
535 this.ICC_PHASE_1 = 0x00;
536 this.ICC_PHASE_2 = 0x02;
537 this.ICC_PHASE_2_PROFILE_DOWNLOAD_REQUIRED = 0x03;
538
539 // Types of files TS 11.11 9.3
540 this.TYPE_RFU = 0;
541 this.TYPE_MF = 1;
542 this.TYPE_DF = 2;
543 this.TYPE_EF = 4;
544
545 this.RESPONSE_DATA_FILE_SIZE = 2;
546 this.RESPONSE_DATA_FILE_ID_1 = 4;
547 this.RESPONSE_DATA_FILE_ID_2 = 5;
548 this.RESPONSE_DATA_FILE_TYPE = 6;
549 this.RESPONSE_DATA_RFU_3 = 7;
550 this.RESPONSE_DATA_ACCESS_CONDITION_1 = 8;
551 this.RESPONSE_DATA_ACCESS_CONDITION_2 = 9;
552 this.RESPONSE_DATA_ACCESS_CONDITION_3 = 10;
553 this.RESPONSE_DATA_FILE_STATUS = 11;
554 this.RESPONSE_DATA_LENGTH = 12;
555 this.RESPONSE_DATA_STRUCTURE = 13;
556 this.RESPONSE_DATA_RECORD_LENGTH = 14;
557
558 // Types of files TS 11.11 9.3
559 this.EF_TYPE_TRANSPARENT = 0;
560 this.EF_TYPE_LINEAR_FIXED = 1;
561 this.EF_TYPE_CYCLIC = 3;
562
563 // TS 102.221 11.1.1.4.3 Table 11.5: File descriptor byte.
564 this.UICC_EF_STRUCTURE = {};
565 this.UICC_EF_STRUCTURE[this.EF_TYPE_TRANSPARENT]= 1;
566 this.UICC_EF_STRUCTURE[this.EF_TYPE_LINEAR_FIXED]= 2;
567 this.UICC_EF_STRUCTURE[this.EF_TYPE_CYCLIC]= 6;
568
569 // Status code of EFsms
570 // see 3GPP TS 51.011 clause 10.5.3
571 this.EFSMS_STATUS_FREE = 0x00;
572 this.EFSMS_STATUS_READ = 0x01;
573 this.EFSMS_STATUS_TO_BE_READ = 0x03;
574 this.EFSMS_STATUS_TO_BE_SENT = 0x07;
575
576 // Total size of ADN footer(the size of Alpha identifier excluded).
577 // See TS 151.011 clause 10.5.1 EF_ADN.
578 this.ADN_FOOTER_SIZE_BYTES = 14;
579 // Maximum size of BCD numbers in ADN.
580 // See TS 151.011 clause 10.5.1 EF_ADN, 'Length of BCD number/SSC contents'.
581 this.ADN_MAX_BCD_NUMBER_BYTES = 11;
582 // Maximum digits of the Dialling Number in ADN.
583 // See TS 151.011 clause 10.5.1 EF_ADN, 'Dialling Number'.
584 this.ADN_MAX_NUMBER_DIGITS = 20;
585
586 // READ_RECORD mode, TS 102.221
587 this.READ_RECORD_ABSOLUTE_MODE = 4;
588
589 // GET_RESPONSE mandatory response size for EF, see TS 51.011 clause 9,
590 // 'Response data in case of an EF.'
591 this.GET_RESPONSE_EF_SIZE_BYTES = 15;
592
593 // EF path
594 this.EF_PATH_MF_SIM = "3f00";
595 this.EF_PATH_DF_PHONEBOOK = "5f3a";
596 this.EF_PATH_DF_TELECOM = "7f10";
597 this.EF_PATH_DF_GSM = "7f20";
598 this.EF_PATH_DF_CDMA = "7f25";
599 this.EF_PATH_ADF_USIM = "7fff";
600
601 // Status code of sw1 for ICC I/O,
602 // see GSM11.11 and TS 51.011 clause 9.4, and ISO 7816-4
603 this.ICC_STATUS_NORMAL_ENDING = 0x90;
604 this.ICC_STATUS_NORMAL_ENDING_WITH_EXTRA = 0x91;
605 this.ICC_STATUS_SAT_BUSY = 0x93;
606 this.ICC_STATUS_WITH_SIM_DATA = 0x9e;
607 this.ICC_STATUS_WITH_RESPONSE_DATA = 0x9f;
608 this.ICC_STATUS_ERROR_WRONG_LENGTH = 0x67;
609 this.ICC_STATUS_ERROR_COMMAND_NOT_ALLOWED = 0x69;
610 this.ICC_STATUS_ERROR_WRONG_PARAMETERS = 0x6a;
611
612 // ICC call barring facility.
613 // TS 27.007, clause 7.4, +CLCK
614 this.ICC_CB_FACILITY_SIM = "SC";
615 this.ICC_CB_FACILITY_FDN = "FD";
616 this.ICC_CB_FACILITY_BAOC = "AO";
617 this.ICC_CB_FACILITY_BAOIC = "OI";
618 this.ICC_CB_FACILITY_BAOICxH = "OX";
619 this.ICC_CB_FACILITY_BAIC = "AI";
620 this.ICC_CB_FACILITY_BAICr = "IR";
621 this.ICC_CB_FACILITY_BA_ALL = "AB";
622 this.ICC_CB_FACILITY_BA_MO = "AG";
623 this.ICC_CB_FACILITY_BA_MT = "AC";
624
625 // ICC service class
626 // TS 27.007, clause 7.4, +CLCK
627 this.ICC_SERVICE_CLASS_NONE = 0; // no user input
628 this.ICC_SERVICE_CLASS_VOICE = (1 << 0);
629 this.ICC_SERVICE_CLASS_DATA = (1 << 1);
630 this.ICC_SERVICE_CLASS_FAX = (1 << 2);
631 this.ICC_SERVICE_CLASS_SMS = (1 << 3);
632 this.ICC_SERVICE_CLASS_DATA_SYNC = (1 << 4);
633 this.ICC_SERVICE_CLASS_DATA_ASYNC = (1 << 5);
634 this.ICC_SERVICE_CLASS_PACKET = (1 << 6);
635 this.ICC_SERVICE_CLASS_PAD = (1 << 7);
636 this.ICC_SERVICE_CLASS_MAX = (1 << 7); // Max ICC_SERVICE_CLASS value
637
638 // ICC lock-selection codes
639 // TS 27.007, clause 8.65, +CPINR
640 this.ICC_SEL_CODE_SIM_PIN = "SIM PIN";
641 this.ICC_SEL_CODE_SIM_PUK = "SIM PUK";
642 this.ICC_SEL_CODE_PH_SIM_PIN = "PH-SIM PIN";
643 this.ICC_SEL_CODE_PH_FSIM_PIN = "PH-FSIM PIN";
644 this.ICC_SEL_CODE_PH_FSIM_PUK = "PH-FSIM PUK";
645 this.ICC_SEL_CODE_SIM_PIN2 = "SIM PIN2";
646 this.ICC_SEL_CODE_SIM_PUK2 = "SIM PUK2";
647 this.ICC_SEL_CODE_PH_NET_PIN = "PH-NET PIN";
648 this.ICC_SEL_CODE_PH_NET_PUK = "PH-NET PUK";
649 this.ICC_SEL_CODE_PH_NETSUB_PIN = "PH-NETSUB PIN";
650 this.ICC_SEL_CODE_PH_NETSUB_PUK = "PH-NETSUB PUK";
651 this.ICC_SEL_CODE_PH_SP_PIN = "PH-SP PIN";
652 this.ICC_SEL_CODE_PH_SP_PUK = "PH-SP PUK";
653 this.ICC_SEL_CODE_PH_CORP_PIN = "PH-CORP PIN";
654 this.ICC_SEL_CODE_PH_CORP_PUK = "PH-CORP PUK";
655
656 this.ICC_USIM_TYPE1_TAG = 0xa8;
657 this.ICC_USIM_TYPE2_TAG = 0xa9;
658 this.ICC_USIM_TYPE3_TAG = 0xaa;
659 this.ICC_USIM_EFADN_TAG = 0xc0;
660 this.ICC_USIM_EFIAP_TAG = 0xc1;
661 this.ICC_USIM_EFEXT1_TAG = 0xc2;
662 this.ICC_USIM_EFSNE_TAG = 0xc3;
663 this.ICC_USIM_EFANR_TAG = 0xc4;
664 this.ICC_USIM_EFPBC_TAG = 0xc5;
665 this.ICC_USIM_EFGRP_TAG = 0xc6;
666 this.ICC_USIM_EFAAS_TAG = 0xc7;
667 this.ICC_USIM_EFGSD_TAG = 0xc8;
668 this.ICC_USIM_EFUID_TAG = 0xc9;
669 this.ICC_USIM_EFEMAIL_TAG = 0xca;
670 this.ICC_USIM_EFCCP1_TAG = 0xcb;
671
672 this.USIM_PBR_ANR = "anr";
673 this.USIM_PBR_ANR0 = "anr0";
674 this.USIM_PBR_EMAIL = "email";
675
676 // Current supported fields. Adding more fields to read will increasing I/O
677 // time dramatically, do check the performance is acceptable when you add
678 // more fields.
679 this.USIM_PBR_FIELDS = [USIM_PBR_EMAIL, USIM_PBR_ANR0];
680
681 this.USIM_TAG_NAME = {};
682 this.USIM_TAG_NAME[ICC_USIM_EFADN_TAG] = "adn";
683 this.USIM_TAG_NAME[ICC_USIM_EFIAP_TAG] ="iap";
684 this.USIM_TAG_NAME[ICC_USIM_EFEXT1_TAG] = "ext1";
685 this.USIM_TAG_NAME[ICC_USIM_EFSNE_TAG] = "sne";
686 this.USIM_TAG_NAME[ICC_USIM_EFANR_TAG] = "anr";
687 this.USIM_TAG_NAME[ICC_USIM_EFPBC_TAG] = "pbc";
688 this.USIM_TAG_NAME[ICC_USIM_EFGRP_TAG] = "grp";
689 this.USIM_TAG_NAME[ICC_USIM_EFAAS_TAG] = "aas";
690 this.USIM_TAG_NAME[ICC_USIM_EFGSD_TAG] = "gsd";
691 this.USIM_TAG_NAME[ICC_USIM_EFUID_TAG] = "uid";
692 this.USIM_TAG_NAME[ICC_USIM_EFEMAIL_TAG] = "email";
693 this.USIM_TAG_NAME[ICC_USIM_EFCCP1_TAG] = "ccp1";
694
695 // Error message for ICC contact.
696 this.CONTACT_ERR_REQUEST_NOT_SUPPORTED = GECKO_ERROR_REQUEST_NOT_SUPPORTED;
697 this.CONTACT_ERR_CONTACT_TYPE_NOT_SUPPORTED = "ContactTypeNotSupported";
698 this.CONTACT_ERR_FIELD_NOT_SUPPORTED = "FieldNotSupported";
699 this.CONTACT_ERR_NO_FREE_RECORD_FOUND = "NoFreeRecordFound";
700 this.CONTACT_ERR_CANNOT_ACCESS_PHONEBOOK = "CannotAccessPhoneBook";
701
702 // CDMA IMSI_M's byte const.
703 // 3GPP2 C.S0065 Sec. 5.2.2
704 this.CSIM_IMSI_M_MIN2_BYTE = 1;
705 this.CSIM_IMSI_M_MIN1_BYTE = 3;
706 this.CSIM_IMSI_M_MNC_BYTE = 6;
707 this.CSIM_IMSI_M_PROGRAMMED_BYTE = 7;
708 this.CSIM_IMSI_M_MCC_BYTE = 8;
709
710 /**
711 * Tags for Ber Tlv.
712 * See 3GPP TS 101 220 clause 7.2 - Assigned TLV tag values.
713 */
714 this.BER_UNKNOWN_TAG = 0x00;
715 this.BER_FCP_TEMPLATE_TAG = 0x62;
716 this.BER_FCP_FILE_SIZE_DATA_TAG = 0x80;
717 this.BER_FCP_FILE_SIZE_TOTAL_TAG = 0x81;
718 this.BER_FCP_FILE_DESCRIPTOR_TAG = 0x82;
719 this.BER_FCP_FILE_IDENTIFIER_TAG = 0x83;
720 this.BER_FCP_DF_NAME_TAG = 0x84; // AID.
721 this.BER_FCP_PROPRIETARY_PRIMITIVE_TAG = 0x85;
722 this.BER_FCP_SFI_SUPPORT_TAG = 0x88;
723 this.BER_FCP_LIFE_CYCLE_STATUS_TAG = 0x8a;
724 this.BER_FCP_SA_REFERENCE_FORMAT_TAG = 0x8b; // Security Attribute - Reference Format.
725 this.BER_FCP_SA_COMPACT_FORMAT_TAG = 0x8c; // Security Attribute - Compact Format.
726 this.BER_FCP_SAT_EXPANDED_FORMAT_TAG = 0xab; // Security Attribute Template - Expanded Format.
727 this.BER_FCP_PROPRIETARY_TEMPLATE_TAG = 0xa5;
728 this.BER_FCP_PIN_STATUS_DATA_OBJECTS_TAG = 0xc6;
729 this.BER_PROACTIVE_COMMAND_TAG = 0xd0;
730 this.BER_SMS_PP_DOWNLOAD_TAG = 0xd1;
731 this.BER_MENU_SELECTION_TAG = 0xd3;
732 this.BER_EVENT_DOWNLOAD_TAG = 0xd6;
733 this.BER_TIMER_EXPIRATION_TAG = 0xd7;
734
735 // Flags in Comprehension TLV.
736 this.COMPREHENSIONTLV_FLAG_CR = 0x80; // Comprehension required.
737
738 // Tags for Comprehension TLV.
739 this.COMPREHENSIONTLV_TAG_COMMAND_DETAILS = 0x01;
740 this.COMPREHENSIONTLV_TAG_DEVICE_ID = 0x02;
741 this.COMPREHENSIONTLV_TAG_RESULT = 0x03;
742 this.COMPREHENSIONTLV_TAG_DURATION = 0x04;
743 this.COMPREHENSIONTLV_TAG_ALPHA_ID = 0x05;
744 this.COMPREHENSIONTLV_TAG_ADDRESS = 0x06;
745 this.COMPREHENSIONTLV_TAG_SUBADDRESS = 0x08;
746 this.COMPREHENSIONTLV_TAG_SMS_TPDU = 0x0b;
747 this.COMPREHENSIONTLV_TAG_TEXT_STRING = 0x0d;
748 this.COMPREHENSIONTLV_TAG_TONE = 0x0e;
749 this.COMPREHENSIONTLV_TAG_ITEM = 0x0f;
750 this.COMPREHENSIONTLV_TAG_ITEM_ID = 0x10;
751 this.COMPREHENSIONTLV_TAG_RESPONSE_LENGTH = 0x11;
752 this.COMPREHENSIONTLV_TAG_FILE_LIST = 0x12;
753 this.COMPREHENSIONTLV_TAG_LOCATION_INFO = 0x13;
754 this.COMPREHENSIONTLV_TAG_IMEI = 0x14;
755 this.COMPREHENSIONTLV_TAG_HELP_REQUEST = 0x15;
756 this.COMPREHENSIONTLV_TAG_NMR = 0x16;
757 this.COMPREHENSIONTLV_TAG_DEFAULT_TEXT = 0x17;
758 this.COMPREHENSIONTLV_TAG_NEXT_ACTION_IND = 0x18;
759 this.COMPREHENSIONTLV_TAG_CAUSE = 0x1a;
760 this.COMPREHENSIONTLV_TAG_LOCATION_STATUS = 0x1b;
761 this.COMPREHENSIONTLV_TAG_TRANSACTION_ID = 0x1c;
762 this.COMPREHENSIONTLV_TAG_EVENT_LIST = 0x19;
763 this.COMPREHENSIONTLV_TAG_ICON_ID = 0x1e;
764 this.COMPREHENSIONTLV_TAG_ICON_ID_LIST = 0x1f;
765 this.COMPREHENSIONTLV_TAG_TIMER_IDENTIFIER = 0x24;
766 this.COMPREHENSIONTLV_TAG_TIMER_VALUE = 0x25;
767 this.COMPREHENSIONTLV_TAG_DATE_TIME_ZONE = 0x26;
768 this.COMPREHENSIONTLV_TAG_IMMEDIATE_RESPONSE = 0x2b;
769 this.COMPREHENSIONTLV_TAG_LANGUAGE = 0x2d;
770 this.COMPREHENSIONTLV_TAG_URL = 0x31;
771 this.COMPREHENSIONTLV_TAG_BROWSER_TERMINATION_CAUSE = 0x34;
772 this.COMPREHENSIONTLV_TAG_ACCESS_TECH = 0x3f;
773 this.COMPREHENSIONTLV_TAG_SERVICE_RECORD = 0x41;
774 this.COMPREHENSIONTLV_TAG_IMEISV = 0x62;
775 this.COMPREHENSIONTLV_TAG_BATTERY_STATE = 0x63;
776 this.COMPREHENSIONTLV_TAG_NETWORK_SEARCH_MODE = 0x65;
777 this.COMPREHENSIONTLV_TAG_MEID = 0x6d;
778 this.COMPREHENSIONTLV_TAG_BROADCAST_NETWORK_INFO = 0x7a;
779
780 // Tags for Service Provider Display Information TLV
781 this.SPDI_TAG_SPDI = 0xa3;
782 this.SPDI_TAG_PLMN_LIST = 0x80;
783
784 // MM INFORMATION message content IEIs
785 // See 3GPP TS 24.008 table 9.2.18
786 this.PNN_IEI_FULL_NETWORK_NAME = 0x43;
787 this.PNN_IEI_SHORT_NETWORK_NAME = 0x45;
788
789 // Device identifiers, see TS 11.14, clause 12.7
790 this.STK_DEVICE_ID_KEYPAD = 0x01;
791 this.STK_DEVICE_ID_DISPLAY = 0x02;
792 this.STK_DEVICE_ID_EARPIECE = 0x03;
793 this.STK_DEVICE_ID_SIM = 0x81;
794 this.STK_DEVICE_ID_ME = 0x82;
795 this.STK_DEVICE_ID_NETWORK = 0x83;
796
797 // STK Proactive commands.
798 this.STK_CMD_REFRESH = 0x01;
799 this.STK_CMD_MORE_TIME = 0x02;
800 this.STK_CMD_POLL_INTERVAL = 0x03;
801 this.STK_CMD_POLL_OFF = 0x04;
802 this.STK_CMD_SET_UP_EVENT_LIST = 0x05;
803 this.STK_CMD_SET_UP_CALL = 0x10;
804 this.STK_CMD_SEND_SS = 0x11;
805 this.STK_CMD_SEND_USSD = 0x12;
806 this.STK_CMD_SEND_SMS = 0x13;
807 this.STK_CMD_SEND_DTMF = 0x14;
808 this.STK_CMD_LAUNCH_BROWSER = 0x15;
809 this.STK_CMD_PLAY_TONE = 0x20;
810 this.STK_CMD_DISPLAY_TEXT = 0x21;
811 this.STK_CMD_GET_INKEY = 0x22;
812 this.STK_CMD_GET_INPUT = 0x23;
813 this.STK_CMD_SELECT_ITEM = 0x24;
814 this.STK_CMD_SET_UP_MENU = 0x25;
815 this.STK_CMD_PROVIDE_LOCAL_INFO = 0x26;
816 this.STK_CMD_TIMER_MANAGEMENT = 0x27;
817 this.STK_CMD_SET_UP_IDLE_MODE_TEXT = 0x28;
818 this.STK_CMD_OPEN_CHANNEL = 0x40;
819 this.STK_CMD_CLOSE_CHANNEL = 0x41;
820 this.STK_CMD_RECEIVE_DATA = 0x42;
821 this.STK_CMD_SEND_DATA = 0x43;
822
823 // STK Result code.
824 // TS 11.14, clause 12.12
825
826 // Results '0X' and '1X' indicate that the command has been performed.
827
828 // Command performed successfully.
829 this.STK_RESULT_OK = 0x00;
830
831 // Command performed with partial comprehension.
832 this.STK_RESULT_PRFRMD_WITH_PARTIAL_COMPREHENSION = 0x01;
833
834 // Command performed, with missing information.
835 this.STK_RESULT_PRFRMD_WITH_MISSING_INFO = 0x02;
836
837 // REFRESH performed with additional EFs read.
838 this.STK_RESULT_PRFRMD_WITH_ADDITIONAL_EFS_READ = 0x03;
839
840 // Command performed successfully, but requested icon could not be
841 // displayed.
842 this.STK_RESULT_PRFRMD_ICON_NOT_DISPLAYED = 0x04;
843
844 // Command performed, but modified by call control by NAA.
845 this.STK_RESULT_PRFRMD_MODIFIED_BY_NAA = 0x05;
846
847 // Command performed successfully, limited service.
848 this.STK_RESULT_PRFRMD_LIMITED_SERVICE = 0x06;
849
850 // Command performed with modification.
851 this.STK_RESULT_PRFRMD_WITH_MODIFICATION = 0x07;
852
853 // REFRESH performed but indicated NAA was not active.
854 this.STK_RESULT_PRFRMD_NAA_NOT_ACTIVE = 0x08;
855
856 // Command performed successfully; tone not played.
857 this.STK_RESULT_PRFRMD_TONE_NOT_PLAYED = 0x09;
858
859 // Proactive UICC session terminated by the user.
860 this.STK_RESULT_UICC_SESSION_TERM_BY_USER = 0x10;
861
862 // Backward move in the proactive UICC session requested by the user.
863 this.STK_RESULT_BACKWARD_MOVE_BY_USER = 0x11;
864
865 // No response from user.
866 this.STK_RESULT_NO_RESPONSE_FROM_USER = 0x12;
867
868 // Help information required by the user.
869 this.STK_RESULT_HELP_INFO_REQUIRED = 0x13;
870
871 // USSD or SS transaction terminated by the user.
872 this.STK_RESULT_USSD_SS_SESSION_TERM_BY_USER = 0x14;
873
874 // Results '2X' indicate to the UICC that it may be worth re-trying the
875 // command at a later opportunity.
876
877 // Terminal currently unable to process command.
878 this.STK_RESULT_TERMINAL_CRNTLY_UNABLE_TO_PROCESS = 0x20;
879
880 // Network currently unable to process command.
881 this.STK_RESULT_NETWORK_CRNTLY_UNABLE_TO_PROCESS = 0x21;
882
883 // User did not accept the proactive command.
884 this.STK_RESULT_USER_NOT_ACCEPT = 0x22;
885
886 // User cleared down call before connection or network release.
887 this.STK_RESULT_USER_CLEAR_DOWN_CALL = 0x23;
888
889 // Action in contradiction with the current timer state.
890 this.STK_RESULT_CONTRADICTION_WITH_TIMER = 0x24;
891
892 // Interaction with call control by NAA; temporary problem.
893 this.STK_RESULT_NAA_CALL_CONTROL_TEMPORARY = 0x25;
894
895 // Launch browser generic error code.
896 this.STK_RESULT_LAUNCH_BROWSER_ERROR = 0x26;
897
898 // MMS temporary problem.
899 this.STK_RESULT_MMS_TEMPORARY = 0x27;
900
901 // Results '3X' indicate that it is not worth the UICC re-trying with an
902 // identical command; as it will only get the same response. However, the
903 // decision to retry lies with the application.
904
905 // Command beyond terminal's capabilities.
906 this.STK_RESULT_BEYOND_TERMINAL_CAPABILITY = 0x30;
907
908 // Command type not understood by terminal.
909 this.STK_RESULT_CMD_TYPE_NOT_UNDERSTOOD = 0x31;
910
911 // Command data not understood by terminal.
912 this.STK_RESULT_CMD_DATA_NOT_UNDERSTOOD = 0x32;
913
914 // Command number not known by terminal.
915 this.STK_RESULT_CMD_NUM_NOT_KNOWN = 0x33;
916
917 // SS Return Error.
918 this.STK_RESULT_SS_RETURN_ERROR = 0x34;
919
920 // SMS RP-ERROR.
921 this.STK_RESULT_SMS_RP_ERROR = 0x35;
922
923 // Error, required values are missing.
924 this.STK_RESULT_REQUIRED_VALUES_MISSING = 0x36;
925
926 // USSD Return Error.
927 this.STK_RESULT_USSD_RETURN_ERROR = 0x37;
928
929 // MultipleCard commands error.
930 this.STK_RESULT_MULTI_CARDS_CMD_ERROR = 0x38;
931
932 // Interaction with call control by USIM or MO short message control by
933 // USIM; permanent problem.
934 this.STK_RESULT_USIM_CALL_CONTROL_PERMANENT = 0x39;
935
936 // Bearer Independent Protocol error.
937 this.STK_RESULT_BIP_ERROR = 0x3a;
938
939 // Access Technology unable to process command.
940 this.STK_RESULT_ACCESS_TECH_UNABLE_TO_PROCESS = 0x3b;
941
942 // Frames error.
943 this.STK_RESULT_FRAMES_ERROR = 0x3c;
944
945 // MMS Error.
946 this.STK_RESULT_MMS_ERROR = 0x3d;
947
948 // STK presentation types, TS 11.14, clause 12.6, Command Qualifier: Select Item
949 this.STK_PRESENTATION_TYPE_NOT_SPECIFIED = 0x00; // Bit 1 is 0.
950 this.STK_PRESENTATION_TYPE_DATA_VALUES = 0x01; // Bit 1 is 1, bit 2 is 0.
951 this.STK_PRESENTATION_TYPE_NAVIGATION_OPTIONS = 0x03; // Bit 1 is 1, bit 2 is 1.
952
953 // STK Coding Scheme.
954 this.STK_TEXT_CODING_GSM_7BIT_PACKED = 0x00;
955 this.STK_TEXT_CODING_GSM_8BIT = 0x04;
956 this.STK_TEXT_CODING_UCS2 = 0x08;
957
958 // STK Event List.
959 this.STK_EVENT_TYPE_MT_CALL = 0x00;
960 this.STK_EVENT_TYPE_CALL_CONNECTED = 0x01;
961 this.STK_EVENT_TYPE_CALL_DISCONNECTED = 0x02;
962 this.STK_EVENT_TYPE_LOCATION_STATUS = 0x03;
963 this.STK_EVENT_TYPE_USER_ACTIVITY = 0x04;
964 this.STK_EVENT_TYPE_IDLE_SCREEN_AVAILABLE = 0x05;
965 this.STK_EVENT_TYPE_CARD_READER_STATUS = 0x06;
966 this.STK_EVENT_TYPE_LANGUAGE_SELECTION = 0x07;
967 this.STK_EVENT_TYPE_BROWSER_TERMINATION = 0x08;
968 this.STK_EVENT_TYPE_DATA_AVAILABLE = 0x09;
969 this.STK_EVENT_TYPE_CHANNEL_STATUS = 0x0a;
970 this.STK_EVENT_TYPE_SINGLE_ACCESS_TECHNOLOGY_CHANGED = 0x0b;
971 this.STK_EVENT_TYPE_DISPLAY_PARAMETER_CHANGED = 0x0c;
972 this.STK_EVENT_TYPE_LOCAL_CONNECTION = 0x0d;
973 this.STK_EVENT_TYPE_NETWORK_SEARCH_MODE_CHANGED = 0x0e;
974 this.STK_EVENT_TYPE_BROWSING_STATUS = 0x0f;
975
976 // STK Service state of Location Status.
977 this.STK_SERVICE_STATE_NORMAL = 0x00;
978 this.STK_SERVICE_STATE_LIMITED = 0x01;
979 this.STK_SERVICE_STATE_UNAVAILABLE = 0x02;
980
981 // Refresh mode.
982 this.STK_REFRESH_NAA_INIT_AND_FULL_FILE_CHANGE = 0x00;
983 this.STK_REFRESH_FILE_CHANGE = 0x01;
984 this.STK_REFRESH_NAA_INIT_AND_FILE_CHANGE = 0x02;
985 this.STK_REFRESH_NAA_INIT = 0x03;
986 this.STK_REFRESH_UICC_RESET = 0x04;
987
988 // Tone type.
989 this.STK_TONE_TYPE_DIAL_TONE = 0x01;
990 this.STK_TONE_TYPE_CALLED_SUBSCRIBER_BUSY = 0x02;
991 this.STK_TONE_TYPE_CONGESTION = 0x03;
992 this.STK_TONE_TYPE_RADIO_PATH_ACK = 0x04;
993 this.STK_TONE_TYPE_RADIO_PATH_NOT_AVAILABLE = 0x05;
994 this.STK_TONE_TYPE_ERROR = 0x06;
995 this.STK_TONE_TYPE_CALL_WAITING_TONE = 0x07;
996 this.STK_TONE_TYPE_RINGING_TONE = 0x08;
997 this.STK_TONE_TYPE_GENERAL_BEEP = 0x10;
998 this.STK_TONE_TYPE_POSITIVE_ACK_TONE = 0x11;
999 this.STK_TONE_TYPE_NEGATIVE_ACK_TONE = 0x12;
1000
1001 // Time unit.
1002 this.STK_TIME_UNIT_MINUTE = 0x00;
1003 this.STK_TIME_UNIT_SECOND = 0x01;
1004 this.STK_TIME_UNIT_TENTH_SECOND = 0x02;
1005
1006 // Local Information type.
1007 this.STK_LOCAL_INFO_NNA = 0x00;
1008 this.STK_LOCAL_INFO_IMEI = 0x01;
1009 this.STK_LOCAL_INFO_NMR_FOR_NNA = 0x02;
1010 this.STK_LOCAL_INFO_DATE_TIME_ZONE = 0x03;
1011 this.STK_LOCAL_INFO_LANGUAGE = 0x04;
1012 this.STK_LOCAL_INFO_ACCESS_TECH = 0x06;
1013 this.STK_LOCAL_INFO_ESN = 0x07;
1014 this.STK_LOCAL_INFO_IMEISV = 0x08;
1015 this.STK_LOCAL_INFO_SEARCH_MODE = 0x09;
1016 this.STK_LOCAL_INFO_CHARGE_STATE = 0x0A;
1017 this.STK_LOCAL_INFO_MEID = 0x0B;
1018 this.STK_LOCAL_INFO_BROADCAST_NETWORK_INFO = 0x0D;
1019 this.STK_LOCAL_INFO_MULTIPLE_ACCESS_TECH = 0x0E;
1020 this.STK_LOCAL_INFO_INFO_FOR_MULTIPLE_ACCESS_TECH = 0x0F;
1021 this.STK_LOCAL_INFO_NMR_FOR_MULTIPLE_ACCESS_TECH = 0x10;
1022
1023 // Timer Management.
1024 this.STK_TIMER_START = 0x00;
1025 this.STK_TIMER_DEACTIVATE = 0x01;
1026 this.STK_TMIER_GET_CURRENT_VALUE = 0x02;
1027
1028 // Browser Termination Cause.
1029 this.STK_BROWSER_TERMINATION_CAUSE_USER = 0x00;
1030 this.STK_BROWSER_TERMINATION_CAUSE_ERROR = 0x01;
1031
1032 // Next Action Indicator.
1033 this.STK_NEXT_ACTION_NULL = 0x00;
1034 this.STK_NEXT_ACTION_END_PROACTIVE_SESSION = 0x81;
1035
1036 /**
1037 * Supported Terminal Facilities.
1038 *
1039 * value = 1, supported.
1040 * 0, not supported.
1041 */
1042 this.STK_TERMINAL_SUPPORT_PROFILE_DOWNLOAD = 1;
1043 this.STK_TERMINAL_SUPPORT_SMS_PP_DOWNLOAD = 1;
1044 this.STK_TERMINAL_SUPPORT_CELL_BROADCAST_DATA_DOWNLOAD = 0;
1045 this.STK_TERMINAL_SUPPORT_MENU_SELECTION = 1;
1046 this.STK_TERMINAL_SUPPORT_SIM_DATA_DOWNLOAD_ERROR = 0;
1047 this.STK_TERMINAL_SUPPORT_TIMER_EXPIRATION = 1;
1048 this.STK_TERMINAL_SUPPORT_USSD_IN_CALL_CONTROL = 0;
1049 this.STK_TERMINAL_SUPPORT_CALL_CONTROL_IN_REDIAL = 0;
1050
1051 this.STK_TERMINAL_SUPPORT_COMMAND_RESULT = 1;
1052 this.STK_TERMINAL_SUPPORT_CALL_CONTROL = 1;
1053 this.STK_TERMINAL_SUPPORT_CALL_ID_INCLUDED = 0;
1054 this.STK_TERMINAL_SUPPORT_MO_SMS_CONTROL = 0;
1055 this.STK_TERMINAL_SUPPORT_ALPHA_ID_INDICATION = 0;
1056 this.STK_TERMINAL_SUPPORT_UCS2_ENTRY = 1;
1057 this.STK_TERMINAL_SUPPORT_UCS2_DISPLAY = 1;
1058 this.STK_TERMINAL_SUPPORT_EXTENSION_TEXT = 1;
1059
1060 this.STK_TERMINAL_SUPPORT_PROACTIVE_DISPLAY_TEXT = 1;
1061 this.STK_TERMINAL_SUPPORT_PROACTIVE_GET_INKEY = 1;
1062 this.STK_TERMINAL_SUPPORT_PROACTIVE_GET_INPUT = 1;
1063 this.STK_TERMINAL_SUPPORT_PROACTIVE_MORE_TIME = 1;
1064 this.STK_TERMINAL_SUPPORT_PROACTIVE_PLAY_TONE = 1;
1065 this.STK_TERMINAL_SUPPORT_PROACTIVE_POLL_INTERVAL = 1;
1066 this.STK_TERMINAL_SUPPORT_PROACTIVE_POLL_OFF = 1;
1067 this.STK_TERMINAL_SUPPORT_PROACTIVE_REFRESH = 1;
1068
1069 this.STK_TERMINAL_SUPPORT_PROACTIVE_SELECT_ITEM = 1;
1070 this.STK_TERMINAL_SUPPORT_PROACTIVE_SEND_SMS = 1;
1071 this.STK_TERMINAL_SUPPORT_PROACTIVE_SEND_SS = 1;
1072 this.STK_TERMINAL_SUPPORT_PROACTIVE_SEND_USSD = 1;
1073 this.STK_TERMINAL_SUPPORT_PROACTIVE_SET_UP_CALL = 1;
1074 this.STK_TERMINAL_SUPPORT_PROACTIVE_SET_UP_MENU = 1;
1075 this.STK_TERMINAL_SUPPORT_PROACTIVE_LOCAL_INFO = 1;
1076 this.STK_TERMINAL_SUPPORT_PROACTIVE_LOCAL_INFO_NMR = 0;
1077
1078 this.STK_TERMINAL_SUPPORT_PROACTIVE_SET_UP_EVENT_LIST = 1;
1079 this.STK_TERMINAL_SUPPORT_EVENT_MT_CALL = 1;
1080 this.STK_TERMINAL_SUPPORT_EVENT_CALL_CONNECTED = 1;
1081 this.STK_TERMINAL_SUPPORT_EVENT_CALL_DISCONNECTED = 1;
1082 this.STK_TERMINAL_SUPPORT_EVENT_LOCATION_STATUS = 1;
1083 this.STK_TERMINAL_SUPPORT_EVENT_USER_ACTIVITY = 1;
1084 this.STK_TERMINAL_SUPPORT_EVENT_IDLE_SCREEN_AVAILABLE = 1;
1085 this.STK_TERMINAL_SUPPORT_EVENT_CARD_READER_STATUS = 0;
1086
1087 this.STK_TERMINAL_SUPPORT_EVENT_LANGUAGE_SELECTION = 1;
1088 this.STK_TERMINAL_SUPPORT_EVENT_BROWSER_TERMINATION = 1;
1089 this.STK_TERMINAL_SUPPORT_EVENT_DATA_AVAILABLE = 0;
1090 this.STK_TERMINAL_SUPPORT_EVENT_CHANNEL_STATUS = 0;
1091
1092 this.STK_TERMINAL_SUPPORT_PROACTIVE_TIMER_START_STOP = 1;
1093 this.STK_TERMINAL_SUPPORT_PROACTIVE_TIMER_GET_CURRENT = 1;
1094 this.STK_TERMINAL_SUPPORT_PROACTIVE_LOCAL_INFO_DATE = 1;
1095 this.STK_TERMINAL_SUPPORT_GET_INKEY = 1;
1096 this.STK_TERMINAL_SUPPORT_SET_UP_IDLE_MODE_TEXT = 1;
1097 this.STK_TERMINAL_SUPPORT_RUN_AT_COMMAND = 0;
1098 this.STK_TERMINAL_SUPPORT_SET_UP_CALL = 1;
1099 this.STK_TERMINAL_SUPPORT_CALL_CONTROL_BY_NNA = 0;
1100
1101 this.STK_TERMINAL_SUPPORT_DISPLAY_TEXT = 1;
1102 this.STK_TERMINAL_SUPPORT_SEND_DTMF_COMMAND = 1;
1103 this.STK_TERMINAL_SUPPORT_PROACTIVE_LOCAL_INFO_NMR = 0;
1104 this.STK_TERMINAL_SUPPORT_PROACTIVE_LOCAL_INFO_LANGUAGE = 1;
1105 this.STK_TERMINAL_SUPPORT_PROACTIVE_LOCAL_INFO_TIME_ADVANCE = 0;
1106 this.STK_TERMINAL_SUPPORT_PROACTIVE_LANGUAGE_NOTIFICATION = 0;
1107 this.STK_TERMINAL_SUPPORT_PROACTIVE_LAUNCH_BROWSER = 1;
1108 this.STK_TERMINAL_SUPPORT_PROACTIVE_LOCAL_INFO_ACCESS_TECH = 0;
1109
1110 this.STK_TERMINAL_SUPPORT_BIP_COMMAND_OPEN_CHANNEL = 1;
1111 this.STK_TERMINAL_SUPPORT_BIP_COMMAND_CLOSE_CHANNEL = 1;
1112 this.STK_TERMINAL_SUPPORT_BIP_COMMAND_RECEIVE_DATA = 1;
1113 this.STK_TERMINAL_SUPPORT_BIP_COMMAND_SEND_DATA = 1;
1114 this.STK_TERMINAL_SUPPORT_BIP_COMMAND_GET_CHANNEL_STATUS = 0;
1115
1116 /**
1117 * SAT profile
1118 *
1119 * @see ETSI TS 101.267, section 5.2.
1120 */
1121 this.STK_TERMINAL_PROFILE_DOWNLOAD =
1122 (STK_TERMINAL_SUPPORT_PROFILE_DOWNLOAD << 0) |
1123 (STK_TERMINAL_SUPPORT_SMS_PP_DOWNLOAD << 1) |
1124 (STK_TERMINAL_SUPPORT_CELL_BROADCAST_DATA_DOWNLOAD << 2) |
1125 (STK_TERMINAL_SUPPORT_MENU_SELECTION << 3) |
1126 (STK_TERMINAL_SUPPORT_SIM_DATA_DOWNLOAD_ERROR << 4) |
1127 (STK_TERMINAL_SUPPORT_TIMER_EXPIRATION << 5) |
1128 (STK_TERMINAL_SUPPORT_USSD_IN_CALL_CONTROL << 6) |
1129 (STK_TERMINAL_SUPPORT_CALL_CONTROL_IN_REDIAL << 7);
1130
1131 this.STK_TERMINAL_PROFILE_OTHER =
1132 (STK_TERMINAL_SUPPORT_COMMAND_RESULT << 0) |
1133 (STK_TERMINAL_SUPPORT_CALL_CONTROL << 1) |
1134 (STK_TERMINAL_SUPPORT_CALL_ID_INCLUDED << 2) |
1135 (STK_TERMINAL_SUPPORT_MO_SMS_CONTROL << 3) |
1136 (STK_TERMINAL_SUPPORT_ALPHA_ID_INDICATION << 4) |
1137 (STK_TERMINAL_SUPPORT_UCS2_ENTRY << 5) |
1138 (STK_TERMINAL_SUPPORT_UCS2_DISPLAY << 6) |
1139 (STK_TERMINAL_SUPPORT_EXTENSION_TEXT << 7);
1140
1141 this.STK_TERMINAL_PROFILE_PROACTIVE_1 =
1142 (STK_TERMINAL_SUPPORT_PROACTIVE_DISPLAY_TEXT << 0) |
1143 (STK_TERMINAL_SUPPORT_PROACTIVE_GET_INKEY << 1) |
1144 (STK_TERMINAL_SUPPORT_PROACTIVE_GET_INPUT << 2) |
1145 (STK_TERMINAL_SUPPORT_PROACTIVE_MORE_TIME << 3) |
1146 (STK_TERMINAL_SUPPORT_PROACTIVE_PLAY_TONE << 4) |
1147 (STK_TERMINAL_SUPPORT_PROACTIVE_POLL_INTERVAL << 5) |
1148 (STK_TERMINAL_SUPPORT_PROACTIVE_POLL_OFF << 6) |
1149 (STK_TERMINAL_SUPPORT_PROACTIVE_REFRESH << 7);
1150
1151 this.STK_TERMINAL_PROFILE_PROACTIVE_2 =
1152 (STK_TERMINAL_SUPPORT_PROACTIVE_SELECT_ITEM << 0) |
1153 (STK_TERMINAL_SUPPORT_PROACTIVE_SEND_SMS << 1) |
1154 (STK_TERMINAL_SUPPORT_PROACTIVE_SEND_SS << 2) |
1155 (STK_TERMINAL_SUPPORT_PROACTIVE_SEND_USSD << 3) |
1156 (STK_TERMINAL_SUPPORT_PROACTIVE_SET_UP_CALL << 4) |
1157 (STK_TERMINAL_SUPPORT_PROACTIVE_SET_UP_MENU << 5) |
1158 (STK_TERMINAL_SUPPORT_PROACTIVE_LOCAL_INFO << 6) |
1159 (STK_TERMINAL_SUPPORT_PROACTIVE_LOCAL_INFO_NMR << 7);
1160
1161 this.STK_TERMINAL_PROFILE_EVENT =
1162 (STK_TERMINAL_SUPPORT_PROACTIVE_SET_UP_EVENT_LIST << 0) |
1163 (STK_TERMINAL_SUPPORT_EVENT_MT_CALL << 1) |
1164 (STK_TERMINAL_SUPPORT_EVENT_CALL_CONNECTED << 2) |
1165 (STK_TERMINAL_SUPPORT_EVENT_CALL_DISCONNECTED << 3) |
1166 (STK_TERMINAL_SUPPORT_EVENT_LOCATION_STATUS << 4) |
1167 (STK_TERMINAL_SUPPORT_EVENT_USER_ACTIVITY << 5) |
1168 (STK_TERMINAL_SUPPORT_EVENT_IDLE_SCREEN_AVAILABLE << 6) |
1169 (STK_TERMINAL_SUPPORT_EVENT_CARD_READER_STATUS << 7);
1170
1171 this.STK_TERMINAL_PROFILE_EVENT_EXT =
1172 (STK_TERMINAL_SUPPORT_EVENT_LANGUAGE_SELECTION << 0) |
1173 (STK_TERMINAL_SUPPORT_EVENT_BROWSER_TERMINATION << 1) |
1174 (STK_TERMINAL_SUPPORT_EVENT_DATA_AVAILABLE << 2) |
1175 (STK_TERMINAL_SUPPORT_EVENT_CHANNEL_STATUS << 3);
1176
1177 this.STK_TERMINAL_PROFILE_PROACTIVE_3 =
1178 (STK_TERMINAL_SUPPORT_PROACTIVE_TIMER_START_STOP << 0) |
1179 (STK_TERMINAL_SUPPORT_PROACTIVE_TIMER_GET_CURRENT << 1) |
1180 (STK_TERMINAL_SUPPORT_PROACTIVE_LOCAL_INFO_DATE << 2) |
1181 (STK_TERMINAL_SUPPORT_GET_INKEY << 3) |
1182 (STK_TERMINAL_SUPPORT_SET_UP_IDLE_MODE_TEXT << 4) |
1183 (STK_TERMINAL_SUPPORT_RUN_AT_COMMAND << 5) |
1184 (STK_TERMINAL_SUPPORT_SET_UP_CALL << 6) |
1185 (STK_TERMINAL_SUPPORT_CALL_CONTROL_BY_NNA << 7);
1186
1187 this.STK_TERMINAL_PROFILE_PROACTIVE_4 =
1188 (STK_TERMINAL_SUPPORT_DISPLAY_TEXT << 0) |
1189 (STK_TERMINAL_SUPPORT_SEND_DTMF_COMMAND << 1) |
1190 (STK_TERMINAL_SUPPORT_PROACTIVE_LOCAL_INFO_NMR << 2) |
1191 (STK_TERMINAL_SUPPORT_PROACTIVE_LOCAL_INFO_LANGUAGE << 3) |
1192 (STK_TERMINAL_SUPPORT_PROACTIVE_LOCAL_INFO_TIME_ADVANCE << 4) |
1193 (STK_TERMINAL_SUPPORT_PROACTIVE_LANGUAGE_NOTIFICATION << 5) |
1194 (STK_TERMINAL_SUPPORT_PROACTIVE_LAUNCH_BROWSER << 6) |
1195 (STK_TERMINAL_SUPPORT_PROACTIVE_LOCAL_INFO_ACCESS_TECH << 7);
1196
1197 this.STK_TERMINAL_PROFILE_BIP_COMMAND =
1198 (STK_TERMINAL_SUPPORT_BIP_COMMAND_OPEN_CHANNEL << 0) |
1199 (STK_TERMINAL_SUPPORT_BIP_COMMAND_CLOSE_CHANNEL << 1) |
1200 (STK_TERMINAL_SUPPORT_BIP_COMMAND_RECEIVE_DATA << 2) |
1201 (STK_TERMINAL_SUPPORT_BIP_COMMAND_SEND_DATA << 3) |
1202 (STK_TERMINAL_SUPPORT_BIP_COMMAND_GET_CHANNEL_STATUS << 4);
1203
1204 this.STK_SUPPORTED_TERMINAL_PROFILE = [
1205 STK_TERMINAL_PROFILE_DOWNLOAD,
1206 STK_TERMINAL_PROFILE_OTHER,
1207 STK_TERMINAL_PROFILE_PROACTIVE_1,
1208 STK_TERMINAL_PROFILE_PROACTIVE_2,
1209 STK_TERMINAL_PROFILE_EVENT,
1210 STK_TERMINAL_PROFILE_EVENT_EXT, // Event extension
1211 0x00, // Multiple card proactive commands
1212 STK_TERMINAL_PROFILE_PROACTIVE_3,
1213 STK_TERMINAL_PROFILE_PROACTIVE_4,
1214 0x00, // Softkey support
1215 0x00, // Softkey information
1216 STK_TERMINAL_PROFILE_BIP_COMMAND,
1217 0x00, // BIP supported bearers
1218 0x00, // Screen height
1219 0x00, // Screen width
1220 0x00, // 16, Screen effects
1221 0x00, // 17, BIP supported transport interface
1222 0x00, // 18, RFU
1223 0x00, // 19, RFU
1224 0x00, // 20, RFU
1225 ];
1226
1227 /**
1228 * (U)SIM Services.
1229 *
1230 * @see 3GPP TS 51.011 10.3.7 (SIM) and 3GPP TS 31.102 4.2.8 (USIM).
1231 */
1232 this.GECKO_ICC_SERVICES = {
1233 sim: {
1234 ADN: 2,
1235 FDN: 3,
1236 PLMNSEL: 7,
1237 MSISDN: 9,
1238 CBMI: 14,
1239 SPN: 17,
1240 SDN: 18,
1241 DATA_DOWNLOAD_SMS_CB: 25,
1242 DATA_DOWNLOAD_SMS_PP: 26,
1243 CBMIR: 30,
1244 BDN: 31,
1245 PNN: 51,
1246 OPL: 52,
1247 MDN: 53,
1248 MWIS: 54,
1249 SPDI: 56
1250 },
1251 usim: {
1252 FDN: 2,
1253 SDN: 4,
1254 BDN: 6,
1255 CBMI: 15,
1256 CBMIR: 16,
1257 SPN: 19,
1258 MSISDN: 21,
1259 DATA_DOWNLOAD_SMS_PP: 28,
1260 DATA_DOWNLOAD_SMS_CB: 29,
1261 PNN: 45,
1262 OPL: 46,
1263 MDN: 47,
1264 MWIS: 48,
1265 SPDI: 51
1266 },
1267 ruim: {
1268 ENHANCED_PHONEBOOK: 6,
1269 SPN: 17
1270 }
1271 };
1272
1273 /**
1274 * Cell Broadcast constants
1275 */
1276
1277 this.CB_FORMAT_GSM = 0;
1278 this.CB_FORMAT_ETWS = 1;
1279 this.CB_FORMAT_CMAS = 2;
1280 this.CB_FORMAT_UMTS = 3;
1281
1282 // CBS Data Coding Scheme: Language groups
1283 // see 3GPP TS 23.038 section 5
1284 this.CB_DCS_LANG_GROUP_1 = [
1285 "de", "en", "it", "fr", "es", "nl", "sv", "da", "pt", "fi",
1286 "no", "el", "tr", "hu", "pl", null
1287 ];
1288 this.CB_DCS_LANG_GROUP_2 = [
1289 "cs", "he", "ar", "ru", "is", null, null, null, null, null,
1290 null, null, null, null, null, null
1291 ];
1292
1293 // See 3GPP TS 23.041 v11.2.0 section 9.4.1.2.2
1294 this.CB_NON_MMI_SETTABLE_RANGES = [
1295 /*0x1000 - 0x107F*/4096, 4224, /*0x1080 - 0x10FF*/4224, 4352,
1296 /*0x1112 - 0x1112*/4370, 4371, /*0x111F - 0x111F*/4383, 4384,
1297 /*0xF000 - 0xFFFE*/61440, 65535, /*0xFFFF - 0xFFFF*/65535, 65536
1298 ];
1299
1300 // User Data max length in septets
1301 this.CB_MAX_CONTENT_7BIT = 93;
1302 // User Data max length in octets
1303 this.CB_MAX_CONTENT_8BIT = 82;
1304 // User Data max length in chars
1305 this.CB_MAX_CONTENT_UCS2 = 41;
1306
1307 this.CB_MESSAGE_SIZE_ETWS = 56;
1308 this.CB_MESSAGE_SIZE_GSM = 88;
1309
1310 // GSM Cell Broadcast Geographical Scope
1311 // See 3GPP TS 23.041 clause 9.4.1.2.1
1312 this.CB_GSM_GEOGRAPHICAL_SCOPE_CELL_WIDE_IMMEDIATE = 0;
1313 this.CB_GSM_GEOGRAPHICAL_SCOPE_PLMN_WIDE = 1;
1314 this.CB_GSM_GEOGRAPHICAL_SCOPE_LOCATION_AREA_WIDE = 2;
1315 this.CB_GSM_GEOGRAPHICAL_SCOPE_CELL_WIDE = 3;
1316
1317 // GSM Cell Broadcast Geographical Scope
1318 // See 3GPP TS 23.041 clause 9.4.1.2.1
1319 this.CB_GSM_GEOGRAPHICAL_SCOPE_NAMES = [
1320 "cell-immediate",
1321 "plmn",
1322 "location-area",
1323 "cell"
1324 ];
1325
1326 // GSM Cell Broadcast Message Identifiers
1327 // see 3GPP TS 23.041 clause 9.4.1.2.2
1328 this.CB_GSM_MESSAGEID_ETWS_BEGIN = 0x1100;
1329 this.CB_GSM_MESSAGEID_ETWS_END = 0x1107;
1330
1331 // ETWS Warning-Type
1332 // see 3GPP TS 23.041 clause 9.3.24
1333 this.CB_ETWS_WARNING_TYPE_NAMES = [
1334 "earthquake",
1335 "tsunami",
1336 "earthquake-tsunami",
1337 "test",
1338 "other"
1339 ];
1340
1341 /**
1342 * GSM PDU constants
1343 */
1344
1345 // PDU TYPE-OF-ADDRESS
1346 this.PDU_TOA_UNKNOWN = 0x80; // Unknown. This is used when the user or
1347 // network has no a priori information
1348 // about the numbering plan.
1349 this.PDU_TOA_ISDN = 0x81; // ISDN/Telephone numbering
1350 this.PDU_TOA_DATA_NUM = 0x83; // Data numbering plan
1351 this.PDU_TOA_TELEX_NUM = 0x84; // Telex numbering plan
1352 this.PDU_TOA_NATIONAL_NUM = 0x88; // National numbering plan
1353 this.PDU_TOA_PRIVATE_NUM = 0x89; // Private numbering plan
1354 this.PDU_TOA_ERMES_NUM = 0x8A; // Ermes numbering plan
1355 this.PDU_TOA_INTERNATIONAL = 0x90; // International number
1356 this.PDU_TOA_NATIONAL = 0xA0; // National number. Prefix or escape digits
1357 // shall not be included
1358 this.PDU_TOA_NETWORK_SPEC = 0xB0; // Network specific number This is used to
1359 // indicate administration/service number
1360 // specific to the serving network
1361 this.PDU_TOA_SUBSCRIBER = 0xC0; // Subscriber number. This is used when a
1362 // specific short number representation is
1363 // stored in one or more SCs as part of a
1364 // higher layer application
1365 this.PDU_TOA_ALPHANUMERIC = 0xD0; // Alphanumeric, (coded according to GSM TS
1366 // 03.38 7-bit default alphabet)
1367 this.PDU_TOA_ABBREVIATED = 0xE0; // Abbreviated number
1368
1369 /**
1370 * First octet of the SMS-DELIVER PDU
1371 *
1372 * RP: 0 Reply Path parameter is not set in this PDU
1373 * 1 Reply Path parameter is set in this PDU
1374 *
1375 * UDHI: 0 The UD field contains only the short message
1376 * 1 The beginning of the UD field contains a header in addition of
1377 * the short message
1378 *
1379 * SRI: (is only set by the SMSC)
1380 * 0 A status report will not be returned to the SME
1381 * 1 A status report will be returned to the SME
1382 *
1383 * MMS: (is only set by the SMSC)
1384 * 0 More messages are waiting for the MS in the SMSC
1385 * 1 No more messages are waiting for the MS in the SMSC
1386 *
1387 * MTI: bit1 bit0 Message type
1388 * 0 0 SMS-DELIVER (SMSC ==> MS)
1389 * 0 0 SMS-DELIVER REPORT (MS ==> SMSC, is generated
1390 * automatically by the M20, after receiving a
1391 * SMS-DELIVER)
1392 * 0 1 SMS-SUBMIT (MS ==> SMSC)
1393 * 0 1 SMS-SUBMIT REPORT (SMSC ==> MS)
1394 * 1 0 SMS-STATUS REPORT (SMSC ==> MS)
1395 * 1 0 SMS-COMMAND (MS ==> SMSC)
1396 * 1 1 Reserved
1397 */
1398 this.PDU_RP = 0x80; // Reply path. Parameter indicating that
1399 // reply path exists.
1400 this.PDU_UDHI = 0x40; // User data header indicator. This bit is
1401 // set to 1 if the User Data field starts
1402 // with a header
1403 this.PDU_SRI_SRR = 0x20; // Status report indication (SMS-DELIVER)
1404 // or request (SMS-SUBMIT)
1405 this.PDU_VPF_ABSOLUTE = 0x18;// Validity period aboslute format
1406 // (SMS-SUBMIT only)
1407 this.PDU_VPF_RELATIVE = 0x10;// Validity period relative format
1408 // (SMS-SUBMIT only)
1409 this.PDU_VPF_ENHANCED = 0x8; // Validity period enhance format
1410 // (SMS-SUBMIT only)
1411 this.PDU_MMS_RD = 0x04;// More messages to send. (SMS-DELIVER only) or
1412 // Reject duplicates (SMS-SUBMIT only)
1413
1414 // MTI - Message Type Indicator
1415 this.PDU_MTI_SMS_RESERVED = 0x03;
1416 this.PDU_MTI_SMS_STATUS_REPORT = 0x02;
1417 this.PDU_MTI_SMS_COMMAND = 0x02;
1418 this.PDU_MTI_SMS_SUBMIT = 0x01;
1419 this.PDU_MTI_SMS_DELIVER = 0x00;
1420
1421 // PI - Parameter Indicator
1422 this.PDU_PI_EXTENSION = 0x80;
1423 this.PDU_PI_USER_DATA_LENGTH = 0x04;
1424 this.PDU_PI_DATA_CODING_SCHEME = 0x02;
1425 this.PDU_PI_PROTOCOL_IDENTIFIER = 0x01;
1426 this.PDU_PI_RESERVED = 0x78;
1427
1428 // FCS - Failure Cause
1429 // 0...127 see 3GPP TS 24.011 clause E.2
1430 // 128...255 see 3GPP TS 23.040 clause 9.2.3.22
1431 // others see 3GPP TS 27.005 clause 3.2.5
1432 this.PDU_FCS_OK = 0x00;
1433 this.PDU_FCS_PROTOCOL_ERROR = 0x6F;
1434 this.PDU_FCS_MEMORY_CAPACITY_EXCEEDED = 0XD3;
1435 this.PDU_FCS_USAT_BUSY = 0XD4;
1436 this.PDU_FCS_USIM_DATA_DOWNLOAD_ERROR = 0xD5;
1437 this.PDU_FCS_RESERVED = 0xE0;
1438 this.PDU_FCS_UNSPECIFIED = 0xFF;
1439 // Special internal value that means we should not acknowledge an
1440 // incoming text right away, but need to wait for other components
1441 // (e.g. storage) to complete. This can be any value, so long it
1442 // doesn't conflict with the PDU_FCS_* constants above.
1443 this.MOZ_FCS_WAIT_FOR_EXPLICIT_ACK = 0x0F;
1444
1445 // ST - Status
1446 // Bit 7..0 = 000xxxxx, short message transaction completed
1447 this.PDU_ST_0_RECEIVED = 0x00;
1448 this.PDU_ST_0_FORWARDED_NO_CONFIRM = 0x01;
1449 this.PDU_ST_0_REPLACED_BY_SC = 0x02;
1450 this.PDU_ST_0_RESERVED_BEGIN = 0x03;
1451 this.PDU_ST_0_SC_SPECIFIC_BEGIN = 0x10;
1452 this.PDU_ST_0_SC_SPECIFIC_END = 0x1F;
1453 // Bit 7..0 = 001xxxxx, temporary error, SC still trying to transfer SM
1454 this.PDU_ST_1_CONGESTION = 0x20;
1455 this.PDU_ST_1_SME_BUSY = 0x21;
1456 this.PDU_ST_1_SME_NO_RESPONSE = 0x22;
1457 this.PDU_ST_1_SERVICE_REJECTED = 0x23;
1458 this.PDU_ST_1_QOS_UNAVAILABLE = 0x24;
1459 this.PDU_ST_1_SME_ERROR = 0x25;
1460 this.PDU_ST_1_RESERVED_BEGIN = 0x26;
1461 this.PDU_ST_1_SC_SPECIFIC_BEGIN = 0x30;
1462 this.PDU_ST_1_SC_SPECIFIC_END = 0x3F;
1463 // Bit 7..0 = 010xxxxx, permanent error, SC is not making any more transfer
1464 // attempts
1465 this.PDU_ST_2_RPC_ERROR = 0x40;
1466 this.PDU_ST_2_DEST_INCOMPATIBLE = 0x41;
1467 this.PDU_ST_2_CONNECTION_REJECTED = 0x42;
1468 this.PDU_ST_2_NOT_OBTAINABLE = 0x43;
1469 this.PDU_ST_2_QOS_UNAVAILABLE = 0x44;
1470 this.PDU_ST_2_INTERWORKING_UNAVALIABLE = 0x45;
1471 this.PDU_ST_2_VALIDITY_EXPIRED = 0x46;
1472 this.PDU_ST_2_DELETED_BY_SME = 0x47;
1473 this.PDU_ST_2_DELETED_BY_SC = 0x48;
1474 this.PDU_ST_2_SM_MISSING = 0x49;
1475 this.PDU_ST_2_RESERVED_BEGIN = 0x4A;
1476 this.PDU_ST_2_SC_SPECIFIC_BEGIN = 0x50;
1477 this.PDU_ST_2_SC_SPECIFIC_END = 0x5F;
1478 // Bit 7..0 = 011xxxxx, temporary error, SC is not making any more transfer
1479 // attempts
1480 this.PDU_ST_3_CONGESTION = 0x60;
1481 this.PDU_ST_3_SME_BUSY = 0x61;
1482 this.PDU_ST_3_SME_NO_RESPONSE = 0x62;
1483 this.PDU_ST_3_SERVICE_REJECTED = 0x63;
1484 this.PDU_ST_3_QOS_UNAVAILABLE = 0x64;
1485 this.PDU_ST_3_SME_ERROR = 0x65;
1486 this.PDU_ST_3_RESERVED_BEGIN = 0x66;
1487 this.PDU_ST_3_SC_SPECIFIC_BEGIN = 0x70;
1488 this.PDU_ST_3_SC_SPECIFIC_END = 0x7F;
1489
1490 this.GECKO_SMS_DELIVERY_STATUS_NOT_APPLICABLE = "not-applicable";
1491 this.GECKO_SMS_DELIVERY_STATUS_SUCCESS = "success";
1492 this.GECKO_SMS_DELIVERY_STATUS_PENDING = "pending";
1493 this.GECKO_SMS_DELIVERY_STATUS_ERROR = "error";
1494
1495 // User Data max length in septets
1496 this.PDU_MAX_USER_DATA_7BIT = 160;
1497 // User Data max length in octets
1498 this.PDU_MAX_USER_DATA_8BIT = 140;
1499 // User Data max length in chars
1500 this.PDU_MAX_USER_DATA_UCS2 = 70;
1501
1502 // PID - Protocol Indicator
1503 this.PDU_PID_DEFAULT = 0x00;
1504 this.PDU_PID_TELEMATIC_INTERWORKING = 0x20;
1505 this.PDU_PID_SHORT_MESSAGE_TYPE_0 = 0x40;
1506 this.PDU_PID_REPLACE_SHORT_MESSAGE_TYPE_1 = 0x41;
1507 this.PDU_PID_REPLACE_SHORT_MESSAGE_TYPE_2 = 0x42;
1508 this.PDU_PID_REPLACE_SHORT_MESSAGE_TYPE_3 = 0x43;
1509 this.PDU_PID_REPLACE_SHORT_MESSAGE_TYPE_4 = 0x44;
1510 this.PDU_PID_REPLACE_SHORT_MESSAGE_TYPE_5 = 0x45;
1511 this.PDU_PID_REPLACE_SHORT_MESSAGE_TYPE_6 = 0x46;
1512 this.PDU_PID_REPLACE_SHORT_MESSAGE_TYPE_7 = 0x47;
1513 this.PDU_PID_ENHANDED_MESSAGE_SERVICE = 0x5E;
1514 this.PDU_PID_RETURN_CALL_MESSAGE = 0x5F;
1515 this.PDU_PID_ANSI_136_R_DATA = 0x7C;
1516 this.PDU_PID_ME_DATA_DOWNLOAD = 0x7D;
1517 this.PDU_PID_ME_DEPERSONALIZATION = 0x7E;
1518 this.PDU_PID_USIM_DATA_DOWNLOAD = 0x7F;
1519
1520 // DCS - Data Coding Scheme
1521 this.PDU_DCS_MSG_CODING_7BITS_ALPHABET = 0x00;
1522 this.PDU_DCS_MSG_CODING_8BITS_ALPHABET = 0x04;
1523 this.PDU_DCS_MSG_CODING_16BITS_ALPHABET = 0x08;
1524 this.PDU_DCS_MSG_CLASS_NORMAL = 0xFF;
1525 this.PDU_DCS_MSG_CLASS_0 = 0x00;
1526 this.PDU_DCS_MSG_CLASS_1 = 0x01;
1527 this.PDU_DCS_MSG_CLASS_2 = 0x02;
1528 this.PDU_DCS_MSG_CLASS_3 = 0x03;
1529 this.PDU_DCS_MSG_CLASS_USER_1 = 0x04;
1530 this.PDU_DCS_MSG_CLASS_USER_2 = 0x05;
1531 this.PDU_DCS_CODING_GROUP_BITS = 0xF0;
1532 this.PDU_DCS_MSG_CLASS_BITS = 0x03;
1533 this.PDU_DCS_MWI_ACTIVE_BITS = 0x08;
1534 this.PDU_DCS_MWI_ACTIVE_VALUE = 0x08;
1535 this.PDU_DCS_MWI_TYPE_BITS = 0x03;
1536 this.PDU_DCS_MWI_TYPE_VOICEMAIL = 0x00;
1537 this.PDU_DCS_MWI_TYPE_FAX = 0x01;
1538 this.PDU_DCS_MWI_TYPE_EMAIL = 0x02;
1539 this.PDU_DCS_MWI_TYPE_OTHER = 0x03;
1540
1541 this.GECKO_SMS_MESSAGE_CLASSES = {};
1542 GECKO_SMS_MESSAGE_CLASSES[PDU_DCS_MSG_CLASS_NORMAL] = "normal";
1543 GECKO_SMS_MESSAGE_CLASSES[PDU_DCS_MSG_CLASS_0] = "class-0";
1544 GECKO_SMS_MESSAGE_CLASSES[PDU_DCS_MSG_CLASS_1] = "class-1";
1545 GECKO_SMS_MESSAGE_CLASSES[PDU_DCS_MSG_CLASS_2] = "class-2";
1546 GECKO_SMS_MESSAGE_CLASSES[PDU_DCS_MSG_CLASS_3] = "class-3";
1547 GECKO_SMS_MESSAGE_CLASSES[PDU_DCS_MSG_CLASS_USER_1] = "user-1";
1548 GECKO_SMS_MESSAGE_CLASSES[PDU_DCS_MSG_CLASS_USER_2] = "user-2";
1549
1550 // Because service center timestamp omit the century. Yay.
1551 this.PDU_TIMESTAMP_YEAR_OFFSET = 2000;
1552
1553 // See 9.2.3.24 TP‑User Data (TP‑UD)
1554 this.PDU_IEI_CONCATENATED_SHORT_MESSAGES_8BIT = 0x00;
1555 this.PDU_IEI_SPECIAL_SMS_MESSAGE_INDICATION = 0x01;
1556 this.PDU_IEI_APPLICATION_PORT_ADDRESSING_SCHEME_8BIT = 0x04;
1557 this.PDU_IEI_APPLICATION_PORT_ADDRESSING_SCHEME_16BIT = 0x05;
1558 this.PDU_IEI_SMSC_CONTROL_PARAMS = 0x06;
1559 this.PDU_IEI_UDH_SOURCE_INDICATOR = 0x07;
1560 this.PDU_IEI_CONCATENATED_SHORT_MESSAGES_16BIT = 0x08;
1561 this.PDU_IEI_WIRELESS_CONTROL_MESSAGE_PROTOCOL = 0x09;
1562 this.PDU_IEI_TEXT_FORMATING = 0x0A;
1563 this.PDU_IEI_PREDEFINED_SOUND = 0x0B;
1564 this.PDU_IEI_USER_DATA_SOUND = 0x0C;
1565 this.PDU_IEI_PREDEFINED_ANIMATION = 0x0D;
1566 this.PDU_IEI_LARGE_ANIMATION = 0x0E;
1567 this.PDU_IEI_SMALL_ANIMATION = 0x0F;
1568 this.PDU_IEI_LARGE_PICTURE = 0x10;
1569 this.PDU_IEI_SMALL_PICTURE = 0x11;
1570 this.PDU_IEI_VARIABLE_PICTURE = 0x12;
1571 this.PDU_IEI_USER_PROMPT_INDICATOR = 0x13;
1572 this.PDU_IEI_EXTENDED_OBJECT = 0x14;
1573 this.PDU_IEI_REUSED_EXTENDED_OBJECT = 0x15;
1574 this.PDU_IEI_COMPRESS_CONTROL = 0x16;
1575 this.PDU_IEI_OBJECT_DISTRIBUTION_INDICATOR = 0x17;
1576 this.PDU_IEI_STANDARD_WVG_OBJECT = 0x18;
1577 this.PDU_IEI_CHARACTER_SIZE_WVG_OBJECT = 0x19;
1578 this.PDU_IEI_EXTENDED_OBJECT_DATA_REQUEST_COMMAND = 0x1A;
1579 this.PDU_IEI_RFC822_EMAIL_HEADER = 0x20;
1580 this.PDU_IEI_HYPERLINK_FORMAT_ELEMENT = 0x21;
1581 this.PDU_IEI_REPLY_ADDRESS_ELEMENT = 0x22;
1582 this.PDU_IEI_ENHANCED_VOICE_MAIL_INFORMATION = 0x23;
1583 this.PDU_IEI_NATIONAL_LANGUAGE_SINGLE_SHIFT = 0x24;
1584 this.PDU_IEI_NATIONAL_LANGUAGE_LOCKING_SHIFT = 0x25;
1585
1586 // Application Port Addressing, see 3GPP TS 23.040 9.2.3.24.3
1587 this.PDU_APA_RESERVED_8BIT_PORTS = 240;
1588 this.PDU_APA_VALID_16BIT_PORTS = 49152;
1589
1590 // 7bit alphabet escape character. The encoded value of this code point is left
1591 // undefined in official spec. Its code value is internally assigned to \uffff,
1592 // <noncharacter-FFFF> in Unicode basic multilingual plane.
1593 this.PDU_NL_EXTENDED_ESCAPE = 0x1B;
1594
1595 // <SP>, <LF>, <CR> are only defined in locking shift tables.
1596 this.PDU_NL_SPACE = 0x20;
1597 this.PDU_NL_LINE_FEED = 0x0A;
1598 this.PDU_NL_CARRIAGE_RETURN = 0x0D;
1599
1600 // 7bit alphabet page break character, only defined in single shift tables.
1601 // The encoded value of this code point is left undefined in official spec, but
1602 // the code point itself maybe be used for example in compressed CBS messages.
1603 // Its code value is internally assigned to \u000c, ASCII form feed, or new page.
1604 this.PDU_NL_PAGE_BREAK = 0x0A;
1605 // 7bit alphabet reserved control character, only defined in single shift
1606 // tables. The encoded value of this code point is left undefined in official
1607 // spec. Its code value is internally assigned to \ufffe, <noncharacter-FFFE>
1608 // in Unicode basic multilingual plane.
1609 this.PDU_NL_RESERVED_CONTROL = 0x0D;
1610
1611 this.PDU_NL_IDENTIFIER_DEFAULT = 0;
1612 this.PDU_NL_IDENTIFIER_TURKISH = 1;
1613 this.PDU_NL_IDENTIFIER_SPANISH = 2;
1614 this.PDU_NL_IDENTIFIER_PORTUGUESE = 3;
1615 this.PDU_NL_IDENTIFIER_BENGALI = 4;
1616 this.PDU_NL_IDENTIFIER_GUJARATI = 5;
1617 this.PDU_NL_IDENTIFIER_HINDI = 6;
1618 this.PDU_NL_IDENTIFIER_KANNADA = 7;
1619 this.PDU_NL_IDENTIFIER_MALAYALAM = 8;
1620 this.PDU_NL_IDENTIFIER_ORIYA = 9;
1621 this.PDU_NL_IDENTIFIER_PUNJABI = 10;
1622 this.PDU_NL_IDENTIFIER_TAMIL = 11;
1623 this.PDU_NL_IDENTIFIER_TELUGU = 12;
1624 this.PDU_NL_IDENTIFIER_URDU = 13;
1625
1626 // National Language Locking Shift Tables, see 3GPP TS 23.038
1627 this.PDU_NL_LOCKING_SHIFT_TABLES = [
1628 /**
1629 * National Language Identifier: 0x00
1630 * 6.2.1 GSM 7 bit Default Alphabet
1631 */
1632 // 01.....23.....4.....5.....6.....7.....8.....9.....A.B.....C.....D.E.....F.....
1633 "@\u00a3$\u00a5\u00e8\u00e9\u00f9\u00ec\u00f2\u00c7\n\u00d8\u00f8\r\u00c5\u00e5"
1634 // 0.....12.....3.....4.....5.....6.....7.....8.....9.....A.....B.....C.....D.....E.....F.....
1635 + "\u0394_\u03a6\u0393\u039b\u03a9\u03a0\u03a8\u03a3\u0398\u039e\uffff\u00c6\u00e6\u00df\u00c9"
1636 // 012.34.....56789ABCDEF
1637 + " !\"#\u00a4%&'()*+,-./"
1638 // 0123456789ABCDEF
1639 + "0123456789:;<=>?"
1640 // 0.....123456789ABCDEF
1641 + "\u00a1ABCDEFGHIJKLMNO"
1642 // 0123456789AB.....C.....D.....E.....F.....
1643 + "PQRSTUVWXYZ\u00c4\u00d6\u00d1\u00dc\u00a7"
1644 // 0.....123456789ABCDEF
1645 + "\u00bfabcdefghijklmno"
1646 // 0123456789AB.....C.....D.....E.....F.....
1647 + "pqrstuvwxyz\u00e4\u00f6\u00f1\u00fc\u00e0",
1648
1649 /**
1650 * National Language Identifier: 0x01
1651 * A.3.1 Turkish National Language Locking Shift Table
1652 */
1653 // 01.....23.....4.....5.....6.....7.....8.....9.....A.B.....C.....D.E.....F.....
1654 "@\u00a3$\u00a5\u20ac\u00e9\u00f9\u0131\u00f2\u00c7\n\u011e\u011f\r\u00c5\u00e5"
1655 // 0.....12.....3.....4.....5.....6.....7.....8.....9.....A.....B.....C.....D.....E.....F.....
1656 + "\u0394_\u03a6\u0393\u039b\u03a9\u03a0\u03a8\u03a3\u0398\u039e\uffff\u015e\u015f\u00df\u00c9"
1657 // 012.34.....56789ABCDEF
1658 + " !\"#\u00a4%&'()*+,-./"
1659 // 0123456789ABCDEF
1660 + "0123456789:;<=>?"
1661 // 0.....123456789ABCDEF
1662 + "\u0130ABCDEFGHIJKLMNO"
1663 // 0123456789AB.....C.....D.....E.....F.....
1664 + "PQRSTUVWXYZ\u00c4\u00d6\u00d1\u00dc\u00a7"
1665 // 0.....123456789ABCDEF
1666 + "\u00e7abcdefghijklmno"
1667 // 0123456789AB.....C.....D.....E.....F.....
1668 + "pqrstuvwxyz\u00e4\u00f6\u00f1\u00fc\u00e0",
1669
1670 /**
1671 * National Language Identifier: 0x02
1672 * A.3.2 Void
1673 */
1674 // 0123456789A.BCD.EF
1675 " \n \r "
1676 // 0123456789AB.....CDEF
1677 + " \uffff "
1678 // 0123456789ABCDEF
1679 + " "
1680 // 0123456789ABCDEF
1681 + " "
1682 // 0123456789ABCDEF
1683 + " "
1684 // 0123456789ABCDEF
1685 + " "
1686 // 0123456789ABCDEF
1687 + " "
1688 // 0123456789ABCDEF
1689 + " ",
1690
1691 /**
1692 * National Language Identifier: 0x03
1693 * A.3.3 Portuguese National Language Locking Shift Table
1694 */
1695 // 01.....23.....4.....5.....6.....7.....8.....9.....A.B.....C.....D.E.....F.....
1696 "@\u00a3$\u00a5\u00ea\u00e9\u00fa\u00ed\u00f3\u00e7\n\u00d4\u00f4\r\u00c1\u00e1"
1697 // 0.....12.....3.....4.....5.....67.8.....9.....AB.....C.....D.....E.....F.....
1698 + "\u0394_\u00aa\u00c7\u00c0\u221e^\\\u20ac\u00d3|\uffff\u00c2\u00e2\u00ca\u00c9"
1699 // 012.34.....56789ABCDEF
1700 + " !\"#\u00ba%&'()*+,-./"
1701 // 0123456789ABCDEF
1702 + "0123456789:;<=>?"
1703 // 0.....123456789ABCDEF
1704 + "\u00cdABCDEFGHIJKLMNO"
1705 // 0123456789AB.....C.....D.....E.....F.....
1706 + "PQRSTUVWXYZ\u00c3\u00d5\u00da\u00dc\u00a7"
1707 // 0123456789ABCDEF
1708 + "~abcdefghijklmno"
1709 // 0123456789AB.....C.....DE.....F.....
1710 + "pqrstuvwxyz\u00e3\u00f5`\u00fc\u00e0",
1711
1712 /**
1713 * National Language Identifier: 0x04
1714 * A.3.4 Bengali National Language Locking Shift Table
1715 */
1716 // 0.....1.....2.....3.....4.....5.....6.....7.....8.....9.....A.B.....CD.EF.....
1717 "\u0981\u0982\u0983\u0985\u0986\u0987\u0988\u0989\u098a\u098b\n\u098c \r \u098f"
1718 // 0.....123.....4.....5.....6.....7.....8.....9.....A.....B.....C.....D.....E.....F.....
1719 + "\u0990 \u0993\u0994\u0995\u0996\u0997\u0998\u0999\u099a\uffff\u099b\u099c\u099d\u099e"
1720 // 012.....3.....4.....5.....6.....7.....89A.....B.....CD.....EF.....
1721 + " !\u099f\u09a0\u09a1\u09a2\u09a3\u09a4)(\u09a5\u09a6,\u09a7.\u09a8"
1722 // 0123456789ABCD.....E.....F
1723 + "0123456789:; \u09aa\u09ab?"
1724 // 0.....1.....2.....3.....4.....56.....789A.....B.....C.....D.....E.....F.....
1725 + "\u09ac\u09ad\u09ae\u09af\u09b0 \u09b2 \u09b6\u09b7\u09b8\u09b9\u09bc\u09bd"
1726 // 0.....1.....2.....3.....4.....5.....6.....789.....A.....BCD.....E.....F.....
1727 + "\u09be\u09bf\u09c0\u09c1\u09c2\u09c3\u09c4 \u09c7\u09c8 \u09cb\u09cc\u09cd"
1728 // 0.....123456789ABCDEF
1729 + "\u09ceabcdefghijklmno"
1730 // 0123456789AB.....C.....D.....E.....F.....
1731 + "pqrstuvwxyz\u09d7\u09dc\u09dd\u09f0\u09f1",
1732
1733 /**
1734 * National Language Identifier: 0x05
1735 * A.3.5 Gujarati National Language Locking Shift Table
1736 */
1737 // 0.....1.....2.....3.....4.....5.....6.....7.....8.....9.....A.B.....C.....D.EF.....
1738 "\u0a81\u0a82\u0a83\u0a85\u0a86\u0a87\u0a88\u0a89\u0a8a\u0a8b\n\u0a8c\u0a8d\r \u0a8f"
1739 // 0.....1.....23.....4.....5.....6.....7.....8.....9.....A.....B.....C.....D.....E.....F.....
1740 + "\u0a90\u0a91 \u0a93\u0a94\u0a95\u0a96\u0a97\u0a98\u0a99\u0a9a\uffff\u0a9b\u0a9c\u0a9d\u0a9e"
1741 // 012.....3.....4.....5.....6.....7.....89A.....B.....CD.....EF.....
1742 + " !\u0a9f\u0aa0\u0aa1\u0aa2\u0aa3\u0aa4)(\u0aa5\u0aa6,\u0aa7.\u0aa8"
1743 // 0123456789ABCD.....E.....F
1744 + "0123456789:; \u0aaa\u0aab?"
1745 // 0.....1.....2.....3.....4.....56.....7.....89.....A.....B.....C.....D.....E.....F.....
1746 + "\u0aac\u0aad\u0aae\u0aaf\u0ab0 \u0ab2\u0ab3 \u0ab5\u0ab6\u0ab7\u0ab8\u0ab9\u0abc\u0abd"
1747 // 0.....1.....2.....3.....4.....5.....6.....7.....89.....A.....B.....CD.....E.....F.....
1748 + "\u0abe\u0abf\u0ac0\u0ac1\u0ac2\u0ac3\u0ac4\u0ac5 \u0ac7\u0ac8\u0ac9 \u0acb\u0acc\u0acd"
1749 // 0.....123456789ABCDEF
1750 + "\u0ad0abcdefghijklmno"
1751 // 0123456789AB.....C.....D.....E.....F.....
1752 + "pqrstuvwxyz\u0ae0\u0ae1\u0ae2\u0ae3\u0af1",
1753
1754 /**
1755 * National Language Identifier: 0x06
1756 * A.3.6 Hindi National Language Locking Shift Table
1757 */
1758 // 0.....1.....2.....3.....4.....5.....6.....7.....8.....9.....A.B.....C.....D.E.....F.....
1759 "\u0901\u0902\u0903\u0905\u0906\u0907\u0908\u0909\u090a\u090b\n\u090c\u090d\r\u090e\u090f"
1760 // 0.....1.....2.....3.....4.....5.....6.....7.....8.....9.....A.....B.....C.....D.....E.....F.....
1761 + "\u0910\u0911\u0912\u0913\u0914\u0915\u0916\u0917\u0918\u0919\u091a\uffff\u091b\u091c\u091d\u091e"
1762 // 012.....3.....4.....5.....6.....7.....89A.....B.....CD.....EF.....
1763 + " !\u091f\u0920\u0921\u0922\u0923\u0924)(\u0925\u0926,\u0927.\u0928"
1764 // 0123456789ABC.....D.....E.....F
1765 + "0123456789:;\u0929\u092a\u092b?"
1766 // 0.....1.....2.....3.....4.....5.....6.....7.....8.....9.....A.....B.....C.....D.....E.....F.....
1767 + "\u092c\u092d\u092e\u092f\u0930\u0931\u0932\u0933\u0934\u0935\u0936\u0937\u0938\u0939\u093c\u093d"
1768 // 0.....1.....2.....3.....4.....5.....6.....7.....8.....9.....A.....B.....C.....D.....E.....F.....
1769 + "\u093e\u093f\u0940\u0941\u0942\u0943\u0944\u0945\u0946\u0947\u0948\u0949\u094a\u094b\u094c\u094d"
1770 // 0.....123456789ABCDEF
1771 + "\u0950abcdefghijklmno"
1772 // 0123456789AB.....C.....D.....E.....F.....
1773 + "pqrstuvwxyz\u0972\u097b\u097c\u097e\u097f",
1774
1775 /**
1776 * National Language Identifier: 0x07
1777 * A.3.7 Kannada National Language Locking Shift Table
1778 */
1779 // 01.....2.....3.....4.....5.....6.....7.....8.....9.....A.B.....CD.E.....F.....
1780 " \u0c82\u0c83\u0c85\u0c86\u0c87\u0c88\u0c89\u0c8a\u0c8b\n\u0c8c \r\u0c8e\u0c8f"
1781 // 0.....12.....3.....4.....5.....6.....7.....8.....9.....A.....B.....C.....D.....E.....F.....
1782 + "\u0c90 \u0c92\u0c93\u0c94\u0c95\u0c96\u0c97\u0c98\u0c99\u0c9a\uffff\u0c9b\u0c9c\u0c9d\u0c9e"
1783 // 012.....3.....4.....5.....6.....7.....89A.....B.....CD.....EF.....
1784 + " !\u0c9f\u0ca0\u0ca1\u0ca2\u0ca3\u0ca4)(\u0ca5\u0ca6,\u0ca7.\u0ca8"
1785 // 0123456789ABCD.....E.....F
1786 + "0123456789:; \u0caa\u0cab?"
1787 // 0.....1.....2.....3.....4.....5.....6.....7.....89.....A.....B.....C.....D.....E.....F.....
1788 + "\u0cac\u0cad\u0cae\u0caf\u0cb0\u0cb1\u0cb2\u0cb3 \u0cb5\u0cb6\u0cb7\u0cb8\u0cb9\u0cbc\u0cbd"
1789 // 0.....1.....2.....3.....4.....5.....6.....78.....9.....A.....BC.....D.....E.....F.....
1790 + "\u0cbe\u0cbf\u0cc0\u0cc1\u0cc2\u0cc3\u0cc4 \u0cc6\u0cc7\u0cc8 \u0cca\u0ccb\u0ccc\u0ccd"
1791 // 0.....123456789ABCDEF
1792 + "\u0cd5abcdefghijklmno"
1793 // 0123456789AB.....C.....D.....E.....F.....
1794 + "pqrstuvwxyz\u0cd6\u0ce0\u0ce1\u0ce2\u0ce3",
1795
1796 /**
1797 * National Language Identifier: 0x08
1798 * A.3.8 Malayalam National Language Locking Shift Table
1799 */
1800 // 01.....2.....3.....4.....5.....6.....7.....8.....9.....A.B.....CD.E.....F.....
1801 " \u0d02\u0d03\u0d05\u0d06\u0d07\u0d08\u0d09\u0d0a\u0d0b\n\u0d0c \r\u0d0e\u0d0f"
1802 // 0.....12.....3.....4.....5.....6.....7.....8.....9.....A.....B.....C.....D.....E.....F.....
1803 + "\u0d10 \u0d12\u0d13\u0d14\u0d15\u0d16\u0d17\u0d18\u0d19\u0d1a\uffff\u0d1b\u0d1c\u0d1d\u0d1e"
1804 // 012.....3.....4.....5.....6.....7.....89A.....B.....CD.....EF.....
1805 + " !\u0d1f\u0d20\u0d21\u0d22\u0d23\u0d24)(\u0d25\u0d26,\u0d27.\u0d28"
1806 // 0123456789ABCD.....E.....F
1807 + "0123456789:; \u0d2a\u0d2b?"
1808 // 0.....1.....2.....3.....4.....5.....6.....7.....8.....9.....A.....B.....C.....D.....EF.....
1809 + "\u0d2c\u0d2d\u0d2e\u0d2f\u0d30\u0d31\u0d32\u0d33\u0d34\u0d35\u0d36\u0d37\u0d38\u0d39 \u0d3d"
1810 // 0.....1.....2.....3.....4.....5.....6.....78.....9.....A.....BC.....D.....E.....F.....
1811 + "\u0d3e\u0d3f\u0d40\u0d41\u0d42\u0d43\u0d44 \u0d46\u0d47\u0d48 \u0d4a\u0d4b\u0d4c\u0d4d"
1812 // 0.....123456789ABCDEF
1813 + "\u0d57abcdefghijklmno"
1814 // 0123456789AB.....C.....D.....E.....F.....
1815 + "pqrstuvwxyz\u0d60\u0d61\u0d62\u0d63\u0d79",
1816
1817 /**
1818 * National Language Identifier: 0x09
1819 * A.3.9 Oriya National Language Locking Shift Table
1820 */
1821 // 0.....1.....2.....3.....4.....5.....6.....7.....8.....9.....A.B.....CD.EF.....
1822 "\u0b01\u0b02\u0b03\u0b05\u0b06\u0b07\u0b08\u0b09\u0b0a\u0b0b\n\u0b0c \r \u0b0f"
1823 // 0.....123.....4.....5.....6.....7.....8.....9.....A.....B.....C.....D.....E.....F.....
1824 + "\u0b10 \u0b13\u0b14\u0b15\u0b16\u0b17\u0b18\u0b19\u0b1a\uffff\u0b1b\u0b1c\u0b1d\u0b1e"
1825 // 012.....3.....4.....5.....6.....7.....89A.....B.....CD.....EF.....
1826 + " !\u0b1f\u0b20\u0b21\u0b22\u0b23\u0b24)(\u0b25\u0b26,\u0b27.\u0b28"
1827 // 0123456789ABCD.....E.....F
1828 + "0123456789:; \u0b2a\u0b2b?"
1829 // 0.....1.....2.....3.....4.....56.....7.....89.....A.....B.....C.....D.....E.....F.....
1830 + "\u0b2c\u0b2d\u0b2e\u0b2f\u0b30 \u0b32\u0b33 \u0b35\u0b36\u0b37\u0b38\u0b39\u0b3c\u0b3d"
1831 // 0.....1.....2.....3.....4.....5.....6.....789.....A.....BCD.....E.....F.....
1832 + "\u0b3e\u0b3f\u0b40\u0b41\u0b42\u0b43\u0b44 \u0b47\u0b48 \u0b4b\u0b4c\u0b4d"
1833 // 0.....123456789ABCDEF
1834 + "\u0b56abcdefghijklmno"
1835 // 0123456789AB.....C.....D.....E.....F.....
1836 + "pqrstuvwxyz\u0b57\u0b60\u0b61\u0b62\u0b63",
1837
1838 /**
1839 * National Language Identifier: 0x0A
1840 * A.3.10 Punjabi National Language Locking Shift Table
1841 */
1842 // 0.....1.....2.....3.....4.....5.....6.....7.....8.....9A.BCD.EF.....
1843 "\u0a01\u0a02\u0a03\u0a05\u0a06\u0a07\u0a08\u0a09\u0a0a \n \r \u0a0f"
1844 // 0.....123.....4.....5.....6.....7.....8.....9.....A.....B.....C.....D.....E.....F.....
1845 + "\u0a10 \u0a13\u0a14\u0a15\u0a16\u0a17\u0a18\u0a19\u0a1a\uffff\u0a1b\u0a1c\u0a1d\u0a1e"
1846 // 012.....3.....4.....5.....6.....7.....89A.....B.....CD.....EF.....
1847 + " !\u0a1f\u0a20\u0a21\u0a22\u0a23\u0a24)(\u0a25\u0a26,\u0a27.\u0a28"
1848 // 0123456789ABCD.....E.....F
1849 + "0123456789:; \u0a2a\u0a2b?"
1850 // 0.....1.....2.....3.....4.....56.....7.....89.....A.....BC.....D.....E.....F
1851 + "\u0a2c\u0a2d\u0a2e\u0a2f\u0a30 \u0a32\u0a33 \u0a35\u0a36 \u0a38\u0a39\u0a3c "
1852 // 0.....1.....2.....3.....4.....56789.....A.....BCD.....E.....F.....
1853 + "\u0a3e\u0a3f\u0a40\u0a41\u0a42 \u0a47\u0a48 \u0a4b\u0a4c\u0a4d"
1854 // 0.....123456789ABCDEF
1855 + "\u0a51abcdefghijklmno"
1856 // 0123456789AB.....C.....D.....E.....F.....
1857 + "pqrstuvwxyz\u0a70\u0a71\u0a72\u0a73\u0a74",
1858
1859 /**
1860 * National Language Identifier: 0x0B
1861 * A.3.11 Tamil National Language Locking Shift Table
1862 */
1863 // 01.....2.....3.....4.....5.....6.....7.....8.....9A.BCD.E.....F.....
1864 " \u0b82\u0b83\u0b85\u0b86\u0b87\u0b88\u0b89\u0b8a \n \r\u0b8e\u0b8f"
1865 // 0.....12.....3.....4.....5.....6789.....A.....B.....CD.....EF.....
1866 + "\u0b90 \u0b92\u0b93\u0b94\u0b95 \u0b99\u0b9a\uffff \u0b9c \u0b9e"
1867 // 012.....3456.....7.....89ABCDEF.....
1868 + " !\u0b9f \u0ba3\u0ba4)( , .\u0ba8"
1869 // 0123456789ABC.....D.....EF
1870 + "0123456789:;\u0ba9\u0baa ?"
1871 // 012.....3.....4.....5.....6.....7.....8.....9.....A.....B.....C.....D.....EF
1872 + " \u0bae\u0baf\u0bb0\u0bb1\u0bb2\u0bb3\u0bb4\u0bb5\u0bb6\u0bb7\u0bb8\u0bb9 "
1873 // 0.....1.....2.....3.....4.....5678.....9.....A.....BC.....D.....E.....F.....
1874 + "\u0bbe\u0bbf\u0bc0\u0bc1\u0bc2 \u0bc6\u0bc7\u0bc8 \u0bca\u0bcb\u0bcc\u0bcd"
1875 // 0.....123456789ABCDEF
1876 + "\u0bd0abcdefghijklmno"
1877 // 0123456789AB.....C.....D.....E.....F.....
1878 + "pqrstuvwxyz\u0bd7\u0bf0\u0bf1\u0bf2\u0bf9",
1879
1880 /**
1881 * National Language Identifier: 0x0C
1882 * A.3.12 Telugu National Language Locking Shift Table
1883 */
1884 // 0.....1.....2.....3.....4.....5.....6.....7.....8.....9.....A.B.....CD.E.....F.....
1885 "\u0c01\u0c02\u0c03\u0c05\u0c06\u0c07\u0c08\u0c09\u0c0a\u0c0b\n\u0c0c \r\u0c0e\u0c0f"
1886 // 0.....12.....3.....4.....5.....6.....7.....8.....9.....A.....B.....C.....D.....E.....F.....
1887 + "\u0c10 \u0c12\u0c13\u0c14\u0c15\u0c16\u0c17\u0c18\u0c19\u0c1a\uffff\u0c1b\u0c1c\u0c1d\u0c1e"
1888 // 012.....3.....4.....5.....6.....7.....89A.....B.....CD.....EF.....
1889 + " !\u0c1f\u0c20\u0c21\u0c22\u0c23\u0c24)(\u0c25\u0c26,\u0c27.\u0c28"
1890 // 0123456789ABCD.....E.....F
1891 + "0123456789:; \u0c2a\u0c2b?"
1892 // 0.....1.....2.....3.....4.....5.....6.....7.....89.....A.....B.....C.....D.....EF.....
1893 + "\u0c2c\u0c2d\u0c2e\u0c2f\u0c30\u0c31\u0c32\u0c33 \u0c35\u0c36\u0c37\u0c38\u0c39 \u0c3d"
1894 // 0.....1.....2.....3.....4.....5.....6.....78.....9.....A.....BC.....D.....E.....F.....
1895 + "\u0c3e\u0c3f\u0c40\u0c41\u0c42\u0c43\u0c44 \u0c46\u0c47\u0c48 \u0c4a\u0c4b\u0c4c\u0c4d"
1896 // 0.....123456789ABCDEF
1897 + "\u0c55abcdefghijklmno"
1898 // 0123456789AB.....C.....D.....E.....F.....
1899 + "pqrstuvwxyz\u0c56\u0c60\u0c61\u0c62\u0c63",
1900
1901 /**
1902 * National Language Identifier: 0x0D
1903 * A.3.13 Urdu National Language Locking Shift Table
1904 */
1905 // 0.....1.....2.....3.....4.....5.....6.....7.....8.....9.....A.B.....C.....D.E.....F.....
1906 "\u0627\u0622\u0628\u067b\u0680\u067e\u06a6\u062a\u06c2\u067f\n\u0679\u067d\r\u067a\u067c"
1907 // 0.....1.....2.....3.....4.....5.....6.....7.....8.....9.....A.....B.....C.....D.....E.....F.....
1908 + "\u062b\u062c\u0681\u0684\u0683\u0685\u0686\u0687\u062d\u062e\u062f\uffff\u068c\u0688\u0689\u068a"
1909 // 012.....3.....4.....5.....6.....7.....89A.....B.....CD.....EF.....
1910 + " !\u068f\u068d\u0630\u0631\u0691\u0693)(\u0699\u0632,\u0696.\u0698"
1911 // 0123456789ABC.....D.....E.....F
1912 + "0123456789:;\u069a\u0633\u0634?"
1913 // 0.....1.....2.....3.....4.....5.....6.....7.....8.....9.....A.....B.....C.....D.....E.....F.....
1914 + "\u0635\u0636\u0637\u0638\u0639\u0641\u0642\u06a9\u06aa\u06ab\u06af\u06b3\u06b1\u0644\u0645\u0646"
1915 // 0.....1.....2.....3.....4.....5.....6.....7.....8.....9.....A.....B.....C.....D.....E.....F.....
1916 + "\u06ba\u06bb\u06bc\u0648\u06c4\u06d5\u06c1\u06be\u0621\u06cc\u06d0\u06d2\u064d\u0650\u064f\u0657"
1917 // 0.....123456789ABCDEF
1918 + "\u0654abcdefghijklmno"
1919 // 0123456789AB.....C.....D.....E.....F.....
1920 + "pqrstuvwxyz\u0655\u0651\u0653\u0656\u0670"
1921 ];
1922
1923 // National Language Single Shift Tables, see 3GPP TS 23.038
1924 this.PDU_NL_SINGLE_SHIFT_TABLES = [
1925 /**
1926 * National Language Identifier: 0x00
1927 * 6.2.1.1 GSM 7 bit default alphabet extension table
1928 */
1929 // 0123456789A.....BCD.....EF
1930 " \u000c \ufffe "
1931 // 0123456789AB.....CDEF
1932 + " ^ \uffff "
1933 // 0123456789ABCDEF.
1934 + " {} \\"
1935 // 0123456789ABCDEF
1936 + " [~] "
1937 // 0123456789ABCDEF
1938 + "| "
1939 // 0123456789ABCDEF
1940 + " "
1941 // 012345.....6789ABCDEF
1942 + " \u20ac "
1943 // 0123456789ABCDEF
1944 + " ",
1945
1946 /**
1947 * National Language Identifier: 0x01
1948 * A.2.1 Turkish National Language Single Shift Table
1949 */
1950 // 0123456789A.....BCD.....EF
1951 " \u000c \ufffe "
1952 // 0123456789AB.....CDEF
1953 + " ^ \uffff "
1954 // 0123456789ABCDEF.
1955 + " {} \\"
1956 // 0123456789ABCDEF
1957 + " [~] "
1958 // 01234567.....89.....ABCDEF
1959 + "| \u011e \u0130 "
1960 // 0123.....456789ABCDEF
1961 + " \u015e "
1962 // 0123.....45.....67.....89.....ABCDEF
1963 + " \u00e7 \u20ac \u011f \u0131 "
1964 // 0123.....456789ABCDEF
1965 + " \u015f ",
1966
1967 /**
1968 * National Language Identifier: 0x02
1969 * A.2.2 Spanish National Language Single Shift Table
1970 */
1971 // 0123456789.....A.....BCD.....EF
1972 " \u00e7\u000c \ufffe "
1973 // 0123456789AB.....CDEF
1974 + " ^ \uffff "
1975 // 0123456789ABCDEF.
1976 + " {} \\"
1977 // 0123456789ABCDEF
1978 + " [~] "
1979 // 01.....23456789.....ABCDEF.....
1980 + "|\u00c1 \u00cd \u00d3"
1981 // 012345.....6789ABCDEF
1982 + " \u00da "
1983 // 01.....2345.....6789.....ABCDEF.....
1984 + " \u00e1 \u20ac \u00ed \u00f3"
1985 // 012345.....6789ABCDEF
1986 + " \u00fa ",
1987
1988 /**
1989 * National Language Identifier: 0x03
1990 * A.2.3 Portuguese National Language Single Shift Table
1991 */
1992 // 012345.....6789.....A.....B.....C.....D.....E.....F.....
1993 " \u00ea \u00e7\u000c\u00d4\u00f4\ufffe\u00c1\u00e1"
1994 // 012.....3.....45.....6.....7.....8.....9.....AB.....CDEF.....
1995 + " \u03a6\u0393^\u03a9\u03a0\u03a8\u03a3\u0398 \uffff \u00ca"
1996 // 0123456789ABCDEF.
1997 + " {} \\"
1998 // 0123456789ABCDEF
1999 + " [~] "
2000 // 01.....23456789.....ABCDEF.....
2001 + "|\u00c0 \u00cd \u00d3"
2002 // 012345.....6789AB.....C.....DEF
2003 + " \u00da \u00c3\u00d5 "
2004 // 01.....2345.....6789.....ABCDEF.....
2005 + " \u00c2 \u20ac \u00ed \u00f3"
2006 // 012345.....6789AB.....C.....DEF.....
2007 + " \u00fa \u00e3\u00f5 \u00e2",
2008
2009 /**
2010 * National Language Identifier: 0x04
2011 * A.2.4 Bengali National Language Single Shift Table
2012 */
2013 // 01.....23.....4.....5.6.....789A.....BCD.....EF
2014 "@\u00a3$\u00a5\u00bf\"\u00a4%&'\u000c*+\ufffe-/"
2015 // 0123.....45.....6789.....A.....B.....C.....D.....E.....F.....
2016 + "<=>\u00a1^\u00a1_#*\u09e6\u09e7\uffff\u09e8\u09e9\u09ea\u09eb"
2017 // 0.....1.....2.....3.....4.....5.....6.....7.....89A.....B.....C.....D.....E.....F.
2018 + "\u09ec\u09ed\u09ee\u09ef\u09df\u09e0\u09e1\u09e2{}\u09e3\u09f2\u09f3\u09f4\u09f5\\"
2019 // 0.....1.....2.....3.....4.....56789ABCDEF
2020 + "\u09f6\u09f7\u09f8\u09f9\u09fa [~] "
2021 // 0123456789ABCDEF
2022 + "|ABCDEFGHIJKLMNO"
2023 // 0123456789ABCDEF
2024 + "PQRSTUVWXYZ "
2025 // 012345.....6789ABCDEF
2026 + " \u20ac "
2027 // 0123456789ABCDEF
2028 + " ",
2029
2030 /**
2031 * National Language Identifier: 0x05
2032 * A.2.5 Gujarati National Language Single Shift Table
2033 */
2034 // 01.....23.....4.....5.6.....789A.....BCD.....EF
2035 "@\u00a3$\u00a5\u00bf\"\u00a4%&'\u000c*+\ufffe-/"
2036 // 0123.....45.....6789.....A.....B.....C.....D.....E.....F.....
2037 + "<=>\u00a1^\u00a1_#*\u0964\u0965\uffff\u0ae6\u0ae7\u0ae8\u0ae9"
2038 // 0.....1.....2.....3.....4.....5.....6789ABCDEF.
2039 + "\u0aea\u0aeb\u0aec\u0aed\u0aee\u0aef {} \\"
2040 // 0123456789ABCDEF
2041 + " [~] "
2042 // 0123456789ABCDEF
2043 + "|ABCDEFGHIJKLMNO"
2044 // 0123456789ABCDEF
2045 + "PQRSTUVWXYZ "
2046 // 012345.....6789ABCDEF
2047 + " \u20ac "
2048 // 0123456789ABCDEF
2049 + " ",
2050
2051 /**
2052 * National Language Identifier: 0x06
2053 * A.2.6 Hindi National Language Single Shift Table
2054 */
2055 // 01.....23.....4.....5.6.....789A.....BCD.....EF
2056 "@\u00a3$\u00a5\u00bf\"\u00a4%&'\u000c*+\ufffe-/"
2057 // 0123.....45.....6789.....A.....B.....C.....D.....E.....F.....
2058 + "<=>\u00a1^\u00a1_#*\u0964\u0965\uffff\u0966\u0967\u0968\u0969"
2059 // 0.....1.....2.....3.....4.....5.....6.....7.....89A.....B.....C.....D.....E.....F.
2060 + "\u096a\u096b\u096c\u096d\u096e\u096f\u0951\u0952{}\u0953\u0954\u0958\u0959\u095a\\"
2061 // 0.....1.....2.....3.....4.....5.....6.....7.....8.....9.....A.....BCDEF
2062 + "\u095b\u095c\u095d\u095e\u095f\u0960\u0961\u0962\u0963\u0970\u0971 [~] "
2063 // 0123456789ABCDEF
2064 + "|ABCDEFGHIJKLMNO"
2065 // 0123456789ABCDEF
2066 + "PQRSTUVWXYZ "
2067 // 012345.....6789ABCDEF
2068 + " \u20ac "
2069 // 0123456789ABCDEF
2070 + " ",
2071
2072 /**
2073 * National Language Identifier: 0x07
2074 * A.2.7 Kannada National Language Single Shift Table
2075 */
2076 // 01.....23.....4.....5.6.....789A.....BCD.....EF
2077 "@\u00a3$\u00a5\u00bf\"\u00a4%&'\u000c*+\ufffe-/"
2078 // 0123.....45.....6789.....A.....B.....C.....D.....E.....F.....
2079 + "<=>\u00a1^\u00a1_#*\u0964\u0965\uffff\u0ce6\u0ce7\u0ce8\u0ce9"
2080 // 0.....1.....2.....3.....4.....5.....6.....7.....89A.....BCDEF.
2081 + "\u0cea\u0ceb\u0cec\u0ced\u0cee\u0cef\u0cde\u0cf1{}\u0cf2 \\"
2082 // 0123456789ABCDEF
2083 + " [~] "
2084 // 0123456789ABCDEF
2085 + "|ABCDEFGHIJKLMNO"
2086 // 0123456789ABCDEF
2087 + "PQRSTUVWXYZ "
2088 // 012345.....6789ABCDEF
2089 + " \u20ac "
2090 // 0123456789ABCDEF
2091 + " ",
2092
2093 /**
2094 * National Language Identifier: 0x08
2095 * A.2.8 Malayalam National Language Single Shift Table
2096 */
2097 // 01.....23.....4.....5.6.....789A.....BCD.....EF
2098 "@\u00a3$\u00a5\u00bf\"\u00a4%&'\u000c*+\ufffe-/"
2099 // 0123.....45.....6789.....A.....B.....C.....D.....E.....F.....
2100 + "<=>\u00a1^\u00a1_#*\u0964\u0965\uffff\u0d66\u0d67\u0d68\u0d69"
2101 // 0.....1.....2.....3.....4.....5.....6.....7.....89A.....B.....C.....D.....E.....F.
2102 + "\u0d6a\u0d6b\u0d6c\u0d6d\u0d6e\u0d6f\u0d70\u0d71{}\u0d72\u0d73\u0d74\u0d75\u0d7a\\"
2103 // 0.....1.....2.....3.....4.....56789ABCDEF
2104 + "\u0d7b\u0d7c\u0d7d\u0d7e\u0d7f [~] "
2105 // 0123456789ABCDEF
2106 + "|ABCDEFGHIJKLMNO"
2107 // 0123456789ABCDEF
2108 + "PQRSTUVWXYZ "
2109 // 012345.....6789ABCDEF
2110 + " \u20ac "
2111 // 0123456789ABCDEF
2112 + " ",
2113
2114 /**
2115 * National Language Identifier: 0x09
2116 * A.2.9 Oriya National Language Single Shift Table
2117 */
2118 // 01.....23.....4.....5.6.....789A.....BCD.....EF
2119 "@\u00a3$\u00a5\u00bf\"\u00a4%&'\u000c*+\ufffe-/"
2120 // 0123.....45.....6789.....A.....B.....C.....D.....E.....F.....
2121 + "<=>\u00a1^\u00a1_#*\u0964\u0965\uffff\u0b66\u0b67\u0b68\u0b69"
2122 // 0.....1.....2.....3.....4.....5.....6.....7.....89A.....B.....C.....DEF.
2123 + "\u0b6a\u0b6b\u0b6c\u0b6d\u0b6e\u0b6f\u0b5c\u0b5d{}\u0b5f\u0b70\u0b71 \\"
2124 // 0123456789ABCDEF
2125 + " [~] "
2126 // 0123456789ABCDEF
2127 + "|ABCDEFGHIJKLMNO"
2128 // 0123456789ABCDEF
2129 + "PQRSTUVWXYZ "
2130 // 012345.....6789ABCDEF
2131 + " \u20ac "
2132 // 0123456789ABCDEF
2133 + " ",
2134
2135 /**
2136 * National Language Identifier: 0x0A
2137 * A.2.10 Punjabi National Language Single Shift Table
2138 */
2139 // 01.....23.....4.....5.6.....789A.....BCD.....EF
2140 "@\u00a3$\u00a5\u00bf\"\u00a4%&'\u000c*+\ufffe-/"
2141 // 0123.....45.....6789.....A.....B.....C.....D.....E.....F.....
2142 + "<=>\u00a1^\u00a1_#*\u0964\u0965\uffff\u0a66\u0a67\u0a68\u0a69"
2143 // 0.....1.....2.....3.....4.....5.....6.....7.....89A.....B.....C.....D.....EF.
2144 + "\u0a6a\u0a6b\u0a6c\u0a6d\u0a6e\u0a6f\u0a59\u0a5a{}\u0a5b\u0a5c\u0a5e\u0a75 \\"
2145 // 0123456789ABCDEF
2146 + " [~] "
2147 // 0123456789ABCDEF
2148 + "|ABCDEFGHIJKLMNO"
2149 // 0123456789ABCDEF
2150 + "PQRSTUVWXYZ "
2151 // 012345.....6789ABCDEF
2152 + " \u20ac "
2153 // 0123456789ABCDEF
2154 + " ",
2155
2156 /**
2157 * National Language Identifier: 0x0B
2158 * A.2.11 Tamil National Language Single Shift Table
2159 */
2160 // 01.....23.....4.....5.6.....789A.....BCD.....EF
2161 "@\u00a3$\u00a5\u00bf\"\u00a4%&'\u000c*+\ufffe-/"
2162 // 0123.....45.....6789.....A.....B.....C.....D.....E.....F.....
2163 + "<=>\u00a1^\u00a1_#*\u0964\u0965\uffff\u0be6\u0be7\u0be8\u0be9"
2164 // 0.....1.....2.....3.....4.....5.....6.....7.....89A.....B.....C.....D.....E.....F.
2165 + "\u0bea\u0beb\u0bec\u0bed\u0bee\u0bef\u0bf3\u0bf4{}\u0bf5\u0bf6\u0bf7\u0bf8\u0bfa\\"
2166 // 0123456789ABCDEF
2167 + " [~] "
2168 // 0123456789ABCDEF
2169 + "|ABCDEFGHIJKLMNO"
2170 // 0123456789ABCDEF
2171 + "PQRSTUVWXYZ "
2172 // 012345.....6789ABCDEF
2173 + " \u20ac "
2174 // 0123456789ABCDEF
2175 + " ",
2176
2177 /**
2178 * National Language Identifier: 0x0C
2179 * A.2.12 Telugu National Language Single Shift Table
2180 */
2181 // 01.....23.....4.....5.6.....789A.....BCD.....EF
2182 "@\u00a3$\u00a5\u00bf\"\u00a4%&'\u000c*+\ufffe-/"
2183 // 0123.....45.....6789AB.....C.....D.....E.....F.....
2184 + "<=>\u00a1^\u00a1_#* \uffff\u0c66\u0c67\u0c68\u0c69"
2185 // 0.....1.....2.....3.....4.....5.....6.....7.....89A.....B.....C.....D.....E.....F.
2186 + "\u0c6a\u0c6b\u0c6c\u0c6d\u0c6e\u0c6f\u0c58\u0c59{}\u0c78\u0c79\u0c7a\u0c7b\u0c7c\\"
2187 // 0.....1.....2.....3456789ABCDEF
2188 + "\u0c7d\u0c7e\u0c7f [~] "
2189 // 0123456789ABCDEF
2190 + "|ABCDEFGHIJKLMNO"
2191 // 0123456789ABCDEF
2192 + "PQRSTUVWXYZ "
2193 // 012345.....6789ABCDEF
2194 + " \u20ac "
2195 // 0123456789ABCDEF
2196 + " ",
2197
2198 /**
2199 * National Language Identifier: 0x0D
2200 * A.2.13 Urdu National Language Single Shift Table
2201 */
2202 // 01.....23.....4.....5.6.....789A.....BCD.....EF
2203 "@\u00a3$\u00a5\u00bf\"\u00a4%&'\u000c*+\ufffe-/"
2204 // 0123.....45.....6789.....A.....B.....C.....D.....E.....F.....
2205 + "<=>\u00a1^\u00a1_#*\u0600\u0601\uffff\u06f0\u06f1\u06f2\u06f3"
2206 // 0.....1.....2.....3.....4.....5.....6.....7.....89A.....B.....C.....D.....E.....F.
2207 + "\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9\u060c\u060d{}\u060e\u060f\u0610\u0611\u0612\\"
2208 // 0.....1.....2.....3.....4.....5.....6.....7.....8.....9.....A.....B.....CDEF.....
2209 + "\u0613\u0614\u061b\u061f\u0640\u0652\u0658\u066b\u066c\u0672\u0673\u06cd[~]\u06d4"
2210 // 0123456789ABCDEF
2211 + "|ABCDEFGHIJKLMNO"
2212 // 0123456789ABCDEF
2213 + "PQRSTUVWXYZ "
2214 // 012345.....6789ABCDEF
2215 + " \u20ac "
2216 // 0123456789ABCDEF
2217 + " "
2218 ];
2219
2220 // Special SMS Message Indication constants
2221 this.PDU_MWI_STORE_TYPE_BIT = 0x80;
2222 this.PDU_MWI_STORE_TYPE_DISCARD = 0x00;
2223 this.PDU_MWI_STORE_TYPE_STORE = 0x80;
2224
2225 this.GSM_SMS_STRICT_7BIT_CHARMAP = {
2226 //"\u0024": "\u0024", // "$" => "$", already in default alphabet
2227 //"\u00a5": "\u00a5", // "¥" => "¥", already in default alphabet
2228 "\u00c0": "\u0041", // "À" => "A"
2229 "\u00c1": "\u0041", // "Á" => "A"
2230 "\u00c2": "\u0041", // "Â" => "A"
2231 "\u00c3": "\u0041", // "Ã" => "A"
2232 //"\u00c4": "\u00c4", // "Ä" => "Ä", already in default alphabet
2233 //"\u00c5": "\u00c5", // "Å" => "Å", already in default alphabet
2234 //"\u00c6": "\u00c6", // "Æ" => "Æ", already in default alphabet
2235 //"\u00c7": "\u00c7", // "Ç" => "Ç", already in default alphabet
2236 "\u00c8": "\u0045", // "È" => "E"
2237 //"\u00c9": "\u00c9", // "É" => "É", already in default alphabet
2238 "\u00ca": "\u0045", // "Ê" => "E"
2239 "\u00cb": "\u0045", // "Ë" => "E"
2240 "\u00cc": "\u0049", // "Ì" => "I"
2241 "\u00cd": "\u0049", // "Í" => "I"
2242 "\u00ce": "\u0049", // "Î" => "I"
2243 "\u00cf": "\u0049", // "Ï" => "I"
2244 //"\u00d1": "\u00d1", // "Ñ" => "Ñ", already in default alphabet
2245 "\u00d2": "\u004f", // "Ò" => "O"
2246 "\u00d3": "\u004f", // "Ó" => "O"
2247 "\u00d4": "\u004f", // "Ô" => "O"
2248 "\u00d5": "\u004f", // "Õ" => "O"
2249 //"\u00d6": "\u00d6", // "Ö" => "Ö", already in default alphabet
2250 "\u00d9": "\u0055", // "Ù" => "U"
2251 "\u00da": "\u0055", // "Ú" => "U"
2252 "\u00db": "\u0055", // "Û" => "U"
2253 //"\u00dc": "\u00dc", // "Ü" => "Ü", already in default alphabet
2254 //"\u00df": "\u00df", // "ß" => "ß", already in default alphabet
2255 //"\u00e0": "\u00e0", // "à" => "à", already in default alphabet
2256 "\u00e1": "\u0061", // "á" => "a"
2257 "\u00e2": "\u0061", // "â" => "a"
2258 "\u00e3": "\u0061", // "ã" => "a"
2259 //"\u00e4": "\u00e4", // "ä" => "ä", already in default alphabet
2260 //"\u00e5": "\u00e5", // "å" => "å", already in default alphabet
2261 //"\u00e6": "\u00e6", // "æ" => "æ", already in default alphabet
2262 "\u00e7": "\u00c7", // "ç" => "Ç"
2263 //"\u00e8": "\u00e8", // "è" => "è", already in default alphabet
2264 //"\u00e9": "\u00e9", // "é" => "é", already in default alphabet
2265 "\u00ea": "\u0065", // "ê" => "e"
2266 "\u00eb": "\u0065", // "ë" => "e"
2267 //"\u00ec": "\u00ec", // "ì" => "ì", already in default alphabet
2268 "\u00ed": "\u0069", // "í" => "i"
2269 "\u00ee": "\u0069", // "î" => "i"
2270 "\u00ef": "\u0069", // "ï" => "i"
2271 //"\u00f1": "\u00f1", // "ñ" => "ñ", already in default alphabet
2272 //"\u00f2": "\u00f2", // "ò" => "ò", already in default alphabet
2273 "\u00f3": "\u006f", // "ó" => "o"
2274 "\u00f4": "\u006f", // "ô" => "o"
2275 "\u00f5": "\u006f", // "õ" => "o"
2276 //"\u00f6": "\u00f6", // "ö" => "ö", already in default alphabet
2277 //"\u00f8": "\u00f8", // "ø" => "ø", already in default alphabet
2278 //"\u00f9": "\u00f9", // "ù" => "ù", already in default alphabet
2279 "\u00fa": "\u0075", // "ú" => "u"
2280 "\u00fb": "\u0075", // "û" => "u"
2281 //"\u00fc": "\u00fc", // "ü" => "ü", already in default alphabet
2282 "\u00fe": "\u0074", // "þ" => "t"
2283 "\u0100": "\u0041", // "Ā" => "A"
2284 "\u0101": "\u0061", // "ā" => "a"
2285 "\u0106": "\u0043", // "Ć" => "C"
2286 "\u0107": "\u0063", // "ć" => "c"
2287 "\u010c": "\u0043", // "Č" => "C"
2288 "\u010d": "\u0063", // "č" => "c"
2289 "\u010f": "\u0064", // "ď" => "d"
2290 "\u0110": "\u0044", // "Đ" => "D"
2291 "\u0111": "\u0064", // "đ" => "d"
2292 "\u0112": "\u0045", // "Ē" => "E"
2293 "\u0113": "\u0065", // "ē" => "e"
2294 "\u0118": "\u0045", // "Ę" => "E"
2295 "\u0119": "\u0065", // "ę" => "e"
2296 "\u0128": "\u0049", // "Ĩ" => "I"
2297 "\u0129": "\u0069", // "ĩ" => "i"
2298 "\u012a": "\u0049", // "Ī" => "I"
2299 "\u012b": "\u0069", // "ī" => "i"
2300 "\u012e": "\u0049", // "Į" => "I"
2301 "\u012f": "\u0069", // "į" => "i"
2302 "\u0141": "\u004c", // "Ł" => "L"
2303 "\u0142": "\u006c", // "ł" => "l"
2304 "\u0143": "\u004e", // "Ń" => "N"
2305 "\u0144": "\u006e", // "ń" => "n"
2306 "\u0147": "\u004e", // "Ň" => "N"
2307 "\u0148": "\u006e", // "ň" => "n"
2308 "\u014c": "\u004f", // "Ō" => "O"
2309 "\u014d": "\u006f", // "ō" => "o"
2310 "\u0152": "\u004f", // "Œ" => "O"
2311 "\u0153": "\u006f", // "œ" => "o"
2312 "\u0158": "\u0052", // "Ř" => "R"
2313 "\u0159": "\u0072", // "ř" => "r"
2314 "\u0160": "\u0053", // "Š" => "S"
2315 "\u0161": "\u0073", // "š" => "s"
2316 "\u0165": "\u0074", // "ť" => "t"
2317 "\u0168": "\u0055", // "Ū" => "U"
2318 "\u0169": "\u0075", // "ū" => "u"
2319 "\u016a": "\u0055", // "Ū" => "U"
2320 "\u016b": "\u0075", // "ū" => "u"
2321 "\u0178": "\u0059", // "Ÿ" => "Y"
2322 "\u0179": "\u005a", // "Ź" => "Z"
2323 "\u017a": "\u007a", // "ź" => "z"
2324 "\u017b": "\u005a", // "Ż" => "Z"
2325 "\u017c": "\u007a", // "ż" => "z"
2326 "\u017d": "\u005a", // "Ž" => "Z"
2327 "\u017e": "\u007a", // "ž" => "z"
2328 "\u025b": "\u0045", // "ɛ" => "E"
2329 //"\u0398": "\u0398", // "Θ" => "Θ", already in default alphabet
2330 "\u1e7c": "\u0056", // "Ṽ" => "V"
2331 "\u1e7d": "\u0076", // "ṽ" => "v"
2332 "\u1ebc": "\u0045", // "Ẽ" => "E"
2333 "\u1ebd": "\u0065", // "ẽ" => "e"
2334 "\u1ef8": "\u0059", // "Ỹ" => "Y"
2335 "\u1ef9": "\u0079", // "ỹ" => "y"
2336 "\u20a4": "\u00a3", // "₤" => "£"
2337 //"\u20ac": "\u20ac", // "€" => "€", already in default alphabet
2338 };
2339
2340 this.RADIOTECH_FAMILY_3GPP = 1; // GSM, WCDMA, LTE
2341 this.RADIOTECH_FAMILY_3GPP2 = 2; // CDMA, EVDO
2342
2343 this.DATACALL_RADIOTECHNOLOGY_CDMA = 0;
2344 this.DATACALL_RADIOTECHNOLOGY_GSM = 1;
2345
2346 this.DATACALL_AUTH_NONE = 0;
2347 this.DATACALL_AUTH_PAP = 1;
2348 this.DATACALL_AUTH_CHAP = 2;
2349 this.DATACALL_AUTH_PAP_OR_CHAP = 3;
2350
2351 this.GECKO_DATACALL_AUTH_NONE = "none";
2352 this.GECKO_DATACALL_AUTH_PAP = "pap";
2353 this.GECKO_DATACALL_AUTH_CHAP = "chap";
2354 this.GECKO_DATACALL_AUTH_PAP_OR_CHAP = "papOrChap";
2355 this.GECKO_DATACALL_AUTH_DEFAULT = GECKO_DATACALL_AUTH_PAP_OR_CHAP;
2356 this.RIL_DATACALL_AUTH_TO_GECKO = [
2357 GECKO_DATACALL_AUTH_NONE, // DATACALL_AUTH_NONE
2358 GECKO_DATACALL_AUTH_PAP, // DATACALL_AUTH_PAP
2359 GECKO_DATACALL_AUTH_CHAP, // DATACALL_AUTH_CHAP
2360 GECKO_DATACALL_AUTH_PAP_OR_CHAP // DATACALL_AUTH_PAP_OR_CHAP
2361 ];
2362
2363 this.GECKO_DATACALL_PDP_TYPE_IP = "IP";
2364 this.GECKO_DATACALL_PDP_TYPE_IPV4V6 = "IPV4V6";
2365 this.GECKO_DATACALL_PDP_TYPE_IPV6 = "IPV6";
2366 this.GECKO_DATACALL_PDP_TYPE_DEFAULT = GECKO_DATACALL_PDP_TYPE_IP;
2367 this.RIL_DATACALL_PDP_TYPES = [
2368 GECKO_DATACALL_PDP_TYPE_IP,
2369 GECKO_DATACALL_PDP_TYPE_IPV4V6,
2370 GECKO_DATACALL_PDP_TYPE_IPV6,
2371 ];
2372
2373 this.DATACALL_PROFILE_DEFAULT = 0;
2374 this.DATACALL_PROFILE_TETHERED = 1;
2375 this.DATACALL_PROFILE_OEM_BASE = 1000;
2376
2377 this.DATACALL_DEACTIVATE_NO_REASON = 0;
2378 this.DATACALL_DEACTIVATE_RADIO_SHUTDOWN = 1;
2379
2380 this.DATACALL_ACTIVE_UNKNOWN = -1;
2381 this.DATACALL_INACTIVE = 0;
2382 this.DATACALL_ACTIVE_DOWN = 1;
2383 this.DATACALL_ACTIVE_UP = 2;
2384
2385 this.DATACALL_FAIL_NONE = 0;
2386 this.DATACALL_FAIL_OPERATOR_BARRED = 0x08;
2387 this.DATACALL_FAIL_INSUFFICIENT_RESOURCES = 0x1A;
2388 this.DATACALL_FAIL_MISSING_UKNOWN_APN = 0x1B;
2389 this.DATACALL_FAIL_UNKNOWN_PDP_ADDRESS_TYPE = 0x1C;
2390 this.DATACALL_FAIL_USER_AUTHENTICATION = 0x1D;
2391 this.DATACALL_FAIL_ACTIVATION_REJECT_GGSN = 0x1E;
2392 this.DATACALL_FAIL_ACTIVATION_REJECT_UNSPECIFIED = 0x1F;
2393 this.DATACALL_FAIL_SERVICE_OPTION_NOT_SUPPORTED = 0x20;
2394 this.DATACALL_FAIL_SERVICE_OPTION_NOT_SUBSCRIBED = 0x21;
2395 this.DATACALL_FAIL_SERVICE_OPTION_OUT_OF_ORDER = 0x22;
2396 this.DATACALL_FAIL_NSAPI_IN_USE = 0x23;
2397 this.DATACALL_FAIL_ONLY_IPV4_ALLOWED = 0x32;
2398 this.DATACALL_FAIL_ONLY_IPV6_ALLOWED = 0x33;
2399 this.DATACALL_FAIL_ONLY_SINGLE_BEARER_ALLOWED = 0x34;
2400 this.DATACALL_FAIL_PROTOCOL_ERRORS = 0x6F;
2401 this.DATACALL_FAIL_VOICE_REGISTRATION_FAIL = -1;
2402 this.DATACALL_FAIL_DATA_REGISTRATION_FAIL = -2;
2403 this.DATACALL_FAIL_SIGNAL_LOST = -3;
2404 this.DATACALL_FAIL_PREF_RADIO_TECH_CHANGED = -4;
2405 this.DATACALL_FAIL_RADIO_POWER_OFF = -5;
2406 this.DATACALL_FAIL_TETHERED_CALL_ACTIVE = -6;
2407 this.DATACALL_FAIL_ERROR_UNSPECIFIED = 0xffff;
2408
2409 // Keep consistent with nsINetworkManager.NETWORK_STATE_*.
2410 this.GECKO_NETWORK_STATE_UNKNOWN = -1;
2411 this.GECKO_NETWORK_STATE_CONNECTING = 0;
2412 this.GECKO_NETWORK_STATE_CONNECTED = 1;
2413 this.GECKO_NETWORK_STATE_DISCONNECTING = 2;
2414 this.GECKO_NETWORK_STATE_DISCONNECTED = 3;
2415
2416 // Used for QUERY_AVAILABLE_NETWORKS status of "unknown"
2417 this.GECKO_QAN_STATE_UNKNOWN = null;
2418
2419 this.CALL_FAIL_UNOBTAINABLE_NUMBER = 1;
2420 this.CALL_FAIL_NORMAL = 16;
2421 this.CALL_FAIL_BUSY = 17;
2422 this.CALL_FAIL_NO_USER_RESPONDING = 18;
2423 this.CALL_FAIL_USER_ALERTING = 19;
2424 this.CALL_FAIL_CALL_REJECTED = 21;
2425 this.CALL_FAIL_NUMBER_CHANGED = 22;
2426 this.CALL_FAIL_CALL_PRE_EMPTION = 25;
2427 this.CALL_FAIL_DEST_OUT_OF_ORDER = 27;
2428 this.CALL_FAIL_INVALID_FORMAT = 28;
2429 this.CALL_FAIL_FACILITY_REJECTED = 29;
2430 this.CALL_FAIL_CONGESTION = 34;
2431 this.CALL_FAIL_NETWORK_OUT_OF_ORDER = 38;
2432 this.CALL_FAIL_NETWORK_TEMP_FAILURE = 41;
2433 this.CALL_FAIL_ACM_LIMIT_EXCEEDED = 68;
2434 this.CALL_FAIL_CALL_BARRED = 240;
2435 this.CALL_FAIL_FDN_BLOCKED = 241;
2436 this.CALL_FAIL_IMSI_UNKNOWN_IN_VLR = 242;
2437 this.CALL_FAIL_IMEI_NOT_ACCEPTED = 243;
2438 this.CALL_FAIL_ERROR_UNSPECIFIED = 0xffff;
2439
2440 // Other Gecko-specific constants
2441 this.GECKO_RADIOSTATE_UNAVAILABLE = null;
2442 this.GECKO_RADIOSTATE_OFF = "off";
2443 this.GECKO_RADIOSTATE_READY = "ready";
2444
2445 this.GECKO_DETAILED_RADIOSTATE_UNKNOWN = null;
2446 this.GECKO_DETAILED_RADIOSTATE_ENABLING = "enabling";
2447 this.GECKO_DETAILED_RADIOSTATE_ENABLED = "enabled";
2448 this.GECKO_DETAILED_RADIOSTATE_DISABLING = "disabling";
2449 this.GECKO_DETAILED_RADIOSTATE_DISABLED = "disabled";
2450
2451 this.GECKO_CARDSTATE_UNINITIALIZED = "uninitialized";
2452 this.GECKO_CARDSTATE_UNDETECTED = null;
2453 this.GECKO_CARDSTATE_ILLEGAL = "illegal";
2454 this.GECKO_CARDSTATE_UNKNOWN = "unknown";
2455 this.GECKO_CARDSTATE_PIN_REQUIRED = "pinRequired";
2456 this.GECKO_CARDSTATE_PUK_REQUIRED = "pukRequired";
2457 this.GECKO_CARDSTATE_PERSONALIZATION_IN_PROGRESS = "personalizationInProgress";
2458 this.GECKO_CARDSTATE_PERSONALIZATION_READY = "personalizationReady";
2459 this.GECKO_CARDSTATE_NETWORK_LOCKED = "networkLocked";
2460 this.GECKO_CARDSTATE_NETWORK_SUBSET_LOCKED = "networkSubsetLocked";
2461 this.GECKO_CARDSTATE_NETWORK1_LOCKED = "network1Locked";
2462 this.GECKO_CARDSTATE_NETWORK2_LOCKED = "network2Locked";
2463 this.GECKO_CARDSTATE_HRPD_NETWORK_LOCKED = "hrpdNetworkLocked";
2464 this.GECKO_CARDSTATE_CORPORATE_LOCKED = "corporateLocked";
2465 this.GECKO_CARDSTATE_SERVICE_PROVIDER_LOCKED = "serviceProviderLocked";
2466 this.GECKO_CARDSTATE_SIM_LOCKED = "simPersonalizationLock";
2467 this.GECKO_CARDSTATE_RUIM_CORPORATE_LOCKED = "ruimCorporateLocked";
2468 this.GECKO_CARDSTATE_RUIM_SERVICE_PROVIDER_LOCKED = "ruimServiceProviderLocked";
2469 this.GECKO_CARDSTATE_RUIM_LOCKED = "ruimPersonalizationLock";
2470 this.GECKO_CARDSTATE_NETWORK_PUK_REQUIRED = "networkPukRequired";
2471 this.GECKO_CARDSTATE_NETWORK_SUBSET_PUK_REQUIRED = "networkSubsetPukRequired";
2472 this.GECKO_CARDSTATE_NETWORK1_PUK_REQUIRED = "network1PukRequired";
2473 this.GECKO_CARDSTATE_NETWORK2_PUK_REQUIRED = "network2PukRequired";
2474 this.GECKO_CARDSTATE_HRPD_NETWORK_PUK_REQUIRED = "hrpdNetworkPukRequired";
2475 this.GECKO_CARDSTATE_CORPORATE_PUK_REQUIRED = "corporatePukRequired";
2476 this.GECKO_CARDSTATE_SERVICE_PROVIDER_PUK_REQUIRED = "serviceProviderPukRequired";
2477 this.GECKO_CARDSTATE_SIM_PUK_REQUIRED = "simPersonalizationPukRequired";
2478 this.GECKO_CARDSTATE_RUIM_CORPORATE_PUK_REQUIRED = "ruimCorporatePukRequired";
2479 this.GECKO_CARDSTATE_RUIM_SERVICE_PROVIDER_PUK_REQUIRED = "ruimServiceProviderPukRequired";
2480 this.GECKO_CARDSTATE_RUIM_PUK_REQUIRED = "ruimPersonalizationPukRequired";
2481 this.GECKO_CARDSTATE_READY = "ready";
2482 this.GECKO_CARDSTATE_PERMANENT_BLOCKED = "permanentBlocked";
2483
2484 this.GECKO_CARDLOCK_PIN = "pin";
2485 this.GECKO_CARDLOCK_PIN2 = "pin2";
2486 this.GECKO_CARDLOCK_PUK = "puk";
2487 this.GECKO_CARDLOCK_PUK2 = "puk2";
2488 this.GECKO_CARDLOCK_FDN = "fdn";
2489 this.GECKO_CARDLOCK_NCK = "nck";
2490 this.GECKO_CARDLOCK_NCK1 = "nck1";
2491 this.GECKO_CARDLOCK_NCK2 = "nck2";
2492 this.GECKO_CARDLOCK_HNCK = "hnck";
2493 this.GECKO_CARDLOCK_CCK = "cck";
2494 this.GECKO_CARDLOCK_SPCK = "spck";
2495 this.GECKO_CARDLOCK_RCCK = "rcck";
2496 this.GECKO_CARDLOCK_RSPCK = "rspck";
2497 this.GECKO_CARDLOCK_NCK_PUK = "nckPuk";
2498 this.GECKO_CARDLOCK_NCK1_PUK = "nck1Puk";
2499 this.GECKO_CARDLOCK_NCK2_PUK = "nck2Puk";
2500 this.GECKO_CARDLOCK_HNCK_PUK = "hnckPuk";
2501 this.GECKO_CARDLOCK_CCK_PUK = "cckPuk";
2502 this.GECKO_CARDLOCK_SPCK_PUK = "spckPuk";
2503 this.GECKO_CARDLOCK_RCCK_PUK = "rcckPuk";
2504 this.GECKO_CARDLOCK_RSPCK_PUK = "rspckPuk";
2505
2506 // See ril.h RIL_PersoSubstate
2507 this.PERSONSUBSTATE = {};
2508 PERSONSUBSTATE[CARD_PERSOSUBSTATE_UNKNOWN] = GECKO_CARDSTATE_UNKNOWN;
2509 PERSONSUBSTATE[CARD_PERSOSUBSTATE_IN_PROGRESS] = GECKO_CARDSTATE_PERSONALIZATION_IN_PROGRESS;
2510 PERSONSUBSTATE[CARD_PERSOSUBSTATE_READY] = GECKO_CARDSTATE_PERSONALIZATION_READY;
2511 PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_NETWORK] = GECKO_CARDSTATE_NETWORK_LOCKED;
2512 PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_NETWORK_SUBSET] = GECKO_CARDSTATE_NETWORK_SUBSET_LOCKED;
2513 PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_CORPORATE] = GECKO_CARDSTATE_CORPORATE_LOCKED;
2514 PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_SERVICE_PROVIDER] = GECKO_CARDSTATE_SERVICE_PROVIDER_LOCKED;
2515 PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_SIM] = GECKO_CARDSTATE_SIM_LOCKED;
2516 PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_NETWORK_PUK] = GECKO_CARDSTATE_NETWORK_PUK_REQUIRED;
2517 PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK] = GECKO_CARDSTATE_NETWORK_SUBSET_PUK_REQUIRED;
2518 PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_CORPORATE_PUK] = GECKO_CARDSTATE_CORPORATE_PUK_REQUIRED;
2519 PERSONSUBSTATE[CARD_PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK] = GECKO_CARDSTATE_SERVICE_PROVIDER_PUK_REQUIRED;
2520 PERSONSUBSTATE[CARD_PERSOSUBSTATE_RUIM_NETWORK1] = GECKO_CARDSTATE_NETWORK1_LOCKED;
2521 PERSONSUBSTATE[CARD_PERSOSUBSTATE_RUIM_NETWORK2] = GECKO_CARDSTATE_NETWORK2_LOCKED;
2522 PERSONSUBSTATE[CARD_PERSOSUBSTATE_RUIM_HRPD] = GECKO_CARDSTATE_HRPD_NETWORK_LOCKED;
2523 PERSONSUBSTATE[CARD_PERSOSUBSTATE_RUIM_CORPORATE] = GECKO_CARDSTATE_RUIM_CORPORATE_LOCKED;
2524 PERSONSUBSTATE[CARD_PERSOSUBSTATE_RUIM_SERVICE_PROVIDER] = GECKO_CARDSTATE_RUIM_SERVICE_PROVIDER_LOCKED;
2525 PERSONSUBSTATE[CARD_PERSOSUBSTATE_RUIM_RUIM] = GECKO_CARDSTATE_RUIM_LOCKED;
2526 PERSONSUBSTATE[CARD_PERSOSUBSTATE_RUIM_NETWORK1_PUK] = GECKO_CARDSTATE_NETWORK1_PUK_REQUIRED;
2527 PERSONSUBSTATE[CARD_PERSOSUBSTATE_RUIM_NETWORK2_PUK] = GECKO_CARDSTATE_NETWORK2_PUK_REQUIRED;
2528 PERSONSUBSTATE[CARD_PERSOSUBSTATE_RUIM_HRPD_PUK] = GECKO_CARDSTATE_HRPD_NETWORK_PUK_REQUIRED;
2529 PERSONSUBSTATE[CARD_PERSOSUBSTATE_RUIM_CORPORATE_PUK] = GECKO_CARDSTATE_RUIM_CORPORATE_PUK_REQUIRED;
2530 PERSONSUBSTATE[CARD_PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK] = GECKO_CARDSTATE_RUIM_SERVICE_PROVIDER_PUK_REQUIRED;
2531 PERSONSUBSTATE[CARD_PERSOSUBSTATE_RUIM_RUIM_PUK] = GECKO_CARDSTATE_RUIM_PUK_REQUIRED;
2532
2533 this.GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK = {};
2534 GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK[GECKO_CARDLOCK_NCK] = CARD_PERSOSUBSTATE_SIM_NETWORK;
2535 GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK[GECKO_CARDLOCK_NCK1] = CARD_PERSOSUBSTATE_RUIM_NETWORK1;
2536 GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK[GECKO_CARDLOCK_NCK2] = CARD_PERSOSUBSTATE_RUIM_NETWORK2;
2537 GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK[GECKO_CARDLOCK_HNCK] = CARD_PERSOSUBSTATE_RUIM_HRPD;
2538 GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK[GECKO_CARDLOCK_CCK] = CARD_PERSOSUBSTATE_SIM_CORPORATE;
2539 GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK[GECKO_CARDLOCK_SPCK] = CARD_PERSOSUBSTATE_SIM_SERVICE_PROVIDER;
2540 GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK[GECKO_CARDLOCK_RCCK] = CARD_PERSOSUBSTATE_RUIM_CORPORATE;
2541 GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK[GECKO_CARDLOCK_RSPCK] = CARD_PERSOSUBSTATE_RUIM_SERVICE_PROVIDER;
2542 GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK[GECKO_CARDLOCK_NCK_PUK] = CARD_PERSOSUBSTATE_SIM_NETWORK_PUK;
2543 GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK[GECKO_CARDLOCK_NCK1_PUK] = CARD_PERSOSUBSTATE_RUIM_NETWORK1_PUK;
2544 GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK[GECKO_CARDLOCK_NCK2_PUK] = CARD_PERSOSUBSTATE_RUIM_NETWORK2_PUK;
2545 GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK[GECKO_CARDLOCK_HNCK_PUK] = CARD_PERSOSUBSTATE_RUIM_HRPD_PUK;
2546 GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK[GECKO_CARDLOCK_CCK_PUK] = CARD_PERSOSUBSTATE_SIM_CORPORATE_PUK;
2547 GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK[GECKO_CARDLOCK_SPCK_PUK] = CARD_PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK;
2548 GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK[GECKO_CARDLOCK_RCCK_PUK] = CARD_PERSOSUBSTATE_RUIM_CORPORATE_PUK;
2549 GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK[GECKO_CARDLOCK_RSPCK_PUK] = CARD_PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK;
2550
2551 this.GECKO_NETWORK_SELECTION_UNKNOWN = null;
2552 this.GECKO_NETWORK_SELECTION_AUTOMATIC = "automatic";
2553 this.GECKO_NETWORK_SELECTION_MANUAL = "manual";
2554
2555 this.GECKO_MOBILE_CONNECTION_STATE_UNKNOWN = null;
2556 this.GECKO_MOBILE_CONNECTION_STATE_NOTSEARCHING = "notSearching";
2557 this.GECKO_MOBILE_CONNECTION_STATE_SEARCHING = "searching";
2558 this.GECKO_MOBILE_CONNECTION_STATE_REGISTERED = "registered";
2559 this.GECKO_MOBILE_CONNECTION_STATE_DENIED = "denied";
2560
2561 this.NETWORK_CREG_TO_GECKO_MOBILE_CONNECTION_STATE = {};
2562 NETWORK_CREG_TO_GECKO_MOBILE_CONNECTION_STATE[NETWORK_CREG_STATE_NOT_SEARCHING] = GECKO_MOBILE_CONNECTION_STATE_NOTSEARCHING;
2563 NETWORK_CREG_TO_GECKO_MOBILE_CONNECTION_STATE[NETWORK_CREG_STATE_REGISTERED_HOME] = GECKO_MOBILE_CONNECTION_STATE_REGISTERED;
2564 NETWORK_CREG_TO_GECKO_MOBILE_CONNECTION_STATE[NETWORK_CREG_STATE_SEARCHING] = GECKO_MOBILE_CONNECTION_STATE_SEARCHING;
2565 NETWORK_CREG_TO_GECKO_MOBILE_CONNECTION_STATE[NETWORK_CREG_STATE_DENIED] = GECKO_MOBILE_CONNECTION_STATE_DENIED;
2566 NETWORK_CREG_TO_GECKO_MOBILE_CONNECTION_STATE[NETWORK_CREG_STATE_UNKNOWN] = GECKO_MOBILE_CONNECTION_STATE_UNKNOWN;
2567 NETWORK_CREG_TO_GECKO_MOBILE_CONNECTION_STATE[NETWORK_CREG_STATE_REGISTERED_ROAMING] = GECKO_MOBILE_CONNECTION_STATE_REGISTERED;
2568 NETWORK_CREG_TO_GECKO_MOBILE_CONNECTION_STATE[NETWORK_CREG_STATE_NOT_SEARCHING_EMERGENCY_CALLS] = GECKO_MOBILE_CONNECTION_STATE_NOTSEARCHING;
2569 NETWORK_CREG_TO_GECKO_MOBILE_CONNECTION_STATE[NETWORK_CREG_STATE_SEARCHING_EMERGENCY_CALLS] = GECKO_MOBILE_CONNECTION_STATE_SEARCHING;
2570 NETWORK_CREG_TO_GECKO_MOBILE_CONNECTION_STATE[NETWORK_CREG_STATE_DENIED_EMERGENCY_CALLS] = GECKO_MOBILE_CONNECTION_STATE_DENIED;
2571 NETWORK_CREG_TO_GECKO_MOBILE_CONNECTION_STATE[NETWORK_CREG_STATE_UNKNOWN_EMERGENCY_CALLS] = GECKO_MOBILE_CONNECTION_STATE_UNKNOWN;
2572
2573
2574 this.GECKO_CALL_ERROR_BAD_NUMBER = "BadNumberError";
2575 this.GECKO_CALL_ERROR_NORMAL_CALL_CLEARING = "NormalCallClearingError";
2576 this.GECKO_CALL_ERROR_BUSY = "BusyError";
2577 this.GECKO_CALL_ERROR_NO_USER_RESPONDING = "NoUserRespondingError";
2578 this.GECKO_CALL_ERROR_USER_ALERTING = "UserAlertingNoAnswerError";
2579 this.GECKO_CALL_ERROR_REJECTED = "CallRejectedError";
2580 this.GECKO_CALL_ERROR_NUMBER_CHANGED = "NumberChangedError";
2581 this.GECKO_CALL_ERROR_PRE_EMPTION = "PreEmptionError";
2582 this.GECKO_CALL_ERROR_DEST_OUT_OF_ORDER = "DestinationOutOfOrderError";
2583 this.GECKO_CALL_ERROR_INVALID_NUMBER_FORMAT = "InvalidNumberFormatError";
2584 this.GECKO_CALL_ERROR_FACILITY_REJECTED = "FacilityRejectedError";
2585 this.GECKO_CALL_ERROR_CONGESTION = "CongestionError";
2586 this.GECKO_CALL_ERROR_NETWORK_OUT_OF_ORDER = "NetworkOutOfOrderError";
2587 this.GECKO_CALL_ERROR_NETWORK_TEMP_FAILURE = "NetworkTempFailureError";
2588 this.GECKO_CALL_ERROR_INCOMING_CALL_EXCEEDED = "IncomingCallExceededError";
2589 this.GECKO_CALL_ERROR_BARRED = "BarredError";
2590 this.GECKO_CALL_ERROR_FDN_BLOCKED = "FDNBlockedError";
2591 this.GECKO_CALL_ERROR_SUBSCRIBER_UNKNOWN = "SubscriberUnknownError";
2592 this.GECKO_CALL_ERROR_DEVICE_NOT_ACCEPTED = "DeviceNotAcceptedError";
2593 this.GECKO_CALL_ERROR_UNSPECIFIED = "UnspecifiedError";
2594
2595 this.RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR = {};
2596 RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_UNOBTAINABLE_NUMBER] = GECKO_CALL_ERROR_BAD_NUMBER;
2597 RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_NORMAL] = GECKO_CALL_ERROR_NORMAL_CALL_CLEARING;
2598 RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_BUSY] = GECKO_CALL_ERROR_BUSY;
2599 RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_NO_USER_RESPONDING] = GECKO_CALL_ERROR_NO_USER_RESPONDING;
2600 RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_USER_ALERTING] = GECKO_CALL_ERROR_USER_ALERTING;
2601 RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_CALL_REJECTED] = GECKO_CALL_ERROR_REJECTED;
2602 RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_NUMBER_CHANGED] = GECKO_CALL_ERROR_NUMBER_CHANGED;
2603 RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_CALL_PRE_EMPTION] = GECKO_CALL_ERROR_PRE_EMPTION;
2604 RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_DEST_OUT_OF_ORDER] = GECKO_CALL_ERROR_DEST_OUT_OF_ORDER;
2605 RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_INVALID_FORMAT] = GECKO_CALL_ERROR_INVALID_NUMBER_FORMAT;
2606 RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_FACILITY_REJECTED] = GECKO_CALL_ERROR_FACILITY_REJECTED;
2607 RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_CONGESTION] = GECKO_CALL_ERROR_CONGESTION;
2608 RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_NETWORK_OUT_OF_ORDER]= GECKO_CALL_ERROR_NETWORK_OUT_OF_ORDER;
2609 RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_NETWORK_TEMP_FAILURE]= GECKO_CALL_ERROR_NETWORK_TEMP_FAILURE;
2610 RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_ACM_LIMIT_EXCEEDED] = GECKO_CALL_ERROR_INCOMING_CALL_EXCEEDED;
2611 RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_CALL_BARRED] = GECKO_CALL_ERROR_BARRED;
2612 RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_FDN_BLOCKED] = GECKO_CALL_ERROR_FDN_BLOCKED;
2613 RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_IMSI_UNKNOWN_IN_VLR] = GECKO_CALL_ERROR_SUBSCRIBER_UNKNOWN;
2614 RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_IMEI_NOT_ACCEPTED] = GECKO_CALL_ERROR_DEVICE_NOT_ACCEPTED;
2615 RIL_CALL_FAILCAUSE_TO_GECKO_CALL_ERROR[CALL_FAIL_ERROR_UNSPECIFIED] = GECKO_CALL_ERROR_UNSPECIFIED;
2616
2617 this.GECKO_DATACALL_ERROR_OPERATOR_BARRED = "OperatorBarredError";
2618 this.GECKO_DATACALL_ERROR_INSUFFICIENT_RESOURCES = "InsufficientResourcesError";
2619 this.GECKO_DATACALL_ERROR_MISSING_UKNOWN_APN = "MissingUnknownAPNError";
2620 this.GECKO_DATACALL_ERROR_UNKNOWN_PDP_ADDRESS_TYPE = "UnknownPDPAddressTypeError";
2621 this.GECKO_DATACALL_ERROR_USER_AUTHENTICATION = "UserAuthenticationError";
2622 this.GECKO_DATACALL_ERROR_ACTIVATION_REJECT_GGSN = "ActivationRejectGGSNError";
2623 this.GECKO_DATACALL_ERROR_ACTIVATION_REJECT_UNSPECIFIED = "ActivationRejectUnspecifiedError";
2624 this.GECKO_DATACALL_ERROR_SERVICE_OPTION_NOT_SUPPORTED = "ServiceOptionNotSupportedError";
2625 this.GECKO_DATACALL_ERROR_SERVICE_OPTION_NOT_SUBSCRIBED = "ServiceOptionNotSubscribedError";
2626 this.GECKO_DATACALL_ERROR_SERVICE_OPTION_OUT_OF_ORDER = "ServiceOptionOutOfOrderError";
2627 this.GECKO_DATACALL_ERROR_NSAPI_IN_USE = "NSAPIInUseError";
2628 this.GECKO_DATACALL_ERROR_ONLY_IPV4_ALLOWED = "OnlyIPv4Error";
2629 this.GECKO_DATACALL_ERROR_ONLY_IPV6_ALLOWED = "OnlyIPv6Error";
2630 this.GECKO_DATACALL_ERROR_ONLY_SINGLE_BEARER_ALLOWED = "OnlySingleBearerAllowedError";
2631 this.GECKO_DATACALL_ERROR_PROTOCOL_ERRORS = "ProtocolErrorsError";
2632 this.GECKO_DATACALL_ERROR_VOICE_REGISTRATION_FAIL = "VoiceRegistrationFailError";
2633 this.GECKO_DATACALL_ERROR_DATA_REGISTRATION_FAIL = "DataRegistrationFailError";
2634 this.GECKO_DATACALL_ERROR_SIGNAL_LOST = "SignalLostError";
2635 this.GECKO_DATACALL_ERROR_PREF_RADIO_TECH_CHANGED = "PrefRadioTechChangedError";
2636 this.GECKO_DATACALL_ERROR_RADIO_POWER_OFF = "RadioPowerOffError";
2637 this.GECKO_DATACALL_ERROR_TETHERED_CALL_ACTIVE = "TetheredCallActiveError";
2638 this.GECKO_DATACALL_ERROR_UNSPECIFIED = "UnspecifiedError";
2639
2640 this.RIL_DATACALL_FAILCAUSE_TO_GECKO_DATACALL_ERROR = {};
2641 RIL_DATACALL_FAILCAUSE_TO_GECKO_DATACALL_ERROR[DATACALL_FAIL_OPERATOR_BARRED] = GECKO_DATACALL_ERROR_OPERATOR_BARRED;
2642 RIL_DATACALL_FAILCAUSE_TO_GECKO_DATACALL_ERROR[DATACALL_FAIL_INSUFFICIENT_RESOURCES] = GECKO_DATACALL_ERROR_INSUFFICIENT_RESOURCES;
2643 RIL_DATACALL_FAILCAUSE_TO_GECKO_DATACALL_ERROR[DATACALL_FAIL_MISSING_UKNOWN_APN] = GECKO_DATACALL_ERROR_MISSING_UKNOWN_APN;
2644 RIL_DATACALL_FAILCAUSE_TO_GECKO_DATACALL_ERROR[DATACALL_FAIL_UNKNOWN_PDP_ADDRESS_TYPE] = GECKO_DATACALL_ERROR_UNKNOWN_PDP_ADDRESS_TYPE;
2645 RIL_DATACALL_FAILCAUSE_TO_GECKO_DATACALL_ERROR[DATACALL_FAIL_USER_AUTHENTICATION] = GECKO_DATACALL_ERROR_USER_AUTHENTICATION;
2646 RIL_DATACALL_FAILCAUSE_TO_GECKO_DATACALL_ERROR[DATACALL_FAIL_ACTIVATION_REJECT_GGSN] = GECKO_DATACALL_ERROR_ACTIVATION_REJECT_GGSN;
2647 RIL_DATACALL_FAILCAUSE_TO_GECKO_DATACALL_ERROR[DATACALL_FAIL_ACTIVATION_REJECT_UNSPECIFIED] = GECKO_DATACALL_ERROR_ACTIVATION_REJECT_UNSPECIFIED;
2648 RIL_DATACALL_FAILCAUSE_TO_GECKO_DATACALL_ERROR[DATACALL_FAIL_SERVICE_OPTION_NOT_SUPPORTED] = GECKO_DATACALL_ERROR_SERVICE_OPTION_NOT_SUPPORTED;
2649 RIL_DATACALL_FAILCAUSE_TO_GECKO_DATACALL_ERROR[DATACALL_FAIL_SERVICE_OPTION_NOT_SUBSCRIBED] = GECKO_DATACALL_ERROR_SERVICE_OPTION_NOT_SUBSCRIBED;
2650 RIL_DATACALL_FAILCAUSE_TO_GECKO_DATACALL_ERROR[DATACALL_FAIL_SERVICE_OPTION_OUT_OF_ORDER] = GECKO_DATACALL_ERROR_SERVICE_OPTION_OUT_OF_ORDER;
2651 RIL_DATACALL_FAILCAUSE_TO_GECKO_DATACALL_ERROR[DATACALL_FAIL_NSAPI_IN_USE] = GECKO_DATACALL_ERROR_NSAPI_IN_USE;
2652 RIL_DATACALL_FAILCAUSE_TO_GECKO_DATACALL_ERROR[DATACALL_FAIL_ONLY_IPV4_ALLOWED] = GECKO_DATACALL_ERROR_ONLY_IPV4_ALLOWED;
2653 RIL_DATACALL_FAILCAUSE_TO_GECKO_DATACALL_ERROR[DATACALL_FAIL_ONLY_IPV6_ALLOWED] = GECKO_DATACALL_ERROR_ONLY_IPV6_ALLOWED;
2654 RIL_DATACALL_FAILCAUSE_TO_GECKO_DATACALL_ERROR[DATACALL_FAIL_ONLY_SINGLE_BEARER_ALLOWED] = GECKO_DATACALL_ERROR_ONLY_SINGLE_BEARER_ALLOWED;
2655 RIL_DATACALL_FAILCAUSE_TO_GECKO_DATACALL_ERROR[DATACALL_FAIL_PROTOCOL_ERRORS] = GECKO_DATACALL_ERROR_PROTOCOL_ERRORS;
2656 RIL_DATACALL_FAILCAUSE_TO_GECKO_DATACALL_ERROR[DATACALL_FAIL_VOICE_REGISTRATION_FAIL] = GECKO_DATACALL_ERROR_VOICE_REGISTRATION_FAIL;
2657 RIL_DATACALL_FAILCAUSE_TO_GECKO_DATACALL_ERROR[DATACALL_FAIL_DATA_REGISTRATION_FAIL] = GECKO_DATACALL_ERROR_DATA_REGISTRATION_FAIL;
2658 RIL_DATACALL_FAILCAUSE_TO_GECKO_DATACALL_ERROR[DATACALL_FAIL_SIGNAL_LOST] = GECKO_DATACALL_ERROR_SIGNAL_LOST;
2659 RIL_DATACALL_FAILCAUSE_TO_GECKO_DATACALL_ERROR[DATACALL_FAIL_PREF_RADIO_TECH_CHANGED] = GECKO_DATACALL_ERROR_PREF_RADIO_TECH_CHANGED;
2660 RIL_DATACALL_FAILCAUSE_TO_GECKO_DATACALL_ERROR[DATACALL_FAIL_RADIO_POWER_OFF] = GECKO_DATACALL_ERROR_RADIO_POWER_OFF;
2661 RIL_DATACALL_FAILCAUSE_TO_GECKO_DATACALL_ERROR[DATACALL_FAIL_TETHERED_CALL_ACTIVE] = GECKO_DATACALL_ERROR_TETHERED_CALL_ACTIVE;
2662 RIL_DATACALL_FAILCAUSE_TO_GECKO_DATACALL_ERROR[DATACALL_FAIL_ERROR_UNSPECIFIED] = GECKO_DATACALL_ERROR_UNSPECIFIED;
2663
2664 this.GECKO_RADIO_TECH = [
2665 null,
2666 "gprs",
2667 "edge",
2668 "umts",
2669 "is95a",
2670 "is95b",
2671 "1xrtt",
2672 "evdo0",
2673 "evdoa",
2674 "hsdpa",
2675 "hsupa",
2676 "hspa",
2677 "evdob",
2678 "ehrpd",
2679 "lte",
2680 "hspa+",
2681 "gsm"
2682 ];
2683
2684 this.GECKO_VOICEMAIL_MESSAGE_COUNT_UNKNOWN = -1;
2685
2686 // Call forwarding action. Must be in sync with nsIDOMMozMobileCFInfo interface
2687 this.CALL_FORWARD_ACTION_DISABLE = 0;
2688 this.CALL_FORWARD_ACTION_ENABLE = 1;
2689 this.CALL_FORWARD_ACTION_QUERY_STATUS = 2;
2690 this.CALL_FORWARD_ACTION_REGISTRATION = 3;
2691 this.CALL_FORWARD_ACTION_ERASURE = 4;
2692
2693 // Call forwarding reason. Must be in sync with nsIDOMMozMobileCFInfo interface
2694 this.CALL_FORWARD_REASON_UNCONDITIONAL = 0;
2695 this.CALL_FORWARD_REASON_MOBILE_BUSY = 1;
2696 this.CALL_FORWARD_REASON_NO_REPLY = 2;
2697 this.CALL_FORWARD_REASON_NOT_REACHABLE = 3;
2698 this.CALL_FORWARD_REASON_ALL_CALL_FORWARDING = 4;
2699 this.CALL_FORWARD_REASON_ALL_CONDITIONAL_CALL_FORWARDING = 5;
2700
2701 // Call barring program. Must be in sync with nsIDOMMozMobileConnection interface
2702 this.CALL_BARRING_PROGRAM_ALL_OUTGOING = 0;
2703 this.CALL_BARRING_PROGRAM_OUTGOING_INTERNATIONAL = 1;
2704 this.CALL_BARRING_PROGRAM_OUTGOING_INTERNATIONAL_EXCEPT_HOME = 2;
2705 this.CALL_BARRING_PROGRAM_ALL_INCOMING = 3;
2706 this.CALL_BARRING_PROGRAM_INCOMING_ROAMING = 4;
2707
2708 this.CALL_BARRING_PROGRAM_TO_FACILITY = {};
2709 CALL_BARRING_PROGRAM_TO_FACILITY[CALL_BARRING_PROGRAM_ALL_OUTGOING] = ICC_CB_FACILITY_BAOC;
2710 CALL_BARRING_PROGRAM_TO_FACILITY[CALL_BARRING_PROGRAM_OUTGOING_INTERNATIONAL] = ICC_CB_FACILITY_BAOIC;
2711 CALL_BARRING_PROGRAM_TO_FACILITY[CALL_BARRING_PROGRAM_OUTGOING_INTERNATIONAL_EXCEPT_HOME] = ICC_CB_FACILITY_BAOICxH;
2712 CALL_BARRING_PROGRAM_TO_FACILITY[CALL_BARRING_PROGRAM_ALL_INCOMING] = ICC_CB_FACILITY_BAIC;
2713 CALL_BARRING_PROGRAM_TO_FACILITY[CALL_BARRING_PROGRAM_INCOMING_ROAMING] = ICC_CB_FACILITY_BAICr;
2714
2715 // CLIR constants. Must be in sync with nsIDOMMozMobileConnection interface
2716 this.CLIR_DEFAULT = 0;
2717 this.CLIR_INVOCATION = 1;
2718 this.CLIR_SUPPRESSION = 2;
2719
2720 // MMI procedure as defined in TS.22.030 6.5.2
2721 this.MMI_PROCEDURE_ACTIVATION = "*";
2722 this.MMI_PROCEDURE_DEACTIVATION = "#";
2723 this.MMI_PROCEDURE_INTERROGATION = "*#";
2724 this.MMI_PROCEDURE_REGISTRATION = "**";
2725 this.MMI_PROCEDURE_ERASURE = "##";
2726
2727 this.MMI_PROC_TO_CF_ACTION = {};
2728 MMI_PROC_TO_CF_ACTION[MMI_PROCEDURE_ACTIVATION] = CALL_FORWARD_ACTION_ENABLE;
2729 MMI_PROC_TO_CF_ACTION[MMI_PROCEDURE_DEACTIVATION] = CALL_FORWARD_ACTION_DISABLE;
2730 MMI_PROC_TO_CF_ACTION[MMI_PROCEDURE_INTERROGATION] = CALL_FORWARD_ACTION_QUERY_STATUS;
2731 MMI_PROC_TO_CF_ACTION[MMI_PROCEDURE_REGISTRATION] = CALL_FORWARD_ACTION_REGISTRATION;
2732 MMI_PROC_TO_CF_ACTION[MMI_PROCEDURE_ERASURE] = CALL_FORWARD_ACTION_ERASURE;
2733
2734 // MMI call forwarding service codes as defined in TS.22.030 Annex B
2735 this.MMI_SC_CFU = "21";
2736 this.MMI_SC_CF_BUSY = "67";
2737 this.MMI_SC_CF_NO_REPLY = "61";
2738 this.MMI_SC_CF_NOT_REACHABLE = "62";
2739 this.MMI_SC_CF_ALL = "002";
2740 this.MMI_SC_CF_ALL_CONDITIONAL = "004";
2741
2742 this.MMI_SC_TO_CF_REASON = {};
2743 MMI_SC_TO_CF_REASON[MMI_SC_CFU] = CALL_FORWARD_REASON_UNCONDITIONAL;
2744 MMI_SC_TO_CF_REASON[MMI_SC_CF_BUSY] = CALL_FORWARD_REASON_MOBILE_BUSY;
2745 MMI_SC_TO_CF_REASON[MMI_SC_CF_NO_REPLY] = CALL_FORWARD_REASON_NO_REPLY;
2746 MMI_SC_TO_CF_REASON[MMI_SC_CF_NOT_REACHABLE] = CALL_FORWARD_REASON_NOT_REACHABLE;
2747 MMI_SC_TO_CF_REASON[MMI_SC_CF_ALL] = CALL_FORWARD_REASON_ALL_CALL_FORWARDING;
2748 MMI_SC_TO_CF_REASON[MMI_SC_CF_ALL_CONDITIONAL] = CALL_FORWARD_REASON_ALL_CONDITIONAL_CALL_FORWARDING;
2749
2750 // MMI service codes for PIN/PIN2/PUK/PUK2 management as defined in TS.22.030
2751 // sec 6.6
2752 this.MMI_SC_PIN = "04";
2753 this.MMI_SC_PIN2 = "042";
2754 this.MMI_SC_PUK = "05";
2755 this.MMI_SC_PUK2 = "052";
2756
2757 // MMI service code for IMEI presentation as defined in TS.22.030 sec 6.7
2758 this.MMI_SC_IMEI = "06";
2759
2760 // MMI called line presentation service codes
2761 this.MMI_SC_CLIP = "30";
2762 this.MMI_SC_CLIR = "31";
2763
2764 // MMI call waiting service code
2765 this.MMI_SC_CALL_WAITING = "43";
2766
2767 // MMI call barring service codes
2768 this.MMI_SC_BAOC = "33";
2769 this.MMI_SC_BAOIC = "331";
2770 this.MMI_SC_BAOICxH = "332";
2771 this.MMI_SC_BAIC = "35";
2772 this.MMI_SC_BAICr = "351";
2773 this.MMI_SC_BA_ALL = "330";
2774 this.MMI_SC_BA_MO = "333";
2775 this.MMI_SC_BA_MT = "353";
2776
2777 this.MMI_SC_TO_CB_FACILITY = {};
2778
2779 MMI_SC_TO_CB_FACILITY[MMI_SC_BAOC] = ICC_CB_FACILITY_BAOC;
2780 MMI_SC_TO_CB_FACILITY[MMI_SC_BAOIC] = ICC_CB_FACILITY_BAOIC;
2781 MMI_SC_TO_CB_FACILITY[MMI_SC_BAOICxH] = ICC_CB_FACILITY_BAOICxH;
2782 MMI_SC_TO_CB_FACILITY[MMI_SC_BAIC] = ICC_CB_FACILITY_BAIC;
2783 MMI_SC_TO_CB_FACILITY[MMI_SC_BAICr] = ICC_CB_FACILITY_BAICr;
2784 MMI_SC_TO_CB_FACILITY[MMI_SC_BA_ALL] = ICC_CB_FACILITY_BA_ALL;
2785 MMI_SC_TO_CB_FACILITY[MMI_SC_BA_MO] = ICC_CB_FACILITY_BA_MO;
2786 MMI_SC_TO_CB_FACILITY[MMI_SC_BA_MT] = ICC_CB_FACILITY_BA_MT;
2787
2788 // MMI service code key strings.
2789 this.MMI_KS_SC_CALL_BARRING = "scCallBarring";
2790 this.MMI_KS_SC_CALL_FORWARDING = "scCallForwarding";
2791 this.MMI_KS_SC_CLIP = "scClip";
2792 this.MMI_KS_SC_CLIR = "scClir";
2793 this.MMI_KS_SC_PWD = "scPwd";
2794 this.MMI_KS_SC_CALL_WAITING = "scCallWaiting";
2795 this.MMI_KS_SC_PIN = "scPin";
2796 this.MMI_KS_SC_PIN2 = "scPin2";
2797 this.MMI_KS_SC_PUK = "scPuk";
2798 this.MMI_KS_SC_PUK2 = "scPuk2";
2799 this.MMI_KS_SC_IMEI = "scImei";
2800 this.MMI_KS_SC_USSD = "scUssd";
2801
2802 // MMI error messages key strings.
2803 this.MMI_ERROR_KS_ERROR = "emMmiError";
2804 this.MMI_ERROR_KS_NOT_SUPPORTED = "emMmiErrorNotSupported";
2805 this.MMI_ERROR_KS_INVALID_ACTION = "emMmiErrorInvalidAction";
2806 this.MMI_ERROR_KS_MISMATCH_PIN = "emMmiErrorMismatchPin";
2807 this.MMI_ERROR_KS_BAD_PIN = "emMmiErrorBadPin";
2808 this.MMI_ERROR_KS_BAD_PUK = "emMmiErrorBadPuk";
2809 this.MMI_ERROR_KS_INVALID_PIN = "emMmiErrorInvalidPin";
2810 this.MMI_ERROR_KS_NEEDS_PUK = "emMmiErrorNeedsPuk";
2811 this.MMI_ERROR_KS_SIM_BLOCKED = "emMmiErrorSimBlocked";
2812
2813 // MMI status message.
2814 this.MMI_SM_KS_PIN_CHANGED = "smPinChanged";
2815 this.MMI_SM_KS_PIN2_CHANGED = "smPin2Changed";
2816 this.MMI_SM_KS_PIN_UNBLOCKED = "smPinUnblocked";
2817 this.MMI_SM_KS_PIN2_UNBLOCKED = "smPin2Unblocked";
2818 this.MMI_SM_KS_SERVICE_ENABLED = "smServiceEnabled";
2819 this.MMI_SM_KS_SERVICE_ENABLED_FOR = "smServiceEnabledFor";
2820 this.MMI_SM_KS_SERVICE_DISABLED = "smServiceDisabled";
2821 this.MMI_SM_KS_SERVICE_REGISTERED = "smServiceRegistered";
2822 this.MMI_SM_KS_SERVICE_ERASED = "smServiceErased";
2823 this.MMI_SM_KS_SERVICE_INTERROGATED = "smServiceInterrogated";
2824 this.MMI_SM_KS_SERVICE_NOT_PROVISIONED = "smServiceNotProvisioned";
2825 this.MMI_SM_KS_CLIR_PERMANENT = "smClirPermanent";
2826 this.MMI_SM_KS_CLIR_DEFAULT_ON_NEXT_CALL_ON = "smClirDefaultOnNextCallOn";
2827 this.MMI_SM_KS_CLIR_DEFAULT_ON_NEXT_CALL_OFF = "smClirDefaultOnNextCallOff";
2828 this.MMI_SM_KS_CLIR_DEFAULT_OFF_NEXT_CALL_ON = "smClirDefaultOffNextCallOn";
2829 this.MMI_SM_KS_CLIR_DEFAULT_OFF_NEXT_CALL_OFF = "smClirDefaultOffNextCallOff";
2830
2831 // MMI Service class
2832 this.MMI_KS_SERVICE_CLASS_VOICE = "serviceClassVoice";
2833 this.MMI_KS_SERVICE_CLASS_DATA = "serviceClassData";
2834 this.MMI_KS_SERVICE_CLASS_FAX = "serviceClassFax";
2835 this.MMI_KS_SERVICE_CLASS_SMS = "serviceClassSms";
2836 this.MMI_KS_SERVICE_CLASS_DATA_SYNC = "serviceClassDataSync";
2837 this.MMI_KS_SERVICE_CLASS_DATA_ASYNC = "serviceClassDataAsync";
2838 this.MMI_KS_SERVICE_CLASS_PACKET = "serviceClassPacket";
2839 this.MMI_KS_SERVICE_CLASS_PAD = "serviceClassPad";
2840
2841 this.MMI_KS_SERVICE_CLASS_MAPPING = {};
2842 MMI_KS_SERVICE_CLASS_MAPPING[ICC_SERVICE_CLASS_VOICE] = MMI_KS_SERVICE_CLASS_VOICE;
2843 MMI_KS_SERVICE_CLASS_MAPPING[ICC_SERVICE_CLASS_DATA] = MMI_KS_SERVICE_CLASS_DATA;
2844 MMI_KS_SERVICE_CLASS_MAPPING[ICC_SERVICE_CLASS_FAX] = MMI_KS_SERVICE_CLASS_FAX;
2845 MMI_KS_SERVICE_CLASS_MAPPING[ICC_SERVICE_CLASS_SMS] = MMI_KS_SERVICE_CLASS_SMS;
2846 MMI_KS_SERVICE_CLASS_MAPPING[ICC_SERVICE_CLASS_DATA_SYNC] = MMI_KS_SERVICE_CLASS_DATA_SYNC;
2847 MMI_KS_SERVICE_CLASS_MAPPING[ICC_SERVICE_CLASS_DATA_ASYNC] = MMI_KS_SERVICE_CLASS_DATA_ASYNC;
2848 MMI_KS_SERVICE_CLASS_MAPPING[ICC_SERVICE_CLASS_PACKET] = MMI_KS_SERVICE_CLASS_PACKET;
2849 MMI_KS_SERVICE_CLASS_MAPPING[ICC_SERVICE_CLASS_PAD] = MMI_KS_SERVICE_CLASS_PAD;
2850 /**
2851 * CDMA PDU constants
2852 */
2853
2854 // SMS Message Type, as defined in 3GPP2 C.S0015-A v2.0, Table 3.4-1
2855 this.PDU_CDMA_MSG_TYPE_P2P = 0x00; // Point-to-Point
2856 this.PDU_CDMA_MSG_TYPE_BROADCAST = 0x01; // Broadcast
2857 this.PDU_CDMA_MSG_TYPE_ACK = 0x02; // Acknowledge
2858
2859 // SMS Teleservice Identitifier, as defined in 3GPP2 N.S0005, Table 175
2860 this.PDU_CDMA_MSG_TELESERIVCIE_ID_SMS = 0x1002; // SMS
2861 this.PDU_CDMA_MSG_TELESERIVCIE_ID_WAP = 0x1004; // WAP
2862 this.PDU_CDMA_MSG_TELESERIVCIE_ID_WEMT = 0x1005; // Wireless Enhanced Messaging Teleservice
2863 // required for fragmented SMS
2864
2865 // SMS Service Category, as defined in 3GPP2 C.R1001-D, Table 9.3.1-1
2866 this.PDU_CDMA_MSG_CATEGORY_UNSPEC = 0x00; // Unknown/Unspecified
2867
2868 // Address Information, Digit Mode, as defined in 3GPP2 C.S0015-A v2.0, sec 3.4.3.3
2869 this.PDU_CDMA_MSG_ADDR_DIGIT_MODE_DTMF = 0x00; // Digit Mode : DTMF
2870 this.PDU_CDMA_MSG_ADDR_DIGIT_MODE_ASCII = 0x01; // Digit Mode : 8-bit ASCII with MSB = 0
2871
2872 // Address Information, Number Mode, as defined in 3GPP2 C.S0015-A v2.0, sec 3.4.3.3
2873 this.PDU_CDMA_MSG_ADDR_NUMBER_MODE_ANSI = 0x00; // Number Mode : ANSI T1.607-2000(R2004)
2874 this.PDU_CDMA_MSG_ADDR_NUMBER_MODE_ASCII = 0x01; // Number Mode : Data network address format
2875
2876 // Address Information, Number Type, as defined in 3GPP2 C.S0015-A v2.0, Table 3.4.3.3-1
2877 this.PDU_CDMA_MSG_ADDR_NUMBER_TYPE_UNKNOWN = 0x00; // Number Type : Unknown
2878 this.PDU_CDMA_MSG_ADDR_NUMBER_TYPE_INTERNATIONAL = 0x01; // Number Type : Internaltional number(+XXXXX)
2879 this.PDU_CDMA_MSG_ADDR_NUMBER_TYPE_NATIONAL = 0x02; // Number Type : National number
2880
2881 // Address Information, Number Plan, as defined in 3GPP2 C.S0005-D v2.0, Table 2.7.1.3.2.4-3
2882 this.PDU_CDMA_MSG_ADDR_NUMBER_PLAN_UNKNOWN = 0x00; // Number Plan : Unknown
2883 this.PDU_CDMA_MSG_ADDR_NUMBER_PLAN_ISDN = 0x01; // Number Plan : ISDN/Telephony numbering plan
2884
2885 // SMS Encoding, as defined in 3GPP2 C.R1001-D, Table 9.1-1
2886 this.PDU_CDMA_MSG_CODING_OCTET = 0x00; // octet(8-bit), Not tested
2887 this.PDU_CDMA_MSG_CODING_IS_91 = 0x01; // IS-91 Extended Protocol Message(variable), Not tested
2888 this.PDU_CDMA_MSG_CODING_7BITS_ASCII = 0x02; // 7-bit ASCII(7-bit)
2889 this.PDU_CDMA_MSG_CODING_IA5 = 0x03; // IA5(7-bit), Not tested
2890 this.PDU_CDMA_MSG_CODING_UNICODE = 0x04; // Unicode(16-bit)
2891 this.PDU_CDMA_MSG_CODING_SHIFT_JIS = 0x05; // Shift-6 JIS(8/16-bit variable), Not supported
2892 this.PDU_CDMA_MSG_CODING_KOREAN = 0x06; // Korean(8/16-bit variable), Not supported
2893 this.PDU_CDMA_MSG_CODING_LATIN_HEBREW = 0x07; // Latin/ Hebrew(8-bit), ISO/IEC 8859-8, Not supported
2894 this.PDU_CDMA_MSG_CODING_LATIN = 0x08; // Latin(8-bit), ISO/IEC 8859-1, Not tested
2895 this.PDU_CDMA_MSG_CODING_7BITS_GSM = 0x09; // GSM 7-bit default alphabet(7-bit), Not tested
2896 this.PDU_CDMA_MSG_CODING_GSM_DCS = 0x0A; // GSM Data-Coding-Scheme, Not supported
2897
2898 // SMS Message Type, as defined in 3GPP2 C.S0015-A v2.0, Table 4.5.1-1
2899 this.PDU_CDMA_MSG_TYPE_DELIVER = 0x01; // Deliver
2900 this.PDU_CDMA_MSG_TYPE_SUBMIT = 0x02; // Submit
2901 this.PDU_CDMA_MSG_TYPE_DELIVER_ACK = 0x04; // Delivery Acknowledgment
2902
2903 // SMS User Data Subparameters, as defined in 3GPP2 C.S0015-A v2.0, Table 4.5-1
2904 this.PDU_CDMA_MSG_USERDATA_MSG_ID = 0x00; // Message Identifier
2905 this.PDU_CDMA_MSG_USERDATA_BODY = 0x01; // User Data Body
2906 this.PDU_CDMA_MSG_USERDATA_TIMESTAMP = 0x03; // Message Center Time Stamp
2907 this.PDU_CDMA_MSG_USERDATA_REPLY_OPTION = 0x0A; // Reply Option
2908 this.PDU_CDMA_LANGUAGE_INDICATOR = 0x0D; // Language Indicator
2909 this.PDU_CDMA_MSG_USERDATA_CALLBACK_NUMBER = 0x0E; // Callback Number
2910 this.PDU_CDMA_MSG_USER_DATA_MSG_STATUS = 0x14; // Message Status
2911
2912 // CDMA Language Indicator: Language groups
2913 // see 3GPP2 C.R1001-F table 9.2-1
2914 this.CB_CDMA_LANG_GROUP = [
2915 null, "en", "fr", "es", "ja", "ko", "zh", "he"
2916 ];
2917
2918 // IS-91 Message Type, as defined in TIA/EIA/IS-91-A, Table 9
2919 this.PDU_CDMA_MSG_CODING_IS_91_TYPE_VOICEMAIL_STATUS = 0x82;
2920 this.PDU_CDMA_MSG_CODING_IS_91_TYPE_SMS_FULL = 0x83;
2921 this.PDU_CDMA_MSG_CODING_IS_91_TYPE_CLI = 0x84;
2922 this.PDU_CDMA_MSG_CODING_IS_91_TYPE_SMS = 0x85;
2923
2924 // CDMA roaming preference mode
2925 this.CDMA_ROAMING_PREFERENCE_HOME = 0;
2926 this.CDMA_ROAMING_PREFERENCE_AFFILIATED = 1;
2927 this.CDMA_ROAMING_PREFERENCE_ANY = 2;
2928
2929 this.GECKO_CDMA_ROAMING_PREFERENCE_HOME = "home";
2930 this.GECKO_CDMA_ROAMING_PREFERENCE_AFFILIATED = "affiliated";
2931 this.GECKO_CDMA_ROAMING_PREFERENCE_ANY = "any";
2932
2933 this.CDMA_ROAMING_PREFERENCE_TO_GECKO = [
2934 GECKO_CDMA_ROAMING_PREFERENCE_HOME, // CDMA_ROAMING_PREFERENCE_HOME
2935 GECKO_CDMA_ROAMING_PREFERENCE_AFFILIATED, // CDMA_ROAMING_PREFERENCE_AFFILIATED
2936 GECKO_CDMA_ROAMING_PREFERENCE_ANY // CDMA_ROAMING_PREFERENCE_ANY
2937 ];
2938
2939 // Information Record Type, reference from ril.h
2940 this.PDU_CDMA_INFO_REC_TYPE_DISPLAY = 0;
2941 this.PDU_CDMA_INFO_REC_TYPE_CALLED_PARTY_NUMBER = 1;
2942 this.PDU_CDMA_INFO_REC_TYPE_CALLING_PARTY_NUMBER = 2;
2943 this.PDU_CDMA_INFO_REC_TYPE_CONNECTED_NUMBER =3;
2944 this.PDU_CDMA_INFO_REC_TYPE_SIGNAL = 4;
2945 this.PDU_CDMA_INFO_REC_TYPE_REDIRECTING_NUMBER = 5;
2946 this.PDU_CDMA_INFO_REC_TYPE_LINE_CONTROL = 6;
2947 this.PDU_CDMA_INFO_REC_TYPE_EXTENDED_DISPLAY = 7;
2948 this.PDU_CDMA_INFO_REC_TYPE_T53_CLIR = 8;
2949 this.PDU_CDMA_INFO_REC_TYPE_T53_RELEASE = 9;
2950 this.PDU_CDMA_INFO_REC_TYPE_T53_AUDIO_CONTROL = 10;
2951
2952 // Display type of extended display of information record,
2953 // as defined in C.S0005-F v1.0, Table 3.7.5.16-2
2954 this.INFO_REC_EXTENDED_DISPLAY_BLANK = 0x80;
2955 this.INFO_REC_EXTENDED_DISPLAY_SKIP = 0x81;
2956 this.INFO_REC_EXTENDED_DISPLAY_CONTINATION = 0x82;
2957 this.INFO_REC_EXTENDED_DISPLAY_CALLED_ADDRESS = 0x83;
2958 this.INFO_REC_EXTENDED_DISPLAY_CAUSE = 0x84;
2959 this.INFO_REC_EXTENDED_DISPLAY_PROGRESS_INDICATOR = 0x85;
2960 this.INFO_REC_EXTENDED_DISPLAY_NOTIFICATION_INDICATOR = 0x86;
2961 this.INFO_REC_EXTENDED_DISPLAY_PROMPT = 0x87;
2962 this.INFO_REC_EXTENDED_DISPLAY_ACCUMULATED_DIGITS = 0x88;
2963 this.INFO_REC_EXTENDED_DISPLAY_STATUS = 0x89;
2964 this.INFO_REC_EXTENDED_DISPLAY_INBAND = 0x8A;
2965 this.INFO_REC_EXTENDED_DISPLAY_CALLING_ADDRESS = 0x8B;
2966 this.INFO_REC_EXTENDED_DISPLAY_REASON = 0x8C;
2967 this.INFO_REC_EXTENDED_DISPLAY_CALLING_PARTY_NAME = 0x8D;
2968 this.INFO_REC_EXTENDED_DISPLAY_CALLED_PARTY_NAME = 0x8E;
2969 this.INFO_REC_EXTENDED_DISPLAY_ORIGINAL_CALLED_NAME = 0x8F;
2970 this.INFO_REC_EXTENDED_DISPLAY_REDIRECT_NAME = 0x90;
2971 this.INFO_REC_EXTENDED_DISPLAY_CONNECTED_NAME = 0x91;
2972 this.INFO_REC_EXTENDED_DISPLAY_ORIGINATING_RESTRICTIONS = 0x92;
2973 this.INFO_REC_EXTENDED_DISPLAY_DATE_TIME_OF_DAY = 0x93;
2974 this.INFO_REC_EXTENDED_DISPLAY_CALL_APPEARANCE_ID = 0x94;
2975 this.INFO_REC_EXTENDED_DISPLAY_FEATURE_ADDRESS = 0x95;
2976 this.INFO_REC_EXTENDED_DISPLAY_REDIRECTION_NAME = 0x96;
2977 this.INFO_REC_EXTENDED_DISPLAY_REDIRECTION_NUMBER = 0x97;
2978 this.INFO_REC_EXTENDED_DISPLAY_REDIRECTING_NUMBER = 0x98;
2979 this.INFO_REC_EXTENDED_DISPLAY_ORIGINAL_CALLED_NUMBER = 0x99;
2980 this.INFO_REC_EXTENDED_DISPLAY_CONNECTED_NUMBER = 0x9A;
2981 this.INFO_REC_EXTENDED_DISPLAY_TEXT = 0x9B;
2982
2983 /**
2984 * The table for MCC which the length of MNC is 3
2985 *
2986 * This table is built from below links.
2987 * - http://www.itu.int/pub/T-SP-E.212B-2013
2988 * - http://en.wikipedia.org/wiki/Mobile_Network_Code
2989 */
2990 this.MCC_TABLE_FOR_MNC_LENGTH_IS_3 = [
2991 "302", // Canada
2992 "310", // United States of America
2993 "311", // United States of America
2994 "312", // United States of America
2995 "313", // United States of America
2996 "316", // United States of America
2997 "330", // Puerto Rico
2998 "334", // Mexico
2999 "338", // Jamaica
3000 "342", // Barbados
3001 "344", // Antigua and Barbuda
3002 "346", // Cayman Islands
3003 "348", // British Virgin Islands
3004 "350", // Bermuda
3005 "352", // Grenada
3006 "354", // Montserrat
3007 "356", // Saint Kitts and Nevis
3008 "358", // Saint Lucia
3009 "360", // Saint Vincent and the Grenadines
3010 "365", // Anguilla
3011 "366", // Dominica
3012 "376", // Turks and Caicos Islands
3013 "405", // India
3014 "708", // Honduras
3015 "722", // Argentina
3016 "732", // Colombia
3017 "750" // Falkland Islands (Malvinas)
3018 ];
3019
3020 // Supplementary service notifications, code2, as defined in 3GPP 27.007 7.17
3021 this.SUPP_SVC_NOTIFICATION_CODE2_PUT_ON_HOLD = 2;
3022 this.SUPP_SVC_NOTIFICATION_CODE2_RETRIEVED = 3;
3023
3024 this.GECKO_SUPP_SVC_NOTIFICATION_REMOTE_HELD = "RemoteHeld";
3025 this.GECKO_SUPP_SVC_NOTIFICATION_REMOTE_RESUMED = "RemoteResumed";
3026
3027 this.GECKO_SUPP_SVC_NOTIFICATION_FROM_CODE2 = {};
3028 GECKO_SUPP_SVC_NOTIFICATION_FROM_CODE2[SUPP_SVC_NOTIFICATION_CODE2_PUT_ON_HOLD] = GECKO_SUPP_SVC_NOTIFICATION_REMOTE_HELD;
3029 GECKO_SUPP_SVC_NOTIFICATION_FROM_CODE2[SUPP_SVC_NOTIFICATION_CODE2_RETRIEVED] = GECKO_SUPP_SVC_NOTIFICATION_REMOTE_RESUMED;
3030
3031 /**
3032 * The status for an Over-the-Air Service Provisioning / Over-the-Air
3033 * Parameter Administration (OTASP/OTAPA) session.
3034 *
3035 * @see 3GPP2 C.S0016
3036 */
3037 this.GECKO_OTA_STATUS_SPL_UNLOCKED = "spl_unlocked";
3038 this.GECKO_OTA_STATUS_SPC_RETRIES_EXCEEDED = "spc_retries_exceeded";
3039 this.GECKO_OTA_STATUS_A_KEY_EXCHANGED = "a_key_exchanged";
3040 this.GECKO_OTA_STATUS_SSD_UPDATED = "ssd_updated";
3041 this.GECKO_OTA_STATUS_NAM_DOWNLOADED = "nam_downloaded";
3042 this.GECKO_OTA_STATUS_MDN_DOWNLOADED = "mdn_downloaded";
3043 this.GECKO_OTA_STATUS_IMSI_DOWNLOADED = "imsi_downloaded";
3044 this.GECKO_OTA_STATUS_PRL_DOWNLOADED = "prl_downloaded";
3045 this.GECKO_OTA_STATUS_COMMITTED = "committed";
3046 this.GECKO_OTA_STATUS_OTAPA_STARTED = "otapa_started";
3047 this.GECKO_OTA_STATUS_OTAPA_STOPPED = "otapa_stopped";
3048 this.GECKO_OTA_STATUS_OTAPA_ABORTED = "otapa_aborted";
3049 this.CDMA_OTA_PROVISION_STATUS_TO_GECKO = [
3050 GECKO_OTA_STATUS_SPL_UNLOCKED,
3051 GECKO_OTA_STATUS_SPC_RETRIES_EXCEEDED,
3052 GECKO_OTA_STATUS_A_KEY_EXCHANGED,
3053 GECKO_OTA_STATUS_SSD_UPDATED,
3054 GECKO_OTA_STATUS_NAM_DOWNLOADED,
3055 GECKO_OTA_STATUS_MDN_DOWNLOADED,
3056 GECKO_OTA_STATUS_IMSI_DOWNLOADED,
3057 GECKO_OTA_STATUS_PRL_DOWNLOADED,
3058 GECKO_OTA_STATUS_COMMITTED,
3059 GECKO_OTA_STATUS_OTAPA_STARTED,
3060 GECKO_OTA_STATUS_OTAPA_STOPPED,
3061 GECKO_OTA_STATUS_OTAPA_ABORTED
3062 ];
3063
3064 // Allow this file to be imported via Components.utils.import().
3065 this.EXPORTED_SYMBOLS = Object.keys(this);

mercurial