[Bugfix][API-871][ecall] when normal call exist, call ecall, return fail cause is 9002
Change-Id: I683e1a388b176c9d70872ef609f6653cc5f766bd
(cherry picked from commit c89adee6279ebddd34feda0d4bffc0e647f860f6)
diff --git a/lib/liblynq-call/lynq_call_ecall.cpp b/lib/liblynq-call/lynq_call_ecall.cpp
index d25675a..b012907 100755
--- a/lib/liblynq-call/lynq_call_ecall.cpp
+++ b/lib/liblynq-call/lynq_call_ecall.cpp
@@ -52,7 +52,7 @@
static LYNQ_ECall_Indication s_IncomingEcallIndication;
int s_IncomingEcallId=INVALID_ID;
LYNQ_ECall_Variant s_EcallVariant=LYNQ_ECALL_VAR_NONE;
-int s_ecall_whether_preempt=0;
+int s_ecall_whether_preempt=0x02;
void sendSignalIncomingECallEvent()
{
@@ -235,6 +235,10 @@
ret=lynq_clear_current_call();
LYERRLOG("ecall clear conflict call, relase current normal call ret is %d",ret);
}
+ else
+ {
+ LYINFLOG("ecall clear conflict call, exits conflict normal call, let mtk release them");
+ }
return RESULT_OK;
}
@@ -602,12 +606,15 @@
{
LYINFLOG("ecall is dialing, recv suc indication");
s_module_is_ecall_dial = LYNQ_ECALL_DAILING_STATE_NONE;
- if(ecallId >0 && find_call_id_with_call_id(ecallId)==INVALID_ID)
+ if(ecallId >0)
{
- LYINFLOG("add ecall in loacl list");
- s_ecallId = ecallId;
- addAddr("ecall",s_ecallId);
- }
+ if(find_call_id_with_call_id(ecallId)==INVALID_ID)
+ {
+ LYINFLOG("add ecall in loacl list");
+ addAddr("ecall",ecallId);
+ }
+ s_ecallId = ecallId; //API-871 ecall id maybe exists in local list as noraml call to be replaced
+ }
send_signal_to_wait_call_state=true;
}
else if(ecallId >0 && (find_call_id_with_call_id(ecallId)==INVALID_ID) && (s_EcallVariant != LYNQ_ECALL_CALLBACK))