diff --git a/coreapi/linphonecall.c b/coreapi/linphonecall.c index 9897edb7b..a7df23860 100644 --- a/coreapi/linphonecall.c +++ b/coreapi/linphonecall.c @@ -3602,7 +3602,7 @@ static void linphone_call_start_text_stream(LinphoneCall *call) { } } -static void linphone_call_set_symmetric_rtp(LinphoneCall *call, bool_t val){ +void linphone_call_set_symmetric_rtp(LinphoneCall *call, bool_t val){ int i; for (i = 0; i < SAL_MEDIA_DESCRIPTION_MAX_STREAMS; ++i){ MSMediaStreamSessions *mss = &call->sessions[i]; diff --git a/coreapi/misc.c b/coreapi/misc.c index b2cc0f8c2..e0acd816d 100644 --- a/coreapi/misc.c +++ b/coreapi/misc.c @@ -1951,9 +1951,11 @@ void linphone_call_update_ice_from_remote_media_description(LinphoneCall *call, } else { /* Response from remote does not contain mandatory ICE attributes, delete the session. */ linphone_call_delete_ice_session(call); + linphone_call_set_symmetric_rtp(call, linphone_core_symmetric_rtp_enabled(linphone_call_get_core(call))); return; } if (ice_session_nb_check_lists(call->ice_session) == 0) { linphone_call_delete_ice_session(call); + linphone_call_set_symmetric_rtp(call, linphone_core_symmetric_rtp_enabled(linphone_call_get_core(call))); } } diff --git a/coreapi/private.h b/coreapi/private.h index 66abe78fe..641bca192 100644 --- a/coreapi/private.h +++ b/coreapi/private.h @@ -381,6 +381,7 @@ void linphone_call_set_new_params(LinphoneCall *call, const LinphoneCallParams * void linphone_call_set_state(LinphoneCall *call, LinphoneCallState cstate, const char *message); void linphone_call_set_contact_op(LinphoneCall* call); void linphone_call_set_compatible_incoming_call_parameters(LinphoneCall *call, SalMediaDescription *md); +void linphone_call_set_symmetric_rtp(LinphoneCall *call, bool_t val); /* private: */ LinphoneCallLog * linphone_call_log_new(LinphoneCallDir dir, LinphoneAddress *local, LinphoneAddress * remote); void linphone_call_log_completed(LinphoneCall *call);