Add DS support.

Change-Id: Ib8bc4e171dd5ca526f8e151ff3d467097582a8cb
diff --git a/mbtk/mbtk_rild_v2/src/ril_sim.c b/mbtk/mbtk_rild_v2/src/ril_sim.c
index fc9221e..a0fc554 100755
--- a/mbtk/mbtk_rild_v2/src/ril_sim.c
+++ b/mbtk/mbtk_rild_v2/src/ril_sim.c
@@ -17,10 +17,11 @@
 #include "mbtk_utils.h"
 #include "ril_info.h"
 
-void ril_rsp_pack_send(ATPortType_enum port, int fd, int ril_id, int msg_index, const void* data, int data_len);
+void ril_rsp_pack_send(mbtk_sim_type_enum sim_id, ATPortType_enum port, int fd, int ril_id, int msg_index, const void* data, int data_len);
+ATPortId_enum portType_2_portId(mbtk_sim_type_enum sim_id, ATPortType_enum port);
 
 /** Returns SIM_NOT_READY on error */
-mbtk_sim_state_enum ril_sim_state_get(ATPortType_enum port)
+mbtk_sim_state_enum ril_sim_state_get(mbtk_sim_type_enum sim_id, ATPortType_enum port)
 {
     ATResponse *p_response = NULL;
     int err;
@@ -28,7 +29,7 @@
     char *cpinLine;
     char *cpinResult;
 
-    err = at_send_command_singleline(port, "AT+CPIN?", "+CPIN:", &p_response);
+    err = at_send_command_singleline(portType_2_portId(sim_id, port), "AT+CPIN?", "+CPIN:", &p_response);
 
     if (err < 0 || p_response->success == 0 || !p_response->p_intermediates)
     {
@@ -144,7 +145,7 @@
     at_response_free(p_response);
     p_response = NULL;
     cpinResult = NULL;
-    ril_info.sim_state = ret;
+    ril_info.sim_state[sim_id] = ret;
     return ret;
 }
 
@@ -154,11 +155,11 @@
 
 OK
 */
-static int req_sim_type_get(ATPortType_enum port, uint8 *type, int *cme_err)
+static int req_sim_type_get(mbtk_sim_type_enum sim_id, ATPortType_enum port, uint8 *type, int *cme_err)
 {
     ATResponse *response = NULL;
 //    char *tmp_ptr = NULL;
-    int err = at_send_command_singleline(port, "AT*EUICC?", "*EUICC:", &response);
+    int err = at_send_command_singleline(portType_2_portId(sim_id, port), "AT*EUICC?", "*EUICC:", &response);
 
     if (err < 0 || response->success == 0 || !response->p_intermediates){
         *cme_err = at_get_cme_error(response);
@@ -191,11 +192,11 @@
 
 OK
 */
-static int req_iccid_get(ATPortType_enum port, void *data, int *cme_err)
+static int req_iccid_get(mbtk_sim_type_enum sim_id, ATPortType_enum port, void *data, int *cme_err)
 {
     ATResponse *response = NULL;
     char *tmp_ptr = NULL;
-    int err = at_send_command_singleline(port, "AT+ICCID", "+ICCID:", &response);
+    int err = at_send_command_singleline(portType_2_portId(sim_id, port), "AT+ICCID", "+ICCID:", &response);
 
     if (err < 0 || response->success == 0 || !response->p_intermediates){
         *cme_err = at_get_cme_error(response);
@@ -228,11 +229,11 @@
 OK
 
 */
-static int req_phone_number_get(ATPortType_enum port, void *data, int *cme_err)
+static int req_phone_number_get(mbtk_sim_type_enum sim_id, ATPortType_enum port, void *data, int *cme_err)
 {
     ATResponse *response = NULL;
     char *tmp_ptr = NULL;
-    int err = at_send_command_singleline(port, "AT+CNUM?", "+CNUM:", &response);
+    int err = at_send_command_singleline(portType_2_portId(sim_id, port), "AT+CNUM?", "+CNUM:", &response);
     if (err < 0 || response == NULL || response->success == 0 || !response->p_intermediates){
         if(response) {
             *cme_err = at_get_cme_error(response);
@@ -278,10 +279,10 @@
 OK
 
 */
-static int req_imsi_get(ATPortType_enum port, void *data, int *cme_err)
+static int req_imsi_get(mbtk_sim_type_enum sim_id, ATPortType_enum port, void *data, int *cme_err)
 {
     ATResponse *response = NULL;
-    int err = at_send_command_numeric(port, "AT+CIMI", &response);
+    int err = at_send_command_numeric(portType_2_portId(sim_id, port), "AT+CIMI", &response);
 
     if (err < 0 || response->success == 0 || !response->p_intermediates){
         *cme_err = at_get_cme_error(response);
@@ -294,12 +295,12 @@
     return err;
 }
 
-static int req_sim_lock_state_get(ATPortType_enum port, int *state, int *cme_err)
+static int req_sim_lock_state_get(mbtk_sim_type_enum sim_id, ATPortType_enum port, int *state, int *cme_err)
 {
     ATResponse *response = NULL;
 //    char cmd[64]={0};
 
-    int err = at_send_command_singleline(port, "AT+CLCK=SC,2", "+CLCK:", &response);
+    int err = at_send_command_singleline(portType_2_portId(sim_id, port), "AT+CLCK=SC,2", "+CLCK:", &response);
     if (err < 0 || response == NULL || response->success == 0 || !response->p_intermediates){
         if(response) {
             *cme_err = at_get_cme_error(response);
@@ -343,12 +344,12 @@
 
 *
 */
-static int req_sim_lock_switch(ATPortType_enum port, bool enable, uint8* pin, int *cme_err)
+static int req_sim_lock_switch(mbtk_sim_type_enum sim_id, ATPortType_enum port, bool enable, uint8* pin, int *cme_err)
 {
     ATResponse *response = NULL;
     char cmd[64]={0};
     snprintf(cmd, sizeof(cmd), "AT+CLCK=SC,%d,%s", enable ? 1 : 0, pin);
-    int err = at_send_command_singleline(port, cmd, "+CLCK:", &response);
+    int err = at_send_command_singleline(portType_2_portId(sim_id, port), cmd, "+CLCK:", &response);
     if (err < 0 || response == NULL || response->success == 0 || !response->p_intermediates){
         if(response) {
             *cme_err = at_get_cme_error(response);
@@ -393,22 +394,22 @@
     return err;
 }
 
-static int req_sim_pin_change(ATPortType_enum port, uint8* old_pin, uint8 *new_pin, int *cme_err)
+static int req_sim_pin_change(mbtk_sim_type_enum sim_id, ATPortType_enum port, uint8* old_pin, uint8 *new_pin, int *cme_err)
 {
     ATResponse *response = NULL;
     char cmd[128]={0};
     int err = 0;
     int state;
-    if(req_sim_lock_state_get(port, &state, cme_err) || *cme_err != MBTK_RIL_ERR_CME_NON)
+    if(req_sim_lock_state_get(sim_id, port, &state, cme_err) || *cme_err != MBTK_RIL_ERR_CME_NON)
     {
         return -1;
     }
 
     if(state == 0) { // Sim lock not open.
-        return req_sim_lock_switch(port, TRUE, new_pin, cme_err);
+        return req_sim_lock_switch(sim_id, port, TRUE, new_pin, cme_err);
     } else {// Change password.
         snprintf(cmd, sizeof(cmd), "AT+CPWD=SC,%s,%s", old_pin, new_pin);
-        err = at_send_command(port, cmd, &response);
+        err = at_send_command(portType_2_portId(sim_id, port), cmd, &response);
         if (err < 0 || response->success == 0){
             if(cme_err) {
                 *cme_err = at_get_cme_error(response);
@@ -422,12 +423,12 @@
     return err;
 }
 
-static int req_sim_pin_verify(ATPortType_enum port, uint8* pin, int *cme_err)
+static int req_sim_pin_verify(mbtk_sim_type_enum sim_id, ATPortType_enum port, uint8* pin, int *cme_err)
 {
     ATResponse *response = NULL;
     char cmd[64]={0};
     sprintf(cmd, "AT+CPIN=%s", pin);
-    int err = at_send_command(port, cmd, &response);
+    int err = at_send_command(portType_2_portId(sim_id, port), cmd, &response);
     if (err < 0 || response->success == 0){
         if(cme_err) {
             *cme_err = at_get_cme_error(response);
@@ -440,12 +441,12 @@
     return err;
 }
 
-static int req_sim_puk_verify(ATPortType_enum port, uint8* puk, uint8* pin, int *cme_err)
+static int req_sim_puk_verify(mbtk_sim_type_enum sim_id, ATPortType_enum port, uint8* puk, uint8* pin, int *cme_err)
 {
     ATResponse *response = NULL;
     char cmd[64]={0};
     sprintf(cmd, "AT+CPIN=%s,%s", puk, pin);
-    int err = at_send_command(port, cmd, &response);
+    int err = at_send_command(portType_2_portId(sim_id, port), cmd, &response);
     if (err < 0 || response->success == 0){
         if(cme_err) {
             *cme_err = at_get_cme_error(response);
@@ -458,29 +459,29 @@
     return err;
 }
 
-static int req_sim_lock_set(ATPortType_enum port, mbtk_sim_lock_info_t *lock_info, int *cme_err)
+static int req_sim_lock_set(mbtk_sim_type_enum sim_id, ATPortType_enum port, mbtk_sim_lock_info_t *lock_info, int *cme_err)
 {
     switch(lock_info->type)
     {
         case MBTK_SIM_LOCK_TYPE_DISABLE:
         {
-            return req_sim_lock_switch(port, FALSE, lock_info->pin1, cme_err);
+            return req_sim_lock_switch(sim_id, port, FALSE, lock_info->pin1, cme_err);
         }
         case MBTK_SIM_LOCK_TYPE_ENABLE:
         {
-            return req_sim_lock_switch(port, TRUE, lock_info->pin1, cme_err);
+            return req_sim_lock_switch(sim_id, port, TRUE, lock_info->pin1, cme_err);
         }
         case MBTK_SIM_LOCK_TYPE_CHANGE:
         {
-            return req_sim_pin_change(port, lock_info->pin1, lock_info->pin2, cme_err);
+            return req_sim_pin_change(sim_id, port, lock_info->pin1, lock_info->pin2, cme_err);
         }
         case MBTK_SIM_LOCK_TYPE_VERIFY_PIN:
         {
-            return req_sim_pin_verify(port, lock_info->pin1, cme_err);
+            return req_sim_pin_verify(sim_id, port, lock_info->pin1, cme_err);
         }
         case MBTK_SIM_LOCK_TYPE_VERIFY_PUK:
         {
-            return req_sim_puk_verify(port, lock_info->puk, lock_info->pin1, cme_err);
+            return req_sim_puk_verify(sim_id, port, lock_info->puk, lock_info->pin1, cme_err);
         }
         default:
         {
@@ -498,12 +499,12 @@
 
 OK
 */
-static int req_pin_puk_last_times_get(ATPortType_enum port, mbtk_pin_puk_last_times_t *times, int *cme_err)
+static int req_pin_puk_last_times_get(mbtk_sim_type_enum sim_id, ATPortType_enum port, mbtk_pin_puk_last_times_t *times, int *cme_err)
 {
     ATResponse *response = NULL;
 //    char *tmp_ptr = NULL;
     int tmp_int;
-    int err = at_send_command_singleline(port, "AT+EPIN?", "+EPIN:", &response);
+    int err = at_send_command_singleline(portType_2_portId(sim_id, port), "AT+EPIN?", "+EPIN:", &response);
 
     if (err < 0 || response->success == 0 || !response->p_intermediates){
         *cme_err = at_get_cme_error(response);
@@ -558,11 +559,11 @@
 
 OK
 */
-static int req_plmn_get(ATPortType_enum port, mbtk_plmn_info *info, int *cme_err)
+static int req_plmn_get(mbtk_sim_type_enum sim_id, ATPortType_enum port, mbtk_plmn_info *info, int *cme_err)
 {
     ATResponse *response = NULL;
 //    char *tmp_ptr = NULL;
-    int err = at_send_command_multiline(port, "AT+CPOL?", "+CPOL:", &response);
+    int err = at_send_command_multiline(portType_2_portId(sim_id, port), "AT+CPOL?", "+CPOL:", &response);
 
     if (err < 0 || response->success == 0 || !response->p_intermediates){
         *cme_err = at_get_cme_error(response);
@@ -614,6 +615,69 @@
     return err;
 }
 
+/*
+>AT+SWITCHSIM?
+<+SWITCHSIM: 0
+
+<OK
+*/
+int req_dual_sim_get(ATPortType_enum port, mbtk_sim_type_enum *sim_id, int *cme_err)
+{
+    ATResponse *response = NULL;
+//    char *tmp_ptr = NULL;
+    int err = at_send_command_singleline(portType_2_portId(MBTK_SIM_1, port), "AT+SWITCHSIM?", "+SWITCHSIM:", &response);
+
+    if (err < 0 || response->success == 0 || !response->p_intermediates){
+        if(cme_err) {
+            *cme_err = at_get_cme_error(response);
+        }
+        goto exit;
+    }
+
+    char *line = response->p_intermediates->line;
+    err = at_tok_start(&line);
+    if (err < 0)
+    {
+        goto exit;
+    }
+    int tmp_int = -1;
+    err = at_tok_nextint(&line, &tmp_int);
+    if (err < 0)
+    {
+        goto exit;
+    }
+    if(tmp_int != -1)
+        *sim_id = tmp_int;
+    goto exit;
+exit:
+    at_response_free(response);
+    return err;
+}
+
+/*
+>AT+SWITCHSIM?
+<+SWITCHSIM: 0
+
+<OK
+*/
+static int req_dual_sim_set(ATPortType_enum port, mbtk_sim_type_enum sim_id, int *cme_err)
+{
+    int err = -1;
+    ATResponse *response = NULL;
+
+    char cmd[64] = {0};
+    snprintf(cmd, sizeof(cmd), "AT+SWITCHSIM=%d", sim_id);
+    err = at_send_command(portType_2_portId(MBTK_SIM_1, port), cmd, &response);
+    if (err < 0 || response->success == 0){
+        *cme_err = at_get_cme_error(response);
+        goto exit;
+    }
+
+exit:
+    at_response_free(response);
+    return err;
+}
+
 //void net_list_free(void *data);
 // Return MBTK_INFO_ERR_SUCCESS,will call pack_error_send() to send RSP.
 // Otherwise, do not call pack_error_send().
@@ -627,7 +691,7 @@
         {
             if(pack->data_len == 0 || pack->data == NULL)
             {
-                mbtk_sim_state_enum state = ril_sim_state_get(cli_info->port);
+                mbtk_sim_state_enum state = ril_sim_state_get(cli_info->sim_id, cli_info->port);
                 if(state == MBTK_SIM_STATE_UNKNOWN)
                 {
                     err = MBTK_RIL_ERR_UNKNOWN;
@@ -635,7 +699,7 @@
                 }
                 else
                 {
-                    ril_rsp_pack_send(cli_info->port, cli_info->fd, pack->msg_id, pack->msg_index, &state, sizeof(uint8));
+                    ril_rsp_pack_send(cli_info->sim_id, cli_info->port, cli_info->fd, pack->msg_id, pack->msg_index, &state, sizeof(uint8));
                 }
             }
             else     // Set
@@ -650,7 +714,7 @@
             if(pack->data_len == 0 || pack->data == NULL)
             {
                 uint8 sim_card_type;
-                if(req_sim_type_get(cli_info->port, &sim_card_type, &cme_err) || cme_err != MBTK_RIL_ERR_CME_NON)
+                if(req_sim_type_get(cli_info->sim_id, cli_info->port, &sim_card_type, &cme_err) || cme_err != MBTK_RIL_ERR_CME_NON)
                 {
                     if(cme_err != MBTK_RIL_ERR_CME_NON) {
                         err = MBTK_RIL_ERR_CME + cme_err;
@@ -661,7 +725,7 @@
                 }
                 else
                 {
-                    ril_rsp_pack_send(cli_info->port, cli_info->fd, pack->msg_id, pack->msg_index, &sim_card_type, sizeof(uint8));
+                    ril_rsp_pack_send(cli_info->sim_id, cli_info->port, cli_info->fd, pack->msg_id, pack->msg_index, &sim_card_type, sizeof(uint8));
                 }
             }
             else     // Set
@@ -676,7 +740,7 @@
             if(pack->data_len == 0 || pack->data == NULL)
             {
                 char imsi[20] = {0};
-                if(req_imsi_get(cli_info->port, imsi, &cme_err) || cme_err != MBTK_RIL_ERR_CME_NON)
+                if(req_imsi_get(cli_info->sim_id, cli_info->port, imsi, &cme_err) || cme_err != MBTK_RIL_ERR_CME_NON)
                 {
                     if(cme_err != MBTK_RIL_ERR_CME_NON) {
                         err = MBTK_RIL_ERR_CME + cme_err;
@@ -687,7 +751,7 @@
                 }
                 else
                 {
-                    ril_rsp_pack_send(cli_info->port, cli_info->fd, pack->msg_id, pack->msg_index, imsi, strlen(imsi));
+                    ril_rsp_pack_send(cli_info->sim_id, cli_info->port, cli_info->fd, pack->msg_id, pack->msg_index, imsi, strlen(imsi));
                 }
             }
             else     // Set
@@ -702,7 +766,7 @@
             if(pack->data_len == 0 || pack->data == NULL)
             {
                 char pn[50] = {0};
-                if(req_phone_number_get(cli_info->port, pn, &cme_err) || cme_err != MBTK_RIL_ERR_CME_NON)
+                if(req_phone_number_get(cli_info->sim_id, cli_info->port, pn, &cme_err) || cme_err != MBTK_RIL_ERR_CME_NON)
                 {
                     if(cme_err != MBTK_RIL_ERR_CME_NON) {
                         err = MBTK_RIL_ERR_CME + cme_err;
@@ -713,7 +777,7 @@
                 }
                 else
                 {
-                    ril_rsp_pack_send(cli_info->port, cli_info->fd, pack->msg_id, pack->msg_index, pn, strlen(pn));
+                    ril_rsp_pack_send(cli_info->sim_id, cli_info->port, cli_info->fd, pack->msg_id, pack->msg_index, pn, strlen(pn));
                 }
             }
             else     // Set
@@ -728,7 +792,7 @@
             if(pack->data_len == 0 || pack->data == NULL)
             {
                 char iccid[50] = {0};
-                if(req_iccid_get(cli_info->port, iccid, &cme_err) || cme_err != MBTK_RIL_ERR_CME_NON)
+                if(req_iccid_get(cli_info->sim_id, cli_info->port, iccid, &cme_err) || cme_err != MBTK_RIL_ERR_CME_NON)
                 {
                     if(cme_err != MBTK_RIL_ERR_CME_NON) {
                         err = MBTK_RIL_ERR_CME + cme_err;
@@ -739,7 +803,7 @@
                 }
                 else
                 {
-                    ril_rsp_pack_send(cli_info->port, cli_info->fd, pack->msg_id, pack->msg_index, iccid, strlen(iccid));
+                    ril_rsp_pack_send(cli_info->sim_id, cli_info->port, cli_info->fd, pack->msg_id, pack->msg_index, iccid, strlen(iccid));
                 }
             }
             else     // Set
@@ -754,7 +818,7 @@
             if(pack->data_len == 0 || pack->data == NULL)
             {
                 int state;
-                if(req_sim_lock_state_get(cli_info->port, &state, &cme_err) || cme_err != MBTK_RIL_ERR_CME_NON)
+                if(req_sim_lock_state_get(cli_info->sim_id, cli_info->port, &state, &cme_err) || cme_err != MBTK_RIL_ERR_CME_NON)
                 {
                     if(cme_err != MBTK_RIL_ERR_CME_NON) {
                         err = MBTK_RIL_ERR_CME + cme_err;
@@ -765,13 +829,13 @@
                 }
                 else
                 {
-                    ril_rsp_pack_send(cli_info->port, cli_info->fd, pack->msg_id, pack->msg_index, &state, sizeof(uint8));
+                    ril_rsp_pack_send(cli_info->sim_id, cli_info->port, cli_info->fd, pack->msg_id, pack->msg_index, &state, sizeof(uint8));
                 }
             }
             else     // Set
             {
                 mbtk_sim_lock_info_t *lock_info = (mbtk_sim_lock_info_t*)pack->data;
-                if(req_sim_lock_set(cli_info->port, lock_info, &cme_err) || cme_err != MBTK_RIL_ERR_CME_NON)
+                if(req_sim_lock_set(cli_info->sim_id, cli_info->port, lock_info, &cme_err) || cme_err != MBTK_RIL_ERR_CME_NON)
                 {
                     if(cme_err != MBTK_RIL_ERR_CME_NON) {
                         err = MBTK_RIL_ERR_CME + cme_err;
@@ -782,7 +846,7 @@
                 }
                 else
                 {
-                    ril_rsp_pack_send(cli_info->port, cli_info->fd, pack->msg_id, pack->msg_index, NULL, 0);
+                    ril_rsp_pack_send(cli_info->sim_id, cli_info->port, cli_info->fd, pack->msg_id, pack->msg_index, NULL, 0);
                 }
             }
             break;
@@ -792,7 +856,7 @@
             if(pack->data_len == 0 || pack->data == NULL)
             {
                 mbtk_pin_puk_last_times_t last_times;
-                if(req_pin_puk_last_times_get(cli_info->port, &last_times, &cme_err) || cme_err != MBTK_RIL_ERR_CME_NON)
+                if(req_pin_puk_last_times_get(cli_info->sim_id, cli_info->port, &last_times, &cme_err) || cme_err != MBTK_RIL_ERR_CME_NON)
                 {
                     if(cme_err != MBTK_RIL_ERR_CME_NON) {
                         err = MBTK_RIL_ERR_CME + cme_err;
@@ -803,7 +867,7 @@
                 }
                 else
                 {
-                    ril_rsp_pack_send(cli_info->port, cli_info->fd, pack->msg_id, pack->msg_index, &last_times, sizeof(mbtk_pin_puk_last_times_t));
+                    ril_rsp_pack_send(cli_info->sim_id, cli_info->port, cli_info->fd, pack->msg_id, pack->msg_index, &last_times, sizeof(mbtk_pin_puk_last_times_t));
                 }
             }
             else     // Set
@@ -819,7 +883,7 @@
             {
                 mbtk_plmn_info info;
                 memset(&info, 0, sizeof(mbtk_plmn_info));
-                if(req_plmn_get(cli_info->port, &info, &cme_err) || cme_err != MBTK_RIL_ERR_CME_NON)
+                if(req_plmn_get(cli_info->sim_id, cli_info->port, &info, &cme_err) || cme_err != MBTK_RIL_ERR_CME_NON)
                 {
                     if(cme_err != MBTK_RIL_ERR_CME_NON) {
                         err = MBTK_RIL_ERR_CME + cme_err;
@@ -830,7 +894,7 @@
                 }
                 else
                 {
-                    ril_rsp_pack_send(cli_info->port, cli_info->fd, pack->msg_id, pack->msg_index, &info, sizeof(mbtk_plmn_info));
+                    ril_rsp_pack_send(cli_info->sim_id, cli_info->port, cli_info->fd, pack->msg_id, pack->msg_index, &info, sizeof(mbtk_plmn_info));
                 }
             }
             else     // Set
@@ -840,6 +904,45 @@
             }
             break;
         }
+        case RIL_MSG_ID_SIM_SWITCH:
+        {
+            if(pack->data_len == 0 || pack->data == NULL)
+            {
+                mbtk_sim_type_enum sim_id;
+                if(req_dual_sim_get(cli_info->port, &sim_id, &cme_err) || cme_err != MBTK_RIL_ERR_CME_NON)
+                {
+                    if(cme_err != MBTK_RIL_ERR_CME_NON) {
+                        err = MBTK_RIL_ERR_CME + cme_err;
+                    } else {
+                        err = MBTK_RIL_ERR_UNKNOWN;
+                    }
+                    LOG("Get SWITCHSIM fail.");
+                }
+                else
+                {
+                    ril_rsp_pack_send(cli_info->sim_id, cli_info->port, cli_info->fd, pack->msg_id, pack->msg_index, &sim_id, sizeof(mbtk_sim_type_enum));
+                }
+            }
+            else     // Set
+            {
+                mbtk_sim_type_enum *sim_id = (mbtk_sim_type_enum*)pack->data;
+                if(req_dual_sim_set(cli_info->port, *sim_id, &cme_err) || cme_err != MBTK_RIL_ERR_CME_NON)
+                {
+                    if(cme_err != MBTK_RIL_ERR_CME_NON) {
+                        err = MBTK_RIL_ERR_CME + cme_err;
+                    } else {
+                        err = MBTK_RIL_ERR_UNKNOWN;
+                    }
+                    LOG("Set SWITCHSIM fail.");
+                }
+                else
+                {
+                    ril_info.cur_sim_id = *sim_id;
+                    ril_rsp_pack_send(cli_info->sim_id, cli_info->port, cli_info->fd, pack->msg_id, pack->msg_index, NULL, 0);
+                }
+            }
+            break;
+        }
         default:
         {
             err = MBTK_RIL_ERR_REQ_UNKNOWN;