FreeCalypso > hg > freecalypso-citrine
comparison g23m-aci/aci/cmh_ssq.c @ 0:75a11d740a02
initial import of gsm-fw from freecalypso-sw rev 1033:5ab737ac3ad7
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 09 Jun 2016 00:02:41 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:75a11d740a02 |
---|---|
1 /* | |
2 +----------------------------------------------------------------------------- | |
3 | Project : GSM-PS (6147) | |
4 | Modul : CMH_SSS | |
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 provides the query functions related to the | |
18 | protocol stack adapter for SS. | |
19 +----------------------------------------------------------------------------- | |
20 */ | |
21 | |
22 #ifndef CMH_SSQ_C | |
23 #define CMH_SSQ_C | |
24 #endif | |
25 | |
26 #include "config.h" | |
27 #include "fixedconf.h" | |
28 #include "condat-features.h" | |
29 #include "aci_conf.h" | |
30 | |
31 #include "aci_all.h" | |
32 /*==== INCLUDES ===================================================*/ | |
33 #include "aci.h" | |
34 #include "aci_cmh.h" | |
35 #include "ati_cmd.h" | |
36 #include "aci_cmd.h" | |
37 | |
38 #include "aci_ext_pers.h" /* we are using personalisation extensions */ | |
39 #include "aci_slock.h" /* in order to asure interfaces */ | |
40 | |
41 #ifdef FAX_AND_DATA | |
42 #include "aci_fd.h" | |
43 #endif /* of #ifdef FAX_AND_DATA */ | |
44 | |
45 #ifdef UART | |
46 #include "dti.h" | |
47 #include "dti_conn_mng.h" | |
48 #endif | |
49 | |
50 #include "ksd.h" | |
51 #include "psa.h" | |
52 #include "psa_ss.h" | |
53 #include "psa_sim.h" | |
54 #include "cmh.h" | |
55 #include "cmh_ss.h" | |
56 #include "cmh_sim.h" | |
57 | |
58 #include "aci_ext_pers.h" | |
59 #include "aci_slock.h" | |
60 | |
61 #ifdef FF_PHONE_LOCK | |
62 #include "sec_drv.h" | |
63 #endif | |
64 | |
65 /*==== CONSTANTS ==================================================*/ | |
66 | |
67 /*==== EXPORT =====================================================*/ | |
68 | |
69 /*==== VARIABLES ==================================================*/ | |
70 | |
71 /*==== PROTOTYPES==================================================*/ | |
72 /* Implements Measure 193 */ | |
73 LOCAL T_ACI_RETURN cmhSS_queryHandler (T_ACI_CMD_SRC srcId, | |
74 void *stat, | |
75 T_ACI_AT_CMD atCmd, | |
76 UBYTE ssCode); | |
77 EXTERN T_ACI_RETURN cmhSS_check_oper_result(T_OPER_RET_STATUS result); | |
78 | |
79 #ifdef FF_PHONE_LOCK | |
80 EXTERN T_OPER_RET_STATUS aci_ext_get_phone_lock_satus(T_SEC_DRV_EXT_PHONE_LOCK_TYPE type,T_SEC_DRV_EXT_PHONE_LOCK_STATUS *status); | |
81 #endif | |
82 /*==== FUNCTIONS ==================================================*/ | |
83 | |
84 /* | |
85 +--------------------------------------------------------------------+ | |
86 | PROJECT : GSM-PS (6147) MODULE : CMH_SSQ | | |
87 | STATE : code ROUTINE : qAT_PlusCCFC | | |
88 +--------------------------------------------------------------------+ | |
89 | |
90 PURPOSE : This is the functional counterpart to the +CCFC AT command | |
91 which is responsible to query the parameters for call | |
92 forwarding supplementary services. | |
93 | |
94 <reason> : reason for CF. | |
95 <class> : class of basic service. | |
96 */ | |
97 | |
98 GLOBAL T_ACI_RETURN qAT_PlusCCFC ( T_ACI_CMD_SRC srcId, | |
99 T_ACI_CCFC_RSN reason, | |
100 T_ACI_CLASS class_type ) | |
101 { | |
102 SHORT sId; /* holds service id */ | |
103 UBYTE ssCd; /* holds ss code */ | |
104 | |
105 T_ACI_RETURN retVal; | |
106 | |
107 | |
108 TRACE_FUNCTION ("qAT_PlusCCFC"); | |
109 | |
110 /* | |
111 *------------------------------------------------------------------- | |
112 * check command source | |
113 *------------------------------------------------------------------- | |
114 */ | |
115 if(!cmh_IsVldCmdSrc (srcId)) | |
116 { | |
117 return( AT_FAIL ); | |
118 } | |
119 | |
120 if( cmhPrm[srcId].ssCmdPrm.mltyTrnFlg NEQ 0 ) | |
121 | |
122 return( AT_BUSY ); | |
123 | |
124 /* Implements Measure # 85 */ | |
125 if(!cmhSS_checkCCFC_RSN(reason, &ssCd)) | |
126 { | |
127 return( AT_FAIL ); | |
128 } | |
129 /* | |
130 *------------------------------------------------------------------- | |
131 * check parameter <class> | |
132 *------------------------------------------------------------------- | |
133 */ | |
134 if( !cmhSS_CheckClassInterr(class_type) ) | |
135 { | |
136 ACI_ERR_DESC( ACI_ERR_CLASS_Ext, EXT_ERR_Parameter ); | |
137 return( AT_FAIL ); | |
138 } | |
139 | |
140 /* SIM TOOLKIT & FDN HANDLING */ | |
141 | |
142 retVal = cmhSS_CF_SAT_Handle( srcId, reason, CCFC_MOD_Query, NULL, NULL, class_type, NULL, NULL, 0); | |
143 | |
144 if( retVal NEQ AT_CMPL ) | |
145 return( retVal ); | |
146 | |
147 /* | |
148 *------------------------------------------------------------------- | |
149 * get a new service table entry to interrogate SS | |
150 *------------------------------------------------------------------- | |
151 */ | |
152 sId = psaSS_stbNewEntry(); | |
153 | |
154 if( sId EQ NO_ENTRY ) | |
155 { | |
156 ACI_ERR_DESC( ACI_ERR_CLASS_Ext, EXT_ERR_SrvTabFull ); | |
157 return( AT_FAIL ); | |
158 } | |
159 | |
160 /* | |
161 *------------------------------------------------------------------- | |
162 * start first transaction | |
163 *------------------------------------------------------------------- | |
164 */ | |
165 CCD_START; | |
166 | |
167 psaSS_asmInterrogateSS( ssCd, SS_NO_PRM, SS_NO_PRM ); | |
168 | |
169 ssShrdPrm.stb[sId].ntryUsdFlg = TRUE; | |
170 ssShrdPrm.stb[sId].ssCode = ssCd; | |
171 ssShrdPrm.stb[sId].srvOwn = (T_OWN)srcId; | |
172 ssShrdPrm.stb[sId].ClassType = class_type; | |
173 | |
174 ssShrdPrm.stb[sId].curCmd = AT_CMD_CCFC; | |
175 cmhSS_flagTrn( sId, &(cmhPrm[srcId].ssCmdPrm.mltyTrnFlg)); | |
176 psaSS_NewTrns(sId); | |
177 | |
178 CCD_END; | |
179 | |
180 /* | |
181 *------------------------------------------------------------------- | |
182 * log command execution | |
183 *------------------------------------------------------------------- | |
184 */ | |
185 #if defined SMI OR defined MFW OR defined FF_MMI_RIV | |
186 { | |
187 T_ACI_CLOG cmdLog; /* holds logging info */ | |
188 | |
189 cmdLog.atCmd = AT_CMD_CCFC; | |
190 cmdLog.cmdType = CLOG_TYPE_Query; | |
191 cmdLog.retCode = AT_EXCT; | |
192 cmdLog.cId = ACI_NumParmNotPresent; | |
193 cmdLog.sId = sId+1; | |
194 cmdLog.cmdPrm.qCCFC.srcId = srcId; | |
195 cmdLog.cmdPrm.qCCFC.reason = reason; | |
196 cmdLog.cmdPrm.qCCFC.class_type = class_type; | |
197 rAT_PercentCLOG( &cmdLog ); | |
198 } | |
199 #endif | |
200 return( AT_EXCT ); | |
201 } | |
202 | |
203 /* | |
204 +--------------------------------------------------------------------+ | |
205 | PROJECT : GSM-PS (6147) MODULE : CMH_SSQ | | |
206 | STATE : code ROUTINE : qAT_PlusCLCK | | |
207 +--------------------------------------------------------------------+ | |
208 | |
209 PURPOSE : This is the functional counterpart to the +CLCK AT command | |
210 which is responsible to query the parameters for call | |
211 barring supplementary services. | |
212 | |
213 <fac> : CB facility. | |
214 <class>: class of basic service. | |
215 */ | |
216 | |
217 GLOBAL T_ACI_RETURN qAT_PlusCLCK ( T_ACI_CMD_SRC srcId, | |
218 T_ACI_FAC fac, | |
219 T_ACI_CLASS class_type, | |
220 T_ACI_CLSSTAT *clsStat) | |
221 { | |
222 UBYTE dummy_slockStat; | |
223 TRACE_FUNCTION ("qAT_PlusCLCK"); | |
224 return qAT_PercentCLCK(srcId,fac,class_type, clsStat,&dummy_slockStat); | |
225 } | |
226 | |
227 /*QAT_PERCENTCLCK add for Simlock in Riviear MFW | |
228 | |
229 Added by Shen,Chao April 16th, 2003 | |
230 */ | |
231 | |
232 GLOBAL T_ACI_RETURN qAT_PercentCLCK ( T_ACI_CMD_SRC srcId, | |
233 T_ACI_FAC fac, | |
234 T_ACI_CLASS class_type, | |
235 T_ACI_CLSSTAT *clsStat, | |
236 UBYTE *simClockStat) | |
237 { | |
238 SHORT sId; /* holds service id */ | |
239 UBYTE ssCd; /* holds ss code */ | |
240 T_ACI_RETURN retVal; | |
241 #ifdef SIM_PERS | |
242 T_SIMLOCK_TYPE slocktype; | |
243 T_SIMLOCK_STATUS rlockstatus; | |
244 T_OPER_RET_STATUS ret; | |
245 #endif | |
246 | |
247 | |
248 TRACE_FUNCTION ("qAT_PercentCLCK"); | |
249 | |
250 /* | |
251 *------------------------------------------------------------------- | |
252 * check command source | |
253 *------------------------------------------------------------------- | |
254 */ | |
255 if(!cmh_IsVldCmdSrc (srcId)) | |
256 { | |
257 return( AT_FAIL ); | |
258 } | |
259 | |
260 if( cmhPrm[srcId].ssCmdPrm.mltyTrnFlg NEQ 0 ) | |
261 return( AT_BUSY ); | |
262 | |
263 /* | |
264 *------------------------------------------------------------------- | |
265 * check parameter <fac> | |
266 *------------------------------------------------------------------- | |
267 */ | |
268 /* Implements Measure # 166 */ | |
269 if( !cmhSS_getSSCd(fac, &ssCd) ) | |
270 { | |
271 return( AT_FAIL ); | |
272 } | |
273 | |
274 /* | |
275 *------------------------------------------------------------------- | |
276 * if action is related to SS | |
277 *------------------------------------------------------------------- | |
278 */ | |
279 if( ssCd NEQ NOT_PRESENT_8BIT ) | |
280 { | |
281 /* | |
282 *------------------------------------------------------------------- | |
283 * check parameter <class> | |
284 *------------------------------------------------------------------- | |
285 */ | |
286 if( !cmhSS_CheckCbClassInterr(class_type)) | |
287 { | |
288 ACI_ERR_DESC( ACI_ERR_CLASS_Cme, CME_ERR_OpNotAllow ); | |
289 return( AT_FAIL ); | |
290 } | |
291 | |
292 if( cmhPrm[srcId].ssCmdPrm.mltyTrnFlg NEQ 0 ) | |
293 | |
294 return( AT_BUSY ); | |
295 /* | |
296 *------------------------------------------------------------------- | |
297 * check not allowed <fac> (only possible with mode=0 i.e unlock) | |
298 *------------------------------------------------------------------- | |
299 */ | |
300 if(fac EQ FAC_Ab OR fac EQ FAC_Ag OR fac EQ FAC_Ac) | |
301 { | |
302 ACI_ERR_DESC( ACI_ERR_CLASS_Cme, CME_ERR_OpNotAllow ); | |
303 return( AT_FAIL ); | |
304 } | |
305 | |
306 /* SIM TOOLKIT & FDN HANDLING */ | |
307 | |
308 retVal = cmhSS_Call_Barr_SAT_Handle( srcId, CLCK_MODE_QUERY, fac, NULL, class_type); | |
309 | |
310 if( retVal NEQ AT_CMPL ) | |
311 return( retVal ); | |
312 | |
313 | |
314 /* | |
315 *------------------------------------------------------------------- | |
316 * get a new service table entry to interrogate SS | |
317 *------------------------------------------------------------------- | |
318 */ | |
319 sId = psaSS_stbNewEntry(); | |
320 | |
321 if( sId EQ NO_ENTRY ) | |
322 { | |
323 ACI_ERR_DESC( ACI_ERR_CLASS_Ext, EXT_ERR_SrvTabFull ); | |
324 return( AT_FAIL ); | |
325 } | |
326 | |
327 /* | |
328 *------------------------------------------------------------------- | |
329 * start first transaction | |
330 *------------------------------------------------------------------- | |
331 */ | |
332 CCD_START; | |
333 | |
334 psaSS_asmInterrogateSS( ssCd, SS_NO_PRM, SS_NO_PRM ); | |
335 | |
336 ssShrdPrm.stb[sId].ntryUsdFlg = TRUE; | |
337 ssShrdPrm.stb[sId].ssCode = ssCd; | |
338 ssShrdPrm.stb[sId].srvOwn = (T_OWN)srcId; | |
339 ssShrdPrm.stb[sId].ClassType = class_type; | |
340 | |
341 ssShrdPrm.stb[sId].curCmd = AT_CMD_CLCK; | |
342 cmhSS_flagTrn( sId, &(cmhPrm[srcId].ssCmdPrm.mltyTrnFlg)); | |
343 psaSS_NewTrns(sId); | |
344 | |
345 CCD_END; | |
346 } | |
347 | |
348 /* | |
349 *------------------------------------------------------------------- | |
350 * if action is related to SIM | |
351 *------------------------------------------------------------------- | |
352 */ | |
353 else | |
354 { | |
355 switch (fac) | |
356 { | |
357 /* | |
358 *--------------------------------------------------------------- | |
359 * access PIN 1 status | |
360 *--------------------------------------------------------------- | |
361 */ | |
362 case FAC_Sc: | |
363 clsStat -> class_type = CLASS_NotPresent; | |
364 clsStat -> status = STATUS_NotPresent; | |
365 | |
366 switch( simShrdPrm.PEDStat ) | |
367 { | |
368 case( PEDS_ENA ): clsStat -> status = STATUS_Active; | |
369 return( AT_CMPL ); | |
370 case( PEDS_DIS ): clsStat -> status = STATUS_NotActive; | |
371 return( AT_CMPL ); | |
372 default: | |
373 ACI_ERR_DESC( ACI_ERR_CLASS_Cme, CME_ERR_SimFail ); | |
374 return( AT_FAIL ); | |
375 } | |
376 /* break is removed ,as case is returning before break so it is not needed */ | |
377 /* | |
378 *--------------------------------------------------------------- | |
379 * access fixed dialling feature | |
380 *--------------------------------------------------------------- | |
381 */ | |
382 case ( FAC_Fd ): | |
383 clsStat -> class_type = CLASS_NotPresent; | |
384 clsStat -> status = STATUS_NotPresent; | |
385 | |
386 if( simShrdPrm.SIMStat EQ SS_OK ) | |
387 { | |
388 switch( simShrdPrm.crdFun ) | |
389 { | |
390 case( SIM_ADN_ENABLED ): | |
391 case( SIM_ADN_BDN_ENABLED ): clsStat -> status = STATUS_NotActive; | |
392 return( AT_CMPL ); | |
393 case( SIM_FDN_ENABLED ): | |
394 case( SIM_FDN_BDN_ENABLED ): clsStat -> status = STATUS_Active; | |
395 return( AT_CMPL ); | |
396 case( SIM_NO_OPERATION ): | |
397 default: | |
398 | |
399 ACI_ERR_DESC( ACI_ERR_CLASS_Cme, CME_ERR_SimFail ); | |
400 return( AT_FAIL ); | |
401 } | |
402 } | |
403 else | |
404 { | |
405 ACI_ERR_DESC( ACI_ERR_CLASS_Cme, CME_ERR_SimFail ); | |
406 return( AT_FAIL ); | |
407 } | |
408 /* break is removed ,as case is returning before break so it is not needed */ | |
409 /* | |
410 *--------------------------------------------------------------- | |
411 * lock ALS setting with PIN2 | |
412 *--------------------------------------------------------------- | |
413 */ | |
414 case FAC_Al: | |
415 clsStat -> class_type = CLASS_NotPresent; | |
416 clsStat -> status = STATUS_NotPresent; | |
417 | |
418 switch( ALSlock ) | |
419 { | |
420 case( ALS_MOD_SPEECH ): | |
421 case( ALS_MOD_AUX_SPEECH ): | |
422 clsStat -> status = STATUS_Active; | |
423 return( AT_CMPL ); | |
424 | |
425 case( ALS_MOD_NOTPRESENT ): | |
426 clsStat -> status = STATUS_NotActive; | |
427 return( AT_CMPL ); | |
428 | |
429 default: | |
430 ACI_ERR_DESC( ACI_ERR_CLASS_Cme, CME_ERR_OpNotSupp ); | |
431 return( AT_FAIL ); | |
432 } | |
433 /* break is removed ,as case is returning before break so it is not needed */ | |
434 #ifdef SIM_PERS | |
435 /* | |
436 *--------------------------------------------------------------- | |
437 * ME Personalisation | |
438 *--------------------------------------------------------------- | |
439 */ | |
440 | |
441 case FAC_Pn: | |
442 case FAC_Pu: | |
443 case FAC_Pp: | |
444 case FAC_Pc: | |
445 case FAC_Ps: | |
446 case FAC_Pf: | |
447 case FAC_Bl: | |
448 | |
449 clsStat -> class_type = CLASS_NotPresent; | |
450 clsStat -> status = STATUS_NotPresent; | |
451 | |
452 switch (fac) | |
453 { | |
454 case FAC_Pn: slocktype = SIMLOCK_NETWORK; break; | |
455 case FAC_Pu: slocktype = SIMLOCK_NETWORK_SUBSET; break; | |
456 case FAC_Pp: slocktype = SIMLOCK_SERVICE_PROVIDER; break; | |
457 case FAC_Pc: slocktype = SIMLOCK_CORPORATE; break; | |
458 case FAC_Ps: slocktype = SIMLOCK_SIM; break; | |
459 case FAC_Pf: slocktype = SIMLOCK_FIRST_SIM; break; | |
460 case FAC_Bl: slocktype = SIMLOCK_BLOCKED_NETWORK; break; | |
461 default: slocktype = SIMLOCK_NETWORK; | |
462 } | |
463 aci_ext_personalisation_init(); | |
464 rlockstatus = aci_personalisation_get_status(slocktype); /* Changed to aci_personalisatio_get_status | |
465 from aci_ext_personalisatio_get_status on 11/03/2005 */ | |
466 aci_ext_personalisation_free(); | |
467 if (rlockstatus EQ SIMLOCK_ENABLED) | |
468 { | |
469 clsStat -> status = STATUS_Active; | |
470 return( AT_CMPL ); | |
471 } | |
472 else if (rlockstatus EQ SIMLOCK_DISABLED) | |
473 { | |
474 clsStat -> status = STATUS_NotActive; | |
475 return( AT_CMPL ); | |
476 } | |
477 else | |
478 { | |
479 ACI_ERR_DESC( ACI_ERR_CLASS_Cme, CME_ERR_Unknown ); | |
480 return( AT_FAIL ); | |
481 } | |
482 | |
483 case( FAC_Mu ) : | |
484 case( FAC_Mum ) : | |
485 { | |
486 clsStat->class_type = CLASS_NotPresent; | |
487 clsStat->status = STATUS_NotPresent; | |
488 ret = aci_slock_master_unlock( NULL ); | |
489 switch (ret) | |
490 { | |
491 case OPER_SUCCESS: | |
492 case OPER_WRONG_PASSWORD: | |
493 clsStat->status = STATUS_Active; | |
494 return( AT_CMPL ); | |
495 case OPER_NOT_ALLOWED: | |
496 clsStat->status = STATUS_NotActive; | |
497 return( AT_CMPL ); | |
498 case OPER_FAIL: | |
499 ACI_ERR_DESC( ACI_ERR_CLASS_Cme,CME_ERR_Unknown ); | |
500 return( AT_FAIL ); | |
501 default: | |
502 ACI_ERR_DESC( ACI_ERR_CLASS_Cme,CME_ERR_Unknown ); | |
503 return( AT_FAIL ); | |
504 } | |
505 } | |
506 #endif | |
507 | |
508 #ifdef FF_PHONE_LOCK | |
509 case(FAC_Pl) : | |
510 { | |
511 clsStat->class_type = CLASS_NotPresent; | |
512 clsStat->status = STATUS_NotPresent; | |
513 ret = aci_ext_get_phone_lock_satus(PHONE_LOCK,(T_SEC_DRV_EXT_PHONE_LOCK_STATUS *)&clsStat->status); | |
514 return(cmhSS_check_oper_result(ret)); | |
515 } | |
516 case(FAC_Apl) : | |
517 { | |
518 clsStat->class_type = CLASS_NotPresent; | |
519 clsStat->status = STATUS_NotPresent; | |
520 ret = aci_ext_get_phone_lock_satus(AUTO_LOCK,(T_SEC_DRV_EXT_PHONE_LOCK_STATUS *)&clsStat->status); | |
521 return(cmhSS_check_oper_result(ret)); | |
522 } | |
523 #endif | |
524 | |
525 /* | |
526 *--------------------------------------------------------------- | |
527 * Error handling | |
528 *--------------------------------------------------------------- | |
529 */ | |
530 default: | |
531 ACI_ERR_DESC( ACI_ERR_CLASS_Cme, CME_ERR_Unknown ); | |
532 return( AT_FAIL ); | |
533 } | |
534 } | |
535 | |
536 /* | |
537 *------------------------------------------------------------------- | |
538 * log command execution | |
539 *------------------------------------------------------------------- | |
540 */ | |
541 #if defined SMI OR defined MFW OR defined FF_MMI_RIV | |
542 { | |
543 T_ACI_CLOG cmdLog; /* holds logging info */ | |
544 | |
545 cmdLog.atCmd = AT_CMD_CLCK; | |
546 cmdLog.cmdType = CLOG_TYPE_Query; | |
547 cmdLog.retCode = AT_EXCT; | |
548 cmdLog.cId = ACI_NumParmNotPresent; | |
549 cmdLog.sId = sId+1; | |
550 cmdLog.cmdPrm.qCLCK.srcId = srcId; | |
551 cmdLog.cmdPrm.qCLCK.fac = fac; | |
552 cmdLog.cmdPrm.qCLCK.class_type = class_type; | |
553 | |
554 rAT_PercentCLOG( &cmdLog ); | |
555 } | |
556 #endif | |
557 | |
558 return( AT_EXCT ); | |
559 } | |
560 | |
561 /* | |
562 +--------------------------------------------------------------------+ | |
563 | PROJECT : GSM-PS (6147) MODULE : CMH_SSQ | | |
564 | STATE : code ROUTINE : qAT_PlusCCWA | | |
565 +--------------------------------------------------------------------+ | |
566 | |
567 PURPOSE : This is the functional counterpart to the +CCWA AT command | |
568 which is responsible to query the parameters for call | |
569 waiting supplementary services. | |
570 | |
571 <class> : class of basic service. | |
572 */ | |
573 | |
574 GLOBAL T_ACI_RETURN qAT_PlusCCWA (T_ACI_CMD_SRC srcId, | |
575 T_ACI_CLASS class_type) | |
576 { | |
577 SHORT sId; /* holds service id */ | |
578 | |
579 T_ACI_RETURN retVal; | |
580 | |
581 TRACE_FUNCTION ("qAT_PlusCCWA ()"); | |
582 | |
583 /* | |
584 *------------------------------------------------------------------- | |
585 * check command source | |
586 *------------------------------------------------------------------- | |
587 */ | |
588 if(!cmh_IsVldCmdSrc (srcId)) | |
589 { | |
590 return( AT_FAIL ); | |
591 } | |
592 | |
593 if( cmhPrm[srcId].ssCmdPrm.mltyTrnFlg NEQ 0 ) | |
594 | |
595 return( AT_BUSY ); | |
596 | |
597 /* | |
598 *------------------------------------------------------------------- | |
599 * check parameter <class> | |
600 *------------------------------------------------------------------- | |
601 */ | |
602 if( !cmhSS_CheckClassInterr(class_type) ) | |
603 { | |
604 ACI_ERR_DESC( ACI_ERR_CLASS_Ext, EXT_ERR_Parameter ); | |
605 return( AT_FAIL ); | |
606 } | |
607 | |
608 /* SIM TOOLKIT & FDN HANDLING */ | |
609 retVal = cmhSS_CW_SAT_Handle( srcId, CCFC_MOD_Query, class_type); | |
610 | |
611 if( retVal NEQ AT_CMPL ) | |
612 return( retVal ); | |
613 | |
614 /* | |
615 *------------------------------------------------------------------- | |
616 * get a new service table entry to interrogate SS | |
617 *------------------------------------------------------------------- | |
618 */ | |
619 sId = psaSS_stbNewEntry(); | |
620 | |
621 if( sId EQ NO_ENTRY ) | |
622 { | |
623 ACI_ERR_DESC( ACI_ERR_CLASS_Ext, EXT_ERR_SrvTabFull ); | |
624 return( AT_FAIL ); | |
625 } | |
626 | |
627 /* | |
628 *------------------------------------------------------------------- | |
629 * start first transaction | |
630 *------------------------------------------------------------------- | |
631 */ | |
632 CCD_START; | |
633 | |
634 psaSS_asmInterrogateSS( SS_CD_CW, SS_NO_PRM, SS_NO_PRM ); | |
635 | |
636 ssShrdPrm.stb[sId].ntryUsdFlg = TRUE; | |
637 ssShrdPrm.stb[sId].ssCode = SS_CD_CW; | |
638 ssShrdPrm.stb[sId].srvOwn = (T_OWN)srcId; | |
639 ssShrdPrm.stb[sId].ClassType = class_type; | |
640 | |
641 ssShrdPrm.stb[sId].curCmd = AT_CMD_CCWA; | |
642 cmhSS_flagTrn( sId, &(cmhPrm[srcId].ssCmdPrm.mltyTrnFlg)); | |
643 psaSS_NewTrns(sId); | |
644 | |
645 CCD_END; | |
646 | |
647 /* | |
648 *------------------------------------------------------------------- | |
649 * log command execution | |
650 *------------------------------------------------------------------- | |
651 */ | |
652 #if defined SMI OR defined MFW OR defined FF_MMI_RIV | |
653 { | |
654 T_ACI_CLOG cmdLog; /* holds logging info */ | |
655 | |
656 cmdLog.atCmd = AT_CMD_CCWA; | |
657 cmdLog.cmdType = CLOG_TYPE_Query; | |
658 cmdLog.retCode = AT_EXCT; | |
659 cmdLog.cId = ACI_NumParmNotPresent; | |
660 cmdLog.sId = sId+1; | |
661 cmdLog.cmdPrm.qCCWA.srcId = srcId; | |
662 cmdLog.cmdPrm.qCCWA.class_type = class_type; | |
663 | |
664 rAT_PercentCLOG( &cmdLog ); | |
665 } | |
666 #endif | |
667 | |
668 return( AT_EXCT ); | |
669 } | |
670 | |
671 /* | |
672 +--------------------------------------------------------------------+ | |
673 | PROJECT : GSM-PS (6147) MODULE : CMH_SSQ | | |
674 | STATE : code ROUTINE : qAT_PlusCLIP | | |
675 +--------------------------------------------------------------------+ | |
676 | |
677 PURPOSE : This is the functional counterpart to the +CLIP AT command | |
678 which is responsible to query the setting for calling | |
679 line indication supplementary services. | |
680 | |
681 <stat> : CLIP status. | |
682 */ | |
683 | |
684 GLOBAL T_ACI_RETURN qAT_PlusCLIP ( T_ACI_CMD_SRC srcId, | |
685 T_ACI_CLIP_STAT * stat) | |
686 { | |
687 /* Implements Measure 193 */ | |
688 TRACE_FUNCTION ("qAT_PlusCLIP ()"); | |
689 return (cmhSS_queryHandler (srcId, | |
690 (void*)stat, | |
691 AT_CMD_CLIP, | |
692 SS_CD_CLIP) ); | |
693 } | |
694 | |
695 /* | |
696 +--------------------------------------------------------------------+ | |
697 | PROJECT : GSM-PS (6147) MODULE : CMH_SSQ | | |
698 | STATE : code ROUTINE : qAT_PlusCLIR | | |
699 +--------------------------------------------------------------------+ | |
700 | |
701 PURPOSE : This is the functional counterpart to the +CLIR AT command | |
702 which is responsible to query the setting for calling | |
703 line restriction supplementary services. | |
704 | |
705 <mode> : CLIR mode. | |
706 <stat> : CLIR status. | |
707 */ | |
708 | |
709 GLOBAL T_ACI_RETURN qAT_PlusCLIR ( T_ACI_CMD_SRC srcId, | |
710 T_ACI_CLIR_MOD * mode, | |
711 T_ACI_CLIR_STAT * stat) | |
712 { | |
713 SHORT sId; /* holds service id */ | |
714 | |
715 T_ACI_RETURN retVal; | |
716 | |
717 TRACE_FUNCTION ("qAT_PlusCLIR ()"); | |
718 | |
719 /* | |
720 *------------------------------------------------------------------- | |
721 * check command source | |
722 *------------------------------------------------------------------- | |
723 */ | |
724 if(!cmh_IsVldCmdSrc (srcId)) | |
725 { | |
726 return( AT_FAIL ); | |
727 } | |
728 | |
729 /* SIM TOOLKIT & FDN HANDLING */ | |
730 retVal = cmhSS_CLIR_SAT_Handle( srcId); | |
731 | |
732 if( retVal NEQ AT_CMPL ) | |
733 return( retVal ); | |
734 | |
735 | |
736 /* | |
737 *------------------------------------------------------------------- | |
738 * get a new service table entry to interrogate SS | |
739 *------------------------------------------------------------------- | |
740 */ | |
741 sId = psaSS_stbNewEntry(); | |
742 | |
743 if( sId EQ NO_ENTRY ) | |
744 { | |
745 ACI_ERR_DESC( ACI_ERR_CLASS_Ext, EXT_ERR_SrvTabFull ); | |
746 return( AT_FAIL ); | |
747 } | |
748 | |
749 /* | |
750 *------------------------------------------------------------------- | |
751 * set up facility information element | |
752 *------------------------------------------------------------------- | |
753 */ | |
754 CCD_START; | |
755 | |
756 psaSS_asmInterrogateSS( SS_CD_CLIR, SS_NO_PRM, SS_NO_PRM ); | |
757 /* | |
758 *----------------------------------------------------------------- | |
759 * declare service table entry as used and the owner of the service | |
760 *----------------------------------------------------------------- | |
761 */ | |
762 ssShrdPrm.stb[sId].ntryUsdFlg = TRUE; | |
763 ssShrdPrm.stb[sId].srvOwn = (T_OWN)srcId; | |
764 | |
765 /* | |
766 *------------------------------------------------------------------- | |
767 * start a new transaction | |
768 *------------------------------------------------------------------- | |
769 */ | |
770 ssShrdPrm.stb[sId].curCmd = AT_CMD_CLIR; | |
771 psaSS_NewTrns(sId); | |
772 | |
773 CCD_END; | |
774 | |
775 /* | |
776 *------------------------------------------------------------------- | |
777 * log command execution | |
778 *------------------------------------------------------------------- | |
779 */ | |
780 #if defined SMI OR defined MFW OR defined FF_MMI_RIV | |
781 { | |
782 T_ACI_CLOG cmdLog; /* holds logging info */ | |
783 | |
784 cmdLog.atCmd = AT_CMD_CLIR; | |
785 cmdLog.cmdType = CLOG_TYPE_Query; | |
786 cmdLog.retCode = AT_EXCT; | |
787 cmdLog.cId = ACI_NumParmNotPresent; | |
788 cmdLog.sId = sId+1; | |
789 cmdLog.cmdPrm.qCLIR.srcId = srcId; | |
790 cmdLog.cmdPrm.qCLIR.stat = stat; | |
791 cmdLog.cmdPrm.qCLIR.mode = mode; | |
792 rAT_PercentCLOG( &cmdLog ); | |
793 } | |
794 #endif | |
795 | |
796 return( AT_EXCT ); | |
797 } | |
798 | |
799 | |
800 GLOBAL T_ACI_RETURN qAT_PercentCLIR ( T_ACI_CMD_SRC srcId, | |
801 T_ACI_CLIR_MOD * mode) | |
802 { | |
803 T_CC_CMD_PRM *pCCCmdPrm; /* points to CC command parameters */ | |
804 TRACE_FUNCTION ("qAT_PercentCLIR ()"); | |
805 | |
806 /* | |
807 *------------------------------------------------------------------- | |
808 * check command source | |
809 *------------------------------------------------------------------- | |
810 */ | |
811 if(!cmh_IsVldCmdSrc (srcId)) | |
812 { | |
813 return( AT_FAIL ); | |
814 } | |
815 | |
816 pCCCmdPrm = &cmhPrm[srcId].ccCmdPrm; | |
817 *mode = pCCCmdPrm->CLIRmode; | |
818 | |
819 return AT_CMPL; | |
820 } | |
821 | |
822 /* | |
823 +--------------------------------------------------------------------+ | |
824 | PROJECT : GSM-PS (6147) MODULE : CMH_SSQ | | |
825 | STATE : code ROUTINE : qAT_PlusCOLP | | |
826 +--------------------------------------------------------------------+ | |
827 | |
828 PURPOSE : This is the functional counterpart to the +COLP AT command | |
829 which is responsible to query the setting for connected | |
830 line presentation supplementary services. | |
831 | |
832 <stat> : COLP status. | |
833 */ | |
834 | |
835 GLOBAL T_ACI_RETURN qAT_PlusCOLP ( T_ACI_CMD_SRC srcId, | |
836 T_ACI_COLP_STAT * stat) | |
837 { | |
838 /* Implements Measure 193 */ | |
839 TRACE_FUNCTION ("qAT_PercentCOLP ()"); | |
840 return (cmhSS_queryHandler (srcId, | |
841 (void*)stat, | |
842 AT_CMD_COLP, | |
843 SS_CD_COLP) ); | |
844 } | |
845 | |
846 /* | |
847 +--------------------------------------------------------------------+ | |
848 | PROJECT : GSM-PS (6147) MODULE : CMH_SSQ | | |
849 | STATE : code ROUTINE : qAT_PercentCOLR | | |
850 +--------------------------------------------------------------------+ | |
851 | |
852 PURPOSE : This is the functional counterpart to the %COLR AT command | |
853 which is responsible to query the setting for connected | |
854 line restriction supplementary services. | |
855 | |
856 <stat> : COLR status. | |
857 */ | |
858 | |
859 GLOBAL T_ACI_RETURN qAT_PercentCOLR ( T_ACI_CMD_SRC srcId ) | |
860 { | |
861 /* Implements Measure 193 */ | |
862 TRACE_FUNCTION ("qAT_PercentCOLR ()"); | |
863 return (cmhSS_queryHandler (srcId, | |
864 NULL, | |
865 AT_CMD_COLR, | |
866 SS_CD_COLR)); | |
867 } | |
868 | |
869 /* | |
870 +--------------------------------------------------------------------+ | |
871 | PROJECT : GSM-PS (6147) MODULE : CMH_SSQ | | |
872 | STATE : code ROUTINE : qAT_PercentCCBS | | |
873 +--------------------------------------------------------------------+ | |
874 | |
875 PURPOSE : This is the functional counterpart to the %CCBS AT command | |
876 which is responsible to query the setting for connected | |
877 line restriction supplementary services. | |
878 | |
879 */ | |
880 | |
881 GLOBAL T_ACI_RETURN qAT_PercentCCBS ( T_ACI_CMD_SRC srcId ) | |
882 { | |
883 SHORT sId; /* holds service id */ | |
884 | |
885 T_ACI_RETURN retVal; | |
886 | |
887 | |
888 TRACE_FUNCTION ("qAT_PercentCCBS ()"); | |
889 | |
890 /* | |
891 *------------------------------------------------------------------- | |
892 * check command source | |
893 *------------------------------------------------------------------- | |
894 */ | |
895 if(!cmh_IsVldCmdSrc (srcId)) | |
896 { | |
897 return( AT_FAIL ); | |
898 } | |
899 | |
900 /* SIM TOOLKIT & FDN HANDLING */ | |
901 retVal = cmhSS_CCBS_SAT_Handle( srcId, CCBS_MOD_Query, -1); | |
902 | |
903 if( retVal NEQ AT_CMPL ) | |
904 return( retVal ); | |
905 | |
906 | |
907 | |
908 /* | |
909 *------------------------------------------------------------------- | |
910 * get a new service table entry to interrogate SS | |
911 *------------------------------------------------------------------- | |
912 */ | |
913 sId = psaSS_stbNewEntry(); | |
914 | |
915 if( sId EQ NO_ENTRY ) | |
916 { | |
917 ACI_ERR_DESC( ACI_ERR_CLASS_Ext, EXT_ERR_SrvTabFull ); | |
918 return( AT_FAIL ); | |
919 } | |
920 | |
921 /* | |
922 *------------------------------------------------------------------- | |
923 * set up facility information element | |
924 *------------------------------------------------------------------- | |
925 */ | |
926 CCD_START; | |
927 | |
928 psaSS_asmInterrogateSS( SS_CD_CCBS, SS_NO_PRM, SS_NO_PRM ); | |
929 /* | |
930 *----------------------------------------------------------------- | |
931 * declare service table entry as used and the owner of the service | |
932 *----------------------------------------------------------------- | |
933 */ | |
934 ssShrdPrm.stb[sId].ntryUsdFlg = TRUE; | |
935 ssShrdPrm.stb[sId].srvOwn = (T_OWN)srcId; | |
936 | |
937 /* | |
938 *------------------------------------------------------------------- | |
939 * start a new transaction | |
940 *------------------------------------------------------------------- | |
941 */ | |
942 ssShrdPrm.stb[sId].curCmd = AT_CMD_CCBS; | |
943 psaSS_NewTrns(sId); | |
944 | |
945 CCD_END; | |
946 | |
947 /* | |
948 *------------------------------------------------------------------- | |
949 * log command execution | |
950 *------------------------------------------------------------------- | |
951 */ | |
952 #if defined SMI OR defined MFW OR defined FF_MMI_RIV | |
953 { | |
954 T_ACI_CLOG cmdLog; /* holds logging info */ | |
955 | |
956 cmdLog.atCmd = AT_CMD_CCBS; | |
957 cmdLog.cmdType = CLOG_TYPE_Query; | |
958 cmdLog.retCode = AT_EXCT; | |
959 cmdLog.cId = ACI_NumParmNotPresent; | |
960 cmdLog.sId = sId+1; | |
961 cmdLog.cmdPrm.qCCBS.srcId = srcId; | |
962 | |
963 rAT_PercentCLOG( &cmdLog ); | |
964 } | |
965 #endif | |
966 | |
967 return( AT_EXCT ); | |
968 } | |
969 | |
970 /* | |
971 +--------------------------------------------------------------------+ | |
972 | PROJECT : GSM-PS (6147) MODULE : CMH_SSQ | | |
973 | STATE : code ROUTINE : qAT_PercentCNAP | | |
974 +--------------------------------------------------------------------+ | |
975 | |
976 PURPOSE : This is the functional counterpart to the %CNAP AT command | |
977 which is responsible to query the setting for calling | |
978 name presentation supplementary services. | |
979 | |
980 */ | |
981 | |
982 GLOBAL T_ACI_RETURN qAT_PercentCNAP ( T_ACI_CMD_SRC srcId ) | |
983 { | |
984 /* Implements Measure 193 */ | |
985 TRACE_FUNCTION ("qAT_PercentCNAP ()"); | |
986 return (cmhSS_queryHandler (srcId, | |
987 NULL, | |
988 AT_CMD_CNAP, | |
989 SS_CD_CNAP) ); | |
990 } | |
991 | |
992 | |
993 #ifdef TI_PS_FF_AT_P_CMD_CSCN | |
994 /* | |
995 +--------------------------------------------------------------------+ | |
996 | PROJECT : GSM-PS (6147) MODULE : CMH_SSQ | | |
997 | STATE : code ROUTINE : qAT_PercentCSCN | | |
998 +--------------------------------------------------------------------+ | |
999 | |
1000 PURPOSE : This is the functional counterpart to the %CSCN AT command | |
1001 which is responsible to query the settings. | |
1002 | |
1003 */ | |
1004 GLOBAL T_ACI_RETURN qAT_PercentCSCN ( T_ACI_CMD_SRC srcId, | |
1005 T_ACI_SS_CSCN_MOD_STATE *ss_switch, | |
1006 T_ACI_SS_CSCN_MOD_DIRECTION *ss_direction, | |
1007 T_ACI_CC_CSCN_MOD_STATE *cc_switch, | |
1008 T_ACI_CC_CSCN_MOD_DIRECTION *cc_direction ) | |
1009 { | |
1010 TRACE_FUNCTION ("qAT_PercentCSCN ()"); | |
1011 | |
1012 if(!cmh_IsVldCmdSrc (srcId)) | |
1013 { /* check command source */ | |
1014 return( AT_FAIL ); | |
1015 } | |
1016 | |
1017 *ss_switch = cmhPrm[srcId].ssCmdPrm.CSCNss_mode.SsCSCNModeState; | |
1018 *ss_direction = cmhPrm[srcId].ssCmdPrm.CSCNss_mode.SsCSCNModeDirection; | |
1019 *cc_switch = cmhPrm[srcId].ccCmdPrm.CSCNcc_mode.CcCSCNModeState; | |
1020 *cc_direction = cmhPrm[srcId].ccCmdPrm.CSCNcc_mode.CcCSCNModeDirection; | |
1021 | |
1022 return( AT_CMPL); | |
1023 } | |
1024 #endif /* TI_PS_FF_AT_P_CMD_CSCN */ | |
1025 | |
1026 #ifdef SIM_PERS | |
1027 /* | |
1028 +===========================================================+ | |
1029 | PROJECT : GSM-PS (6147) MODULE : CMH_SSQ | | |
1030 | STATE : code ROUTINE : qAT_PercentMEPD | | |
1031 | | | |
1032 |This is the functional counterpart to the %MEPD AT command | | |
1033 |which is responsible to query MEPD Configuration Data. | | |
1034 +===========================================================+ | |
1035 */ | |
1036 | |
1037 | |
1038 | |
1039 GLOBAL T_ACI_RETURN qAT_PercentMEPD( T_ACI_CMD_SRC srcId, T_SUP_INFO *sup_info) | |
1040 { | |
1041 T_OPER_RET_STATUS rlockstatus; | |
1042 | |
1043 TRACE_FUNCTION ("qAT_ PercentMEPD()"); | |
1044 | |
1045 /* | |
1046 *------------------------------------------------------------------- | |
1047 * check command source | |
1048 *------------------------------------------------------------------- | |
1049 */ | |
1050 if(!cmh_IsVldCmdSrc (srcId)) | |
1051 { | |
1052 return( AT_FAIL ); | |
1053 } | |
1054 rlockstatus=aci_slock_sup_info(sup_info); | |
1055 | |
1056 if (rlockstatus EQ OPER_SUCCESS) | |
1057 { | |
1058 return (AT_CMPL); | |
1059 } | |
1060 else if (rlockstatus EQ OPER_FAIL) | |
1061 { | |
1062 ACI_ERR_DESC( ACI_ERR_CLASS_Cme, CME_ERR_Unknown); | |
1063 return( AT_FAIL ); | |
1064 } | |
1065 return( AT_EXCT ); | |
1066 } | |
1067 #endif /* SIM_PERS */ | |
1068 | |
1069 | |
1070 | |
1071 | |
1072 /* Implements Measure 193 */ | |
1073 /* | |
1074 +=============================================================+ | |
1075 | PROJECT : GSM-PS (6147) MODULE : CMH_SSQ | | |
1076 | STATE : code ROUTINE : cmhSS_queryHandler | | |
1077 | PARAMETERS : srcId - Source of AT Command | | |
1078 | stat - CLIP or COLP provisioning status | | |
1079 | atCmd - AT Command sent for querying | | |
1080 | ssCode - Supplementary service code | | |
1081 | RETURN : Query status | | |
1082 |This contains common code for handling CLIP, COLP, COLR, CNAP| | |
1083 +=============================================================+ | |
1084 */ | |
1085 LOCAL T_ACI_RETURN cmhSS_queryHandler (T_ACI_CMD_SRC srcId, | |
1086 void *stat, | |
1087 T_ACI_AT_CMD atCmd, | |
1088 UBYTE ssCode) | |
1089 { | |
1090 SHORT sId; /* holds service id */ | |
1091 | |
1092 T_ACI_RETURN retVal = AT_FAIL; | |
1093 | |
1094 TRACE_FUNCTION ("cmhSS_queryHandler ()"); | |
1095 | |
1096 /* | |
1097 *------------------------------------------------------------------- | |
1098 * check command source | |
1099 *------------------------------------------------------------------- | |
1100 */ | |
1101 if(!cmh_IsVldCmdSrc (srcId)) | |
1102 { | |
1103 return( AT_FAIL ); | |
1104 } | |
1105 | |
1106 /* SIM TOOLKIT & FDN HANDLING */ | |
1107 switch(atCmd) | |
1108 { | |
1109 case AT_CMD_CLIP: | |
1110 retVal = cmhSS_CLIP_SAT_Handle(srcId); | |
1111 break; | |
1112 case AT_CMD_COLP: | |
1113 retVal = cmhSS_COLP_SAT_Handle(srcId); | |
1114 break; | |
1115 case AT_CMD_COLR: | |
1116 retVal = cmhSS_COLR_SAT_Handle(srcId); | |
1117 break; | |
1118 case AT_CMD_CNAP: | |
1119 retVal = cmhSS_CNAP_SAT_Handle(srcId); | |
1120 break; | |
1121 } | |
1122 | |
1123 if( retVal NEQ AT_CMPL ) | |
1124 { | |
1125 return( retVal ); | |
1126 } | |
1127 /* | |
1128 *------------------------------------------------------------------- | |
1129 * get a new service table entry to interrogate SS | |
1130 *------------------------------------------------------------------- | |
1131 */ | |
1132 sId = psaSS_stbNewEntry(); | |
1133 | |
1134 if( sId EQ NO_ENTRY ) | |
1135 { | |
1136 ACI_ERR_DESC( ACI_ERR_CLASS_Ext, EXT_ERR_SrvTabFull ); | |
1137 return( AT_FAIL ); | |
1138 } | |
1139 | |
1140 /* | |
1141 *------------------------------------------------------------------- | |
1142 * set up facility information element | |
1143 *------------------------------------------------------------------- | |
1144 */ | |
1145 CCD_START; | |
1146 | |
1147 psaSS_asmInterrogateSS( ssCode, SS_NO_PRM, SS_NO_PRM ); | |
1148 /* | |
1149 *----------------------------------------------------------------- | |
1150 * declare service table entry as used and the owner of the service | |
1151 *----------------------------------------------------------------- | |
1152 */ | |
1153 ssShrdPrm.stb[sId].ntryUsdFlg = TRUE; | |
1154 ssShrdPrm.stb[sId].srvOwn = (T_OWN)srcId; | |
1155 | |
1156 /* | |
1157 *------------------------------------------------------------------- | |
1158 * start a new transaction | |
1159 *------------------------------------------------------------------- | |
1160 */ | |
1161 ssShrdPrm.stb[sId].curCmd = atCmd; | |
1162 psaSS_NewTrns(sId); | |
1163 | |
1164 CCD_END; | |
1165 | |
1166 /* | |
1167 *------------------------------------------------------------------- | |
1168 * log command execution | |
1169 *------------------------------------------------------------------- | |
1170 */ | |
1171 #if defined SMI OR defined MFW OR defined FF_MMI_RIV | |
1172 { | |
1173 T_ACI_CLOG cmdLog; /* holds logging info */ | |
1174 | |
1175 cmdLog.atCmd = atCmd; | |
1176 cmdLog.cmdType = CLOG_TYPE_Query; | |
1177 cmdLog.retCode = AT_EXCT; | |
1178 cmdLog.cId = ACI_NumParmNotPresent; | |
1179 cmdLog.sId = sId+1; | |
1180 switch(atCmd) | |
1181 { | |
1182 case AT_CMD_CLIP: | |
1183 cmdLog.cmdPrm.qCLIP.srcId = srcId; | |
1184 cmdLog.cmdPrm.qCLIP.stat = (T_ACI_CLIP_STAT *)stat; | |
1185 break; | |
1186 case AT_CMD_COLP: | |
1187 cmdLog.cmdPrm.qCOLP.srcId = srcId; | |
1188 cmdLog.cmdPrm.qCOLP.stat = (T_ACI_COLP_STAT *)stat; | |
1189 break; | |
1190 default: | |
1191 break; | |
1192 } | |
1193 | |
1194 rAT_PercentCLOG( &cmdLog ); | |
1195 } | |
1196 #endif | |
1197 | |
1198 return( AT_EXCT ); | |
1199 } | |
1200 | |
1201 /*==== EOF ========================================================*/ |