diff --git a/coreapi/callbacks.c b/coreapi/callbacks.c index 6fbb566dc28e3277e2d72145d97865dd3bdceec4..a980b51b12445f19796bd7f92ec3c1c2544302ac 100644 --- a/coreapi/callbacks.c +++ b/coreapi/callbacks.c @@ -97,6 +97,7 @@ static void call_received(SalOp *h){ /* play the ring if this is the only call*/ if (lc->sound_conf.ring_sndcard!=NULL && ms_list_size(lc->calls)==1){ + lc->current_call=call; if (lc->ringstream && lc->dmfs_playing_start_time!=0){ ring_stop(lc->ringstream); lc->ringstream=NULL; diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 9353a7fc57e2ba4013a92c1e6d59b32715261f6a..4b79993eb137416a460ceea5bf397db120c40bb0 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -2118,7 +2118,7 @@ int linphone_core_accept_call(LinphoneCore *lc, LinphoneCall *call) call = (LinphoneCall*)linphone_core_get_calls(lc)->data; } - if (lc->current_call){ + if (lc->current_call!=NULL && lc->current_call!=call){ ms_warning("Cannot accept this call, there is already one running."); return -1; }