mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-01-25 07:08:11 +00:00
add flexisip test [subscribe on wrong dialog]
This commit is contained in:
parent
806d1b21b6
commit
ed0ec8aabd
6 changed files with 218 additions and 60 deletions
|
|
@ -44,7 +44,7 @@ void check_rtcp(LinphoneCall *call) {
|
|||
linphone_call_unref(call);
|
||||
}
|
||||
|
||||
FILE *sip_start(const char *senario, const char* dest_username, LinphoneAddress* dest_addres) {
|
||||
FILE *sip_start(const char *senario, const char* dest_username, const char *passwd, LinphoneAddress* dest_addres) {
|
||||
#if HAVE_SIPP
|
||||
char *dest;
|
||||
char *command;
|
||||
|
|
@ -55,7 +55,10 @@ FILE *sip_start(const char *senario, const char* dest_username, LinphoneAddress*
|
|||
else
|
||||
dest = ms_strdup_printf("%s",linphone_address_get_domain(dest_addres));
|
||||
//until errors logs are handled correctly and stop breaks output, they will be DISABLED
|
||||
command = ms_strdup_printf(SIPP_COMMAND" -sf %s -s %s %s -trace_err -trace_msg -rtp_echo -m 1 -d 1000 2>/dev/null",senario,dest_username,dest);
|
||||
command = ms_strdup_printf(SIPP_COMMAND" -sf %s -s %s %s -trace_err -trace_msg -rtp_echo -m 1 -d 1000 -ap %s 2>/dev/null",senario
|
||||
,dest_username
|
||||
,dest
|
||||
,(passwd?passwd:"none"));
|
||||
|
||||
ms_message("Starting sipp command [%s]",command);
|
||||
file = popen(command, "r");
|
||||
|
|
@ -85,18 +88,37 @@ static FILE *sip_start_recv(const char *senario) {
|
|||
#endif
|
||||
}
|
||||
|
||||
|
||||
/*static void dest_server_server_resolved(void *data, const char *name, struct addrinfo *ai_list) {
|
||||
static void dest_server_server_resolved(void *data, const char *name, struct addrinfo *ai_list) {
|
||||
*(struct addrinfo **)data =ai_list;
|
||||
}*/
|
||||
static void sip_update_within_icoming_reinvite_with_no_sdp(void) {
|
||||
LinphoneCoreManager *mgr;
|
||||
/* LinphoneProxyConfig *proxy = linphone_core_get_default_proxy_config(mgr->lc);
|
||||
LinphoneAddress *dest = linphone_address_new(linphone_proxy_config_get_route(proxy) ?linphone_proxy_config_get_route(proxy):linphone_proxy_config_get_server_addr(proxy));
|
||||
}
|
||||
LinphoneAddress * linphone_core_manager_resolve(LinphoneCoreManager *mgr, const LinphoneAddress *source) {
|
||||
struct addrinfo *addrinfo = NULL;
|
||||
char ipstring [INET6_ADDRSTRLEN];
|
||||
int err;
|
||||
int port = linphone_address_get_port(dest);*/
|
||||
int port = linphone_address_get_port(source);
|
||||
LinphoneAddress * dest;
|
||||
|
||||
sal_resolve_a( mgr->lc->sal
|
||||
,linphone_address_get_domain(source)
|
||||
,linphone_address_get_port(source)
|
||||
,AF_INET
|
||||
,(SalResolverCallback)dest_server_server_resolved
|
||||
,&addrinfo);
|
||||
|
||||
dest=linphone_address_new(NULL);
|
||||
|
||||
wait_for(mgr->lc, mgr->lc, (int*)&addrinfo, 1);
|
||||
err=getnameinfo((struct sockaddr*)addrinfo->ai_addr,addrinfo->ai_addrlen,ipstring,INET6_ADDRSTRLEN,NULL,0,NI_NUMERICHOST);
|
||||
linphone_address_set_domain(dest, ipstring);
|
||||
if (port > 0)
|
||||
linphone_address_set_port(dest, port);
|
||||
|
||||
return dest;
|
||||
}
|
||||
|
||||
|
||||
static void sip_update_within_icoming_reinvite_with_no_sdp(void) {
|
||||
LinphoneCoreManager *mgr;
|
||||
char *identity_char;
|
||||
char *scen;
|
||||
FILE * sipp_out;
|
||||
|
|
@ -108,25 +130,8 @@ static void sip_update_within_icoming_reinvite_with_no_sdp(void) {
|
|||
identity_char=linphone_address_as_string(mgr->identity);
|
||||
linphone_core_set_primary_contact(mgr->lc,identity_char);
|
||||
linphone_core_iterate(mgr->lc);
|
||||
/*
|
||||
sal_resolve_a( mgr->lc->sal
|
||||
,linphone_address_get_domain(dest)
|
||||
,linphone_address_get_port(dest)
|
||||
,AF_INET
|
||||
,(SalResolverCallback)dest_server_server_resolved
|
||||
,&addrinfo);
|
||||
linphone_address_destroy(dest);
|
||||
dest=linphone_address_new(NULL);
|
||||
|
||||
wait_for(mgr->lc, mgr->lc, (int*)&addrinfo, 1);
|
||||
err=getnameinfo((struct sockaddr
|
||||
*)addrinfo->ai_addr,addrinfo->ai_addrlen,ipstring,INET6_ADDRSTRLEN,NULL,0,NI_NUMERICHOST);
|
||||
linphone_address_set_domain(dest, ipstring);
|
||||
if (port > 0)
|
||||
linphone_address_set_port(dest, port);
|
||||
*/
|
||||
scen = bc_tester_res("sipp/sip_update_within_icoming_reinvite_with_no_sdp.xml");
|
||||
sipp_out = sip_start(scen, linphone_address_get_username(mgr->identity), mgr->identity);
|
||||
sipp_out = sip_start(scen, linphone_address_get_username(mgr->identity),NULL, mgr->identity);
|
||||
|
||||
if (sipp_out) {
|
||||
BC_ASSERT_TRUE(wait_for(mgr->lc, mgr->lc, &mgr->stat.number_of_LinphoneCallIncomingReceived, 1));
|
||||
|
|
@ -156,7 +161,7 @@ static void call_with_audio_mline_before_video_in_sdp(void) {
|
|||
|
||||
scen = bc_tester_res("sipp/call_with_audio_mline_before_video_in_sdp.xml");
|
||||
|
||||
sipp_out = sip_start(scen, linphone_address_get_username(mgr->identity), mgr->identity);
|
||||
sipp_out = sip_start(scen, linphone_address_get_username(mgr->identity), NULL, mgr->identity);
|
||||
|
||||
if (sipp_out) {
|
||||
BC_ASSERT_TRUE(wait_for(mgr->lc, mgr->lc, &mgr->stat.number_of_LinphoneCallIncomingReceived, 1));
|
||||
|
|
@ -197,7 +202,7 @@ static void call_with_video_mline_before_audio_in_sdp(void) {
|
|||
|
||||
scen = bc_tester_res("sipp/call_with_video_mline_before_audio_in_sdp.xml");
|
||||
|
||||
sipp_out = sip_start(scen, linphone_address_get_username(mgr->identity), mgr->identity);
|
||||
sipp_out = sip_start(scen, linphone_address_get_username(mgr->identity), NULL, mgr->identity);
|
||||
|
||||
if (sipp_out) {
|
||||
BC_ASSERT_TRUE(wait_for(mgr->lc, mgr->lc, &mgr->stat.number_of_LinphoneCallIncomingReceived, 1));
|
||||
|
|
@ -238,7 +243,7 @@ static void call_with_multiple_audio_mline_in_sdp(void) {
|
|||
|
||||
scen = bc_tester_res("sipp/call_with_multiple_audio_mline_in_sdp.xml");
|
||||
|
||||
sipp_out = sip_start(scen, linphone_address_get_username(mgr->identity), mgr->identity);
|
||||
sipp_out = sip_start(scen, linphone_address_get_username(mgr->identity), NULL, mgr->identity);
|
||||
|
||||
if (sipp_out) {
|
||||
BC_ASSERT_TRUE(wait_for(mgr->lc, mgr->lc, &mgr->stat.number_of_LinphoneCallIncomingReceived, 1));
|
||||
|
|
@ -279,7 +284,7 @@ static void call_with_multiple_video_mline_in_sdp(void) {
|
|||
|
||||
scen = bc_tester_res("sipp/call_with_multiple_video_mline_in_sdp.xml");
|
||||
|
||||
sipp_out = sip_start(scen, linphone_address_get_username(mgr->identity), mgr->identity);
|
||||
sipp_out = sip_start(scen, linphone_address_get_username(mgr->identity), NULL, mgr->identity);
|
||||
|
||||
if (sipp_out) {
|
||||
BC_ASSERT_TRUE(wait_for(mgr->lc, mgr->lc, &mgr->stat.number_of_LinphoneCallIncomingReceived, 1));
|
||||
|
|
|
|||
|
|
@ -540,12 +540,16 @@ static void early_media_call_forking(void) {
|
|||
linphone_core_set_user_agent(marie2->lc,"Natted Linphone",NULL);
|
||||
linphone_core_set_user_agent(pauline->lc,"Natted Linphone",NULL);
|
||||
|
||||
linphone_core_enable_video(pauline->lc,TRUE,TRUE);
|
||||
|
||||
linphone_core_enable_video(marie->lc,TRUE,TRUE);
|
||||
linphone_core_enable_video_capture(pauline->lc,TRUE);
|
||||
linphone_core_enable_video_display(pauline->lc,TRUE);
|
||||
|
||||
linphone_core_enable_video_capture(marie->lc,TRUE);
|
||||
linphone_core_enable_video_display(marie->lc,TRUE);
|
||||
linphone_core_set_video_policy(marie->lc,&pol);
|
||||
|
||||
linphone_core_enable_video(marie2->lc,TRUE,TRUE);
|
||||
linphone_core_enable_video_capture(marie2->lc,TRUE);
|
||||
linphone_core_enable_video_display(marie2->lc,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);
|
||||
|
|
@ -911,16 +915,20 @@ static void dos_module_trigger(void) {
|
|||
linphone_core_manager_destroy(pauline);
|
||||
}
|
||||
|
||||
#define USE_PRESENCE_SERVER 0
|
||||
|
||||
static void test_subscribe_notify_with_sipp_publisher(void) {
|
||||
#if USE_PRESENCE_SERVER
|
||||
char *scen;
|
||||
FILE * sipp_out;
|
||||
LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc");
|
||||
/*just to get an identity*/
|
||||
LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc");
|
||||
|
||||
LinphoneAddress *sip_example_org;
|
||||
const LinphoneAuthInfo *marie_auth = linphone_core_find_auth_info(marie->lc, NULL, linphone_address_get_username(marie->identity), NULL);
|
||||
LpConfig *pauline_lp = linphone_core_get_config(pauline->lc);
|
||||
|
||||
linphone_core_set_user_agent(marie->lc, "full-presence-support", NULL);
|
||||
linphone_core_set_user_agent(pauline->lc, "full-presence-support", NULL);
|
||||
|
||||
char* lf_identity=linphone_address_as_string_uri_only(marie->identity);
|
||||
LinphoneFriend *lf = linphone_core_create_friend_with_address(pauline->lc,lf_identity);
|
||||
ms_free(lf_identity);
|
||||
|
|
@ -930,32 +938,39 @@ static void test_subscribe_notify_with_sipp_publisher(void) {
|
|||
linphone_core_add_friend(pauline->lc,lf);
|
||||
|
||||
/*wait for subscribe acknowledgment*/
|
||||
wait_for_until(pauline->lc,pauline->lc,&pauline->stat.number_of_NotifyReceived,1,2000);
|
||||
BC_ASSERT_TRUE(wait_for_until(pauline->lc,pauline->lc,&pauline->stat.number_of_NotifyPresenceReceived,1,2000));
|
||||
BC_ASSERT_EQUAL(LinphoneStatusOffline,linphone_friend_get_status(lf), int, "%d");
|
||||
|
||||
scen = bc_tester_res("sipp/simple_publish.xml");
|
||||
|
||||
sipp_out = sip_start(scen, linphone_address_get_username(marie->identity), marie->identity);
|
||||
|
||||
|
||||
sip_example_org = linphone_core_manager_resolve(marie, marie->identity);
|
||||
sipp_out = sip_start(scen, linphone_address_get_username(marie->identity), linphone_auth_info_get_passwd(marie_auth), sip_example_org);
|
||||
linphone_address_destroy(sip_example_org);
|
||||
|
||||
if (sipp_out) {
|
||||
/*wait for marie status*/
|
||||
wait_for_until(pauline->lc,pauline->lc,&pauline->stat.number_of_NotifyReceived,2,3000);
|
||||
BC_ASSERT_TRUE(wait_for_until(pauline->lc,pauline->lc,&pauline->stat.number_of_NotifyPresenceReceived,2,3000));
|
||||
BC_ASSERT_EQUAL(LinphoneStatusOnline,linphone_friend_get_status(lf), int, "%d");
|
||||
pclose(sipp_out);
|
||||
BC_ASSERT_EQUAL(0,pclose(sipp_out),int,"%d");
|
||||
}
|
||||
|
||||
linphone_core_manager_destroy(marie);
|
||||
linphone_core_manager_destroy(pauline);
|
||||
#endif
|
||||
}
|
||||
static void test_subscribe_notify_with_sipp_publisher_double_publish(void) {
|
||||
#if USE_PRESENCE_SERVER
|
||||
#if 0
|
||||
//does not work because sipp seams not able to manage 2 call id in case file
|
||||
|
||||
char *scen;
|
||||
FILE * sipp_out;
|
||||
LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_rc");
|
||||
/*just to get an identity*/
|
||||
LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc");
|
||||
|
||||
LinphoneAddress *sip_example_org;
|
||||
|
||||
linphone_core_set_user_agent(marie->lc, "full-presence-support", NULL);
|
||||
linphone_core_set_user_agent(pauline->lc, "full-presence-support", NULL);
|
||||
|
||||
LpConfig *pauline_lp = linphone_core_get_config(pauline->lc);
|
||||
char* lf_identity=linphone_address_as_string_uri_only(marie->identity);
|
||||
LinphoneFriend *lf = linphone_core_create_friend_with_address(pauline->lc,lf_identity);
|
||||
|
|
@ -965,19 +980,20 @@ static void test_subscribe_notify_with_sipp_publisher_double_publish(void) {
|
|||
linphone_core_add_friend(pauline->lc,lf);
|
||||
|
||||
/*wait for subscribe acknowledgment*/
|
||||
wait_for_until(pauline->lc,pauline->lc,&pauline->stat.number_of_NotifyReceived,1,2000);
|
||||
BC_ASSERT_TRUE(wait_for_until(pauline->lc,pauline->lc,&pauline->stat.number_of_NotifyPresenceReceived,1,2000));
|
||||
BC_ASSERT_EQUAL(LinphoneStatusOffline,linphone_friend_get_status(lf), int, "%d");
|
||||
|
||||
scen = bc_tester_res("sipp/double_publish_with_error.xml");
|
||||
|
||||
sipp_out = sip_start(scen, linphone_address_get_username(marie->identity), marie->identity);
|
||||
|
||||
|
||||
sip_example_org = linphone_core_manager_resolve(marie, marie->identity);
|
||||
sipp_out = sip_start(scen, linphone_address_get_username(marie->identity), sip_example_org);
|
||||
|
||||
if (sipp_out) {
|
||||
/*wait for marie status*/
|
||||
wait_for_until(pauline->lc,pauline->lc,&pauline->stat.number_of_NotifyReceived,2,3000);
|
||||
BC_ASSERT_TRUE(wait_for_until(pauline->lc,pauline->lc,&pauline->stat.number_of_NotifyPresenceReceived,2,3000));
|
||||
BC_ASSERT_EQUAL(LinphoneStatusOnline,linphone_friend_get_status(lf), int, "%d");
|
||||
pclose(sipp_out);
|
||||
BC_ASSERT_EQUAL(pauline->stat.number_of_NotifyReceived,2,int, "%d");
|
||||
BC_ASSERT_EQUAL(pauline->stat.number_of_NotifyPresenceReceived,2,int, "%d");
|
||||
}
|
||||
|
||||
linphone_core_manager_destroy(marie);
|
||||
|
|
@ -1080,6 +1096,27 @@ static void test_list_subscribe (void) {
|
|||
linphone_core_manager_destroy(laure);
|
||||
}
|
||||
|
||||
static void test_subscribe_on_wrong_dialog(void) {
|
||||
char *scen;
|
||||
FILE * sipp_out;
|
||||
/*just to get an identity*/
|
||||
LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc");
|
||||
const LinphoneAuthInfo *marie_auth = linphone_core_find_auth_info(marie->lc, NULL, linphone_address_get_username(marie->identity), NULL);
|
||||
LinphoneAddress *sip_example_org;
|
||||
|
||||
scen = bc_tester_res("sipp/subscribe_on_wrong_dialog.xml");
|
||||
sip_example_org = linphone_core_manager_resolve(marie, marie->identity);
|
||||
sipp_out = sip_start(scen, linphone_address_get_username(marie->identity),linphone_auth_info_get_passwd(marie_auth), sip_example_org);
|
||||
linphone_address_destroy(sip_example_org);
|
||||
|
||||
if (sipp_out) {
|
||||
/*wait for marie status*/
|
||||
BC_ASSERT_EQUAL(0, pclose(sipp_out),int,"%d");
|
||||
}
|
||||
|
||||
linphone_core_manager_destroy(marie);
|
||||
}
|
||||
|
||||
|
||||
test_t flexisip_tests[] = {
|
||||
TEST_ONE_TAG("Subscribe forking", subscribe_forking, "LeaksMemory"),
|
||||
|
|
@ -1098,14 +1135,15 @@ test_t flexisip_tests[] = {
|
|||
TEST_NO_TAG("Call with sips", call_with_sips),
|
||||
TEST_ONE_TAG("Call with sips not achievable", call_with_sips_not_achievable, "LeaksMemory"),
|
||||
TEST_NO_TAG("Call with ipv6", call_with_ipv6),
|
||||
TEST_NO_TAG("Subscribe Notify with sipp publisher", test_subscribe_notify_with_sipp_publisher),
|
||||
TEST_NO_TAG("Subscribe Notify with sipp double publish", test_subscribe_notify_with_sipp_publisher_double_publish),
|
||||
TEST_ONE_TAG("Subscribe Notify with sipp publisher", test_subscribe_notify_with_sipp_publisher, "LeaksMemory"),
|
||||
TEST_ONE_TAG("Subscribe Notify with sipp double publish", test_subscribe_notify_with_sipp_publisher_double_publish, "LeaksMemory"),
|
||||
TEST_NO_TAG("Publish/unpublish", test_publish_unpublish),
|
||||
TEST_ONE_TAG("List subscribe", test_list_subscribe, "LeaksMemory"),
|
||||
TEST_ONE_TAG("List subscribe", test_list_subscribe,"LeaksMemory"),
|
||||
TEST_ONE_TAG("File transfer message rcs to external body client", file_transfer_message_rcs_to_external_body_client, "LeaksMemory"),
|
||||
TEST_ONE_TAG("File transfer message external body to rcs client", file_transfer_message_external_body_to_rcs_client, "LeaksMemory"),
|
||||
TEST_ONE_TAG("File transfer message external body to external body client", file_transfer_message_external_body_to_external_body_client, "LeaksMemory"),
|
||||
TEST_NO_TAG("DoS module trigger by sending a lot of chat messages", dos_module_trigger)
|
||||
TEST_NO_TAG("DoS module trigger by sending a lot of chat messages", dos_module_trigger),
|
||||
TEST_NO_TAG("Subscribe on wrong dialog", test_subscribe_on_wrong_dialog)
|
||||
};
|
||||
|
||||
test_suite_t flexisip_test_suite = {"Flexisip", NULL, NULL, liblinphone_tester_before_each, liblinphone_tester_after_each,
|
||||
|
|
|
|||
|
|
@ -366,8 +366,9 @@ LinphoneConferenceServer* linphone_conference_server_new(const char *rc_file, bo
|
|||
void linphone_conference_server_destroy(LinphoneConferenceServer *conf_srv);
|
||||
|
||||
extern const char *liblinphone_tester_mire_id;
|
||||
|
||||
FILE *sip_start(const char *senario, const char* dest_username, LinphoneAddress* dest_addres);
|
||||
|
||||
LinphoneAddress * linphone_core_manager_resolve(LinphoneCoreManager *mgr, const LinphoneAddress *source);
|
||||
FILE *sip_start(const char *senario, const char* dest_username, const char *passwd, LinphoneAddress* dest_addres);
|
||||
|
||||
void wait_core(LinphoneCore *core) ;
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ default_proxy=0
|
|||
ping_with_options=0
|
||||
register_only_when_network_is_up=0
|
||||
composing_idle_timeout=1
|
||||
store_ha1_passwd=0 #used for sipp
|
||||
|
||||
[auth_info_0]
|
||||
username=marie
|
||||
|
|
|
|||
|
|
@ -53,6 +53,38 @@
|
|||
<recv response="100"
|
||||
optional="true">
|
||||
</recv>
|
||||
|
||||
<recv response="407" auth="true">
|
||||
</recv>
|
||||
|
||||
<send retrans="500">
|
||||
<![CDATA[
|
||||
|
||||
PUBLISH sip:[service]@[remote_ip]:[remote_port] SIP/2.0
|
||||
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
|
||||
From: sipp <sip:[service]@sip.example.org>;tag=[pid]SIPpTag00[call_number]
|
||||
To: sipp <sip:[service]@sip.example.org>
|
||||
Call-ID: [call_id]
|
||||
CSeq: 2 PUBLISH
|
||||
Max-Forwards: 70
|
||||
[authentication]
|
||||
Expire: 60
|
||||
Event: presence
|
||||
Content-Type: application/pidf+xml
|
||||
Content-Length: [len]
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<presence xmlns:dm="urn:ietf:params:xml:ns:pidf:data-model" xmlns:rpid="urn:ietf:params:xml:ns:pidf:rpid" entity="sip:[service]@sip.example.org" xmlns="urn:ietf:params:xml:ns:pidf">
|
||||
<tuple id="jjlson">
|
||||
<status>
|
||||
<basic>open</basic>
|
||||
</status>
|
||||
<contact priority="0.8">sip:[service]@[local_ip]:[local_port]</contact>
|
||||
<timestamp>2015-09-28T15:49:00Z</timestamp>
|
||||
</tuple>
|
||||
</presence>
|
||||
]]>
|
||||
</send>
|
||||
|
||||
|
||||
<!-- By adding rrs="true" (Record Route Sets), the route sets -->
|
||||
|
|
|
|||
81
tester/sipp/subscribe_on_wrong_dialog.xml
Normal file
81
tester/sipp/subscribe_on_wrong_dialog.xml
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||
<!DOCTYPE scenario SYSTEM "sipp.dtd">
|
||||
|
||||
<!-- This program is free software; you can redistribute it and/or -->
|
||||
<!-- modify it under the terms of the GNU General Public License as -->
|
||||
<!-- published by the Free Software Foundation; either version 2 of the -->
|
||||
<!-- License, or (at your option) any later version. -->
|
||||
<!-- -->
|
||||
<!-- This program is distributed in the hope that it will be useful, -->
|
||||
<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of -->
|
||||
<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -->
|
||||
<!-- GNU General Public License for more details. -->
|
||||
<!-- -->
|
||||
<!-- You should have received a copy of the GNU General Public License -->
|
||||
<!-- along with this program; if not, write to the -->
|
||||
<!-- Free Software Foundation, Inc., -->
|
||||
<!-- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -->
|
||||
<!-- -->
|
||||
<!-- -->
|
||||
|
||||
<scenario name="Basic Sipstone UAC">
|
||||
<!-- In client mode (sipp placing calls), the Call-ID MUST be -->
|
||||
<!-- generated by sipp. To do so, use [call_id] keyword. -->
|
||||
<send retrans="500">
|
||||
<![CDATA[
|
||||
|
||||
SUBSCRIBE sip:[service]@[remote_ip]:[remote_port] SIP/2.0
|
||||
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
|
||||
From: sipp <sip:[service]@sip.example.org>;tag=[pid]SIPpTag00[call_number]
|
||||
To: sut <sip:[service]@sip.example.org> ;tag=pasdetagicinormalement
|
||||
Call-ID: [call_id]
|
||||
CSeq: 1 SUBSCRIBE
|
||||
Contact: sip:sipp@[local_ip]:[local_port]
|
||||
Max-Forwards: 70
|
||||
Event: presence
|
||||
Expires: 60
|
||||
Accept: application/pidf+xml
|
||||
Allow-Events: presence
|
||||
User-Agent: full-presence-support
|
||||
Content-Length: 0
|
||||
|
||||
]]>
|
||||
</send>
|
||||
|
||||
<recv response="100" optional="true">
|
||||
</recv>
|
||||
<recv response="407" auth="true">
|
||||
</recv>
|
||||
|
||||
<send retrans="500">
|
||||
<![CDATA[
|
||||
|
||||
SUBSCRIBE sip:[service]@[remote_ip]:[remote_port] SIP/2.0
|
||||
Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
|
||||
From: sipp <sip:[service]@sip.example.org>;tag=[pid]SIPpTag00[call_number]
|
||||
To: sut <sip:[service]@sip.example.org> ;tag=pasdetagicinormalement
|
||||
Call-ID: [call_id]
|
||||
CSeq: 2 SUBSCRIBE
|
||||
Contact: sip:sipp@[local_ip]:[local_port]
|
||||
Max-Forwards: 70
|
||||
Event: presence
|
||||
[authentication]
|
||||
Expires: 60
|
||||
Accept: application/pidf+xml
|
||||
Allow-Events: presence
|
||||
User-Agent: full-presence-support
|
||||
Content-Length: 0
|
||||
|
||||
]]>
|
||||
</send>
|
||||
|
||||
|
||||
|
||||
<!-- By adding rrs="true" (Record Route Sets), the route sets -->
|
||||
<!-- are saved and used for following messages sent. Useful to test -->
|
||||
<!-- against stateful SIP proxies/B2BUAs. -->
|
||||
<recv response="481" rtd="true">
|
||||
</recv>
|
||||
|
||||
</scenario>
|
||||
|
||||
Loading…
Add table
Reference in a new issue