Commit 52766069 authored by Ghislain MARY's avatar Ghislain MARY
Browse files

Do not delete ICE session when it is in the Failed state.

If the ICE session is deleted it can not be restarted later.
However try to send a re-invite if the session state is Failed but some check
lists have completed successfully.
parent 9b9106c1
......@@ -1718,7 +1718,13 @@ static void handle_ice_events(LinphoneCall *call, OrtpEvent *ev){
}
break;
case IS_Failed:
linphone_call_delete_ice_session(call);
if (ice_session_has_completed_check_list(call->ice_session) == TRUE) {
if (ice_session_role(call->ice_session) == IR_Controlling) {
/* At least one ICE session has succeeded, so perform a call update. */
ice_session_select_candidates(call->ice_session);
linphone_core_update_call(call->core, call, &call->current_params);
}
}
break;
default:
break;
......
......@@ -808,7 +808,7 @@ void linphone_core_update_ice_from_remote_media_description(LinphoneCall *call,
}
ice_session_check_mismatch(call->ice_session);
}
if ((ice_session_state(call->ice_session) == IS_Failed) || (ice_session_nb_check_lists(call->ice_session) == 0)) {
if (ice_session_nb_check_lists(call->ice_session) == 0) {
linphone_call_delete_ice_session(call);
}
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment