Add ecall +ECALLDIALRETRY process.
Change-Id: Iaf3b605c9993727b2e229567e1e766157d650a01
diff --git a/mbtk/include/mbtk/mbtk_ril_api.h b/mbtk/include/mbtk/mbtk_ril_api.h
index e3fb15d..6443d31 100755
--- a/mbtk/include/mbtk/mbtk_ril_api.h
+++ b/mbtk/include/mbtk/mbtk_ril_api.h
@@ -31,6 +31,8 @@
#define RIL_MAX_NUMBER_LEN 40
#define MBTK_ECALL_MSD_LEN_MAX 600
+#define MBTK_ECALL_RETRY_START_BY_URC_ID 100 // Retry times is (urc_id - 100)
+
typedef void mbtk_ril_handle;
typedef void (*mbtk_ril_callback_func)(const void* data, int data_len);
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);
}