Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
BC
public
liblinphone
Commits
7832def9
Commit
7832def9
authored
Dec 19, 2017
by
Ghislain MARY
Browse files
Add missing tests.
parent
6eb2a1d1
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
145 additions
and
9 deletions
+145
-9
coreapi/linphonecore.c
coreapi/linphonecore.c
+4
-4
coreapi/tester_utils.h
coreapi/tester_utils.h
+10
-0
src/sal/sal.cpp
src/sal/sal.cpp
+41
-0
tester/CMakeLists.txt
tester/CMakeLists.txt
+1
-0
tester/accountmanager.c
tester/accountmanager.c
+14
-0
tester/flexisip_tester.c
tester/flexisip_tester.c
+72
-1
tester/rcfiles/laure_tcp_rc
tester/rcfiles/laure_tcp_rc
+1
-2
tester/rcfiles/marie_rc
tester/rcfiles/marie_rc
+2
-1
tester/rcfiles/pauline_rc
tester/rcfiles/pauline_rc
+0
-1
No files found.
coreapi/linphonecore.c
View file @
7832def9
...
...
@@ -7041,10 +7041,6 @@ void linphone_core_enable_conference_server (LinphoneCore *lc, bool_t enable) {
lp_config_set_int
(
linphone_core_get_config
(
lc
),
"misc"
,
"conference_server_enabled"
,
enable
);
}
bool_t
linphone_core_conference_server_enabled
(
const
LinphoneCore
*
lc
)
{
return
lp_config_get_int
(
linphone_core_get_config
(
lc
),
"misc"
,
"conference_server_enabled"
,
FALSE
)
?
TRUE
:
FALSE
;
}
bool_t
_linphone_core_is_conference_creation
(
const
LinphoneCore
*
lc
,
const
LinphoneAddress
*
addr
)
{
const
char
*
uri
=
linphone_core_get_conference_factory_uri
(
lc
);
if
(
!
uri
)
...
...
@@ -7063,6 +7059,10 @@ bool_t _linphone_core_is_conference_creation (const LinphoneCore *lc, const Linp
return
result
;
}
bool_t
linphone_core_conference_server_enabled
(
const
LinphoneCore
*
lc
)
{
return
lp_config_get_int
(
linphone_core_get_config
(
lc
),
"misc"
,
"conference_server_enabled"
,
FALSE
)
?
TRUE
:
FALSE
;
}
void
linphone_core_set_tls_cert
(
LinphoneCore
*
lc
,
const
char
*
tls_cert
)
{
if
(
lc
->
tls_cert
)
{
ms_free
(
lc
->
tls_cert
);
...
...
coreapi/tester_utils.h
View file @
7832def9
...
...
@@ -152,6 +152,16 @@ LINPHONE_PUBLIC void sal_call_set_sdp_handling(SalOp *h, SalOpSDPHandling handli
LINPHONE_PUBLIC
SalMediaDescription
*
sal_call_get_final_media_description
(
SalOp
*
h
);
LINPHONE_PUBLIC
belle_sip_resolver_context_t
*
sal_resolve_a
(
Sal
*
sal
,
const
char
*
name
,
int
port
,
int
family
,
belle_sip_resolver_callback_t
cb
,
void
*
data
);
LINPHONE_PUBLIC
Sal
*
sal_op_get_sal
(
SalOp
*
op
);
LINPHONE_PUBLIC
SalOp
*
sal_create_refer_op
(
Sal
*
sal
);
LINPHONE_PUBLIC
void
sal_release_op
(
SalOp
*
op
);
LINPHONE_PUBLIC
void
sal_op_set_from
(
SalOp
*
sal_refer_op
,
const
char
*
from
);
LINPHONE_PUBLIC
void
sal_op_set_to
(
SalOp
*
sal_refer_op
,
const
char
*
to
);
LINPHONE_PUBLIC
void
sal_op_send_refer
(
SalOp
*
sal_refer_op
,
SalAddress
*
refer_to
);
LINPHONE_PUBLIC
void
sal_set_user_pointer
(
Sal
*
sal
,
void
*
user_pointer
);
LINPHONE_PUBLIC
void
*
sal_get_user_pointer
(
Sal
*
sal
);
LINPHONE_PUBLIC
void
sal_set_call_refer_callback
(
Sal
*
sal
,
void
(
*
OnReferCb
)(
SalOp
*
op
,
const
SalAddress
*
referto
));
#endif
#ifdef __cplusplus
...
...
src/sal/sal.cpp
View file @
7832def9
...
...
@@ -1020,4 +1020,45 @@ belle_sip_resolver_context_t *sal_resolve_a(Sal *sal, const char *name, int port
return
sal
->
resolve_a
(
name
,
port
,
family
,
cb
,
data
);
}
Sal
*
sal_op_get_sal
(
SalOp
*
op
)
{
return
op
->
get_sal
();
}
SalOp
*
sal_create_refer_op
(
Sal
*
sal
)
{
return
new
SalReferOp
(
sal
);
}
void
sal_release_op
(
SalOp
*
op
)
{
op
->
release
();
}
void
sal_op_set_from
(
SalOp
*
sal_refer_op
,
const
char
*
from
)
{
auto
referOp
=
dynamic_cast
<
SalReferOp
*>
(
sal_refer_op
);
referOp
->
set_from
(
from
);
}
void
sal_op_set_to
(
SalOp
*
sal_refer_op
,
const
char
*
to
)
{
auto
referOp
=
dynamic_cast
<
SalReferOp
*>
(
sal_refer_op
);
referOp
->
set_to
(
to
);
}
void
sal_op_send_refer
(
SalOp
*
sal_refer_op
,
SalAddress
*
refer_to
)
{
auto
referOp
=
dynamic_cast
<
SalReferOp
*>
(
sal_refer_op
);
referOp
->
send_refer
(
refer_to
);
}
void
sal_set_user_pointer
(
Sal
*
sal
,
void
*
user_pointer
)
{
sal
->
set_user_pointer
(
user_pointer
);
}
void
*
sal_get_user_pointer
(
Sal
*
sal
)
{
return
sal
->
get_user_pointer
();
}
void
sal_set_call_refer_callback
(
Sal
*
sal
,
void
(
*
OnReferCb
)(
SalOp
*
op
,
const
SalAddress
*
referto
))
{
struct
Sal
::
Callbacks
cbs
=
{
NULL
};
cbs
.
refer_received
=
OnReferCb
;
sal
->
set_callbacks
(
&
cbs
);
}
}
tester/CMakeLists.txt
View file @
7832def9
...
...
@@ -85,6 +85,7 @@ set(RC_FILES
rcfiles/account_creator_rc
rcfiles/assistant_create.rc
rcfiles/carddav_rc
rcfiles/chloe_rc
rcfiles/conference_focus_rc
rcfiles/empty_rc
rcfiles/friends_rc
...
...
tester/accountmanager.c
View file @
7832def9
...
...
@@ -97,6 +97,20 @@ Account *account_manager_get_account(AccountManager *m, const LinphoneAddress *i
return
NULL
;
}
LinphoneAddress
*
account_manager_get_identity_with_modified_identity
(
const
LinphoneAddress
*
modified_identity
){
AccountManager
*
m
=
account_manager_get
();
bctbx_list_t
*
it
;
for
(
it
=
m
->
accounts
;
it
!=
NULL
;
it
=
it
->
next
){
Account
*
a
=
(
Account
*
)
it
->
data
;
if
(
linphone_address_weak_equal
(
a
->
modified_identity
,
modified_identity
)){
return
a
->
identity
;
}
}
return
NULL
;
}
static
void
account_created_on_server_cb
(
LinphoneCore
*
lc
,
LinphoneProxyConfig
*
cfg
,
LinphoneRegistrationState
state
,
const
char
*
info
){
Account
*
account
=
(
Account
*
)
linphone_core_get_user_data
(
lc
);
switch
(
state
){
...
...
tester/flexisip_tester.c
View file @
7832def9
...
...
@@ -1390,6 +1390,76 @@ void test_removing_old_tport(void) {
bctbx_list_free
(
lcs
);
}
static
const
char
*
get_laure_rc
(
void
)
{
if
(
liblinphone_tester_ipv6_available
())
{
return
"laure_tcp_rc"
;
}
else
{
return
"laure_rc_udp"
;
}
}
static
void
on_refer_received
(
SalOp
*
op
,
const
SalAddress
*
refer_to
)
{
Sal
*
sal
=
sal_op_get_sal
(
op
);
LinphoneCoreManager
*
receiver
=
(
LinphoneCoreManager
*
)
sal_get_user_pointer
(
sal
);
receiver
->
stat
.
number_of_LinphoneCallRefered
++
;
sal_release_op
(
op
);
}
void
resend_refer_other_devices
(
void
)
{
LinphoneCoreManager
*
marie
=
linphone_core_manager_new
(
"marie_rc"
);
LinphoneCoreManager
*
pauline
=
linphone_core_manager_new
(
"pauline_rc"
);
LinphoneCoreManager
*
laure
=
linphone_core_manager_new
(
get_laure_rc
());
LinphoneCoreManager
*
pauline2
;
bctbx_list_t
*
lcs
=
NULL
;
lcs
=
bctbx_list_append
(
lcs
,
marie
->
lc
);
lcs
=
bctbx_list_append
(
lcs
,
pauline
->
lc
);
lcs
=
bctbx_list_append
(
lcs
,
laure
->
lc
);
/* We set Pauline's Sal callback and pass the core manager to access stats */
Sal
*
pauline_sal
=
linphone_core_get_sal
(
pauline
->
lc
);
sal_set_user_pointer
(
pauline_sal
,
(
void
*
)
pauline
);
sal_set_call_refer_callback
(
pauline_sal
,
on_refer_received
);
char
*
marie_address
=
linphone_address_as_string
(
marie
->
identity
);
char
*
pauline_address
=
linphone_address_as_string
(
pauline
->
identity
);
char
*
laure_address
=
linphone_address_as_string
(
laure
->
identity
);
/* Then we create a refer from marie to pauline that refers to laure */
SalOp
*
op
=
sal_create_refer_op
(
linphone_core_get_sal
(
marie
->
lc
));
sal_op_set_from
(
op
,
marie_address
);
sal_op_set_to
(
op
,
pauline_address
);
SalAddress
*
address
=
sal_address_new
(
laure_address
);
sal_address_set_param
(
address
,
"text"
,
NULL
);
sal_op_send_refer
(
op
,
address
);
ms_free
(
marie_address
);
ms_free
(
pauline_address
);
ms_free
(
laure_address
);
BC_ASSERT_TRUE
(
wait_for_list
(
lcs
,
&
pauline
->
stat
.
number_of_LinphoneCallRefered
,
1
,
5000
));
/* We create another pauline and check if it has received a refer */
pauline2
=
linphone_core_manager_new
(
"pauline_rc"
);
lcs
=
bctbx_list_append
(
lcs
,
pauline2
->
lc
);
Sal
*
pauline2_sal
=
linphone_core_get_sal
(
pauline2
->
lc
);
sal_set_user_pointer
(
pauline2_sal
,
(
void
*
)
pauline2
);
sal_set_call_refer_callback
(
pauline2_sal
,
on_refer_received
);
BC_ASSERT_TRUE
(
wait_for_list
(
lcs
,
&
pauline2
->
stat
.
number_of_LinphoneCallRefered
,
1
,
5000
));
sal_address_unref
(
address
);
sal_release_op
(
op
);
linphone_core_manager_destroy
(
marie
);
linphone_core_manager_destroy
(
pauline
);
linphone_core_manager_destroy
(
laure
);
linphone_core_manager_destroy
(
pauline2
);
bctbx_list_free
(
lcs
);
}
test_t
flexisip_tests
[]
=
{
TEST_ONE_TAG
(
"Subscribe forking"
,
subscribe_forking
,
"LeaksMemory"
),
TEST_NO_TAG
(
"Message forking"
,
message_forking
),
...
...
@@ -1427,7 +1497,8 @@ test_t flexisip_tests[] = {
TEST_NO_TAG
(
"TLS authentication - client rejected due to CN mismatch"
,
tls_client_auth_bad_certificate_cn
),
TEST_NO_TAG
(
"TLS authentication - client rejected due to unrecognized certificate chain"
,
tls_client_auth_bad_certificate
),
TEST_NO_TAG
(
"Transcoder"
,
transcoder_tester
),
TEST_NO_TAG
(
"Removing old tport on flexisip for the same client"
,
test_removing_old_tport
)
TEST_NO_TAG
(
"Removing old tport on flexisip for the same client"
,
test_removing_old_tport
),
TEST_NO_TAG
(
"Resend of REFER with other devices"
,
resend_refer_other_devices
)
};
...
...
tester/rcfiles/laure_tcp_rc
View file @
7832def9
...
...
@@ -11,16 +11,15 @@ userid=laure
passwd=secret
realm="sip.example.org"
[proxy_0]
reg_proxy=sip.example.org;transport=tcp
reg_route=sip.example.org;transport=tcp
reg_identity=sip:laure@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
...
...
tester/rcfiles/marie_rc
View file @
7832def9
...
...
@@ -14,7 +14,6 @@ userid=marie
passwd=secret
realm=sip.example.org
[proxy_0]
reg_proxy=sip.example.org;transport=tcp
reg_route=sip.example.org;transport=tcp;lr
...
...
@@ -29,6 +28,8 @@ url="Paupoche" <sip:pauline@sip.example.org>
pol=accept
subscribe=0
[misc]
conference-factory-uri=sip:conference-factory@conf.example.org
[rtp]
audio_rtp_port=18070-28000
...
...
tester/rcfiles/pauline_rc
View file @
7832def9
...
...
@@ -12,7 +12,6 @@ userid=pauline
passwd=secret
realm=sip.example.org
[proxy_0]
realm=sip.example.org
reg_proxy=sip2.linphone.org;transport=tls
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment