Commit c1ebfa17 authored by jehan's avatar jehan
Browse files

make sure ice re-invite is disabled in case of DTLS

parent 8fdfb416
......@@ -27,7 +27,7 @@
# ICONV_LIBRARIES - The libraries needed to use libiconv
if(APPLE AND NOT IOS)
set(ICONV_HINTS "/usr")
set(ICONV_HINTS "${CMAKE_OSX_SYSROOT}/usr" "/usr")
endif()
if(ICONV_HINTS)
set(ICONV_LIBRARIES_HINTS "${ICONV_HINTS}/lib")
......
......@@ -4367,7 +4367,8 @@ static void handle_ice_events(LinphoneCall *call, OrtpEvent *ev){
case IS_Failed:
/* At least one ICE session has succeeded, so perform a call update. */
if (ice_session_has_completed_check_list(call->ice_session) == TRUE) {
if (ice_session_role(call->ice_session) == IR_Controlling && call->params->update_call_when_ice_completed ) {
const LinphoneCallParams *current_param = linphone_call_get_current_params(call);
if (ice_session_role(call->ice_session) == IR_Controlling && current_param->update_call_when_ice_completed ) {
LinphoneCallParams *params = linphone_core_create_call_params(call->core, call);
params->internal_call_update = TRUE;
linphone_core_update_call(call->core, call, params);
......
......@@ -4266,6 +4266,41 @@ end:
linphone_core_manager_destroy(marie);
linphone_core_manager_destroy(pauline);
}
static void call_with_very_early_call_update(void) {
LinphoneCoreManager* marie;
LinphoneCoreManager* pauline;
LinphoneCallParams *params;
marie = linphone_core_manager_new( "marie_rc");
pauline = linphone_core_manager_new(transport_supported(LinphoneTransportTls) ? "pauline_rc" : "pauline_tcp_rc");
linphone_core_invite_address(marie->lc,pauline->identity);
BC_ASSERT_TRUE (wait_for(pauline->lc,marie->lc,&pauline->stat.number_of_LinphoneCallIncomingReceived,1));
BC_ASSERT_TRUE(linphone_core_inc_invite_pending(pauline->lc));
BC_ASSERT_EQUAL(marie->stat.number_of_LinphoneCallOutgoingProgress,1, int, "%d");
BC_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&marie->stat.number_of_LinphoneCallOutgoingRinging,1));
BC_ASSERT_PTR_NOT_NULL(linphone_core_get_current_call_remote_address(pauline->lc));
if (linphone_core_get_current_call_remote_address(pauline->lc)) {
linphone_core_accept_call(pauline->lc,linphone_core_get_current_call(pauline->lc));
BC_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&pauline->stat.number_of_LinphoneCallStreamsRunning,1));
}
params=linphone_core_create_call_params(pauline->lc,linphone_core_get_current_call(pauline->lc));
linphone_core_update_call(pauline->lc,linphone_core_get_current_call(pauline->lc),params);
linphone_call_params_destroy(params);
BC_ASSERT_TRUE(wait_for(marie->lc,pauline->lc,&pauline->stat.number_of_LinphoneCallUpdating,1));
BC_ASSERT_TRUE(wait_for(marie->lc,pauline->lc,&marie->stat.number_of_LinphoneCallUpdatedByRemote,1));
BC_ASSERT_TRUE(wait_for(marie->lc,pauline->lc,&pauline->stat.number_of_LinphoneCallStreamsRunning,2));
BC_ASSERT_TRUE(wait_for(marie->lc,pauline->lc,&marie->stat.number_of_LinphoneCallStreamsRunning,2));
end_call(marie,pauline);
linphone_core_manager_destroy(marie);
linphone_core_manager_destroy(pauline);
}
static void call_with_in_dialog_codec_change_base(bool_t no_sdp) {
int dummy=0;
LinphoneCoreManager* marie;
......@@ -6392,6 +6427,7 @@ test_t call_tests[] = {
TEST_NO_TAG("Call with no audio codec", call_with_no_audio_codec),
TEST_NO_TAG("Video call with no audio and no video codec", video_call_with_no_audio_and_no_video_codec),
TEST_NO_TAG("Call with in-dialog UPDATE request", call_with_in_dialog_update),
TEST_NO_TAG("Call with in-dialog very early call request", call_with_very_early_call_update),
TEST_NO_TAG("Call with in-dialog codec change", call_with_in_dialog_codec_change),
TEST_NO_TAG("Call with in-dialog codec change no sdp", call_with_in_dialog_codec_change_no_sdp),
TEST_NO_TAG("Call with pause no SDP on resume", call_with_paused_no_sdp_on_resume),
......
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