diff --git a/src/lynq/lib/liblynq-call/lynq_call.cpp b/src/lynq/lib/liblynq-call/lynq_call.cpp
index 10a4ea0..d1e2293 100755
--- a/src/lynq/lib/liblynq-call/lynq_call.cpp
+++ b/src/lynq/lib/liblynq-call/lynq_call.cpp
@@ -527,6 +527,7 @@
                     LYINFLOG("state changed from %d to %d",s_call_lists[n].call_state,call_list[i].call_state);
                     
                     updateCallList(&s_call_lists[n],call_list[i].call_id,call_list[i].call_state,call_list[i].toa,call_list[i].direction);//update mt call
+                    send_call_state_change();
                 }                            
             }
             else
@@ -537,11 +538,11 @@
                 {
                     if(s_call_lists[n].used && ((strcmp(call_list[i].addr,s_call_lists[n].addr)==0)||(call_list[i].call_id==s_call_lists[n].call_id)))
                     {
-                        s_CallId = call_list[i].call_id;
                         if(s_call_lists[n].call_id==0)
                         {
                             LYINFLOG("add a call id");
                             update=1;//for send sigal
+                            s_CallId = call_list[i].call_id;
                         }
                         LYINFLOG("local idx %d updated, original call id is %d origial addr is %s original state is %d",n,s_call_lists[n].call_id,s_call_lists[n].addr,s_call_lists[n].call_state);                    
                         updateCallList(&s_call_lists[n],call_list[i].call_id,call_list[i].call_state,call_list[i].toa,call_list[i].direction);
@@ -952,6 +953,7 @@
         s_module_isDial = 0;      
         LYERRLOG("lynq_call timeout:wait Call state fail!!! clear local idx %d",lynq_call_id);
         cleanCallList(lynq_call_id);
+        send_call_state_change();
         return LYNQ_E_TIME_OUT;
     }
     s_module_isDial = 0;
@@ -964,7 +966,8 @@
     else 
     {   
         LYERRLOG("lynq_call dial addr %s fail, invalid id",addr);
-        cleanCallList(lynq_call_id);      
+        cleanCallList(lynq_call_id);
+        send_call_state_change();
         return LYNQ_E_INVALID_ID_ANONALY;
     }        
 }
@@ -1088,11 +1091,6 @@
     lynq_call_id = find_call_id_with_call_id(*handle);
     if(lynq_call_id==INVALID_ID)
     {
-        if(lynq_find_already_end)
-        {
-            LYINFLOG("not end update\n ");
-            return LYNQ_E_INVALID_ID_ANONALY;
-        }
         //find end state
         if((*handle) >= 0)
         {
