Add cell get/set API for V2.

Change-Id: I7a001cd0f091a199ef0f7583becead01c38e1777
diff --git a/mbtk/test/libmbtk_ril/mbtk_ril_test.c b/mbtk/test/libmbtk_ril/mbtk_ril_test.c
index cbb56c2..20178b3 100755
--- a/mbtk/test/libmbtk_ril/mbtk_ril_test.c
+++ b/mbtk/test/libmbtk_ril/mbtk_ril_test.c
@@ -698,56 +698,53 @@
                     }
                 }
             }
-#if 0
-
             else if(!strncasecmp(cmd, "cell", 4)){
                 char *ptr = strstr(cmd, ",");	 //CPMS,ME,ME,ME
 				if(ptr == NULL)
 				{
-                    printf("ptr == NULL\n");
-                    list_node_t* cell_list = NULL;
-                    int type;
-                    err = mbtk_cell_get(info_handle, &type, &cell_list);
-                    if(err || cell_list == NULL) {
+                    mbtk_cell_info_array_t cell;
+                    err = mbtk_cell_get(&cell);
+                    if(err) {
                         printf("Error : %d\n", err);
-                    } else {
-                        list_first(cell_list);
-                        mbtk_cell_info_t* cell = (mbtk_cell_info_t*) list_next(cell_list);
-                        if(cell) { // Current server cell.
-                            switch(type)
-                            {
-                                case 0:
-                                    printf("GSM : lac=%d, ci=%d, arfcn=%d, bsic=%d\n", cell->value1, cell->value2, cell->value3, cell->value4);
-                                    break;
-                                case 1:
-                                    printf("UMTS : lac=%d, ci=%d, arfcn=%d\n", cell->value1, cell->value2, cell->value3);
-                                    break;
-                                case 2:
-                                    printf("LTE : tac=%d, PCI=%d, dlEuarfcn=%d, ulEuarfcn=%d, band=%d\n", cell->value1, cell->value2, cell->value3, cell->value4, cell->value5);
-                                    break;
-                                default:
-                                    break;
-                            }
-                        }
-                        while ((cell = (mbtk_cell_info_t*) list_next(cell_list)))
+                    } else if(cell.num > 0){
+                        // Current server cell.
+                        switch(cell.type)
                         {
-                            switch(type)
+                            case MBTK_CELL_TYPE_GSM:
+                                printf("GSM : lac=%d, ci=%d, arfcn=%d, bsic=%d\n", cell.cell[0].value1, cell.cell[0].value2, cell.cell[0].value3, cell.cell[0].value4);
+                                break;
+                            case MBTK_CELL_TYPE_UMTS:
+                                printf("UMTS : lac=%d, ci=%d, arfcn=%d\n", cell.cell[0].value1, cell.cell[0].value2, cell.cell[0].value3);
+                                break;
+                            case MBTK_CELL_TYPE_LTE:
+                                printf("LTE : tac=%d, PCI=%d, dlEuarfcn=%d, ulEuarfcn=%d, band=%d\n", cell.cell[0].value1, cell.cell[0].value2, cell.cell[0].value3, cell.cell[0].value4, cell.cell[0].value5);
+                                break;
+                            default:
+                                break;
+                        }
+
+                        int i = 1;
+                        while (i < cell.num)
+                        {
+                            switch(cell.type)
                             {
-                                case 0:
-                                    printf("CELL : %d, %d, %d, %d, %d", cell->value1, cell->value2, cell->value3, cell->value4, cell->value5);
+                                case MBTK_CELL_TYPE_GSM:
+                                    printf("CELL : %d, %d, %d, %d, %d", cell.cell[i].value1, cell.cell[i].value2, cell.cell[i].value3, cell.cell[i].value4, cell.cell[i].value5);
                                     break;
-                                case 1:
-                                    printf("CELL : lac=%d, ci=%d, arfcn=%d\n", cell->value1, cell->value2, cell->value3);
+                                case MBTK_CELL_TYPE_UMTS:
+                                    printf("CELL : lac=%d, ci=%d, arfcn=%d\n", cell.cell[i].value1, cell.cell[i].value2, cell.cell[i].value3);
                                     break;
-                                case 2:
-                                    printf("CELL : phyCellId=%d, euArfcn=%d, rsrp=%d, rsrq=%d\n", cell->value1, cell->value2, cell->value3, cell->value4);
+                                case MBTK_CELL_TYPE_LTE:
+                                    printf("CELL : phyCellId=%d, euArfcn=%d, rsrp=%d, rsrq=%d\n", cell.cell[i].value1, cell.cell[i].value2, cell.cell[i].value3, cell.cell[i].value4);
                                     break;
                                 default:
                                     break;
                             }
+                            i++;
                         }
+                    } else {
+                        printf("Cell no found.");
                     }
-                    list_free(cell_list);
                 }
                 else{
                     char *ptr = strstr(cmd, ",");	 //cell,2,3,,40936,430
@@ -763,15 +760,15 @@
 					printf("cell_mem: %s \n", mem);
 
 					memset(resp, 0, sizeof(resp));
-					err = mbtk_cell_set(info_handle, mem, resp);
+					err = mbtk_cell_set(mem, resp);
 					if(err) {
 						printf("Error : %d\n", err);
 					} else {
 						printf("cell set . resp:%s\n", resp);
 					}
-
                 }
-            } else if(!strncasecmp(cmd, "call", 4)){
+            }
+            else if(!strncasecmp(cmd, "call", 4)){
                 char phone_number[12];
                 char *ptr = strstr(cmd, " ");
                     if(ptr == NULL)
@@ -781,14 +778,14 @@
                 memset(phone_number,0,strlen(phone_number));
                 memcpy(phone_number,ptr,strlen(ptr));
                 printf("phone number is: %s\n",phone_number);
-                err = mbtk_call_start(info_handle, phone_number);
+                err = mbtk_call_start(phone_number);
                 if(err) {
                     printf("Error : %d\n", err);
                 } else {
                     printf("Call success.\n");
                 }
             } else if(!strncasecmp(cmd, "answer", 6)){
-                err = mbtk_call_answer(info_handle);
+                err = mbtk_call_answer();
                 if(err) {
                     printf("Error : %d\n", err);
                 } else {
@@ -797,21 +794,21 @@
             } else if(!strncasecmp(cmd, "hangup", 6)){
                 int phone_id;
                 if(!strcasecmp(cmd, "hangup")) { // hang up all
-                    err = mbtk_call_hang(info_handle);
+                    err = mbtk_call_hang();
                     if(err) {
                         printf("Error : %d\n", err);
                     } else {
                         printf("Call hang up all.\n");
                     }
                 } else if(!strcasecmp(cmd, "hangup 0")) {
-                    err = mbtk_waiting_or_background_call_hang(info_handle);
+                    err = mbtk_waiting_or_background_call_hang();
                     if(err) {
                         printf("Error : %d\n", err);
                     } else {
                         printf("Call hang up waiting or background.\n");
                     }
                 } else if(!strcasecmp(cmd, "hangup 3")) {
-                    err = mbtk_foreground_resume_background_call_hang(info_handle);
+                    err = mbtk_foreground_resume_background_call_hang();
                     if(err) {
                         printf("Error : %d\n", err);
                     } else {
@@ -825,7 +822,7 @@
                     } else {
                         printf("Error : Invalid input\n");
                     }
-                    err = mbtk_a_call_hang(info_handle, phone_id);
+                    err = mbtk_a_call_hang(phone_id);
                     if(err) {
                         printf("Error : %d\n", err);
                     } else {
@@ -834,7 +831,7 @@
                 }
             } else if(!strncasecmp(cmd, "waitin", 6)){
                 mbtk_call_info_t reg;
-                err = mbtk_call_reg_get(info_handle, &reg);
+                err = mbtk_call_reg_get(&reg);
                 if(err) {
                     printf("Error : %d\n", err);
                 } else {
@@ -848,7 +845,7 @@
             } else if(!strncasecmp(cmd, "mute", 4)){ // "mute" or "mute 0" or "mute 1"
                 int mute;
                 if(!strcasecmp(cmd, "mute")) { // Get
-                    err = mbtk_mute_state_get(info_handle, &mute);
+                    err = mbtk_mute_state_get(&mute);
                     if(err) {
                         printf("Error : %d\n", err);
                     } else {
@@ -860,7 +857,7 @@
                     } else { // off mute
                         mute = 0;
                     }
-                    err = mbtk_mute_state_set(info_handle, mute);
+                    err = mbtk_mute_state_set(mute);
                     if(err) {
                         printf("Error : %d\n", err);
                     } else {
@@ -885,13 +882,313 @@
                     ptr++;
                 reg.duration = (uint32)atoi(ptr);
                 printf("DTMF character is: %c,%d\n",reg.character, reg.duration);
-                err = mbtk_dtmf_send(info_handle, &reg);
+                err = mbtk_dtmf_send(&reg);
                 if(err) {
                     printf("Error : %d\n", err);
                 } else {
                     printf("DTMF success.\n");
                 }
-            } else if(!strncasecmp(cmd, "shutdown", 8)){
+            } else if(!strncasecmp(cmd, "cmgf", 4)){ // set mode 0: pud, 1:text
+                int mode;
+                if(!strcasecmp(cmd, "cmgf")) { // Get
+                    err = mbtk_sms_cmgf_get(&mode);
+                    if(err) {
+                        printf("Error : %d\n", err);
+                    } else {
+                        printf("VoLTE : %d\n", mode);
+                    }
+                } else { // Set
+                    if(!strcasecmp(cmd, "cmgf 1")) { // cmgf 1
+                        mode = 1;
+                    } else { //
+                        mode = 0;
+                    }
+                    printf("mode:%d\n", mode);
+                    sleep(2);
+                   err = mbtk_sms_cmgf_set(mode);
+                    if(err) {
+                        printf("Error : %d\n", err);
+                    } else {
+                        printf("VoLTE set success\n");
+                    }
+                }
+            }else if(!strncasecmp(cmd, "cpms", 4)){ // //CPMS=ME, ME, ME
+				char mem[100] = {0};
+                char resp[100] = {0};
+                if(!strcasecmp(cmd, "cpms")) { // Get
+                    err = mbtk_sms_cpms_get(&mem);
+                    if(err) {
+                        printf("Error : %d\n", err);
+                    } else {
+                        printf("cpms : %s\n", mem);
+                    }
+                } else { // Set
+
+					char *ptr = strstr(cmd, ",");    //CPMS,ME,ME,ME
+                    if(ptr != NULL)
+				    {
+				    	ptr++;
+                        memset(mem, 0, sizeof(mem));
+				        memcpy(mem, ptr, strlen(ptr));
+						printf("cpms:%s\n", mem);
+				    }
+                    printf("cpms 0\n");
+
+                    memset(resp, 0, sizeof(resp));
+                    err = mbtk_sms_cpms_set(mem, resp);
+                    if(err) {
+                        printf("Error : %d\n", err);
+                    } else {
+                        printf("cpms set success. resp:%s\n", resp);
+                    }
+                }
+            }else if(!strncasecmp(cmd, "cmgs", 4)){ //   AT+CMGS="10086", CMGS TEST
+                char cmgs[1024] = {0};
+                char resp[50] = {0};
+                if(!strcasecmp(cmd, "cmgs")) { // Get
+                    int mode;
+                //    err = mbtk_sms_cmgs_get(info_handle, &mode);
+                    if(err) {
+                        printf("Error : %d\n", err);
+                    } else {
+                        printf("VoLTE : %d\n", mode);
+                    }
+                } else { // Set
+
+							/*
+							*AT+CMGS="10086", CMGS TEST	                  // Send a SMS
+							> CMGS TEST
+							+CMGS: 17
+							OK
+							*/
+
+                    char *ptr = strstr(cmd, "cmgs,");      //CMGS="10086",hf
+                    if(ptr != NULL)
+				    {
+				    	ptr = strstr(cmd, ",");
+                        ptr++;
+                        memset(cmgs, 0, sizeof(cmgs));
+				        memcpy(cmgs, ptr, strlen(ptr));
+						printf("1cmgs:%s, strlen(cmgs):%d\n", cmgs, strlen(cmgs));
+				    }
+
+					memset(resp, 0, sizeof(resp));
+                    err = mbtk_sms_cmgs_set(cmgs, resp);
+                    if(err) {
+                        printf("Error : %d\n", err);
+                    } else {
+                        printf("cmgs set success . resp:%s\n", resp);
+                    }
+                }
+            }else if(!strncasecmp(cmd, "cmss", 4)){ // +CMSS=<index>[,<da>[,<toda>]]
+                char cmss[20] = {0};
+                char resp[20] = {0};
+                if(!strcasecmp(cmd, "cmgs")) { // Get
+                    printf("cmss : OK\n");
+
+                } else {
+                    char *ptr = strstr(cmd, "cmss,");    //CMSS=<index>
+                    if(ptr != NULL)
+				    {
+                        ptr = strstr(cmd, ",");
+				    	ptr++;
+                        memset(cmss, 0, sizeof(cmss));
+				        memcpy(cmss, ptr, strlen(ptr));
+						printf("1cmss:%s\n", cmss);
+				    }
+
+
+                    err = mbtk_sms_cmss_set(cmss, resp);
+                    if(err) {
+                        printf("Error : %d\n", err);
+                    } else {
+                        printf("cmss set success. resp:%s\n", resp);
+                    }
+                }
+            }
+            else if(!strncasecmp(cmd, "cmgr", 4)){ // +CMGR=<index
+                int index = 0;
+                char resp[1024] = {0};
+                if(!strcasecmp(cmd, "cmgr")) { // Get
+                    printf("cmgr : OK\n");
+
+                } else {
+                    char *ptr = strstr(cmd, "cmgr,");    //+CMGR <index>
+                    if(ptr != NULL)
+				    {
+                        ptr = strstr(cmd, ",");
+                        ptr++;
+				    	index = atoi(ptr);
+				    }
+                    printf("1index:%d\n", index);
+
+                    memset(resp, 0, sizeof(resp));
+                    err = mbtk_sms_cmgr_set(index, resp);
+                    if(err) {
+                        printf("Error : %d\n", err);
+                    } else {
+                        printf("cmgr set success. rep:%s\n", resp);
+                    }
+                }
+            }
+            else if(!strncasecmp(cmd, "cmgw", 4)){ // +CMGW=<oa/da>[,<tooa/toda>[,<stat>]]<CR>
+                                                    //+CMGW=<length>[,<stat>]<CR>PDU is given<ctrl-Z/ESC>
+                char cmgw[128] = {0};
+                char resp[50] = {0};
+                if(!strcasecmp(cmd, "cmgw")) { // Get
+                    printf("cmgw : OK\n");
+
+                } else {
+                    char *ptr = strstr(cmd, "cmgw,");    //+CMGW, <oa/da>, data
+                    if(ptr != NULL)
+				    {
+                        ptr = strstr(cmd, ",");
+				    	ptr++;
+                        memset(cmgw, 0, sizeof(cmgw));
+				        memcpy(cmgw, ptr, strlen(ptr));
+						printf("cmgw:%s\n", cmgw);
+				    }
+
+                    memset(resp, 0, sizeof(resp));
+                    err = mbtk_sms_cmgw_set(cmgw, resp);
+                    if(err) {
+                        printf("Error : %d\n", err);
+                    } else {
+                        printf("cmgw set success. resp:%s\n", resp);
+                    }
+                }
+            }
+            else if(!strncasecmp(cmd, "cmgd", 4)){ // +CMGD=<index>[,<delflag>
+                                                    //
+                char cmgd[128] = {0};
+                if(!strcasecmp(cmd, "cmgd")) { // Get
+                    printf("cmgd : OK\n");
+
+                } else {
+                    char *ptr = strstr(cmd, ",");    //+CMGD=<index>[,<delflag>
+                    if(ptr != NULL)
+				    {
+				    	ptr++;
+                        memset(cmgd, 0, sizeof(cmgd));
+				        memcpy(cmgd, ptr, strlen(ptr));
+						printf("1cmgd:%s\n", cmgd);
+				    }
+
+
+                    err = mbtk_sms_cmgd_set(cmgd);
+                    if(err) {
+                        printf("Error : %d\n", err);
+                    } else {
+                        printf("VoLTE set success\n");
+                    }
+                }
+            }
+            else if(!strncasecmp(cmd, "cmgl", 4)){ // AT+CMGL[=<stat>]
+                                                    //
+                char cmgl[128] = {0};
+                char resp[5*1024] ={0};
+                if(!strcasecmp(cmd, "cmgl")) { // Get
+                    printf("cmgl : OK\n");
+
+                } else {
+                    char *ptr = strstr(cmd, "cmgl,");  //  AT+CMGL[=<stat>]
+                    if(ptr != NULL)
+				    {
+                        ptr = strstr(cmd, ",");
+				    	ptr++;
+                        memset(cmgl, 0, sizeof(cmgl));
+				        memcpy(cmgl, ptr, strlen(ptr));
+						printf("0cmgl:%s\n", cmgl);
+				    }
+
+					memset(resp, 0, sizeof(resp));
+                    err = mbtk_sms_cmgl_set(cmgl, resp);
+                    if(err) {
+                        printf("Error : %d\n", err);
+                    } else {
+                      //  printf("cmgl set success, reg:%s\n",resp);
+                    }
+                }
+            }
+            else if(!strncasecmp(cmd, "csca", 4)){ // AT+CSCA=<number> [,<type>]
+                                                    //
+                char csca[128] = {0};
+                if(!strcasecmp(cmd, "csca")) { // Get
+                    err = mbtk_sms_csca_get(csca);
+                    if(err) {
+                        printf("mbtk_sms_csca_get Error : %d\n", err);
+                    } else {
+                        printf("mbtk_sms_csca_get success\n");
+                    }
+
+                } else {
+                    char *ptr = strstr(cmd, ",");  //  AT+CSCA=<number> [,<type>]
+                    if(ptr != NULL)
+				    {
+				    	ptr++;
+                        memset(csca, 0, sizeof(csca));
+				        memcpy(csca, ptr, strlen(ptr));
+						printf("csca:%s\n", csca);
+				    }
+
+                    err = mbtk_sms_csca_set(csca);
+                    if(err) {
+                        printf("Error : %d\n", err);
+                    } else {
+                        printf("VoLTE set success\n");
+                    }
+                }
+            }
+            else if(!strncasecmp(cmd, "csmp", 4)){ // AT+CSMP=[<fo>[,<vp>[,<pid>[,<dcs>]]]]
+                                                    //
+                char csmp[128] = {0};
+                if(!strcasecmp(cmd, "csmp")) { // Get
+                    printf("cmgl : OK\n");
+
+                } else {
+                    char *ptr = strstr(cmd, ",");  //  AT+CSMP=[<fo>[,<vp>[,<pid>[,<dcs>]]]]
+                    if(ptr != NULL)
+				    {
+				    	ptr++;
+                        memset(csmp, 0, sizeof(csmp));
+				        memcpy(csmp, ptr, strlen(ptr));
+						printf("csmp:%s\n", csmp);
+				    }
+
+                    err = mbtk_sms_csmp_set(csmp);
+                    if(err) {
+                        printf("Error : %d\n", err);
+                    } else {
+                        printf("VoLTE set success\n");
+                    }
+                }
+            }
+            else if(!strncasecmp(cmd, "cscb", 4)){ // AT+CSCB=<[<mode>[,<mids>[,<dcss>]]]>
+                                                    //
+                char cscb[128] = {0};
+                if(!strcasecmp(cmd, "cscb")) { // Get
+                    printf("cmgl : OK\n");
+
+                } else {
+                    char *ptr = strstr(cmd, ",");  //  AT+CSCB=<[<mode>[,<mids>[,<dcss>]]]>
+                    if(ptr != NULL)
+				    {
+				    	ptr++;
+                        memset(cscb, 0, sizeof(cscb));
+				        memcpy(cscb, ptr, strlen(ptr));
+						printf("cscb:%s\n", cscb);
+				    }
+
+                    err = mbtk_sms_cscb_set(cscb);
+                    if(err) {
+                        printf("Error : %d\n", err);
+                    } else {
+                        printf("VoLTE set success\n");
+                    }
+                }
+            }
+#if 0
+            else if(!strncasecmp(cmd, "shutdown", 8)){
                 if(!strcasecmp(cmd, "shutdown 0")) {
                     err = mbtk_system_reboot(0);
                     if(err) {
@@ -965,51 +1262,6 @@
                         printf("Time type:%d.\n", time_type);
                     }
                 }
-            } else if(!strncasecmp(cmd, "apn", 3)){
-                if(!strcasecmp(cmd, "apn")) { // Get apn
-                #define APN_MAX 10
-                    mbtk_apn_info_t apns[APN_MAX];
-                    int apn_num = APN_MAX;
-                    err = mbtk_apn_get(info_handle, &apn_num, apns);
-                    if(err) {
-                        printf("Error : %d\n", err);
-                    } else {
-                        printf("APN Num:%d\n", apn_num);
-                        int i = 0;
-                        while(i < apn_num) {
-                            printf("APN : %d, %s, %s\n", apns[i].cid, apn2str(apns[i].ip_type), apns[i].apn);
-                            i++;
-                        }
-                    }
-                } else { // apn <cid> <0/1/2/3> <apn>
-                    char *ptr = strstr(cmd, " ");
-                    if(ptr == NULL)
-                        continue;
-                    while(*ptr != '\0' && *ptr == ' ')
-                        ptr++;
-                    int cid = atoi(ptr);
-
-                    ptr = strstr(ptr, " ");
-                    if(ptr == NULL)
-                        continue;
-                    while(*ptr != '\0' && *ptr == ' ')
-                        ptr++;
-                    mbtk_ip_type_enum ip_type = (mbtk_ip_type_enum)atoi(ptr);
-
-                    ptr = strstr(ptr, " ");
-                    if(ptr == NULL)
-                        continue;
-                    while(*ptr != '\0' && *ptr == ' ')
-                        ptr++;
-                    char *apn  = ptr;
-
-                    err = mbtk_apn_set(info_handle, cid, ip_type, apn, NULL, NULL, NULL);
-                    if(err) {
-                        printf("Error : %d\n", err);
-                    } else {
-                        printf("APN set success\n");
-                    }
-                }
             } else if(!strncasecmp(cmd, "data_call", 9)){ // data_call <0/1/2> <cid> <timeout>
                 // data_call <0/1/2> <cid> <timeout>
                 char *ptr = strstr(cmd, " ");
@@ -1128,335 +1380,6 @@
                 } else {
                     printf("DATA_CALL success\n");
                 }
-            }else if(!strncasecmp(cmd, "cmgf", 4)){ // set mode 0: pud, 1:text
-                int mode;
-                if(!strcasecmp(cmd, "cmgf")) { // Get
-                    err = mbtk_sms_cmgf_get(info_handle, &mode);
-                    if(err) {
-                        printf("Error : %d\n", err);
-                    } else {
-                        printf("VoLTE : %d\n", mode);
-                    }
-                } else { // Set
-                    if(!strcasecmp(cmd, "cmgf 1")) { // cmgf 1
-                        mode = 1;
-                    } else { //
-                        mode = 0;
-                    }
-                    printf("mode:%d\n", mode);
-                    sleep(2);
-                   err = mbtk_sms_cmgf_set(info_handle, mode);
-                    if(err) {
-                        printf("Error : %d\n", err);
-                    } else {
-                        printf("VoLTE set success\n");
-                    }
-                }
-            }else if(!strncasecmp(cmd, "cpms", 4)){ // //CPMS=ME, ME, ME
-				char mem[100] = {0};
-                char resp[100] = {0};
-                if(!strcasecmp(cmd, "cpms")) { // Get
-                    err = mbtk_sms_cpms_get(info_handle, &mem);
-                    if(err) {
-                        printf("Error : %d\n", err);
-                    } else {
-                        printf("cpms : %s\n", mem);
-                    }
-                } else { // Set
-
-					char *ptr = strstr(cmd, ",");    //CPMS,ME,ME,ME
-                    if(ptr != NULL)
-				    {
-				    	ptr++;
-                        memset(mem, 0, sizeof(mem));
-				        memcpy(mem, ptr, strlen(ptr));
-						printf("cpms:%s\n", mem);
-				    }
-                    printf("cpms 0\n");
-
-                    memset(resp, 0, sizeof(resp));
-                    err = mbtk_sms_cpms_set(info_handle, mem, resp);
-                    if(err) {
-                        printf("Error : %d\n", err);
-                    } else {
-                        printf("cpms set success. resp:%s\n", resp);
-                    }
-                }
-            }else if(!strncasecmp(cmd, "cmgs", 4)){ //   AT+CMGS="10086", CMGS TEST
-                char cmgs[1024] = {0};
-                char resp[50] = {0};
-                if(!strcasecmp(cmd, "cmgs")) { // Get
-                    int mode;
-                //    err = mbtk_sms_cmgs_get(info_handle, &mode);
-                    if(err) {
-                        printf("Error : %d\n", err);
-                    } else {
-                        printf("VoLTE : %d\n", mode);
-                    }
-                } else { // Set
-
-							/*
-							*AT+CMGS="10086", CMGS TEST	                  // Send a SMS
-							> CMGS TEST
-							+CMGS: 17
-							OK
-							*/
-
-                    char *ptr = strstr(cmd, "cmgs,");      //CMGS="10086",hf
-                    if(ptr != NULL)
-				    {
-				    	ptr = strstr(cmd, ",");
-                        ptr++;
-                        memset(cmgs, 0, sizeof(cmgs));
-				        memcpy(cmgs, ptr, strlen(ptr));
-						printf("1cmgs:%s, strlen(cmgs):%d\n", cmgs, strlen(cmgs));
-				    }
-
-					memset(resp, 0, sizeof(resp));
-                    err = mbtk_sms_cmgs_set(info_handle, cmgs, resp);
-                    if(err) {
-                        printf("Error : %d\n", err);
-                    } else {
-                        printf("cmgs set success . resp:%s\n", resp);
-                    }
-                }
-            }else if(!strncasecmp(cmd, "cmss", 4)){ // +CMSS=<index>[,<da>[,<toda>]]
-                char cmss[20] = {0};
-                char resp[20] = {0};
-                if(!strcasecmp(cmd, "cmgs")) { // Get
-                    printf("cmss : OK\n");
-
-                } else {
-                    char *ptr = strstr(cmd, "cmss,");    //CMSS=<index>
-                    if(ptr != NULL)
-				    {
-                        ptr = strstr(cmd, ",");
-				    	ptr++;
-                        memset(cmss, 0, sizeof(cmss));
-				        memcpy(cmss, ptr, strlen(ptr));
-						printf("1cmss:%s\n", cmss);
-				    }
-
-
-                    err = mbtk_sms_cmss_set(info_handle, cmss, resp);
-                    if(err) {
-                        printf("Error : %d\n", err);
-                    } else {
-                        printf("cmss set success. resp:%s\n", resp);
-                    }
-                }
-            }
-            else if(!strncasecmp(cmd, "cmgr", 4)){ // +CMGR=<index
-                int index = 0;
-                char resp[1024] = {0};
-                if(!strcasecmp(cmd, "cmgr")) { // Get
-                    printf("cmgr : OK\n");
-
-                } else {
-                    char *ptr = strstr(cmd, "cmgr,");    //+CMGR <index>
-                    if(ptr != NULL)
-				    {
-                        ptr = strstr(cmd, ",");
-                        ptr++;
-				    	index = atoi(ptr);
-				    }
-                    printf("1index:%d\n", index);
-
-                    memset(resp, 0, sizeof(resp));
-                    err = mbtk_sms_cmgr_set(info_handle, index, resp);
-                    if(err) {
-                        printf("Error : %d\n", err);
-                    } else {
-                        printf("cmgr set success. rep:%s\n", resp);
-                    }
-                }
-            }
-            else if(!strncasecmp(cmd, "cmgw", 4)){ // +CMGW=<oa/da>[,<tooa/toda>[,<stat>]]<CR>
-                                                    //+CMGW=<length>[,<stat>]<CR>PDU is given<ctrl-Z/ESC>
-                char cmgw[128] = {0};
-                char resp[50] = {0};
-                if(!strcasecmp(cmd, "cmgw")) { // Get
-                    printf("cmgw : OK\n");
-
-                } else {
-                    char *ptr = strstr(cmd, "cmgw,");    //+CMGW, <oa/da>, data
-                    if(ptr != NULL)
-				    {
-                        ptr = strstr(cmd, ",");
-				    	ptr++;
-                        memset(cmgw, 0, sizeof(cmgw));
-				        memcpy(cmgw, ptr, strlen(ptr));
-						printf("cmgw:%s\n", cmgw);
-				    }
-
-                    memset(resp, 0, sizeof(resp));
-                    err = mbtk_sms_cmgw_set(info_handle, cmgw, resp);
-                    if(err) {
-                        printf("Error : %d\n", err);
-                    } else {
-                        printf("cmgw set success. resp:%s\n", resp);
-                    }
-                }
-            }
-            else if(!strncasecmp(cmd, "cmgd", 4)){ // +CMGD=<index>[,<delflag>
-                                                    //
-                char cmgd[128] = {0};
-                if(!strcasecmp(cmd, "cmgd")) { // Get
-                    printf("cmgd : OK\n");
-
-                } else {
-                    char *ptr = strstr(cmd, ",");    //+CMGD=<index>[,<delflag>
-                    if(ptr != NULL)
-				    {
-				    	ptr++;
-                        memset(cmgd, 0, sizeof(cmgd));
-				        memcpy(cmgd, ptr, strlen(ptr));
-						printf("1cmgd:%s\n", cmgd);
-				    }
-
-
-                    err = mbtk_sms_cmgd_set(info_handle, cmgd);
-                    if(err) {
-                        printf("Error : %d\n", err);
-                    } else {
-                        printf("VoLTE set success\n");
-                    }
-                }
-            }
-            else if(!strncasecmp(cmd, "cmgl", 4)){ // AT+CMGL[=<stat>]
-                                                    //
-                char cmgl[128] = {0};
-                char resp[5*1024] ={0};
-                if(!strcasecmp(cmd, "cmgl")) { // Get
-                    printf("cmgl : OK\n");
-
-                } else {
-                    char *ptr = strstr(cmd, "cmgl,");  //  AT+CMGL[=<stat>]
-                    if(ptr != NULL)
-				    {
-                        ptr = strstr(cmd, ",");
-				    	ptr++;
-                        memset(cmgl, 0, sizeof(cmgl));
-				        memcpy(cmgl, ptr, strlen(ptr));
-						printf("0cmgl:%s\n", cmgl);
-				    }
-
-					memset(resp, 0, sizeof(resp));
-                    err = mbtk_sms_cmgl_set(info_handle, cmgl, resp);
-                    if(err) {
-                        printf("Error : %d\n", err);
-                    } else {
-                      //  printf("cmgl set success, reg:%s\n",resp);
-                    }
-                }
-            }
-            else if(!strncasecmp(cmd, "csca", 4)){ // AT+CSCA=<number> [,<type>]
-                                                    //
-                char csca[128] = {0};
-                if(!strcasecmp(cmd, "csca")) { // Get
-                    err = mbtk_sms_csca_get(info_handle, csca);
-                    if(err) {
-                        printf("mbtk_sms_csca_get Error : %d\n", err);
-                    } else {
-                        printf("mbtk_sms_csca_get success\n");
-                    }
-
-                } else {
-                    char *ptr = strstr(cmd, ",");  //  AT+CSCA=<number> [,<type>]
-                    if(ptr != NULL)
-				    {
-				    	ptr++;
-                        memset(csca, 0, sizeof(csca));
-				        memcpy(csca, ptr, strlen(ptr));
-						printf("csca:%s\n", csca);
-				    }
-
-                    err = mbtk_sms_csca_set(info_handle, csca);
-                    if(err) {
-                        printf("Error : %d\n", err);
-                    } else {
-                        printf("VoLTE set success\n");
-                    }
-                }
-            }
-            else if(!strncasecmp(cmd, "csmp", 4)){ // AT+CSMP=[<fo>[,<vp>[,<pid>[,<dcs>]]]]
-                                                    //
-                char csmp[128] = {0};
-                if(!strcasecmp(cmd, "csmp")) { // Get
-                    printf("cmgl : OK\n");
-
-                } else {
-                    char *ptr = strstr(cmd, ",");  //  AT+CSMP=[<fo>[,<vp>[,<pid>[,<dcs>]]]]
-                    if(ptr != NULL)
-				    {
-				    	ptr++;
-                        memset(csmp, 0, sizeof(csmp));
-				        memcpy(csmp, ptr, strlen(ptr));
-						printf("csmp:%s\n", csmp);
-				    }
-
-                    err = mbtk_sms_csmp_set(info_handle, csmp);
-                    if(err) {
-                        printf("Error : %d\n", err);
-                    } else {
-                        printf("VoLTE set success\n");
-                    }
-                }
-            }
-            else if(!strncasecmp(cmd, "cscb", 4)){ // AT+CSCB=<[<mode>[,<mids>[,<dcss>]]]>
-                                                    //
-                char cscb[128] = {0};
-                if(!strcasecmp(cmd, "cscb")) { // Get
-                    printf("cmgl : OK\n");
-
-                } else {
-                    char *ptr = strstr(cmd, ",");  //  AT+CSCB=<[<mode>[,<mids>[,<dcss>]]]>
-                    if(ptr != NULL)
-				    {
-				    	ptr++;
-                        memset(cscb, 0, sizeof(cscb));
-				        memcpy(cscb, ptr, strlen(ptr));
-						printf("cscb:%s\n", cscb);
-				    }
-
-                    err = mbtk_sms_cscb_set(info_handle, cscb);
-                    if(err) {
-                        printf("Error : %d\n", err);
-                    } else {
-                        printf("VoLTE set success\n");
-                    }
-                }
-            }
-            else if(!strncasecmp(cmd, "ims_en", 6)){ // ims_en 0/1
-                char enable[10] = {0};
-                if(1 == sscanf(cmd, "ims_en %s", enable)) {
-                    err = mbtk_net_ims_set(info_handle, atoi(enable) ? 1 : 0);
-                    if(err) {
-                        printf("Set IMS fail : %d\n", err);
-                    } else {
-                        printf("Set IMS success\n");
-                    }
-                } else {
-                    printf("ARG error\n");
-                }
-            }
-            else if(!strncasecmp(cmd, "ims_state", 9)){ // ims_state
-                int enable = 0;
-                err = mbtk_net_ims_get(info_handle, &enable);
-                if(err) {
-                    printf("Get IMS state fail : %d\n", err);
-                } else {
-                    printf("IMS state : %d\n", enable);
-                }
-            }
-            else if(!strncasecmp(cmd, "ims_reg", 7)){ // ims_reg
-                int reg = 0;
-                err = mbtk_net_ims_reg_state_get(info_handle, &reg);
-                if(err) {
-                    printf("Get IMS register state fail : %d\n", err);
-                } else {
-                    printf("IMS register state : %d\n", reg);
-                }
             }
 #endif
             else if(!strcasecmp(cmd, "h") || !strcasecmp(cmd, "help")) {