From 48512d1e101a95f201722c7a85e3bd28955eba54 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Mon, 1 Oct 2012 17:15:43 +0200 Subject: [PATCH] Delete LinphoneCallUpdated state and add LinphoneCallUpdating state. --- coreapi/callbacks.c | 11 +---------- coreapi/linphonecall.c | 10 ++++++---- coreapi/linphonecore.c | 5 +++-- coreapi/linphonecore.h | 2 +- 4 files changed, 11 insertions(+), 17 deletions(-) diff --git a/coreapi/callbacks.c b/coreapi/callbacks.c index 4e5661b3..7f901195 100644 --- a/coreapi/callbacks.c +++ b/coreapi/callbacks.c @@ -302,11 +302,7 @@ static void call_accepted(SalOp *op){ linphone_core_update_streams (lc,call,md); linphone_call_set_state(call,LinphoneCallPausedByRemote,"Call paused by remote"); }else{ - if (call->state==LinphoneCallStreamsRunning){ - /*media was running before, the remote as acceted a call modification (that is - a reinvite made by us. We must notify the application this reinvite was accepted*/ - linphone_call_set_state(call, LinphoneCallUpdated, "Call updated"); - }else{ + if (call->state!=LinphoneCallUpdating){ if (call->state==LinphoneCallResuming){ if (lc->vtable.display_status){ lc->vtable.display_status(lc,_("Call resumed.")); @@ -343,11 +339,6 @@ static void call_ack(SalOp *op){ if (call->media_pending){ SalMediaDescription *md=sal_call_get_final_media_description(op); if (md && !sal_media_description_empty(md)){ - if (call->state==LinphoneCallStreamsRunning){ - /*media was running before, the remote as acceted a call modification (that is - a reinvite made by us. We must notify the application this reinvite was accepted*/ - linphone_call_set_state(call, LinphoneCallUpdated, "Call updated"); - } linphone_core_update_streams (lc,call,md); linphone_call_set_state (call,LinphoneCallStreamsRunning,"Connected (streams running)"); }else{ diff --git a/coreapi/linphonecall.c b/coreapi/linphonecall.c index b2f53e5a..9d82476b 100644 --- a/coreapi/linphonecall.c +++ b/coreapi/linphonecall.c @@ -520,8 +520,8 @@ const char *linphone_call_state_to_string(LinphoneCallState cs){ return "LinphoneCallUpdatedByRemote"; case LinphoneCallIncomingEarlyMedia: return "LinphoneCallIncomingEarlyMedia"; - case LinphoneCallUpdated: - return "LinphoneCallUpdated"; + case LinphoneCallUpdating: + return "LinphoneCallUpdating"; case LinphoneCallReleased: return "LinphoneCallReleased"; } @@ -1828,7 +1828,7 @@ static void handle_ice_events(LinphoneCall *call, OrtpEvent *ev){ linphone_call_delete_ice_session(call); } switch (call->state) { - case LinphoneCallStreamsRunning: + case LinphoneCallUpdating: linphone_core_start_update_call(call->core, call); break; case LinphoneCallUpdatedByRemote: @@ -1838,10 +1838,12 @@ static void handle_ice_events(LinphoneCall *call, OrtpEvent *ev){ linphone_call_stop_media_streams_for_ice_gathering(call); linphone_core_proceed_with_invite_if_ready(call->core, call, NULL); break; - default: + case LinphoneCallIdle: linphone_call_stop_media_streams_for_ice_gathering(call); linphone_core_notify_incoming_call(call->core, call); break; + default: + break; } } else if (evt == ORTP_EVENT_ICE_LOSING_PAIRS_COMPLETED) { linphone_core_start_accept_call_update(call->core, call); diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 93c1a8cf..dd0072d0 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -2564,6 +2564,7 @@ int linphone_core_start_update_call(LinphoneCore *lc, LinphoneCall *call){ int linphone_core_update_call(LinphoneCore *lc, LinphoneCall *call, const LinphoneCallParams *params){ int err=0; if (params!=NULL){ + linphone_call_set_state(call,LinphoneCallUpdating,"Updating call"); #ifdef VIDEO_ENABLED bool_t has_video = call->params.has_video; if ((call->ice_session != NULL) && (call->videostream != NULL) && !params->has_video) { @@ -2571,7 +2572,7 @@ int linphone_core_update_call(LinphoneCore *lc, LinphoneCall *call, const Linpho call->videostream->ice_check_list = NULL; } call->params = *params; - if ((call->ice_session != NULL) && (ice_session_state(call->ice_session) != IS_Completed) && !has_video && params->has_video) { + if ((call->ice_session != NULL) && !has_video && params->has_video) { /* Defer call update until the ICE candidates gathering process has finished. */ ms_message("Defer call update to gather ICE candidates"); update_local_media_description(lc, call); @@ -5030,7 +5031,7 @@ bool_t linphone_core_sound_resources_locked(LinphoneCore *lc){ case LinphoneCallConnected: case LinphoneCallRefered: case LinphoneCallIncomingEarlyMedia: - case LinphoneCallUpdated: + case LinphoneCallUpdating: return TRUE; default: break; diff --git a/coreapi/linphonecore.h b/coreapi/linphonecore.h index 179ff0ce..53ad38e9 100644 --- a/coreapi/linphonecore.h +++ b/coreapi/linphonecore.h @@ -343,7 +343,7 @@ typedef enum _LinphoneCallState{ LinphoneCallPausedByRemote, /**