diff --git a/mbtk/mbtk_rild_v2/src/main.c b/mbtk/mbtk_rild_v2/src/main.c
index e3c5166..ae286cc 100755
--- a/mbtk/mbtk_rild_v2/src/main.c
+++ b/mbtk/mbtk_rild_v2/src/main.c
@@ -684,14 +684,19 @@
     {
         goto ECALLDATA_EXIT;
     }
-    ecall_state.urc_id = (uint8)tmp_int; // urc_id
-    if (at_tok_nextstr(&line, &tmp_str) < 0)
-    {
-        goto ECALLDATA_EXIT;
-    }
 
-    if(tmp_str && strlen(tmp_str) > 0) {
-        memcpy(ecall_state.urc_data, tmp_str, strlen(tmp_str));
+    if(strStartsWith(s, "*ECALLDATA:")) {
+        ecall_state.urc_id = (uint8)tmp_int; // urc_id
+        if (at_tok_nextstr(&line, &tmp_str) < 0)
+        {
+            goto ECALLDATA_EXIT;
+        }
+
+        if(tmp_str && strlen(tmp_str) > 0) {
+            memcpy(ecall_state.urc_data, tmp_str, strlen(tmp_str));
+        }
+    } else { // +ECALLDIALRETRY: <retry_time>
+        ecall_state.urc_id = (uint8)(MBTK_ECALL_RETRY_START_BY_URC_ID + tmp_int); // ecall end.
     }
 
     urc_msg_distribute(false, RIL_MSG_ID_IND_ECALL_STATE_CHANGE, &ecall_state, sizeof(mbtk_ril_ecall_state_info_t));
@@ -2098,7 +2103,8 @@
         cmt_found = TRUE;
         urc_sms_state_change_process(sim_id, s, false);
     }
-    else if(strStartsWith(s, "*ECALLDATA:"))
+    else if(strStartsWith(s, "*ECALLDATA:")
+        || strStartsWith(s, "+ECALLDIALRETRY:"))
     {
         urc_ecall_state_change_process(sim_id, s, sms_pdu);
     }
