comparison src/g23m-aci/ksd/ksd.h @ 1:d393cd9bb723

src/g23m-*: initial import from Magnetite
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 15 Jul 2018 04:40:46 +0000
parents
children
comparison
equal deleted inserted replaced
0:b6a5e36de839 1:d393cd9bb723
1 /*
2 +-----------------------------------------------------------------------------
3 | Project : GSM-PS (6147)
4 | Modul : KSD
5 +-----------------------------------------------------------------------------
6 | Copyright 2002 Texas Instruments Berlin, AG
7 | All rights reserved.
8 |
9 | This file is confidential and a trade secret of Texas
10 | Instruments Berlin, AG
11 | The receipt of or possession of this file does not convey
12 | any rights to reproduce or disclose its contents or to
13 | manufacture, use, or sell anything it may describe, in
14 | whole, or in part, without the specific written consent of
15 | Texas Instruments Berlin, AG.
16 +-----------------------------------------------------------------------------
17 | Purpose : This module is used for decoding of EMMI key sequences
18 | and supplementary service control strings.
19 +-----------------------------------------------------------------------------
20 */
21
22 #ifndef KSD_H
23 #define KSD_H
24
25 /*==== CONSTANTS ==================================================*/
26
27 #define KSD_TON_International 0x01
28 #define KSD_TON_Unknown 0x00
29
30 #define KSD_NPI_IsdnTelephony 0x01
31 #define KSD_NPI_Unknown 0x00
32
33 #define KSD_TOS_Nsap 0x00
34
35 #define KSD_OE_Even 0x00
36 #define KSD_OE_Odd 0x01
37
38 #define KSD_TIME_NONE 0xFF /* no time parameter */
39 #define KSD_IDX_NONE 0xFF /* no index parameter */
40
41 /*==== TYPES ======================================================*/
42
43 typedef enum /* +COLP parameter <mode> */
44 {
45 COLP_MOD_NotPresent = -1,
46 COLP_MOD_Disable,
47 COLP_MOD_Enable
48 }
49 T_ACA_COLP_MOD;
50
51 typedef enum /* +CLIP parameter <mode> */
52 {
53 CLIP_MOD_NotPresent = -1,
54 CLIP_MOD_Disable,
55 CLIP_MOD_Enable
56 }
57 T_ACA_CLIP_MOD;
58
59 typedef enum /* KSD operation codes */
60 {
61 KSD_OP_NONE = 0, /* no operation */
62 KSD_OP_IRGT, /* interrogate SS */
63 KSD_OP_REG, /* register SS */
64 KSD_OP_ERS, /* erase SS */
65 KSD_OP_ACT, /* activate SS */
66 KSD_OP_DEACT /* deactivate SS */
67 }
68 T_ACI_KSD_OP;
69
70 typedef enum /* KSD supplementary service codes */
71 {
72 KSD_SS_NONE = 0xFF, /* no operation */
73 KSD_SS_ALL_SERV = 0x00, /* all ss service */
74 KSD_SS_CLIP = 0x11, /* calling line identification presentation */
75 KSD_SS_CLIR = 0x12, /* calling line identification restriction */
76 KSD_SS_COLP = 0x13, /* connected line identification presentation */
77 KSD_SS_COLR = 0x14, /* connected line identification restriction */
78 KSD_SS_CNAP = 0x19, /* calling name presentation */
79 KSD_SS_ALL_FWSS = 0x20, /* all forwarding SS */
80 KSD_SS_CFU = 0x21, /* call forwarding unconditional */
81 KSD_SS_ALL_CFWSS = 0x28, /* all conditional forwarding SS */
82 KSD_SS_CFB = 0x29, /* call forwarding on mobile subscriber busy */
83 KSD_SS_CFNRY = 0x2a, /* call forwarding on no reply */
84 KSD_SS_CFNRC = 0x2b, /* call forwarding on mobile subscriber not reachable */
85 KSD_SS_CW = 0x41, /* call waiting */
86 KSD_SS_CCBS = 0x43, /* completion of call to busy subscribers */
87 KSD_SS_ALL_CBSS = 0x90, /* all barring SS */
88 KSD_SS_BOC = 0x91, /* barring of outgoing calls */
89 KSD_SS_BAOC = 0x92, /* barring of all outgoing calls */
90 KSD_SS_BOIC = 0x93, /* barring of outgoing international calls */
91 KSD_SS_BOICXH = 0x94, /* barring of outgoing international calls except those directed to the home PLMN */
92 KSD_SS_BIC = 0x99, /* barring of incoming calls */
93 KSD_SS_BAIC = 0x9a, /* barring of all incoming calls */
94 KSD_SS_BICRM = 0x9b, /* barring of incoming calls when roaming outside home PLMN Country */
95 KSD_SS_PIN1 = 0xE0, /* PIN 1 */
96 KSD_SS_PIN2 = 0xE1 /* PIN 2 */
97 }
98 T_ACI_KSD_SS;
99
100 #define KSD_BS_TeleBearerUnknown (0xFF)
101
102 typedef enum /* KSD basic service codes GSM 2.30 */
103 {
104 KSD_BS_None = 0, /* no basic service */
105 KSD_BS_AllTeleAllBearer = 9,
106 KSD_BS_AllTele = 10,
107 KSD_BS_Telephony,
108 KSD_BS_AllData,
109 KSD_BS_AllFax,
110 KSD_BS_SMS = 16,
111 KSD_BS_VoiceGroup,
112 KSD_BS_AllTeleXcptSMS = 19,
113 KSD_BS_AllBearer,
114 KSD_BS_AllAsync,
115 KSD_BS_AllSync,
116 KSD_BS_AllDataCircSync = 24,
117 KSD_BS_AllDataCircAsync,
118 KSD_BS_AllDedPackAcc,
119 KSD_BS_AllDedPADAcc,
120 KSD_BS_AllPLMNSpecTele = 50,
121 KSD_BS_PLMNSpecTele1,
122 KSD_BS_PLMNSpecTele2,
123 KSD_BS_PLMNSpecTele3,
124 KSD_BS_PLMNSpecTele4,
125 KSD_BS_PLMNSpecTele5,
126 KSD_BS_PLMNSpecTele6,
127 KSD_BS_PLMNSpecTele7,
128 KSD_BS_PLMNSpecTele8,
129 KSD_BS_PLMNSpecTele9,
130 KSD_BS_PLMNSpecTele10,
131 KSD_BS_PLMNSpecTele11,
132 KSD_BS_PLMNSpecTele12,
133 KSD_BS_PLMNSpecTele13,
134 KSD_BS_PLMNSpecTele14,
135 KSD_BS_PLMNSpecTele15,
136 KSD_BS_AllPLMNSpecBearer = 70,
137 KSD_BS_PLMNSpecBearer1,
138 KSD_BS_PLMNSpecBearer2,
139 KSD_BS_PLMNSpecBearer3,
140 KSD_BS_PLMNSpecBearer4,
141 KSD_BS_PLMNSpecBearer5,
142 KSD_BS_PLMNSpecBearer6,
143 KSD_BS_PLMNSpecBearer7,
144 KSD_BS_PLMNSpecBearer8,
145 KSD_BS_PLMNSpecBearer9,
146 KSD_BS_PLMNSpecBearer10,
147 KSD_BS_PLMNSpecBearer11,
148 KSD_BS_PLMNSpecBearer12,
149 KSD_BS_PLMNSpecBearer13,
150 KSD_BS_PLMNSpecBearer14,
151 KSD_BS_PLMNSpecBearer15,
152 KSD_BS_AuxTelephony = 89
153 }
154 T_ACI_KSD_BS;
155
156 typedef enum /* KSD basic service type */
157 {
158 KSD_BS_TP_None = 0, /* no basic service type */
159 KSD_BS_TP_Tele = 0x83, /* basic service teleservice */
160 KSD_BS_TP_Bearer = 0x82 /* basic service bearer service */
161 }
162 T_ACI_KSD_BS_TP;
163
164 /* teleservice */
165 typedef enum
166 {
167 KSD_TS_ALL_TS =0x0, /* all teleservices */
168 KSD_TS_ALL_SPCH =0x10, /* All speech transmission services */
169 KSD_TS_TLPHNY =0x11, /* telephony */
170 KSD_TS_EMRGNCY =0x12, /* emergency calls */
171 KSD_TS_ALL_SMS =0x20, /* all SMS services */
172 KSD_TS_SMS_MT =0x21, /* SMS MT PP */
173 KSD_TS_SMS_MO =0x22, /* SMS MO PP */
174 KSD_TS_ALL_FAX =0x60, /* all FAX transmission services */
175 KSD_TS_FAX3_ALT_SPCH =0x61, /* FAX group 3 alter. speech */
176 KSD_TS_FAX3_AUTO =0x62, /* FAX group 3 automatic */
177 KSD_TS_FAX4 =0x63, /* FAX group 4 */
178 KSD_TS_ALL_DATA =0x70, /* all FAX and SMS services */
179 KSD_TS_ALL_XCPT_SMS =0x80, /* all FAX and speech services */
180 KSD_TS_ALL_PSSS =0xd0, /* all PLMN specific TS */
181 KSD_TS_PLMN1 =0xd1, /* PLMN specific TS 1 */
182 KSD_TS_PLMN2 =0xd2, /* PLMN specific TS 2 */
183 KSD_TS_PLMN3 =0xd3, /* PLMN specific TS 3 */
184 KSD_TS_PLMN4 =0xd4, /* PLMN specific TS 4 */
185 KSD_TS_PLMN5 =0xd5, /* PLMN specific TS 5 */
186 KSD_TS_PLMN6 =0xd6, /* PLMN specific TS 6 */
187 KSD_TS_PLMN7 =0xd7, /* PLMN specific TS 7 */
188 KSD_TS_PLMN8 =0xd8, /* PLMN specific TS 8 */
189 KSD_TS_PLMN9 =0xd9, /* PLMN specific TS 9 */
190 KSD_TS_PLMNA =0xda, /* PLMN specific TS A */
191 KSD_TS_PLMNB =0xdb, /* PLMN specific TS B */
192 KSD_TS_PLMNC =0xdc, /* PLMN specific TS C */
193 KSD_TS_PLMND =0xdd, /* PLMN specific TS D */
194 KSD_TS_PLMNE =0xde, /* PLMN specific TS E */
195 KSD_TS_PLMNF =0xdf /* PLMN specific TS F */
196
197 } T_ACI_KSD_TELE_SERVICE;
198
199 /* bearer service */
200 typedef enum
201 {
202 KSD_BS_ALL_BS =0x0, /* all bearer services */
203 KSD_BS_ALL_DATA_CDA =0x10, /* all data CDA services */
204 KSD_BS_CDA_300 =0x11, /* data CDA 300 bps */
205 KSD_BS_CDA_1200 =0x12, /* data CDA 1200 bps */
206 KSD_BS_CDA_1200_75 =0x13, /* data CDA 1200/75 bps */
207 KSD_BS_CDA_2400 =0x14, /* data CDA 2400 bps */
208 KSD_BS_CDA_4800 =0x15, /* data CDA 4800 bps */
209 KSD_BS_CDA_9600 =0x16, /* data CDA 9600 bps */
210 KSD_BS_ALL_DATA_CDS =0x18, /* all data CDS services */
211 KSD_BS_CDS_1200 =0x1a, /* data CDS 1200 bps */
212 KSD_BS_CDS_2400 =0x1c, /* data CDS 2400 bps */
213 KSD_BS_CDS_4800 =0x1d, /* data CDS 4800 bps */
214 KSD_BS_CDS_9600 =0x1e, /* data CDS 9600 bps */
215 KSD_BS_ALL_DATA_PAD =0x20, /* all data PAD services */
216 KSD_BS_PAD_300 =0x21, /* data PAD 300 bps */
217 KSD_BS_PAD_1200 =0x22, /* data PAD 1200 bps */
218 KSD_BS_PAD_1200_75 =0x23, /* data PAD 1200/75 bps */
219 KSD_BS_PAD_2400 =0x24, /* data PAD 2400 bps */
220 KSD_BS_PAD_4800 =0x25, /* data PAD 4800 bps */
221 KSD_BS_PAD_9600 =0x26, /* data PAD 9600 bps */
222 KSD_BS_ALL_DATA_PDS =0x28, /* all data PDS services */
223 KSD_BS_PDS_2400 =0x2c, /* data PDS 2400 bps */
224 KSD_BS_PDS_4800 =0x2d, /* data PDS 4800 bps */
225 KSD_BS_PDS_9600 =0x2e, /* data PDS 9600 bps */
226 KSD_BS_SPCH_ALT_CDA =0x30, /* all data CDA alter. speech */
227 KSD_BS_SPCH_ALT_CDS =0x38, /* all data CDS alter. speech */
228 KSD_BS_SPCH_FLD_CDA =0x40, /* all data speech followed CDA */
229 KSD_BS_SPCH_FLD_CDS =0x48, /* all data speech followed CDA */
230 KSD_BS_ALL_DC_ASYN =0x50, /* all data circuit asynchronous */
231 KSD_BS_ALL_ASYN =0x60, /* all asynchronous services */
232 KSD_BS_ALL_DC_SYN =0x58, /* all data circuit synchronous */
233 KSD_BS_ALL_SYN =0x68, /* all synchronous services */
234 KSD_BS_ALL_PSSS =0xd0, /* all PLMN specific BS */
235 KSD_BS_PLMN1 =0xd1, /* PLMN specific 1 */
236 KSD_BS_PLMN2 =0xd2, /* PLMN specific 2 */
237 KSD_BS_PLMN3 =0xd3, /* PLMN specific 3 */
238 KSD_BS_PLMN4 =0xd4, /* PLMN specific 4 */
239 KSD_BS_PLMN5 =0xd5, /* PLMN specific 5 */
240 KSD_BS_PLMN6 =0xd6, /* PLMN specific 6 */
241 KSD_BS_PLMN7 =0xd7, /* PLMN specific 7 */
242 KSD_BS_PLMN8 =0xd8, /* PLMN specific 8 */
243 KSD_BS_PLMN9 =0xd9, /* PLMN specific 9 */
244 KSD_BS_PLMNA =0xda, /* PLMN specific A */
245 KSD_BS_PLMNB =0xdb, /* PLMN specific B */
246 KSD_BS_PLMNC =0xdc, /* PLMN specific C */
247 KSD_BS_PLMND =0xdd, /* PLMN specific D */
248 KSD_BS_PLMNE =0xde, /* PLMN specific E */
249 KSD_BS_PLMNF =0xdf /* PLMN specific F */
250
251 } T_ACI_KSD_BEARER_SERVICE;
252
253 typedef enum /* KSD SS Status */
254 {
255 KSD_ST_NOT_VALID = 0xFF,/* no valid SS status */
256 KSD_ST_NONE = 0, /* not registered, not active, not provisioned,
257 not quiescent */
258 KSD_ST_A, /* Active */
259 KSD_ST_R, /* Registered */
260 KSD_ST_RA, /* Registered,Active */
261 KSD_ST_P, /* Provisioned */
262 KSD_ST_PA, /* Provisioned,Active */
263 KSD_ST_PR, /* Provisioned,Registered */
264 KSD_ST_PRA, /* Provisioned,Registered,Active */
265 KSD_ST_Q, /* Quiescent */
266 KSD_ST_QA, /* Quiescent,Active */
267 KSD_ST_QR, /* Quiescent,Registered */
268 KSD_ST_QRA, /* Quiescent,Registered,Active */
269 KSD_ST_QP, /* Quiescent,Provisioned */
270 KSD_ST_QPA, /* Quiescent,Provisioned,Active */
271 KSD_ST_QPR, /* Quiescent,Provisioned,Registered */
272 KSD_ST_QPRA /* Quiescent,Provisioned,Registered,Active */
273 }
274 T_ACI_KSD_ST;
275
276 typedef enum /* KSD CLIR option */
277 {
278 KSD_CO_NOT_VALID = 0xFF, /* no valid CLIR option */
279 KSD_CO_PERMANENT = 0x0, /* CLIR permanent */
280 KSD_CO_TEMPORARY = 0x1, /* CLIR temporary default */
281 KSD_CO_ALLOWED = 0x2 /* CLIR Allowed temporary default */
282 }
283 T_ACI_KSD_CLIR_OP;
284
285 typedef enum
286 {
287 KSD_OVR_CAT_NOT_VALID = 0xFF, /* no valid CLIR option */
288 KSD_OVR_CAT_ENABLED = 0x0, /* Override enabled */
289 KSD_OVR_CAT_DISABLED = 0x1 /* Override disabled */
290 }
291 T_ACI_KSD_OVRD_CTG;
292
293 typedef enum
294 {
295 KSD_NO_ERROR = 0x0,
296 KSD_ERR_UNKNOWN_SUBSCRIBER = 0x1,
297 KSD_ERR_ILLEGAL_SUBSCRIBER = 0x9,
298 KSD_ERR_BEARER_SVC_NOT_PROV = 0xa,
299 KSD_ERR_TELE_SVC_NOT_PROV = 0xb,
300 KSD_ERR_ILLEGAL_EQUIPMENT = 0xc,
301 KSD_ERR_CALL_BARRED = 0xd,
302 KSD_ERR_ILLEGAL_SS_OPERATION = 0x10,
303 KSD_ERR_SS_ERR_STATUS = 0x11,
304 KSD_ERR_SS_NOT_AVAIL = 0x12,
305 KSD_ERR_SS_SUBS_VIOLATION = 0x13,
306 KSD_ERR_SS_INCOMP = 0x14,
307 KSD_ERR_FAC_NOT_SUPPORTED = 0x15,
308 KSD_ERR_ABSENT_SUBS = 0x1b,
309 KSD_ERR_SYSTEM_FAIL = 0x22,
310 KSD_ERR_DATA_MISSING = 0x23,
311 KSD_ERR_UNEXPECT_DATA = 0x24,
312 KSD_ERR_PWD_REG_FAIL = 0x25,
313 KSD_ERR_NEG_PWD_CHECK = 0x26,
314 KSD_ERR_NUM_PWD_VIOLATION = 0x2b,
315 KSD_ERR_UNKNOWN_ALPHA = 0x47,
316 KSD_ERR_USSD_BUSY = 0x48,
317 KSD_ERR_MAX_NUM_MPTY_EXCEED = 0x7e,
318 KSD_ERR_RESOURCE_NOT_AVAIL = 0x7f,
319 KSD_GEN_PROB_UNRECOG_CMP = 0xA0,
320 KSD_GEN_PROB_MISTYPED_CMP = 0xA1,
321 KSD_GEN_PROB_BAD_STRUCT_CMP = 0xA2,
322 KSD_INV_PROB_DUPL_INV_ID = 0xB0,
323 KSD_INV_PROB_UNRECOG_OP = 0xB1,
324 KSD_INV_PROB_MISTYPED_PAR = 0xB2,
325 KSD_INV_PROB_RESOURCE_LIM = 0xB3,
326 KSD_INV_PROB_INIT_RELEASE = 0xB4,
327 KSD_INV_PROB_UNRECOG_LNK_ID = 0xB5,
328 KSD_INV_PROB_LNK_RES_UNEXP = 0xB6,
329 KSD_INV_PROB_UNEXP_LNK_OP = 0xB7,
330 KSD_RES_PROB_UNRECOG_INV_ID = 0xC0,
331 KSD_RES_PROB_RET_RES_UNEXP = 0xC1,
332 KSD_RES_PROB_MISTYPED_PAR = 0xC2,
333 KSD_ERR_PROB_UNRECOG_INV_ID = 0xD0,
334 KSD_ERR_PROB_RET_ERR_UNEXP = 0xD1,
335 KSD_ERR_PROB_UNRECOG_ERR = 0xD2,
336 KSD_ERR_PROB_UNEXP_ERR = 0xD3,
337 KSD_ERR_PROB_MISTYPED_PAR = 0xD4,
338 KSD_ERR_FATAL_INV_RESULT = 0xE0,
339 KSD_ERR_FATAL_CCD_DEC = 0xE1,
340 KSD_ERR_FATAL_SS_ENT = 0xE2
341 }
342 T_ACI_KSD_ERR;
343
344 typedef enum /* type of key sequence */
345 {
346 #ifdef SMI
347 SEQGRP_KEYPAD_IND,
348 SEQGRP_LCD_TEST,
349 SEQGRP_SET_ABBR_DIAL,
350 SEQGRP_SHOW_CALL_TABLE,
351
352 SEQGRP_SMS_SEND,
353 SEQGRP_SMS_SEND_FROM_MEM,
354 SEQGRP_SMS_WRITE,
355 SEQGRP_SMS_DELETE,
356 SEQGRP_SMS_READ,
357 SEQGRP_SMS_LIST,
358 SEQGRP_SMS_READ_SINGLE,
359
360 SEQGRP_SND_CBST,
361 SEQGRP_SND_CRLP,
362 SEQGRP_SND_DS,
363
364 SEQGRP_DATA_SPEECH,
365 SEQGRP_SPEECH_DATA,
366 #endif
367
368 SEQGRP_CHANGE_REGISTER,
369 SEQGRP_SET_REGISTER,
370 SEQGRP_START_REGISTER,
371
372 SEQGRP_ACT_SIM_LOCK,
373 SEQGRP_DEACT_SIM_LOCK,
374 SEQGRP_INTRGT_SIM_LOCK,
375
376 SEQGRP_DTMF,
377
378 SEQGRP_SUP_CLIR,
379 SEQGRP_INV_CLIR,
380 SEQGRP_SUP_CLIP,
381 SEQGRP_INV_CLIP,
382 SEQGRP_SUP_COLR,
383 SEQGRP_INV_COLR,
384 SEQGRP_SUP_COLP,
385 SEQGRP_INV_COLP,
386 SEQGRP_TTY_SERV,
387
388 SEQGRP_CB,
389 SEQGRP_CF,
390 SEQGRP_CHLD,
391 SEQGRP_CL,
392 SEQGRP_CW,
393 SEQGRP_DIAL,
394 SEQGRP_DIAL_IDX,
395 SEQGRP_PRSNT_IMEI,
396 SEQGRP_PWD,
397 SEQGRP_UBLK,
398 SEQGRP_UNKNOWN,
399 SEQGRP_USSD,
400 SEQGRP_CCBS,
401 SEQGRP_CTFR,
402
403 SEQGRP_HOOK_OFF,
404 SEQGRP_HOOK_ON,
405
406 SEQGRP_MS_OFF,
407 SEQGRP_MS_ON,
408
409 SEQGRP_EM_MODE
410 }
411 T_KSD_SEQGRP;
412
413 typedef struct /* parameter list of function cmh_ksdCB */
414 {
415 UBYTE opCd;
416 UBYTE ssCd;
417 UBYTE bsCd;
418 UBYTE *pwd;
419 } T_ACI_KSD_CB_PRM;
420
421 typedef struct /* parameter list of function cmh_ksdCF */
422 {
423 UBYTE opCd;
424 UBYTE ssCd;
425 UBYTE bsCd;
426 UBYTE *num;
427 UBYTE npi;
428 UBYTE ton;
429 UBYTE *sub;
430 UBYTE tos;
431 UBYTE oe;
432 UBYTE time;
433 } T_ACI_KSD_CF_PRM;
434
435 typedef struct /* parameter list of function cmh_ksdCL */
436 {
437 UBYTE opCd;
438 UBYTE ssCd;
439 } T_ACI_KSD_CL_PRM;
440
441 typedef struct /* parameter list of function cmh_ksdCW */
442 {
443 UBYTE opCd;
444 UBYTE bsCd;
445 } T_ACI_KSD_CW_PRM;
446
447 typedef struct /* parameter list of function cmh_ksdPWD */
448 {
449 UBYTE ssCd;
450 UBYTE *oldPwd;
451 UBYTE *newPwd;
452 UBYTE *newPwd2;
453 } T_ACI_KSD_PWD_PRM;
454
455 typedef struct /* parameter list of function cmh_ksdUBLK */
456 {
457 UBYTE ssCd;
458 UBYTE *puk;
459 UBYTE *pin;
460 } T_ACI_KSD_UBLK_PRM;
461
462 typedef struct /* parameter list of function cmh_ksdUSSD */
463 {
464 UBYTE* ussd;
465 } T_ACI_KSD_USSD_PRM;
466
467 typedef struct /* parameter list of function cmh_ksdCCBS */
468 {
469 UBYTE opCd;
470 UBYTE idx;
471 } T_ACI_KSD_CCBS_PRM;
472
473 typedef struct /* parameter list used for setting of */
474 { /* abbreviated dialing parameter */
475 CHAR* number;
476 BYTE index;
477 }
478 T_KSD_ABBR_DIAL;
479
480 typedef struct /* parameter list of function sAT_PlusCBST */
481 {
482 T_ACI_BS_SPEED speed;
483 T_ACI_CBST_NAM name;
484 T_ACI_CBST_CE ce;
485 }
486 T_KSD_CBST;
487
488 typedef struct /* parameter list for TTY/CTM service request */
489 {
490 T_ACI_CTTY_REQ req;
491 }
492 T_KSD_CTTY;
493
494 typedef struct /* parameter list of function sAT_PlusCHLD */
495 {
496 T_ACI_CHLD_MOD mode;
497 CHAR* call;
498 }
499 T_KSD_CHLD;
500
501 typedef struct /* parameter list of function sAT_PlusCTFR */
502 {
503 CHAR *number;
504 T_ACI_TOA type;
505 CHAR *subaddr;
506 T_ACI_TOS satype;
507 }
508 T_KSD_CTFR;
509
510 typedef struct /* parameter list of function sAT_PlusCLCK */
511 {
512 T_ACI_FAC fac;
513 T_ACI_CLCK_MOD mode;
514 CHAR* passwd;
515 T_ACI_CLASS class_type;
516 }
517 T_KSD_CLCK;
518
519 typedef struct /* parameter list of function qAT_PlusCLCK */
520 {
521 T_ACI_FAC fac;
522 }
523 T_KSD_CLCK_QUERY;
524
525 typedef struct /* parameter list of function sAT_PlusCLIP */
526 {
527 T_ACA_CLIP_MOD mode;
528 }
529 T_KSD_CLIP;
530
531 typedef struct /* parameter list of function sAT_PlusCLIR */
532 {
533 T_ACI_CLIR_MOD mode;
534 }
535 T_KSD_CLIR;
536
537 typedef struct /* parameter list of function sAT_PlusCOLP */
538 {
539 T_ACA_COLP_MOD mode;
540 }
541 T_KSD_COLP;
542
543 typedef struct /* parameter list of function sAT_PlusCOPS */
544 {
545 T_ACI_COPS_MOD mode;
546 T_ACI_COPS_FRMT frmt;
547 CHAR* oper;
548 }
549 T_KSD_COPS;
550
551 typedef struct /* parameter list of function sAT_PlusCRLP */
552 {
553 SHORT iws;
554 SHORT mws;
555 SHORT t1;
556 SHORT n2;
557 }
558 T_KSD_CRLP;
559
560 typedef struct /* parameter list of function sAT_Dn */
561 {
562 CHAR* number;
563 T_ACI_D_CLIR_OVRD clirOvrd;
564 T_ACI_D_CUG_CTRL cugCtrl;
565 T_ACI_D_TOC callType;
566 }
567 T_KSD_DIAL;
568
569 typedef struct /* parameter list of function sAT_Dm */
570 {
571 CHAR* str;
572 T_ACI_PB_STOR mem;
573 SHORT index;
574 T_ACI_D_CLIR_OVRD clirOvrd;
575 T_ACI_D_CUG_CTRL cugCtrl;
576 T_ACI_D_TOC callType;
577 }
578 T_KSD_DIAL_IDX;
579
580 typedef struct /* parameter list of function sAT_PlusDS */
581 {
582 T_ACI_DS_DIR dir;
583 T_ACI_DS_COMP comp;
584 LONG maxDict;
585 SHORT maxStr;
586 }
587 T_KSD_DS;
588
589 typedef struct /* parameter list of the keypad indication */
590 {
591 UBYTE keyCode;
592 UBYTE keyStat;
593 }
594 T_KSD_KEYPAD_IND;
595
596 typedef union /* decoded parameter for ACI function */
597 {
598 T_ACI_KSD_CB_PRM cb;
599 T_ACI_KSD_CF_PRM cf;
600 T_ACI_KSD_CL_PRM cl;
601 T_ACI_KSD_CW_PRM cw;
602 T_ACI_KSD_PWD_PRM pwd;
603 T_ACI_KSD_UBLK_PRM ublk;
604 T_ACI_KSD_USSD_PRM ussd;
605 T_ACI_KSD_CCBS_PRM ccbs;
606
607 CHAR dtmf;
608 T_KSD_ABBR_DIAL abbrDial;
609 T_KSD_CBST cbst;
610 T_KSD_CTTY ctty;
611 T_KSD_CHLD chld;
612 T_KSD_CTFR ctfr;
613 T_KSD_CLCK clck;
614 T_KSD_CLCK_QUERY clck_query;
615 T_KSD_CLIP Clip; /* capital C in Clir, Clip and Colp is */
616 T_KSD_CLIR Clir; /* necessary to avoid identifier conflicts*/
617 T_KSD_COLP Colp; /* (see constants in project MFW) */
618 T_KSD_COPS cops;
619 T_KSD_CRLP crlp;
620 T_KSD_DIAL dial;
621 T_KSD_DIAL_IDX dialIdx;
622 T_KSD_DS ds;
623 T_KSD_KEYPAD_IND keypad;
624 }
625 T_KSD_SEQPARAM;
626
627 /*==== PROTOTYPES =================================================*/
628 /*
629 +--------------------------------------------------------------------+
630 | PROJECT : GSM-PS (6147) MODULE : KSD |
631 | STATE : code ROUTINE : ksd_decode |
632 +--------------------------------------------------------------------+
633
634 PURPOSE : This function decodes the incoming keystroke sequence.
635
636 <inSeq>: key sequence, to be decoded
637 <inCall>: TRUE if MMI is within a call, otherwise
638 FALSE
639 <outSeqGrp>: sequence group
640 <outRestSeq>: rest key sequence, to be decoded by a
641 further call to this function
642 <outSeqParam>: sequence parameter
643
644 returns: TRUE if decoding was successfull,
645 otherwise FALSE
646 */
647 GLOBAL BOOL ksd_decode (CHAR* inSeq,
648 BOOL inCall,
649 T_KSD_SEQGRP* outSeqGrp,
650 CHAR** outRestSeq,
651 T_KSD_SEQPARAM* outSeqParam);
652
653 /*
654 +--------------------------------------------------------------------+
655 | PROJECT : GSM-PS (6147) MODULE : KSD |
656 | STATE : code ROUTINE : ksd_getPwdHidden |
657 +--------------------------------------------------------------------+
658
659 PURPOSE : This function is used to hide passwords which are being
660 entered during input of a keystroke sequence.
661
662 <inSeq>: key sequence to be manipulated
663 <replace>: character which is used for replacing of
664 passwords
665 */
666 GLOBAL void ksd_getPwdHidden (CHAR* inSeq,
667 CHAR replace);
668
669 /*
670 +--------------------------------------------------------------------+
671 | PROJECT : GSM-PS (6147) MODULE : KSD |
672 | STATE : code ROUTINE : ksd_isSscs |
673 +--------------------------------------------------------------------+
674
675 PURPOSE : This function return whether the given string is a
676 supplementary service control string.
677
678 <inSeq>: key sequence
679
680 returns: TRUE if string is a supplementary service
681 control string, otherwise FALSE
682 */
683 GLOBAL BOOL ksd_isSscs (CHAR* inSeq);
684
685 /*
686 +--------------------------------------------------------------------+
687 | PROJECT : GSM-PS (6147) MODULE : KSD |
688 | STATE : code ROUTINE : ksd_isSATSscs |
689 +--------------------------------------------------------------------+
690
691 PURPOSE : This function return whether the given string is a
692 supplementary service control string for SAT.
693
694 <inSeq>: key sequence
695
696 returns: TRUE if string is a supplementary service
697 control string for SAT, otherwise FALSE
698 */
699 GLOBAL BOOL ksd_isSATSscs ( CHAR* inSeq );
700
701 /*
702 +--------------------------------------------------------------------+
703 | PROJECT : GSM-PS (6147) MODULE : KSD |
704 | STATE : code ROUTINE : ksd_isUSSD |
705 +--------------------------------------------------------------------+
706
707 PURPOSE : This function checks whether key sequence is an
708 unstructured SS command.
709
710 <keySeq>: buffer containing the key sequence
711 */
712 GLOBAL BOOL ksd_isUSSD (CHAR *keySeq);
713
714 /*
715 +--------------------------------------------------------------------+
716 | PROJECT : GSM-PS (6147) MODULE : KSD |
717 | STATE : code ROUTINE : ksd_isFDNCheckSeq |
718 +--------------------------------------------------------------------+
719
720 PURPOSE : This function return whether the given string must check
721 in FDN phonebook
722
723 <inSeq>: key sequence
724
725 returns: TRUE if string must check,
726 otherwise FALSE
727 */
728 GLOBAL BOOL ksd_isFDNCheckSeq (CHAR* inSeq);
729
730
731 /*
732 +--------------------------------------------------------------------+
733 | PROJECT : GSM-PS (6147) MODULE : KSD |
734 | STATE : code ROUTINE : ksd_isBCDForUSBand |
735 +--------------------------------------------------------------------+
736
737 PURPOSE : This function checks if US band is used and key sequence
738 is "0" or "00", because these key sequences shall be send
739 to network as normal dialing numbers when using US band.
740
741 <inSeq>: key sequence
742
743 returns: TRUE if US band is used and key sequence
744 is "0" or "00",
745 otherwise FALSE
746 */
747 GLOBAL BOOL ksd_isBCDForUSBand (CHAR* inSeq);
748 /*
749 +--------------------------------------------------------------------+
750 | PROJECT : GSM-PS (6147) MODULE : KSD |
751 | STATE : code ROUTINE : ksd_check_write_to_LDN |
752 +--------------------------------------------------------------------+
753
754 PURPOSE : This function is used to decide if the keystroke sequence needs to
755 be stored in the LDN or not.
756
757 <inSeq>: key sequence
758
759 returns: TRUE if the keystroke sequence doesn't contain password
760 or it is not a local string
761 otherwise FALSE
762 */
763 GLOBAL BOOL ksd_isLDNWriteCheckSeq(CHAR* inSeq);
764
765
766
767 /*==== EXPORT =====================================================*/
768
769 #endif
770