mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-05-07 05:53:06 +00:00
conference: fix conference API with tests - there must be no current call in conference
This commit is contained in:
parent
67c22d57ee
commit
1b6b49a579
7 changed files with 238 additions and 25 deletions
|
|
@ -537,7 +537,7 @@ static void process_call_accepted(LinphoneCore *lc, LinphoneCall *call, SalOp *o
|
|||
next_state = LinphoneCallPausedByRemote;
|
||||
next_state_str = "Call paused by remote";
|
||||
}else{
|
||||
if (!call->current_params->in_conference)
|
||||
if (!call->params->in_conference)
|
||||
lc->current_call=call;
|
||||
next_state = LinphoneCallStreamsRunning;
|
||||
next_state_str = "Streams running";
|
||||
|
|
|
|||
|
|
@ -1721,7 +1721,7 @@ const LinphoneCallParams * linphone_call_get_current_params(LinphoneCall *call){
|
|||
if ((all_streams_encrypted = linphone_call_all_streams_encrypted(call)) && linphone_call_get_authentication_token(call)) {
|
||||
call->current_params->media_encryption=LinphoneMediaEncryptionZRTP;
|
||||
} else {
|
||||
ms_message("Encryption was resquested to be %s, but isn't effective (all_streams_encrypted=%i, auth_token=%s)",
|
||||
ms_message("Encryption was requested to be %s, but isn't effective (all_streams_encrypted=%i, auth_token=%s)",
|
||||
linphone_media_encryption_to_string(call->params->media_encryption), all_streams_encrypted, call->auth_token == NULL ? "" : call->auth_token);
|
||||
call->current_params->media_encryption=LinphoneMediaEncryptionNone;
|
||||
}
|
||||
|
|
@ -1733,7 +1733,7 @@ const LinphoneCallParams * linphone_call_get_current_params(LinphoneCall *call){
|
|||
if (linphone_call_get_n_active_streams(call)==0 || (all_streams_encrypted = linphone_call_all_streams_encrypted(call))) {
|
||||
call->current_params->media_encryption = call->params->media_encryption;
|
||||
} else {
|
||||
ms_message("Encryption was resquested to be %s, but isn't effective (all_streams_encrypted=%i)",
|
||||
ms_message("Encryption was requested to be %s, but isn't effective (all_streams_encrypted=%i)",
|
||||
linphone_media_encryption_to_string(call->params->media_encryption), all_streams_encrypted);
|
||||
call->current_params->media_encryption=LinphoneMediaEncryptionNone;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit a94cb3bbe1adf0c2db5a779417da51cbb30ae876
|
||||
Subproject commit af9a3f7f992fa4fbb7f889c96607b48cccf1a8e4
|
||||
2
oRTP
2
oRTP
|
|
@ -1 +1 @@
|
|||
Subproject commit 3ef18d04b3f53fea51a1f6369f55ed9e353139b5
|
||||
Subproject commit 02473c786be89b3e41f9857d984e9b1918f19a68
|
||||
|
|
@ -122,25 +122,30 @@ extern int CU_assertImplementation(int bValue,
|
|||
const char *strFunction,
|
||||
int bFatal);
|
||||
|
||||
#define _BC_ASSERT(pred, format, fatal) CU_assertImplementation(pred, __LINE__, format, __FILE__, "", fatal)
|
||||
static inline int _BC_ASSERT(const char* file, int line, int predicate, const char* format, int fatal) {
|
||||
if (!predicate) bc_tester_printf(bc_printf_verbosity_info, format, NULL);
|
||||
return CU_assertImplementation(predicate, line, format, file, "", fatal);
|
||||
}
|
||||
|
||||
#define _BC_ASSERT_PRED(name, pred, actual, expected, type, fatal, ...) \
|
||||
do { \
|
||||
char format[4096] = {0}; \
|
||||
type cactual = (actual); \
|
||||
type cexpected = (expected); \
|
||||
snprintf(format, 4096, name "(" #actual ", " #expected ") - " __VA_ARGS__); \
|
||||
_BC_ASSERT(pred, format, fatal); \
|
||||
_BC_ASSERT(__FILE__, __LINE__, pred, format, fatal); \
|
||||
} while (0)
|
||||
#define BC_PASS(msg) _BC_ASSERT(TRUE, "BC_PASS(" #msg ").", FALSE)
|
||||
#define BC_FAIL(msg) _BC_ASSERT(FALSE, "BC_FAIL(" #msg ").", FALSE)
|
||||
#define BC_ASSERT(value) _BC_ASSERT((value), #value, FALSE)
|
||||
#define BC_ASSERT_FATAL(value) _BC_ASSERT((value), #value, TRUE)
|
||||
#define BC_TEST(value) _BC_ASSERT((value), #value, FALSE)
|
||||
#define BC_TEST_FATAL(value) _BC_ASSERT((value), #value, TRUE)
|
||||
#define BC_ASSERT_TRUE(value) _BC_ASSERT((value), ("BC_ASSERT_TRUE(" #value ")"), FALSE)
|
||||
#define BC_ASSERT_TRUE_FATAL(value) _BC_ASSERT((value), ("BC_ASSERT_TRUE_FATAL(" #value ")"), TRUE)
|
||||
#define BC_ASSERT_FALSE(value) _BC_ASSERT(!(value), ("BC_ASSERT_FALSE(" #value ")"), FALSE)
|
||||
#define BC_ASSERT_FALSE_FATAL(value) _BC_ASSERT(!(value), ("BC_ASSERT_FALSE_FATAL(" #value ")"), TRUE)
|
||||
|
||||
#define BC_PASS(msg) _BC_ASSERT(__FILE__, __LINE__, TRUE, "BC_PASS(" #msg ").", FALSE)
|
||||
#define BC_FAIL(msg) _BC_ASSERT(__FILE__, __LINE__, FALSE, "BC_FAIL(" #msg ").", FALSE)
|
||||
#define BC_ASSERT(value) _BC_ASSERT(__FILE__, __LINE__, (value), #value, FALSE)
|
||||
#define BC_ASSERT_FATAL(value) _BC_ASSERT(__FILE__, __LINE__, (value), #value, TRUE)
|
||||
#define BC_TEST(value) _BC_ASSERT(__FILE__, __LINE__, (value), #value, FALSE)
|
||||
#define BC_TEST_FATAL(value) _BC_ASSERT(__FILE__, __LINE__, (value), #value, TRUE)
|
||||
#define BC_ASSERT_TRUE(value) _BC_ASSERT(__FILE__, __LINE__, (value), ("BC_ASSERT_TRUE(" #value ")"), FALSE)
|
||||
#define BC_ASSERT_TRUE_FATAL(value) _BC_ASSERT(__FILE__, __LINE__, (value), ("BC_ASSERT_TRUE_FATAL(" #value ")"), TRUE)
|
||||
#define BC_ASSERT_FALSE(value) _BC_ASSERT(__FILE__, __LINE__, !(value), ("BC_ASSERT_FALSE(" #value ")"), FALSE)
|
||||
#define BC_ASSERT_FALSE_FATAL(value) _BC_ASSERT(__FILE__, __LINE__, !(value), ("BC_ASSERT_FALSE_FATAL(" #value ")"), TRUE)
|
||||
#define BC_ASSERT_EQUAL(actual, expected, type, type_format) _BC_ASSERT_PRED("BC_ASSERT_EQUAL", ((cactual) == (cexpected)), actual, expected, type, FALSE, "Expected " type_format " but was " type_format ".", cexpected, cactual)
|
||||
#define BC_ASSERT_EQUAL_FATAL(actual, expected, type, type_format) _BC_ASSERT_PRED("BC_ASSERT_EQUAL_FATAL", ((cactual) == (cexpected)), actual, expected, type, TRUE, "Expected " type_format " but was " type_format ".", cexpected, cactual)
|
||||
#define BC_ASSERT_NOT_EQUAL(actual, expected, type, type_format) _BC_ASSERT_PRED("BC_ASSERT_NOT_EQUAL", ((cactual) != (cexpected)), actual, expected, type, FALSE, "Expected NOT " type_format " but it was.", cexpected)
|
||||
|
|
@ -149,10 +154,10 @@ extern int CU_assertImplementation(int bValue,
|
|||
#define BC_ASSERT_PTR_EQUAL_FATAL(actual, expected) _BC_ASSERT_PRED("BC_ASSERT_PTR_EQUAL_FATAL", ((cactual) == (cexpected)), (const void*)(actual), (const void*)(expected), const void*, TRUE, "Expected %p but was %p.", cexpected, cactual)
|
||||
#define BC_ASSERT_PTR_NOT_EQUAL(actual, expected) _BC_ASSERT_PRED("BC_ASSERT_PTR_NOT_EQUAL", ((cactual) != (cexpected)), (const void*)(actual), (const void*)(expected), const void*, FALSE, "Expected NOT %p but it was.", cexpected)
|
||||
#define BC_ASSERT_PTR_NOT_EQUAL_FATAL(actual, expected) _BC_ASSERT_PRED("BC_ASSERT_PTR_NOT_EQUAL_FATAL", ((cactual) != (cexpected)), (const void*)(actual), (const void*)(expected), const void*, TRUE, "Expected NOT %p but it was.", cexpected)
|
||||
#define BC_ASSERT_PTR_NULL(value) _BC_ASSERT_PRED("BC_ASSERT_PTR_NULL", ((cactual) == (cexpected)), (const void*)(value), (const void*)NULL, const void*, FALSE, "Expected NULL but was %p.", cactual)
|
||||
#define BC_ASSERT_PTR_NULL_FATAL(value) _BC_ASSERT_PRED("BC_ASSERT_PTR_NULL_FATAL", ((cactual) == (cexpected)), (const void*)(value), (const void*)NULL, const void*, TRUE, "Expected NULL but was %p.", cactual)
|
||||
#define BC_ASSERT_PTR_NOT_NULL(value) _BC_ASSERT_PRED("BC_ASSERT_PTR_NOT_NULL", ((cactual) != (cexpected)), (const void*)(value), (const void*)NULL, const void*, FALSE, "Expected NOT NULL but it was.")
|
||||
#define BC_ASSERT_PTR_NOT_NULL_FATAL(value) _BC_ASSERT_PRED("BC_ASSERT_PTR_NOT_NULL_FATAL", ((cactual) != (cexpected)), (const void*)(value), (const void*)NULL, const void*, TRUE, "Expected NOT NULL but it was.")
|
||||
#define BC_ASSERT_PTR_NULL(value) _BC_ASSERT_PRED("BC_ASSERT_PTR_NULL", ((cactual) == (cexpected)), (const void*)(value), NULL, const void*, FALSE, "Expected NULL but was %p.", cactual)
|
||||
#define BC_ASSERT_PTR_NULL_FATAL(value) _BC_ASSERT_PRED("BC_ASSERT_PTR_NULL_FATAL", ((cactual) == (cexpected)), (const void*)(value), NULL, const void*, TRUE, "Expected NULL but was %p.", cactual)
|
||||
#define BC_ASSERT_PTR_NOT_NULL(value) _BC_ASSERT_PRED("BC_ASSERT_PTR_NOT_NULL", ((cactual) != (cexpected)), (const void*)(value), NULL, const void*, FALSE, "Expected NOT NULL but it was.")
|
||||
#define BC_ASSERT_PTR_NOT_NULL_FATAL(value) _BC_ASSERT_PRED("BC_ASSERT_PTR_NOT_NULL_FATAL", ((cactual) != (cexpected)), (const void*)(value), NULL, const void*, TRUE, "Expected NOT NULL but it was.")
|
||||
#define BC_ASSERT_STRING_EQUAL(actual, expected) _BC_ASSERT_PRED("BC_ASSERT_STRING_EQUAL", !(strcmp((const char*)(cactual), (const char*)(cexpected))), actual, expected, const char*, FALSE, "Expected %s but was %s.", cexpected, cactual)
|
||||
#define BC_ASSERT_STRING_EQUAL_FATAL(actual, expected) _BC_ASSERT_PRED("BC_ASSERT_STRING_EQUAL_FATAL", !(strcmp((const char*)(cactual), (const char*)(cexpected))), actual, expected, const char*, TRUE, "Expected %s but was %s.", cexpected, cactual)
|
||||
#define BC_ASSERT_STRING_NOT_EQUAL(actual, expected) _BC_ASSERT_PRED("BC_ASSERT_STRING_NOT_EQUAL", (strcmp((const char*)(cactual), (const char*)(cexpected))), actual, expected, const char*, FALSE, "Expected NOT %s but it was.", cexpected)
|
||||
|
|
|
|||
|
|
@ -218,6 +218,11 @@ static void simple_conference_base(LinphoneCoreManager* marie, LinphoneCoreManag
|
|||
BC_ASSERT_TRUE(linphone_core_is_in_conference(marie->lc));
|
||||
BC_ASSERT_EQUAL(linphone_core_get_conference_size(marie->lc),3, int, "%d");
|
||||
|
||||
BC_ASSERT_PTR_NULL(linphone_core_get_current_call(marie->lc));
|
||||
BC_ASSERT_PTR_NOT_NULL(linphone_core_get_current_call(pauline->lc));
|
||||
BC_ASSERT_PTR_NOT_NULL(linphone_core_get_current_call(laure->lc));
|
||||
|
||||
|
||||
/*
|
||||
* FIXME: check_ice cannot work as it is today because there is no current call for the party that hosts the conference
|
||||
if (linphone_core_get_firewall_policy(marie->lc) == LinphonePolicyUseIce) {
|
||||
|
|
@ -240,10 +245,9 @@ static void simple_conference_base(LinphoneCoreManager* marie, LinphoneCoreManag
|
|||
BC_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallEnd,1,10000));
|
||||
BC_ASSERT_TRUE(wait_for_list(lcs,&laure->stat.number_of_LinphoneCallEnd,1,10000));
|
||||
|
||||
|
||||
|
||||
ms_list_free(lcs);
|
||||
}
|
||||
|
||||
static void simple_conference(void) {
|
||||
LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc");
|
||||
LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_tcp_rc");
|
||||
|
|
@ -254,8 +258,6 @@ static void simple_conference(void) {
|
|||
linphone_core_manager_destroy(laure);
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void simple_encrypted_conference_with_ice(LinphoneMediaEncryption mode) {
|
||||
LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc");
|
||||
LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_tcp_rc");
|
||||
|
|
@ -544,6 +546,166 @@ static void call_transfer_existing_call_outgoing_call(void) {
|
|||
ms_list_free(lcs);
|
||||
}
|
||||
|
||||
static void eject_from_3_participants_conference(void) {
|
||||
LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc");
|
||||
LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_tcp_rc");
|
||||
LinphoneCoreManager* laure = linphone_core_manager_new( "laure_rc");
|
||||
|
||||
stats initial_marie_stat;
|
||||
stats initial_pauline_stat;
|
||||
stats initial_laure_stat;
|
||||
|
||||
LinphoneCall* marie_call_pauline;
|
||||
LinphoneCall* pauline_called_by_marie;
|
||||
LinphoneCall* marie_call_laure;
|
||||
MSList* lcs=ms_list_append(NULL,marie->lc);
|
||||
lcs=ms_list_append(lcs,pauline->lc);
|
||||
lcs=ms_list_append(lcs,laure->lc);
|
||||
|
||||
BC_ASSERT_TRUE(call(marie,pauline));
|
||||
marie_call_pauline=linphone_core_get_current_call(marie->lc);
|
||||
pauline_called_by_marie=linphone_core_get_current_call(pauline->lc);
|
||||
BC_ASSERT_TRUE(pause_call_1(marie,marie_call_pauline,pauline,pauline_called_by_marie));
|
||||
|
||||
BC_ASSERT_TRUE(call(marie,laure));
|
||||
initial_marie_stat=marie->stat;
|
||||
initial_pauline_stat=pauline->stat;
|
||||
initial_laure_stat=laure->stat;
|
||||
|
||||
marie_call_laure=linphone_core_get_current_call(marie->lc);
|
||||
|
||||
BC_ASSERT_PTR_NOT_NULL_FATAL(marie_call_laure);
|
||||
|
||||
linphone_core_add_to_conference(marie->lc,marie_call_laure);
|
||||
BC_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallUpdating,initial_marie_stat.number_of_LinphoneCallUpdating+1,5000));
|
||||
|
||||
linphone_core_add_to_conference(marie->lc,marie_call_pauline);
|
||||
|
||||
BC_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallResuming,initial_marie_stat.number_of_LinphoneCallResuming+1,2000));
|
||||
|
||||
BC_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallStreamsRunning,initial_pauline_stat.number_of_LinphoneCallStreamsRunning+1,5000));
|
||||
BC_ASSERT_TRUE(wait_for_list(lcs,&laure->stat.number_of_LinphoneCallStreamsRunning,initial_laure_stat.number_of_LinphoneCallStreamsRunning+1,2000));
|
||||
BC_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallStreamsRunning,initial_marie_stat.number_of_LinphoneCallStreamsRunning+2,3000));
|
||||
|
||||
BC_ASSERT_TRUE(linphone_core_is_in_conference(marie->lc));
|
||||
BC_ASSERT_EQUAL(linphone_core_get_conference_size(marie->lc),3, int, "%d");
|
||||
|
||||
BC_ASSERT_PTR_NULL(linphone_core_get_current_call(marie->lc));
|
||||
|
||||
linphone_core_remove_from_conference(marie->lc, marie_call_pauline);
|
||||
|
||||
BC_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallPausedByRemote,1,10000));
|
||||
BC_ASSERT_TRUE(wait_for_list(lcs,&laure->stat.number_of_LinphoneCallStreamsRunning,3,10000));
|
||||
BC_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallStreamsRunning,5,10000));
|
||||
BC_ASSERT_PTR_NOT_NULL(linphone_core_get_current_call(marie->lc));
|
||||
BC_ASSERT_EQUAL(ms_list_size(linphone_core_get_calls(marie->lc)), 2, int, "%d");
|
||||
BC_ASSERT_PTR_NOT_NULL(linphone_core_get_current_call(pauline->lc));
|
||||
BC_ASSERT_PTR_NOT_NULL(linphone_core_get_current_call(laure->lc));
|
||||
end_call(laure, marie);
|
||||
end_call(pauline, marie);
|
||||
|
||||
BC_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallEnd,1,10000));
|
||||
BC_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallEnd,1,10000));
|
||||
BC_ASSERT_TRUE(wait_for_list(lcs,&laure->stat.number_of_LinphoneCallEnd,1,10000));
|
||||
|
||||
ms_list_free(lcs);
|
||||
|
||||
linphone_core_manager_destroy(marie);
|
||||
linphone_core_manager_destroy(pauline);
|
||||
linphone_core_manager_destroy(laure);
|
||||
}
|
||||
|
||||
static void eject_from_4_participants_conference(void) {
|
||||
LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc");
|
||||
LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_tcp_rc");
|
||||
LinphoneCoreManager* laure = linphone_core_manager_new( "laure_rc");
|
||||
LinphoneCoreManager* michelle = linphone_core_manager_new( "michelle_rc");
|
||||
|
||||
stats initial_marie_stat;
|
||||
stats initial_pauline_stat;
|
||||
stats initial_laure_stat;
|
||||
stats initial_michelle_stat;
|
||||
|
||||
LinphoneCall* marie_call_pauline;
|
||||
LinphoneCall* pauline_called_by_marie;
|
||||
LinphoneCall* marie_call_laure;
|
||||
LinphoneCall* marie_call_michelle;
|
||||
LinphoneCall* michelle_called_by_marie;
|
||||
MSList* lcs=ms_list_append(NULL,marie->lc);
|
||||
lcs=ms_list_append(lcs,pauline->lc);
|
||||
lcs=ms_list_append(lcs,laure->lc);
|
||||
lcs=ms_list_append(lcs,michelle->lc);
|
||||
|
||||
BC_ASSERT_TRUE(call(marie,pauline));
|
||||
marie_call_pauline=linphone_core_get_current_call(marie->lc);
|
||||
pauline_called_by_marie=linphone_core_get_current_call(pauline->lc);
|
||||
BC_ASSERT_TRUE(pause_call_1(marie,marie_call_pauline,pauline,pauline_called_by_marie));
|
||||
|
||||
BC_ASSERT_TRUE(call(marie,michelle));
|
||||
marie_call_michelle=linphone_core_get_current_call(marie->lc);
|
||||
michelle_called_by_marie=linphone_core_get_current_call(michelle->lc);
|
||||
BC_ASSERT_TRUE(pause_call_1(marie,marie_call_michelle,michelle,michelle_called_by_marie));
|
||||
|
||||
BC_ASSERT_TRUE(call(marie,laure));
|
||||
initial_marie_stat=marie->stat;
|
||||
initial_pauline_stat=pauline->stat;
|
||||
initial_laure_stat=laure->stat;
|
||||
initial_michelle_stat=michelle->stat;
|
||||
|
||||
marie_call_laure=linphone_core_get_current_call(marie->lc);
|
||||
|
||||
BC_ASSERT_PTR_NOT_NULL_FATAL(marie_call_laure);
|
||||
|
||||
linphone_core_add_to_conference(marie->lc,marie_call_laure);
|
||||
BC_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallUpdating,initial_marie_stat.number_of_LinphoneCallUpdating+1,5000));
|
||||
|
||||
linphone_core_add_to_conference(marie->lc,marie_call_michelle);
|
||||
BC_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallUpdating,initial_marie_stat.number_of_LinphoneCallUpdating+1,5000));
|
||||
|
||||
linphone_core_add_to_conference(marie->lc,marie_call_pauline);
|
||||
BC_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallResuming,initial_marie_stat.number_of_LinphoneCallResuming+1,2000));
|
||||
|
||||
BC_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallStreamsRunning,initial_pauline_stat.number_of_LinphoneCallStreamsRunning+1,5000));
|
||||
BC_ASSERT_TRUE(wait_for_list(lcs,&laure->stat.number_of_LinphoneCallStreamsRunning,initial_laure_stat.number_of_LinphoneCallStreamsRunning+1,2000));
|
||||
BC_ASSERT_TRUE(wait_for_list(lcs,&michelle->stat.number_of_LinphoneCallStreamsRunning,initial_michelle_stat.number_of_LinphoneCallStreamsRunning+1,3000));
|
||||
BC_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallStreamsRunning,initial_marie_stat.number_of_LinphoneCallStreamsRunning+2,3000));
|
||||
|
||||
BC_ASSERT_TRUE(linphone_core_is_in_conference(marie->lc));
|
||||
BC_ASSERT_EQUAL(linphone_core_get_conference_size(marie->lc),4, int, "%d");
|
||||
|
||||
BC_ASSERT_PTR_NULL(linphone_core_get_current_call(marie->lc));
|
||||
|
||||
linphone_core_remove_from_conference(marie->lc, marie_call_pauline);
|
||||
|
||||
BC_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallPausedByRemote,1,10000));
|
||||
BC_ASSERT_TRUE(wait_for_list(lcs,&laure->stat.number_of_LinphoneCallStreamsRunning,initial_laure_stat.number_of_LinphoneCallStreamsRunning+1,10000));
|
||||
BC_ASSERT_TRUE(wait_for_list(lcs,&michelle->stat.number_of_LinphoneCallStreamsRunning,initial_michelle_stat.number_of_LinphoneCallStreamsRunning+1,10000));
|
||||
|
||||
BC_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallStreamsRunning,5,10000));
|
||||
BC_ASSERT_PTR_NULL(linphone_core_get_current_call(marie->lc));
|
||||
BC_ASSERT_TRUE(linphone_core_is_in_conference(marie->lc));
|
||||
BC_ASSERT_EQUAL(linphone_core_get_conference_size(marie->lc),3, int, "%d");
|
||||
BC_ASSERT_EQUAL(ms_list_size(linphone_core_get_calls(marie->lc)), 3, int, "%d");
|
||||
BC_ASSERT_PTR_NOT_NULL(linphone_core_get_current_call(pauline->lc));
|
||||
BC_ASSERT_PTR_NOT_NULL(linphone_core_get_current_call(laure->lc));
|
||||
BC_ASSERT_PTR_NOT_NULL(linphone_core_get_current_call(michelle->lc));
|
||||
end_call(laure, marie);
|
||||
end_call(pauline, marie);
|
||||
end_call(michelle, marie);
|
||||
|
||||
BC_ASSERT_TRUE(wait_for_list(lcs,&pauline->stat.number_of_LinphoneCallEnd,1,10000));
|
||||
BC_ASSERT_TRUE(wait_for_list(lcs,&marie->stat.number_of_LinphoneCallEnd,1,10000));
|
||||
BC_ASSERT_TRUE(wait_for_list(lcs,&laure->stat.number_of_LinphoneCallEnd,1,10000));
|
||||
BC_ASSERT_TRUE(wait_for_list(lcs,&michelle->stat.number_of_LinphoneCallEnd,1,10000));
|
||||
|
||||
ms_list_free(lcs);
|
||||
|
||||
linphone_core_manager_destroy(marie);
|
||||
linphone_core_manager_destroy(pauline);
|
||||
linphone_core_manager_destroy(laure);
|
||||
linphone_core_manager_destroy(michelle);
|
||||
}
|
||||
|
||||
test_t multi_call_tests[] = {
|
||||
{ "Call waiting indication", call_waiting_indication },
|
||||
{ "Call waiting indication with privacy", call_waiting_indication_with_privacy },
|
||||
|
|
@ -557,6 +719,8 @@ test_t multi_call_tests[] = {
|
|||
{ "Unattended call transfer", unattended_call_transfer },
|
||||
{ "Unattended call transfer with error", unattended_call_transfer_with_error },
|
||||
{ "Call transfer existing call outgoing call", call_transfer_existing_call_outgoing_call },
|
||||
{ "Eject from 3 participants conference", eject_from_3_participants_conference },
|
||||
{ "Eject from 4 participants conference", eject_from_4_participants_conference },
|
||||
};
|
||||
|
||||
test_suite_t multi_call_test_suite = {"Multi call", NULL, NULL, liblinphone_tester_before_each, liblinphone_tester_after_each,
|
||||
|
|
|
|||
44
tester/rcfiles/michelle_rc
Normal file
44
tester/rcfiles/michelle_rc
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
[sip]
|
||||
sip_port=-1
|
||||
sip_tcp_port=-1
|
||||
sip_tls_port=-1
|
||||
default_proxy=0
|
||||
|
||||
[auth_info_0]
|
||||
username=michelle
|
||||
userid=michelle
|
||||
passwd=secret
|
||||
realm="sip.example.org"
|
||||
|
||||
|
||||
[proxy_0]
|
||||
reg_proxy=sip.example.org
|
||||
reg_identity=sip:michelle@sip.example.org
|
||||
reg_expires=3600
|
||||
reg_sendregister=1
|
||||
publish=0
|
||||
dial_escape_plus=0
|
||||
|
||||
|
||||
[rtp]
|
||||
audio_rtp_port=9010-9390
|
||||
video_rtp_port=9410-9910
|
||||
|
||||
[video]
|
||||
display=0
|
||||
capture=0
|
||||
show_local=0
|
||||
size=qcif
|
||||
enabled=0
|
||||
self_view=0
|
||||
automatically_initiate=0
|
||||
automatically_accept=0
|
||||
device=StaticImage: Static picture
|
||||
|
||||
[sound]
|
||||
echocancellation=0 #to not overload cpu in case of VG
|
||||
|
||||
[net]
|
||||
dns_srv_enabled=0 #no srv needed in general
|
||||
stun_server=stun.linphone.org
|
||||
|
||||
Loading…
Add table
Reference in a new issue