diff --git a/tester/call_tester.c b/tester/call_tester.c index 5a3a1c112..2d186e1e1 100644 --- a/tester/call_tester.c +++ b/tester/call_tester.c @@ -914,6 +914,26 @@ static void call_with_no_sdp(void) { linphone_core_manager_destroy(pauline); } +static void call_with_no_sdp_ack_without_sdp(void){ + LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); + LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc"); + LinphoneCall *call; + + linphone_core_enable_sdp_200_ack(marie->lc,TRUE); + + linphone_core_invite_address(marie->lc,pauline->identity); + CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&pauline->stat.number_of_LinphoneCallIncomingReceived,1)); + call=linphone_core_get_current_call(pauline->lc); + if (call){ + sal_call_enable_sdp_removal(call->op, TRUE); /*this will have the effect that the SDP received in the ACK will be ignored*/ + linphone_core_accept_call(pauline->lc, call); + CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&pauline->stat.number_of_LinphoneCallError,1)); + CU_ASSERT_TRUE(wait_for(pauline->lc,marie->lc,&marie->stat.number_of_LinphoneCallEnd,1)); + } + linphone_core_manager_destroy(marie); + linphone_core_manager_destroy(pauline); +} + static bool_t check_ice(LinphoneCoreManager* caller, LinphoneCoreManager* callee, LinphoneIceState state) { LinphoneCall *c1,*c2; @@ -3490,6 +3510,7 @@ test_t call_tests[] = { { "Early-media call with updated codec", early_media_call_with_codec_update}, { "Call terminated by caller", call_terminated_by_caller }, { "Call without SDP", call_with_no_sdp}, + { "Call without SDP and ACK without SDP", call_with_no_sdp_ack_without_sdp}, { "Call paused resumed", call_paused_resumed }, { "Call paused resumed with loss", call_paused_resumed_with_loss }, { "Call paused resumed from callee", call_paused_resumed_from_callee },