Git init
[framework/telephony/libslp-tapi.git] / src / test_apps / tapi_cfg_test.c
1 /*
2  * libslp-tapi
3  *
4  * Copyright (c) 2011 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: Kyeongchul Kim <kyeongchul.kim@samsung.com>
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  */
20
21 #include <stdlib.h>
22 #include <signal.h>
23 #include <stdio.h>
24 #include <errno.h>
25 #include <pthread.h>
26 #include <string.h>
27 #include <unistd.h>
28
29 #include <assert.h>
30 #include <glib.h>
31
32 #include "ITapiCfg.h"
33 #include "TapiCommon.h"
34 #include "TelErr.h"
35 #include "TelUtility.h"
36 #include "vconf.h"
37 #include "TapiEvent.h"
38
39 //#include <ipcparam.h>
40
41 #define TEST_MAX_CFG_AKEY_LEN 26
42
43 typedef struct
44 {
45         int group;
46         int type;
47         int len;
48         void *dst;
49 }edata_t;
50
51 #define TEST_DEBUG(frmt, args...) \
52         {do { fprintf(stderr, "\n[CFG Test][%s:%04d] "frmt "\n", __func__,__LINE__, ##args); } while (FALSE); }
53
54
55 int error_code;
56 extern int EvtDeliveryHandle ;
57 static unsigned int *   Cfg_subscription_id;
58
59 static int _PrintSIOMode(TelCfgSIOMode_t mode)
60 {
61         switch(mode)
62         {
63                 case TAPI_CFG_SIO_U1_DIAG_USB2_GPS:
64                         TEST_DEBUG("SIO mode: TAPI_CFG_SIO_U1_DIAG_USB2_GPS ");
65                         break;
66                 case TAPI_CFG_SIO_U1_HFK_USB2_GPS:
67                         TEST_DEBUG("SIO mode: TAPI_CFG_SIO_U1_HFK_USB2_GPS ");
68                         break;
69                 case TAPI_CFG_SIO_U1_HFK_USB2_DIAG:
70                         TEST_DEBUG("SIO mode: TAPI_CFG_SIO_U1_HFK_USB2_DIAG ");
71                         break;
72                 default:
73                         TEST_DEBUG("SIO mode: None ");
74                         break;
75         }
76
77         return 0;
78 }
79
80 static int  tapi_cfg_callback  (TelTapiEvent_t  *event)
81 {
82         TEST_DEBUG("EVENT STATUS:[0x%x]", event->Status);
83
84         TEST_DEBUG("Status = [0x%x]", event->Status);
85
86         switch(event->EventClass)
87         {
88                 case TAPI_EVENT_CLASS_CFG:
89                 {
90                         switch(event->EventType)
91                         {
92                                 case TAPI_EVENT_CFG_GET_A_KEY_CNF:
93                                 {
94                                         TelCfgAKeyInfo_t Akey_info;
95                                         memset(&Akey_info, 0, sizeof(Akey_info));
96
97                                         TEST_DEBUG("TAPI_EVENT_CFG_GET_A_KEY_CNF");
98
99                                         memcpy(&Akey_info, event->pData, sizeof(TelCfgAKeyInfo_t));
100
101                                         TEST_DEBUG("Akey:[%s]",Akey_info.A_key);
102                                 }
103                                         break;
104
105                                 case TAPI_EVENT_CFG_VERIFY_A_KEY_CNF:
106                                 {
107                                         TelCfgAKeyVerifyResult_t result;
108                                         TEST_DEBUG("TAPI_EVENT_CFG_VERIFY_A_KEY_CNF");
109                                         memcpy(&result, event->pData, sizeof(TelCfgAKeyVerifyResult_t));
110                                         switch(result)
111                                         {
112                                                 case TAPI_CFG_AKEY_VERIFY_FAIL:
113                                                 {
114                                                         TEST_DEBUG("A-Key verify fail");
115                                                 }
116                                                         break;
117
118                                                 case TAPI_CFG_AKEY_VERIFY_OK:
119                                                 {
120                                                         TEST_DEBUG("A-Key verify success");
121                                                 }
122                                                         break;
123                                                 default :
124                                                         TEST_DEBUG(" Unknown value : [%d] ", result);
125                                                         break;
126                                         }
127
128                                 }
129                                         break;
130
131                                 case TAPI_EVENT_CFG_GET_MSL_INFO_CNF:
132                                 {
133                                         TelCfgMSLInfo_t msl_info;
134                                         TEST_DEBUG("TAPI_EVENT_CFG_GET_MSL_INFO_CNF");
135                                         memcpy(&msl_info, event->pData, sizeof(TelCfgMSLInfo_t));
136                                         TEST_DEBUG("msl code:[%s]", msl_info.MslCode);
137                                         TEST_DEBUG("Otksl code:[%s]", msl_info.OtkslCode);
138                                         TEST_DEBUG("Otksl flag:[%d]", msl_info.bOtksl_flag);
139
140                                 }
141                                         break;
142
143                                 case TAPI_EVENT_CFG_GET_VOCODER_OPTION_CNF:
144                                 {
145                                         TelCfgVocOption_t voc_option;
146                                         TEST_DEBUG("TAPI_EVENT_CFG_GET_VOCODER_OPTION_CNF");
147                                         memcpy(&voc_option, event->pData, sizeof(TelCfgVocOption_t));
148                                         TEST_DEBUG("vocoder option:[%d]", voc_option);
149
150                                 }
151                                         break;
152
153                                 case TAPI_EVENT_CFG_SET_VOCODER_OPTION_CNF:
154                                 {
155                                         TEST_DEBUG("TAPI_EVENT_CFG_SET_VOCODER_OPTION_CNF");
156                                 }
157                                         break;
158
159                                 case TAPI_EVENT_CFG_GET_HIDDEN_MENU_ACCESS_CNF:
160                                 {
161                                         TelCfgHiddenMenuAccessType_t type;
162                                         TEST_DEBUG("TAPI_EVENT_CFG_GET_HIDDEN_MENU_ACCESS_CNF");
163                                         memcpy(&type, event->pData, sizeof(TelCfgHiddenMenuAccessType_t));
164                                         TEST_DEBUG("access type:[%d]", type);
165                                 }
166                                         break;
167
168                                 case TAPI_EVENT_CFG_SET_HIDDEN_MENU_ACCESS_CNF:
169                                 {
170                                         TEST_DEBUG("TAPI_EVENT_CFG_SET_HIDDEN_MENU_ACCESS_CNF");
171                                 }
172                                         break;
173
174                                 case TAPI_EVENT_CFG_GET_CURRENT_CARRIER_CNF:
175                                 {
176                                         TelCfgCurrentCarrier_t carrier;
177                                         TEST_DEBUG("TAPI_EVENT_CFG_GET_CURRENT_CARRIER_CNF");
178                                         memcpy(&carrier, event->pData, sizeof(TelCfgCurrentCarrier_t));
179                                         TEST_DEBUG("carrier:[%d]", carrier);
180                                 }
181                                         break;
182
183                                 case TAPI_EVENT_CFG_SET_CURRENT_CARRIER_CNF:
184                                 {
185                                         TEST_DEBUG("TAPI_EVENT_CFG_SET_CURRENT_CARRIER_CNF");
186                                 }
187                                         break;
188
189                                 case TAPI_EVENT_CFG_GET_ACTIVATION_DATE_CNF:
190                                 {
191                                         TelCfgActivationDateInfo_t date_info;
192                                         TEST_DEBUG("TAPI_EVENT_CFG_GET_ACTIVATION_DATE_CNF");
193                                         memcpy(&date_info, event->pData, sizeof(TelCfgActivationDateInfo_t));
194                                         TEST_DEBUG("year:[%d]", date_info.year);
195                                         TEST_DEBUG("month:[%d]", date_info.month);
196                                         TEST_DEBUG("day:[%d]", date_info.day);
197                                         TEST_DEBUG("hour:[%d]", date_info.hour);
198                                         TEST_DEBUG("minute:[%d]", date_info.minute);
199                                         TEST_DEBUG("second:[%d]", date_info.second);
200                                 }
201                                         break;
202
203                                 case TAPI_EVENT_CFG_GET_RECONDITIONED_DATE_CNF:
204                                 {
205                                         TelCfgReconditionedInfo_t date_info;
206                                         TEST_DEBUG("TAPI_EVENT_CFG_GET_RECONDITIONED_DATE_CNF");
207                                         memcpy(&date_info, event->pData, sizeof(TelCfgReconditionedInfo_t));
208                                         TEST_DEBUG("status(0:NO, 1:YES):[%d]", date_info.status);
209                                         TEST_DEBUG("year:[%d]", date_info.year);
210                                         TEST_DEBUG("month:[%d]", date_info.month);
211                                         TEST_DEBUG("day:[%d]", date_info.day);
212                                         TEST_DEBUG("hour:[%d]", date_info.hour);
213                                         TEST_DEBUG("minute:[%d]", date_info.minute);
214                                         TEST_DEBUG("second:[%d]", date_info.second);
215                                 }
216                                         break;
217
218                                 case TAPI_EVENT_CFG_GET_SIO_MODE_CNF:
219                                 {
220                                         TelCfgSIOMode_t mode;
221                                         TEST_DEBUG("TAPI_EVENT_CFG_GET_SIO_MODE_CNF");
222                                         memcpy(&mode, event->pData, sizeof(TelCfgSIOMode_t));
223                                         _PrintSIOMode(mode);
224                                 }
225                                         break;
226
227                                 case TAPI_EVENT_CFG_SET_SIO_MODE_CNF:
228                                 {
229                                         TEST_DEBUG("TAPI_EVENT_CFG_SET_SIO_MODE_CNF");
230                                 }
231                                         break;
232                                 case TAPI_CFG_EVENT_DEFAULTCFG_IND:
233                                 {
234                                         TEST_DEBUG("TAPI_CFG_EVENT_DEFAULTCFG_IND");
235                                 }
236                                         break;
237                                 default :
238                                         TEST_DEBUG(" Unknown Event : [%d] ", event->EventType);
239                                         break;
240                         }
241                         break;
242                 }
243
244                 default:
245                         break;
246
247         }
248
249         TEST_DEBUG("###############    event processing is done....###############");
250         return 0;
251 }
252
253
254 int cfg_read_key_input(void)
255 {
256         int ret;
257         char buf[512] = {0, };
258         char msg[512];
259         char  diallingNum[256];
260         int     diallingNum_len=0;
261         TapiResult_t ret_val = TAPI_API_SUCCESS;
262
263         memset(buf,0, sizeof(buf));
264         memset(diallingNum,0,sizeof(diallingNum));
265         memset(msg,0,sizeof(msg));
266         diallingNum_len=0;
267
268
269         TEST_DEBUG("*************** CFG TEST MENU     ***************");
270         TEST_DEBUG("1g.TelTapiCfgGetAKey");
271         TEST_DEBUG("1s.TelTapiCfgVerifyAKey");
272         TEST_DEBUG("2g.TelTapiCfgGetMSLInfo");
273         TEST_DEBUG("3g.TelTapiCfgGetVocoderOption");
274         TEST_DEBUG("3s.TelTapiCfgSetVocoderOption               <(default/evrc/13k/8k)>");
275         TEST_DEBUG("4g.TelTapiCfgGetHiddenMenuAccess");
276         TEST_DEBUG("4s.TelTapiCfgSetHiddenMenuAccess    <(disable/enable)>");
277         TEST_DEBUG("5g.TelTapiCfgGetCurrentCarrier");
278         TEST_DEBUG("5s.TelTapiCfgSetCurrentCarrier      <(test/skt/ktf/lgt/verizon/sprint)>");
279         TEST_DEBUG("6g.TelTapiCfgGetActivationDate");
280         TEST_DEBUG("7g.TelTapiCfgGetReconditionedDate");
281         TEST_DEBUG("8g.TelTapiCfgGetSIOMode");
282         TEST_DEBUG("8s.TelTapiCfgSetSIOMode     <mode(0/1/2)>");
283         TEST_DEBUG("9s.tapi_cfg_defaultconfiguration_set        FULL[0]FACTORY[1]SERVICE[2]CUSTOM[3]");
284         TEST_DEBUG("0.exit");
285         TEST_DEBUG("*****************************************************\n");
286
287
288         ret = read(0, buf, sizeof(buf));
289         if (ret < 0)
290         {
291                 if (errno == EINTR)
292                         perror("read(1)");
293                 return -1;
294         }
295         else if (ret == 0)
296                 return ret;
297
298         if( memcmp(buf,"0",sizeof("0")-1) == 0 )
299         {
300                 TEST_DEBUG("Finished Testing this module, Going back to Main Menu");
301                 return -1;
302         }
303         else if( memcmp(buf,"1g",sizeof("1g")-1) == 0 )
304         {
305                 TEST_DEBUG("tel_get_cfg_akey....");
306                 ret_val = tel_get_cfg_akey();
307                 TEST_DEBUG(" Tapi return value: [0x%x]  ", ret_val);
308         }
309         else if( memcmp(buf,"1s",sizeof("1s")-1) == 0 )
310         {
311                 char    tempAkey[TAPI_CFG_A_KEY_DIGITS_MAX+1];
312                 int             length = 0;
313                 TelCfgAKeyInfo_t Akey_info;
314
315                 strncpy(tempAkey, &buf[3], TAPI_CFG_A_KEY_DIGITS_MAX);
316
317                 length = strlen(tempAkey);
318
319                 memset(&Akey_info, 0, sizeof(Akey_info));
320
321                 strncpy(Akey_info.A_key,tempAkey, length-1);  // removing '/n' form the end of the string
322
323                 TEST_DEBUG("tel_verify_cfg_akey with AKey [%s]",Akey_info.A_key);
324
325                 ret_val = tel_verify_cfg_akey(&Akey_info);
326
327                 TEST_DEBUG(" Tapi return value: [0x%x]  ", ret_val);
328         }
329         else if( memcmp(buf,"2g",sizeof("2g")-1) == 0 )
330         {
331                 TEST_DEBUG("tel_get_cfg_msl_info....");
332                 ret_val = tel_get_cfg_msl_info();
333                 TEST_DEBUG(" Tapi return value: [0x%x] ", ret_val);
334         }
335         else if( memcmp(buf,"3g",sizeof("3g")-1) == 0 )
336         {
337                 TEST_DEBUG("tel_get_cfg_vocoder_option....");
338                 ret_val = tel_get_cfg_vocoder_option();
339                 TEST_DEBUG(" Tapi return value: [0x%x]  ", ret_val);
340         }
341         else if( memcmp(buf,"3s",sizeof("3s")-1) == 0 )
342         {
343                 TelCfgVocOption_t voc_opt = 0;
344                 if(memcmp(buf+3,"default",sizeof("default")-1) == 0 )
345                         voc_opt =TAPI_CFG_VOC_OPTION_DEFAULT;
346                 else if(memcmp(buf+3,"evrc",sizeof("evrc")-1) == 0 )
347                         voc_opt =TAPI_CFG_VOC_OPTION_EVRC;
348                 else if(memcmp(buf+3,"13k",sizeof("13k")-1) == 0 )
349                         voc_opt =TAPI_CFG_VOC_OPTION_13K;
350                 else if(memcmp(buf+3,"8k",sizeof("8k")-1) == 0 )
351                         voc_opt =TAPI_CFG_VOC_OPTION_8K;
352                 else{
353                         TEST_DEBUG("Unknown vocoder option");
354                         return 0;
355                 }
356
357                 TEST_DEBUG("tel_set_cfg_vocoder_option....voc_opt:[%d]",voc_opt);
358                 ret_val = tel_set_cfg_vocoder_option(voc_opt);
359                 TEST_DEBUG(" Tapi return value: [0x%x]  ", ret_val);
360         }
361         else if( memcmp(buf,"4g",sizeof("4g")-1) == 0 )
362         {
363                 TEST_DEBUG("tel_get_cfg_hidden_menu_access....");
364                 ret_val = tel_get_cfg_hidden_menu_access();
365                 TEST_DEBUG(" Tapi return value: [0x%x]  ", ret_val);
366         }
367         else if( memcmp(buf,"4s",sizeof("4s")-1) == 0 )
368         {
369                 TelCfgHiddenMenuAccessType_t type = 0;
370                 if(memcmp(buf+3,"disable",sizeof("disable")-1) == 0 )
371                         type =TAPI_CFG_HIDDEN_MENU_DISABLE;
372                 else if(memcmp(buf+3,"enable",sizeof("enable")-1) == 0 )
373                         type =TAPI_CFG_HIDDEN_MENU_ENABLE;
374                 else{
375                         TEST_DEBUG("Unknown type");
376                         return 0;
377                 }
378
379                 TEST_DEBUG("tel_set_cfg_hidden_menu_access....type:[%d]",type);
380                 ret_val = tel_set_cfg_hidden_menu_access(type);
381                 TEST_DEBUG(" Tapi return value: [0x%x] ", ret_val);
382         }
383         else if( memcmp(buf,"5g",sizeof("5g")-1) == 0 )
384         {
385                 TEST_DEBUG("tel_get_cfg_serving_carrier....");
386                 ret_val = tel_get_cfg_serving_carrier();
387                 TEST_DEBUG(" Tapi return value: [0x%x] ", ret_val);
388         }
389         else if( memcmp(buf,"5s",sizeof("5s")-1) == 0 )
390         {
391                 TelCfgCurrentCarrier_t Carrier = 0;
392                 TEST_DEBUG("buf :[%s]....",buf+3);
393                 if(memcmp(buf+3,"test",sizeof("test")-1) == 0 )
394                         Carrier =TAPI_CFG_CARRIER_TEST;
395                 else if(memcmp(buf+3,"skt",sizeof("skt")-1) == 0 )
396                         Carrier =TAPI_CFG_CARRIER_SKT;
397                 else if(memcmp(buf+3,"ktf",sizeof("ktf")-1) == 0 )
398                         Carrier =TAPI_CFG_CARRIER_KTF;
399                 else if(memcmp(buf+3,"lgt",sizeof("lgt")-1) == 0 )
400                         Carrier =TAPI_CFG_CARRIER_LGT;
401                 else if(memcmp(buf+3,"verizon",sizeof("verizon")-1) == 0 )
402                         Carrier =TAPI_CFG_CARRIER_VERIZON;
403                 else if(memcmp(buf+3,"sprint",sizeof("sprint")-1) == 0 )
404                         Carrier =TAPI_CFG_CARRIER_SPRINT;
405                 else{
406                         TEST_DEBUG("Unknown Carrier....");
407                         return 0;
408                 }
409
410                 TEST_DEBUG("tel_set_cfg_serving_carrier....Carrier:[%d]",Carrier);
411                 ret_val = tel_set_cfg_serving_carrier(Carrier);
412                 TEST_DEBUG(" Tapi return value: [0x%x]  ", ret_val);
413         }
414         else if( memcmp(buf,"6g",sizeof("6g")-1) == 0 )
415         {
416                 TEST_DEBUG("TelTapiCfgGetActivationDate....");
417                 ret_val = tel_get_cfg_activated_date_of_phone();
418                 TEST_DEBUG(" Tapi return value: [0x%x]  ", ret_val);
419         }
420         else if( memcmp(buf,"7g",sizeof("7g")-1) == 0 )
421         {
422                 TEST_DEBUG("tel_get_cfg_reconditioned_data_of_phone....");
423                 ret_val = tel_get_cfg_reconditioned_data_of_phone();
424                 TEST_DEBUG(" Tapi return value: [0x%x]   ", ret_val);
425         }
426         else if( memcmp(buf,"8g",sizeof("8g")-1) == 0 )
427         {
428                 TEST_DEBUG("tel_get_cfg_sio_mode....");
429                 ret_val = tel_get_cfg_sio_mode();
430                 TEST_DEBUG(" Tapi return value: [0x%x] ", ret_val);
431         }
432         else if( memcmp(buf,"8s",sizeof("8s")-1) == 0 )
433         {
434                 TelCfgSIOMode_t mode = 0;
435                 if(memcmp(buf+3,"0",sizeof("0")-1) == 0 )
436                         mode =TAPI_CFG_SIO_U1_DIAG_USB2_GPS;
437                 else if(memcmp(buf+3,"1",sizeof("1")-1) == 0 )
438                         mode =TAPI_CFG_SIO_U1_HFK_USB2_GPS;
439                 else if(memcmp(buf+3,"2",sizeof("2")-1) == 0 )
440                         mode =TAPI_CFG_SIO_U1_HFK_USB2_DIAG;
441                 else{
442                         TEST_DEBUG("Unknown mode");
443                         return 0;
444                 }
445                 TEST_DEBUG("tel_set_cfg_sio_mode....mode:[%d]",mode);
446                 ret_val = tel_set_cfg_sio_mode(mode);
447                 TEST_DEBUG(" Tapi return value: [0x%x] ", ret_val);
448         }
449
450         else if( memcmp(buf,"9s",sizeof("9s")-1) == 0 )
451         {
452                 TelDefaultCfg_t bType =0;
453
454                 if(memcmp(buf+3,"0",sizeof("0")-1) == 0 )
455                         bType = TAPI_CFG_DEFAULT_FULL;
456                 else if(memcmp(buf+3,"1",sizeof("1")-1) == 0 )
457                         bType = TAPI_CFG_DEFAULT_FACTORY;
458                 else if(memcmp(buf+3,"2",sizeof("2")-1) == 0 )
459                         bType = TAPI_CFG_DEFAULT_SERVICE;
460                 else if(memcmp(buf+3,"3",sizeof("3")-1) == 0 )
461                         bType = TAPI_CFG_DEFAULT_CUSTOM;
462
463                 tel_set_cfg_default_configuration(bType);
464         }
465
466         return 0;
467 }
468
469
470 void cfg_select_loop(void)
471 {
472         int ret;
473         fd_set readfds;
474
475         while (1)
476         {
477                 FD_ZERO(&readfds);
478                 FD_SET(0, &readfds);
479
480                 ret = select(0 + 1, &readfds, NULL, NULL, NULL);
481                 if (ret)
482                 {
483                         if (FD_ISSET(0, &readfds))
484                         {
485                                 if(cfg_read_key_input()<0)
486                                         break;
487                         }
488                 }
489         }
490 }
491
492 #if 0
493 static int  tapi_cfg_callback  (TelTapiEventClass_t     eventClass,int  eventType, int  param1,void * param2)
494 {
495         TEST_DEBUG("EVENT STATUS:[%d]", param1);
496
497         switch(eventClass)
498         {
499                 case TAPI_EVENT_CLASS_CFG:
500                 {
501                         switch(eventType)
502                         {
503                                 case TAPI_EVENT_CFG_GET_A_KEY_CNF:
504                                 {
505                                         TelCfgAKeyInfo_t Akey_info;
506                                         memset(&Akey_info, 0, sizeof(Akey_info));
507
508                                         TEST_DEBUG("TAPI_EVENT_CFG_GET_A_KEY_CNF");
509
510                                         memcpy(&Akey_info, param2, sizeof(TelCfgAKeyInfo_t));
511
512                                         TEST_DEBUG("Akey:[%s]",Akey_info.A_key);
513                                 }
514                                         break;
515
516                                 case TAPI_EVENT_CFG_VERIFY_A_KEY_CNF:
517                                 {
518                                         TelCfgAKeyVerifyResult_t result;
519                                         TEST_DEBUG("TAPI_EVENT_CFG_VERIFY_A_KEY_CNF");
520                                         memcpy(&result, param2, sizeof(TelCfgAKeyVerifyResult_t));
521                                         switch(result)
522                                         {
523                                                 case TAPI_CFG_AKEY_VERIFY_FAIL:
524                                                 {
525                                                         TEST_DEBUG("A-Key verify fail");
526                                                 }
527                                                         break;
528
529                                                 case TAPI_CFG_AKEY_VERIFY_OK:
530                                                 {
531                                                         TEST_DEBUG("A-Key verify success");
532                                                 }
533                                                         break;
534                                                 default :
535                                                         TEST_DEBUG(" Unknown value : [%d] ", result);
536                                                         break;
537                                         }
538
539                                 }
540                                         break;
541
542                                 case TAPI_EVENT_CFG_GET_MSL_INFO_CNF:
543                                 {
544                                         TelCfgMSLInfo_t msl_info;
545                                         TEST_DEBUG("TAPI_EVENT_CFG_GET_MSL_INFO_CNF");
546                                         memcpy(&msl_info, param2, sizeof(TelCfgMSLInfo_t));
547                                         TEST_DEBUG("msl code:[%s]", msl_info.MslCode);
548                                         TEST_DEBUG("Otksl code:[%s]", msl_info.OtkslCode);
549                                         TEST_DEBUG("Otksl flag:[%d]", msl_info.Otksl_flag);
550
551                                 }
552                                         break;
553
554                                 case TAPI_EVENT_CFG_GET_VOCODER_OPTION_CNF:
555                                 {
556                                         TelCfgVocOption_t voc_option;
557                                         TEST_DEBUG("TAPI_EVENT_CFG_GET_VOCODER_OPTION_CNF");
558                                         memcpy(&voc_option, param2, sizeof(TelCfgVocOption_t));
559                                         TEST_DEBUG("vocoder option:[%d]", voc_option);
560
561                                 }
562                                         break;
563
564                                 case TAPI_EVENT_CFG_SET_VOCODER_OPTION_CNF:
565                                 {
566                                         TEST_DEBUG("TAPI_EVENT_CFG_SET_VOCODER_OPTION_CNF");
567                                 }
568                                         break;
569
570                                 case TAPI_EVENT_CFG_GET_HIDDEN_MENU_ACCESS_CNF:
571                                 {
572                                         TelCfgHiddenMenuAccessType_t type;
573                                         TEST_DEBUG("TAPI_EVENT_CFG_GET_HIDDEN_MENU_ACCESS_CNF");
574                                         memcpy(&type, param2, sizeof(TelCfgHiddenMenuAccessType_t));
575                                         TEST_DEBUG("access type:[%d]", type);
576                                 }
577                                         break;
578
579                                 case TAPI_EVENT_CFG_SET_HIDDEN_MENU_ACCESS_CNF:
580                                 {
581                                         TEST_DEBUG("TAPI_EVENT_CFG_SET_HIDDEN_MENU_ACCESS_CNF");
582                                 }
583                                         break;
584
585                                 case TAPI_EVENT_CFG_GET_CURRENT_CARRIER_CNF:
586                                 {
587                                         TelCfgCurrentCarrier_t carrier;
588                                         TEST_DEBUG("TAPI_EVENT_CFG_GET_CURRENT_CARRIER_CNF");
589                                         memcpy(&carrier, param2, sizeof(TelCfgCurrentCarrier_t));
590                                         TEST_DEBUG("carrier:[%d]", carrier);
591                                 }
592                                         break;
593
594                                 case TAPI_EVENT_CFG_SET_CURRENT_CARRIER_CNF:
595                                 {
596                                         TEST_DEBUG("TAPI_EVENT_CFG_SET_CURRENT_CARRIER_CNF");
597                                 }
598                                         break;
599
600                                 case TAPI_EVENT_CFG_GET_ACTIVATION_DATE_CNF:
601                                 {
602                                         TelCfgActivationDateInfo_t date_info;
603                                         TEST_DEBUG("TAPI_EVENT_CFG_GET_ACTIVATION_DATE_CNF");
604                                         memcpy(&date_info, param2, sizeof(TelCfgActivationDateInfo_t));
605                                         TEST_DEBUG("year:[%d]", date_info.year);
606                                         TEST_DEBUG("month:[%d]", date_info.month);
607                                         TEST_DEBUG("day:[%d]", date_info.day);
608                                         TEST_DEBUG("hour:[%d]", date_info.hour);
609                                         TEST_DEBUG("minute:[%d]", date_info.minute);
610                                         TEST_DEBUG("second:[%d]", date_info.second);
611                                 }
612                                         break;
613
614                                 case TAPI_EVENT_CFG_GET_RECONDITIONED_DATE_CNF:
615                                 {
616                                         TelCfgReconditionedInfo_t date_info;
617                                         TEST_DEBUG("TAPI_EVENT_CFG_GET_RECONDITIONED_DATE_CNF");
618                                         memcpy(&date_info, param2, sizeof(TelCfgReconditionedInfo_t));
619                                         TEST_DEBUG("status(0:NO, 1:YES):[%d]", date_info.status);
620                                         TEST_DEBUG("year:[%d]", date_info.year);
621                                         TEST_DEBUG("month:[%d]", date_info.month);
622                                         TEST_DEBUG("day:[%d]", date_info.day);
623                                         TEST_DEBUG("hour:[%d]", date_info.hour);
624                                         TEST_DEBUG("minute:[%d]", date_info.minute);
625                                         TEST_DEBUG("second:[%d]", date_info.second);
626                                 }
627                                         break;
628
629                                 case TAPI_EVENT_CFG_GET_SIO_MODE_CNF:
630                                 {
631                                         TelCfgSIOMode_t mode;
632                                         TEST_DEBUG("TAPI_EVENT_CFG_GET_SIO_MODE_CNF");
633                                         memcpy(&mode, param2, sizeof(TelCfgSIOMode_t));
634                                         _PrintSIOMode(mode);
635                                 }
636                                         break;
637
638                                 case TAPI_EVENT_CFG_SET_SIO_MODE_CNF:
639                                 {
640                                         TEST_DEBUG("TAPI_EVENT_CFG_SET_SIO_MODE_CNF");
641                                 }
642                                         break;
643
644                                 default :
645                                         TEST_DEBUG(" Unknown Event : [%d] ", eventType);
646                                         break;
647                         }
648                         break;
649                 }
650
651                 default:
652                         break;
653
654         }
655
656         TEST_DEBUG("###############    event processing is done....###############");
657         return 0;
658 }
659
660 bool on_cfg_event_received (EvtSysEventSourceId_t src_id, const char* noti_id, GArray* parameters, void* local_data)
661 {
662         EvtSysEventProperty_t* e;
663         int len;
664         int group;
665         int type;
666         int reqid;
667         int status;
668
669         assert(parameters->len == 5);
670
671         /*      1 param is      tapi event group   */
672         e = &g_array_index (parameters, EvtSysEventProperty_t, 0);
673         assert(e->type ==  DBUS_TYPE_INT32);
674         group = e->value.i;
675         //TEST_DEBUG("received group is :%d ", group);
676
677         /*      2 param is      tapi event type   */
678         e = &g_array_index (parameters, EvtSysEventProperty_t, 1);
679         assert(e->type ==  DBUS_TYPE_INT32);
680         type = e->value.i;
681         //TEST_DEBUG("received event type is :%d ", type);
682
683         /*      3 param is      Response ID   */
684         e = &g_array_index (parameters, EvtSysEventProperty_t, 2);
685         assert(e->type ==  DBUS_TYPE_INT32);
686         reqid = e->value.i;
687         //TEST_DEBUG("received Request ID is :%d ", reqid);
688
689         /*      4 param is      Status   */
690         e = &g_array_index (parameters, EvtSysEventProperty_t, 3);
691         assert(e->type ==  DBUS_TYPE_INT32);
692         status = e->value.i;
693         //TEST_DEBUG("status is :%d ", status);
694
695
696         if (status != 0x00)
697         {
698                 TEST_DEBUG(" ##### Received Error## status:[%d] for event type[0x%x]", status, type);
699                 return true;
700         }
701
702         /*      over allocate this after receiving the len  */
703         char *data;
704         guchar *result;
705         size_t  out_len;
706
707         /*      5 param is      data   */
708         e = &g_array_index (parameters, EvtSysEventProperty_t, 4);
709         assert(e->type == DBUS_TYPE_STRING);
710
711         data = (char *)e->value.i;
712
713         len = strlen(data);
714
715         TAPI_BASE64_DECODE(data, result, &out_len);
716
717         tapi_cfg_callback(group, type, status, result);
718
719         /* We've done with this notificaiton */
720         return true;
721
722 }
723 #endif
724
725 //int misc_test_subscribe_tapi_events(void)
726 int cfg_test_subscribe_tapi_events(void)
727 {
728         int i = 0;
729         int ret_val = TRUE;
730         int iNumOfCfgEvt = 0;
731         TapiResult_t    api_err = TAPI_API_SUCCESS;
732
733
734         int cfgEvents[] =
735         {
736                 TAPI_CFG_EVENT_DEFAULTCFG_IND,
737                 TAPI_EVENT_CFG_GET_A_KEY_CNF,                                        /**<     */
738                 TAPI_EVENT_CFG_VERIFY_A_KEY_CNF,                                     /**<     */
739                 TAPI_EVENT_CFG_GET_MSL_INFO_CNF,                                     /**<     */
740                 TAPI_EVENT_CFG_GET_VOCODER_OPTION_CNF,                        /**<     */
741                 TAPI_EVENT_CFG_SET_VOCODER_OPTION_CNF,                        /**<     */
742                 TAPI_EVENT_CFG_GET_HIDDEN_MENU_ACCESS_CNF,            /**<     */
743                 TAPI_EVENT_CFG_SET_HIDDEN_MENU_ACCESS_CNF,            /**<     */
744                 TAPI_EVENT_CFG_GET_CURRENT_CARRIER_CNF,                       /**<     */
745                 TAPI_EVENT_CFG_SET_CURRENT_CARRIER_CNF,                       /**<     */
746                 TAPI_EVENT_CFG_GET_SIO_MODE_CNF,                              /**<     */
747                 TAPI_EVENT_CFG_SET_SIO_MODE_CNF,                              /**<     */
748                 TAPI_EVENT_CFG_GET_ACTIVATION_DATE_CNF,                       /**<     */
749                 TAPI_EVENT_CFG_GET_RECONDITIONED_DATE_CNF,                            /**<     */
750                 TAPI_EVENT_CFG_SET_TTY_MODE_CNF,                              /**<     */
751                 TAPI_EVENT_CFG_GET_TTY_MODE_CNF,                              /**<     */
752         };
753
754         iNumOfCfgEvt = sizeof(cfgEvents)/sizeof(int);
755 //      TAPI_CALLOC(Cfg_subscription_id, iNumOfCfgEvt, unsigned int)
756 //#define TAPI_CALLOC(ptr, no_elements, type)
757         Cfg_subscription_id = (unsigned int *) calloc (iNumOfCfgEvt , sizeof (unsigned int));
758         if(Cfg_subscription_id == NULL)
759         {
760                 TEST_DEBUG("calloc error -NULL, errno is [%d]", errno);
761         }
762
763
764         if(tel_init() == TAPI_API_SUCCESS)
765         {
766                 for( i=0 ; i< iNumOfCfgEvt; i++ )
767                 {
768                         api_err = tel_register_event(cfgEvents[i], &Cfg_subscription_id[i],(TelAppCallback)&tapi_cfg_callback,NULL);
769                         if(api_err != TAPI_API_SUCCESS)
770                         {
771                                 TEST_DEBUG("isn't subscribed. event id is %d, api_err is %d\n", cfgEvents[i],api_err);
772                                 ret_val = FALSE;
773                                 break;
774                         }
775                 }
776         }
777         else
778         {
779                 TEST_DEBUG("tel_init() failed");
780         }
781         return ret_val;
782
783 #if 0
784         //GMainLoop *mainloop;
785         edata_t sdata;
786         noti_subscription_id_t subscription_id;
787         int count;
788
789         char *cfgEvents[] = {
790                                                                         "Telephony.User.Cfg.BtWifiTestInd",
791                                                                         "Telephony.User.Cfg.PdaCalibration",
792                                                                         "Telephony.Cfg.GetAKeyCnf",
793                                                                         "Telephony.Cfg.VerifyAKeyCnf",
794                                                                         "Telephony.Cfg.GetMslInfoCnf",
795                                                                         "Telephony.Cfg.GetVocoderOptionCnf",
796                                                                         "Telephony.Cfg.SetVocoderOptionCnf",
797                                                                         "Telephony.Cfg.GetHiddenMenuAccessCnf",
798                                                                         "Telephony.Cfg.SetHiddenMenuAccessCnf",
799                                                                         "Telephony.Cfg.GetCurrentCarrierCnf",
800                                                                         "Telephony.Cfg.SetCurrentCarrierCnf",
801                                                                         "Telephony.Cfg.GetSioModeCnf",
802                                                                         "Telephony.Cfg.SetSioModeCnf",
803                                                                         "Telephony.Cfg.GetUsbPathCnf",
804                                                                         "Telephony.Cfg.SetUsbPathCnf",
805                                                                         "Telephony.Cfg.GetActivationDateCnf",
806                                                                         "Telephony.Cfg.GetReconditionedDateCnf",
807                                                                 };
808
809         for(count =0;count  <  (sizeof(cfgEvents)/sizeof(*cfgEvents)) ; count++)
810         {
811                 error_code = EvtSysEventSubscribe (
812                                                                                         EvtDeliveryHandle,
813                                                                                         cfgEvents[count],                               /* notification ID */
814                                                                                         NULL,                                           /*      filter expression       */
815                                                                                         (EvtSysEventCb)on_cfg_event_received,           /* notification handler */
816                                                                                         (void *)&sdata,                         /* local data */
817                                                                                         &subscription_id                        /* subscription ID */
818                                                                                 );
819                 if (error_code )
820                 {
821                         TEST_DEBUG( "[NET TEST] EvtSysEventSubscribe(): error [%#X] for event [%s]", error_code , cfgEvents[count]);
822                 }
823         }
824
825         return 0;
826 #endif
827 }
828
829 #if 0
830 void tapi_cfg_thread()
831 {
832         TEST_DEBUG("start tapi_cfg_thread");
833         cfg_select_loop();
834         fprintf (stderr, " cfg exited");
835         pthread_exit(NULL);
836 }
837
838
839 int cfg_main(int argc, char *argv[])
840 {
841         int ret=0;
842         pthread_t cfg_thread_id;
843
844         TEST_DEBUG("\n\n\n ===== config module test  ver 1.01 =====");
845
846         ret = pthread_create(&cfg_thread_id, NULL, &tapi_cfg_thread, NULL);
847
848         if(ret != 0)
849         {
850                 TEST_DEBUG( "Thread for TAPI Events Failed");
851         }
852
853         pthread_join(cfg_thread_id, NULL);
854 }
855 #endif