mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-05-03 20:46:28 +00:00
Add "Forked outgoing early-media video call with inactive audio" test.
This commit is contained in:
parent
a3b8cf6b2b
commit
4855be3d7d
1 changed files with 92 additions and 1 deletions
|
|
@ -394,10 +394,101 @@ static void early_media_video_with_inactive_audio(void) {
|
|||
linphone_core_manager_destroy(pauline);
|
||||
}
|
||||
|
||||
static void forked_outgoing_early_media_video_call_with_inactive_audio_test(void) {
|
||||
LinphoneCoreManager *pauline = linphone_core_manager_new("pauline_tcp_rc");
|
||||
LinphoneCoreManager *marie1 = linphone_core_manager_new("marie_early_rc");
|
||||
LinphoneCoreManager *marie2 = linphone_core_manager_new("marie_early_rc");
|
||||
MSList *lcs = NULL;
|
||||
LinphoneCallParams *pauline_params;
|
||||
LinphoneCallParams *marie1_params;
|
||||
LinphoneCallParams *marie2_params;
|
||||
LinphoneVideoPolicy pol;
|
||||
LinphoneCall *marie1_call;
|
||||
LinphoneCall *marie2_call;
|
||||
LinphoneCall *pauline_call;
|
||||
LinphoneInfoMessage *info;
|
||||
int dummy = 0;
|
||||
pol.automatically_accept = 1;
|
||||
pol.automatically_initiate = 1;
|
||||
|
||||
linphone_core_enable_video(pauline->lc, TRUE, TRUE);
|
||||
linphone_core_enable_video(marie1->lc, TRUE, TRUE);
|
||||
linphone_core_set_video_policy(marie1->lc, &pol);
|
||||
linphone_core_enable_video(marie2->lc, TRUE, TRUE);
|
||||
linphone_core_set_video_policy(marie2->lc, &pol);
|
||||
linphone_core_set_audio_port_range(marie2->lc, 40200, 40300);
|
||||
linphone_core_set_video_port_range(marie2->lc, 40400, 40500);
|
||||
|
||||
lcs = ms_list_append(lcs,marie1->lc);
|
||||
lcs = ms_list_append(lcs,marie2->lc);
|
||||
lcs = ms_list_append(lcs,pauline->lc);
|
||||
|
||||
pauline_params = linphone_core_create_default_call_parameters(pauline->lc);
|
||||
linphone_call_params_enable_early_media_sending(pauline_params, TRUE);
|
||||
linphone_call_params_enable_video(pauline_params, TRUE);
|
||||
marie1_params = configure_for_early_media_video_receiving_with_inactive_audio(marie1);
|
||||
marie2_params = configure_for_early_media_video_receiving_with_inactive_audio(marie2);
|
||||
|
||||
linphone_core_invite_address_with_params(pauline->lc, marie1->identity, pauline_params);
|
||||
linphone_call_params_destroy(pauline_params);
|
||||
|
||||
CU_ASSERT_TRUE(wait_for_list(lcs, &marie1->stat.number_of_LinphoneCallIncomingEarlyMedia, 1, 3000));
|
||||
CU_ASSERT_TRUE(wait_for_list(lcs, &marie2->stat.number_of_LinphoneCallIncomingEarlyMedia, 1, 3000));
|
||||
CU_ASSERT_TRUE(wait_for_list(lcs, &pauline->stat.number_of_LinphoneCallOutgoingEarlyMedia, 1, 3000));
|
||||
|
||||
pauline_call = linphone_core_get_current_call(pauline->lc);
|
||||
marie1_call = linphone_core_get_current_call(marie1->lc);
|
||||
marie2_call = linphone_core_get_current_call(marie2->lc);
|
||||
|
||||
CU_ASSERT_PTR_NOT_NULL(pauline_call);
|
||||
CU_ASSERT_PTR_NOT_NULL(marie1_call);
|
||||
CU_ASSERT_PTR_NOT_NULL(marie2_call);
|
||||
|
||||
if (pauline_call && marie1_call && marie2_call) {
|
||||
/* wait a bit that streams are established */
|
||||
wait_for_list(lcs, &dummy, 1, 6000);
|
||||
CU_ASSERT_TRUE(linphone_call_get_audio_stats(pauline_call)->download_bandwidth == 0);
|
||||
CU_ASSERT_TRUE(linphone_call_get_audio_stats(marie1_call)->download_bandwidth == 0);
|
||||
CU_ASSERT_TRUE(linphone_call_get_audio_stats(marie2_call)->download_bandwidth == 0);
|
||||
|
||||
linphone_call_params_set_audio_direction(marie1_params, LinphoneMediaDirectionSendRecv);
|
||||
linphone_core_accept_call_with_params(marie1->lc, linphone_core_get_current_call(marie1->lc), marie1_params);
|
||||
CU_ASSERT_TRUE(wait_for_list(lcs, &marie1->stat.number_of_LinphoneCallStreamsRunning, 1, 3000));
|
||||
CU_ASSERT_TRUE(wait_for_list(lcs, &pauline->stat.number_of_LinphoneCallStreamsRunning, 1, 3000));
|
||||
|
||||
/* marie2 should get her call terminated */
|
||||
CU_ASSERT_TRUE(wait_for_list(lcs, &marie2->stat.number_of_LinphoneCallEnd, 1, 1000));
|
||||
|
||||
/*wait a bit that streams are established*/
|
||||
wait_for_list(lcs, &dummy, 1, 3000);
|
||||
CU_ASSERT_TRUE(linphone_call_get_audio_stats(pauline_call)->download_bandwidth > 71);
|
||||
CU_ASSERT_TRUE(linphone_call_get_audio_stats(marie1_call)->download_bandwidth > 71);
|
||||
CU_ASSERT_TRUE(linphone_call_get_video_stats(pauline_call)->download_bandwidth > 0);
|
||||
CU_ASSERT_TRUE(linphone_call_get_video_stats(marie1_call)->download_bandwidth > 0);
|
||||
|
||||
/* send an INFO in reverse side to check that dialogs are properly established */
|
||||
info = linphone_core_create_info_message(marie1->lc);
|
||||
linphone_call_send_info_message(marie1_call, info);
|
||||
CU_ASSERT_TRUE(wait_for_list(lcs, &pauline->stat.number_of_inforeceived, 1, 3000));
|
||||
}
|
||||
|
||||
linphone_core_terminate_all_calls(pauline->lc);
|
||||
CU_ASSERT_TRUE(wait_for_list(lcs, &pauline->stat.number_of_LinphoneCallEnd, 1, 3000));
|
||||
CU_ASSERT_TRUE(wait_for_list(lcs, &marie1->stat.number_of_LinphoneCallEnd, 1, 3000));
|
||||
|
||||
linphone_call_params_destroy(marie1_params);
|
||||
linphone_call_params_destroy(marie2_params);
|
||||
ms_list_free(lcs);
|
||||
linphone_core_manager_destroy(marie1);
|
||||
linphone_core_manager_destroy(marie2);
|
||||
linphone_core_manager_destroy(pauline);
|
||||
}
|
||||
|
||||
test_t video_tests[] = {
|
||||
{ "Early-media video during video call", early_media_video_during_video_call_test },
|
||||
{ "Two incoming early-media video calls", two_incoming_early_media_video_calls_test },
|
||||
{ "Early-media video with inactive audio", early_media_video_with_inactive_audio }
|
||||
{ "Early-media video with inactive audio", early_media_video_with_inactive_audio },
|
||||
{ "Forked outgoing early-media video call with inactive audio", forked_outgoing_early_media_video_call_with_inactive_audio_test }
|
||||
};
|
||||
|
||||
test_suite_t video_test_suite = {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue