From b6678d64b6149b39e086f17cb0e4584abb6f4d90 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Mon, 26 Mar 2018 10:34:18 +0200 Subject: [PATCH 01/23] Fix error messages printed by mediastreamer2 due to empty string instead of null string. --- src/conference/session/media-session.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/conference/session/media-session.cpp b/src/conference/session/media-session.cpp index d4a4c873f..a124200cf 100644 --- a/src/conference/session/media-session.cpp +++ b/src/conference/session/media-session.cpp @@ -2697,7 +2697,7 @@ void MediaSessionPrivate::startAudioStream (CallSession::State targetState, bool io.output.soundcard = playcard; } else { io.output.type = MSResourceFile; - io.output.file = recfile.c_str(); + io.output.file = recfile.empty() ? nullptr : recfile.c_str(); } } else { io.input.type = io.output.type = MSResourceRtp; @@ -2711,7 +2711,7 @@ void MediaSessionPrivate::startAudioStream (CallSession::State targetState, bool io.output.soundcard = playcard; } else { io.output.type = MSResourceFile; - io.output.file = recfile.c_str(); + io.output.file = recfile.empty() ? nullptr : recfile.c_str(); } if (captcard) { io.input.type = MSResourceSoundcard; From eb2c46536ed61939d289664c69411576d4c774cf Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Fri, 22 Sep 2017 15:01:14 +0200 Subject: [PATCH 02/23] add offer answer test for payload types --- tester/offeranswer_tester.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/tester/offeranswer_tester.c b/tester/offeranswer_tester.c index b524381d5..5a70a42ba 100644 --- a/tester/offeranswer_tester.c +++ b/tester/offeranswer_tester.c @@ -105,6 +105,42 @@ static void simple_call_with_different_codec_mappings(void) { linphone_core_manager_destroy(pauline); } +static void simple_call_with_fmtps(void){ + LinphoneCoreManager* marie; + LinphoneCoreManager* pauline; + LinphoneCall *pauline_call; + + marie = linphone_core_manager_new( "marie_rc"); + pauline = linphone_core_manager_new( "pauline_tcp_rc"); + + disable_all_audio_codecs_except_one(marie->lc,"pcmu",-1); + disable_all_audio_codecs_except_one(pauline->lc,"pcmu",-1); + + /*marie set a fantasy fmtp to PCMU*/ + linphone_payload_type_set_recv_fmtp(linphone_core_get_payload_type(marie->lc, "PCMU", 8000, -1), "parles-plus-fort=1"); + + BC_ASSERT_TRUE(call(marie,pauline)); + pauline_call=linphone_core_get_current_call(pauline->lc); + BC_ASSERT_PTR_NOT_NULL(pauline_call); + if (pauline_call){ + LinphonePayloadType *pt = linphone_call_params_get_used_audio_payload_type(linphone_call_get_current_params(pauline_call)); + BC_ASSERT_PTR_NOT_NULL(pt); + if (pt){ + BC_ASSERT_STRING_EQUAL(linphone_payload_type_get_send_fmtp(pt),"parles-plus-fort=1"); + } + pt = linphone_call_params_get_used_audio_payload_type(linphone_call_get_current_params(linphone_core_get_current_call(marie->lc))); + BC_ASSERT_PTR_NOT_NULL(pt); + if (pt){ + ms_message("send_fmtp=%s, recv_fmtp=%s", linphone_payload_type_get_send_fmtp(pt), linphone_payload_type_get_recv_fmtp(pt)); + BC_ASSERT_STRING_EQUAL(linphone_payload_type_get_recv_fmtp(pt),"parles-plus-fort=1"); + } + } + + end_call(marie,pauline); + linphone_core_manager_destroy(marie); + linphone_core_manager_destroy(pauline); +} + static void call_failed_because_of_codecs(void) { LinphoneCoreManager* marie = linphone_core_manager_new( "marie_rc"); LinphoneCoreManager* pauline = linphone_core_manager_new( "pauline_tcp_rc"); @@ -492,6 +528,7 @@ static test_t offeranswer_tests[] = { TEST_NO_TAG("Start with no config", start_with_no_config), TEST_NO_TAG("Call failed because of codecs", call_failed_because_of_codecs), TEST_NO_TAG("Simple call with different codec mappings", simple_call_with_different_codec_mappings), + TEST_NO_TAG("Simple call with fmtps", simple_call_with_fmtps), TEST_NO_TAG("AVP to AVP call", avp_to_avp_call), TEST_NO_TAG("AVP to AVPF call", avp_to_avpf_call), TEST_NO_TAG("AVP to SAVP call", avp_to_savp_call), From 3ca2b0232d3f7c333d6533836e0887904fed059b Mon Sep 17 00:00:00 2001 From: Erwan Croze Date: Fri, 22 Sep 2017 16:33:35 +0200 Subject: [PATCH 03/23] Fix cancelled_ringing_call test --- tester/call_single_tester.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/tester/call_single_tester.c b/tester/call_single_tester.c index 029f921b8..88a6de226 100644 --- a/tester/call_single_tester.c +++ b/tester/call_single_tester.c @@ -1163,6 +1163,8 @@ static void cancel_other_device_after_accept(void) { BC_ASSERT_TRUE(wait_for(caller_mgr->lc,callee_mgr_2->lc,&callee_mgr_2->stat.number_of_LinphoneCallEnd,1)); BC_ASSERT_TRUE(wait_for(caller_mgr->lc,callee_mgr_2->lc,&callee_mgr_2->stat.number_of_LinphoneCallReleased,1)); + wait_for_until(caller_mgr->lc,callee_mgr_2->lc,NULL,0,500); + rei = linphone_call_get_error_info(call_callee_2); BC_ASSERT_PTR_NOT_NULL(rei); if (rei){ @@ -1353,9 +1355,10 @@ static void cancelled_ringing_call(void) { BC_ASSERT_EQUAL(pauline->stat.number_of_LinphoneCallEnd,1, int, "%d"); call_history = linphone_core_get_call_history(marie->lc); - BC_ASSERT_PTR_NOT_NULL(call_history); - BC_ASSERT_EQUAL((int)bctbx_list_size(call_history),1, int,"%i"); - BC_ASSERT_EQUAL(linphone_call_log_get_status((LinphoneCallLog*)bctbx_list_get_data(call_history)), LinphoneCallMissed, LinphoneCallStatus, "%i"); + if (BC_ASSERT_PTR_NOT_NULL(call_history)) { + BC_ASSERT_EQUAL((int)bctbx_list_size(call_history),1, int,"%i"); + BC_ASSERT_EQUAL(linphone_call_log_get_status((LinphoneCallLog*)bctbx_list_get_data(call_history)), LinphoneCallMissed, LinphoneCallStatus, "%i"); + } linphone_call_unref(out_call); linphone_core_manager_destroy(marie); @@ -5082,6 +5085,7 @@ static void recovered_call_on_network_switch_during_reinvite_1(void) { wait_for(marie->lc, pauline->lc, &marie->stat.number_of_NetworkReachableTrue, 2); BC_ASSERT_TRUE(wait_for(marie->lc, pauline->lc, &marie->stat.number_of_LinphoneCallPaused, 1)); + wait_for_until(marie->lc, pauline->lc, NULL, 1, 2000); linphone_call_terminate(incoming_call); BC_ASSERT_TRUE(wait_for(marie->lc, pauline->lc, &pauline->stat.number_of_LinphoneCallEnd, 1)); BC_ASSERT_TRUE(wait_for(marie->lc, pauline->lc, &marie->stat.number_of_LinphoneCallReleased, 1)); From 0945515d6c4e50959537473e801f8c545870f543 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Mon, 26 Mar 2018 15:40:51 +0200 Subject: [PATCH 04/23] Fix unreliability with custom header handling. (retrofit of commit 384669 from master branch) --- src/sal/sal.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/sal/sal.cpp b/src/sal/sal.cpp index 3346ab05e..a25236587 100644 --- a/src/sal/sal.cpp +++ b/src/sal/sal.cpp @@ -218,11 +218,14 @@ void Sal::process_request_event_cb (void *ud, const belle_sip_request_event_t *e if (!op->call_id) { op->call_id=ms_strdup(belle_sip_header_call_id_get_call_id(BELLE_SIP_HEADER_CALL_ID(belle_sip_message_get_header_by_type(BELLE_SIP_MESSAGE(req), belle_sip_header_call_id_t)))); } - /*It is worth noting that proxies can (and - will) remove this header field*/ + /*It is worth noting that proxies can (and will) remove this header field*/ op->set_privacy_from_message((belle_sip_message_t*)req); - - op->assign_recv_headers((belle_sip_message_t*)req); + + if (strcmp("ACK",method) != 0){ + /*The ACK custom header is processed specifically later on*/ + op->assign_recv_headers((belle_sip_message_t*)req); + } + if (op->callbacks && op->callbacks->process_request_event) { op->callbacks->process_request_event(op,event); } else { From 0d604bd547e4335da52b1bc8f4f8de662dc77f1d Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Wed, 28 Mar 2018 13:03:54 +0200 Subject: [PATCH 05/23] add performance test for resource list subscription --- tester/flexisip/userdb.conf | 2019 ++++++++++++++++++++++++++++++- tester/presence_server_tester.c | 25 +- 2 files changed, 2035 insertions(+), 9 deletions(-) diff --git a/tester/flexisip/userdb.conf b/tester/flexisip/userdb.conf index 5e861921d..b5d995365 100644 --- a/tester/flexisip/userdb.conf +++ b/tester/flexisip/userdb.conf @@ -1,9 +1,2012 @@ version:1 -liblinphone_tester@sip.example.org clrtxt:secret ; -liblinphone_tester@auth.example.org clrtxt:secret ; -liblinphone_tester@auth1.example.org clrtxt:secret ; -tester@sip.example.org clrtxt:secret ; -pauline@sip.example.org clrtxt:secret ; -marie@sip.example.org cltxt:secret ; -laure@sip.example.org clrtxt:secret ; -bellesip@sip.example.org clrtxt:secret ; +liblinphone_tester@sip.example.org md5:19ffdcec6adc70629617046a60e529fc ; liblinphone_tester +33123456789 +liblinphone_tester@auth.example.org md5:db9ddf59cb75ae15f51745192d23ddae ; +liblinphone_tester@auth1.example.org md5:fe32fa7157d629145f1282a73a36a961 ; +tester@sip.example.org md5:61d963d04c360eceb424043e0d53676b ; +pauline@sip.example.org md5:46b03c8f72e61f4340a6d3d06a726d2e ; +marie@sip.example.org md5:c4ce0fe4c1c82e4b700726e085aee9b3 ; +laure@sip.example.org md5:63d09951793c1361768531f9a9011331 ; +bellesip@sip.example.org md5:2fc013743b860819a784b0e6c4bee11a ; +liblinphone_sha_tester@sip.example.org clrtxt:secret ; +test%20username@sip.example.org clrtxt:secret ; + +sip:user_1@sip.example.org clrtxt:secret ; +sip:user_2@sip.example.org clrtxt:secret ; +sip:user_3@sip.example.org clrtxt:secret ; +sip:user_4@sip.example.org clrtxt:secret ; +sip:user_5@sip.example.org clrtxt:secret ; +sip:user_6@sip.example.org clrtxt:secret ; +sip:user_7@sip.example.org clrtxt:secret ; +sip:user_8@sip.example.org clrtxt:secret ; +sip:user_9@sip.example.org clrtxt:secret ; +sip:user_10@sip.example.org clrtxt:secret ; +sip:user_11@sip.example.org clrtxt:secret ; +sip:user_12@sip.example.org clrtxt:secret ; +sip:user_13@sip.example.org clrtxt:secret ; +sip:user_14@sip.example.org clrtxt:secret ; +sip:user_15@sip.example.org clrtxt:secret ; +sip:user_16@sip.example.org clrtxt:secret ; +sip:user_17@sip.example.org clrtxt:secret ; +sip:user_18@sip.example.org clrtxt:secret ; +sip:user_19@sip.example.org clrtxt:secret ; +sip:user_20@sip.example.org clrtxt:secret ; +sip:user_21@sip.example.org clrtxt:secret ; +sip:user_22@sip.example.org clrtxt:secret ; +sip:user_23@sip.example.org clrtxt:secret ; +sip:user_24@sip.example.org clrtxt:secret ; +sip:user_25@sip.example.org clrtxt:secret ; +sip:user_26@sip.example.org clrtxt:secret ; +sip:user_27@sip.example.org clrtxt:secret ; +sip:user_28@sip.example.org clrtxt:secret ; +sip:user_29@sip.example.org clrtxt:secret ; +sip:user_30@sip.example.org clrtxt:secret ; +sip:user_31@sip.example.org clrtxt:secret ; +sip:user_32@sip.example.org clrtxt:secret ; +sip:user_33@sip.example.org clrtxt:secret ; +sip:user_34@sip.example.org clrtxt:secret ; +sip:user_35@sip.example.org clrtxt:secret ; +sip:user_36@sip.example.org clrtxt:secret ; +sip:user_37@sip.example.org clrtxt:secret ; +sip:user_38@sip.example.org clrtxt:secret ; +sip:user_39@sip.example.org clrtxt:secret ; +sip:user_40@sip.example.org clrtxt:secret ; +sip:user_41@sip.example.org clrtxt:secret ; +sip:user_42@sip.example.org clrtxt:secret ; +sip:user_43@sip.example.org clrtxt:secret ; +sip:user_44@sip.example.org clrtxt:secret ; +sip:user_45@sip.example.org clrtxt:secret ; +sip:user_46@sip.example.org clrtxt:secret ; +sip:user_47@sip.example.org clrtxt:secret ; +sip:user_48@sip.example.org clrtxt:secret ; +sip:user_49@sip.example.org clrtxt:secret ; +sip:user_50@sip.example.org clrtxt:secret ; +sip:user_51@sip.example.org clrtxt:secret ; +sip:user_52@sip.example.org clrtxt:secret ; +sip:user_53@sip.example.org clrtxt:secret ; +sip:user_54@sip.example.org clrtxt:secret ; +sip:user_55@sip.example.org clrtxt:secret ; +sip:user_56@sip.example.org clrtxt:secret ; +sip:user_57@sip.example.org clrtxt:secret ; +sip:user_58@sip.example.org clrtxt:secret ; +sip:user_59@sip.example.org clrtxt:secret ; +sip:user_60@sip.example.org clrtxt:secret ; +sip:user_61@sip.example.org clrtxt:secret ; +sip:user_62@sip.example.org clrtxt:secret ; +sip:user_63@sip.example.org clrtxt:secret ; +sip:user_64@sip.example.org clrtxt:secret ; +sip:user_65@sip.example.org clrtxt:secret ; +sip:user_66@sip.example.org clrtxt:secret ; +sip:user_67@sip.example.org clrtxt:secret ; +sip:user_68@sip.example.org clrtxt:secret ; +sip:user_69@sip.example.org clrtxt:secret ; +sip:user_70@sip.example.org clrtxt:secret ; +sip:user_71@sip.example.org clrtxt:secret ; +sip:user_72@sip.example.org clrtxt:secret ; +sip:user_73@sip.example.org clrtxt:secret ; +sip:user_74@sip.example.org clrtxt:secret ; +sip:user_75@sip.example.org clrtxt:secret ; +sip:user_76@sip.example.org clrtxt:secret ; +sip:user_77@sip.example.org clrtxt:secret ; +sip:user_78@sip.example.org clrtxt:secret ; +sip:user_79@sip.example.org clrtxt:secret ; +sip:user_80@sip.example.org clrtxt:secret ; +sip:user_81@sip.example.org clrtxt:secret ; +sip:user_82@sip.example.org clrtxt:secret ; +sip:user_83@sip.example.org clrtxt:secret ; +sip:user_84@sip.example.org clrtxt:secret ; +sip:user_85@sip.example.org clrtxt:secret ; +sip:user_86@sip.example.org clrtxt:secret ; +sip:user_87@sip.example.org clrtxt:secret ; +sip:user_88@sip.example.org clrtxt:secret ; +sip:user_89@sip.example.org clrtxt:secret ; +sip:user_90@sip.example.org clrtxt:secret ; +sip:user_91@sip.example.org clrtxt:secret ; +sip:user_92@sip.example.org clrtxt:secret ; +sip:user_93@sip.example.org clrtxt:secret ; +sip:user_94@sip.example.org clrtxt:secret ; +sip:user_95@sip.example.org clrtxt:secret ; +sip:user_96@sip.example.org clrtxt:secret ; +sip:user_97@sip.example.org clrtxt:secret ; +sip:user_98@sip.example.org clrtxt:secret ; +sip:user_99@sip.example.org clrtxt:secret ; +sip:user_100@sip.example.org clrtxt:secret ; +sip:user_101@sip.example.org clrtxt:secret ; +sip:user_102@sip.example.org clrtxt:secret ; +sip:user_103@sip.example.org clrtxt:secret ; +sip:user_104@sip.example.org clrtxt:secret ; +sip:user_105@sip.example.org clrtxt:secret ; +sip:user_106@sip.example.org clrtxt:secret ; +sip:user_107@sip.example.org clrtxt:secret ; +sip:user_108@sip.example.org clrtxt:secret ; +sip:user_109@sip.example.org clrtxt:secret ; +sip:user_110@sip.example.org clrtxt:secret ; +sip:user_111@sip.example.org clrtxt:secret ; +sip:user_112@sip.example.org clrtxt:secret ; +sip:user_113@sip.example.org clrtxt:secret ; +sip:user_114@sip.example.org clrtxt:secret ; +sip:user_115@sip.example.org clrtxt:secret ; +sip:user_116@sip.example.org clrtxt:secret ; +sip:user_117@sip.example.org clrtxt:secret ; +sip:user_118@sip.example.org clrtxt:secret ; +sip:user_119@sip.example.org clrtxt:secret ; +sip:user_120@sip.example.org clrtxt:secret ; +sip:user_121@sip.example.org clrtxt:secret ; +sip:user_122@sip.example.org clrtxt:secret ; +sip:user_123@sip.example.org clrtxt:secret ; +sip:user_124@sip.example.org clrtxt:secret ; +sip:user_125@sip.example.org clrtxt:secret ; +sip:user_126@sip.example.org clrtxt:secret ; +sip:user_127@sip.example.org clrtxt:secret ; +sip:user_128@sip.example.org clrtxt:secret ; +sip:user_129@sip.example.org clrtxt:secret ; +sip:user_130@sip.example.org clrtxt:secret ; +sip:user_131@sip.example.org clrtxt:secret ; +sip:user_132@sip.example.org clrtxt:secret ; +sip:user_133@sip.example.org clrtxt:secret ; +sip:user_134@sip.example.org clrtxt:secret ; +sip:user_135@sip.example.org clrtxt:secret ; +sip:user_136@sip.example.org clrtxt:secret ; +sip:user_137@sip.example.org clrtxt:secret ; +sip:user_138@sip.example.org clrtxt:secret ; +sip:user_139@sip.example.org clrtxt:secret ; +sip:user_140@sip.example.org clrtxt:secret ; +sip:user_141@sip.example.org clrtxt:secret ; +sip:user_142@sip.example.org clrtxt:secret ; +sip:user_143@sip.example.org clrtxt:secret ; +sip:user_144@sip.example.org clrtxt:secret ; +sip:user_145@sip.example.org clrtxt:secret ; +sip:user_146@sip.example.org clrtxt:secret ; +sip:user_147@sip.example.org clrtxt:secret ; +sip:user_148@sip.example.org clrtxt:secret ; +sip:user_149@sip.example.org clrtxt:secret ; +sip:user_150@sip.example.org clrtxt:secret ; +sip:user_151@sip.example.org clrtxt:secret ; +sip:user_152@sip.example.org clrtxt:secret ; +sip:user_153@sip.example.org clrtxt:secret ; +sip:user_154@sip.example.org clrtxt:secret ; +sip:user_155@sip.example.org clrtxt:secret ; +sip:user_156@sip.example.org clrtxt:secret ; +sip:user_157@sip.example.org clrtxt:secret ; +sip:user_158@sip.example.org clrtxt:secret ; +sip:user_159@sip.example.org clrtxt:secret ; +sip:user_160@sip.example.org clrtxt:secret ; +sip:user_161@sip.example.org clrtxt:secret ; +sip:user_162@sip.example.org clrtxt:secret ; +sip:user_163@sip.example.org clrtxt:secret ; +sip:user_164@sip.example.org clrtxt:secret ; +sip:user_165@sip.example.org clrtxt:secret ; +sip:user_166@sip.example.org clrtxt:secret ; +sip:user_167@sip.example.org clrtxt:secret ; +sip:user_168@sip.example.org clrtxt:secret ; +sip:user_169@sip.example.org clrtxt:secret ; +sip:user_170@sip.example.org clrtxt:secret ; +sip:user_171@sip.example.org clrtxt:secret ; +sip:user_172@sip.example.org clrtxt:secret ; +sip:user_173@sip.example.org clrtxt:secret ; +sip:user_174@sip.example.org clrtxt:secret ; +sip:user_175@sip.example.org clrtxt:secret ; +sip:user_176@sip.example.org clrtxt:secret ; +sip:user_177@sip.example.org clrtxt:secret ; +sip:user_178@sip.example.org clrtxt:secret ; +sip:user_179@sip.example.org clrtxt:secret ; +sip:user_180@sip.example.org clrtxt:secret ; +sip:user_181@sip.example.org clrtxt:secret ; +sip:user_182@sip.example.org clrtxt:secret ; +sip:user_183@sip.example.org clrtxt:secret ; +sip:user_184@sip.example.org clrtxt:secret ; +sip:user_185@sip.example.org clrtxt:secret ; +sip:user_186@sip.example.org clrtxt:secret ; +sip:user_187@sip.example.org clrtxt:secret ; +sip:user_188@sip.example.org clrtxt:secret ; +sip:user_189@sip.example.org clrtxt:secret ; +sip:user_190@sip.example.org clrtxt:secret ; +sip:user_191@sip.example.org clrtxt:secret ; +sip:user_192@sip.example.org clrtxt:secret ; +sip:user_193@sip.example.org clrtxt:secret ; +sip:user_194@sip.example.org clrtxt:secret ; +sip:user_195@sip.example.org clrtxt:secret ; +sip:user_196@sip.example.org clrtxt:secret ; +sip:user_197@sip.example.org clrtxt:secret ; +sip:user_198@sip.example.org clrtxt:secret ; +sip:user_199@sip.example.org clrtxt:secret ; +sip:user_200@sip.example.org clrtxt:secret ; +sip:user_201@sip.example.org clrtxt:secret ; +sip:user_202@sip.example.org clrtxt:secret ; +sip:user_203@sip.example.org clrtxt:secret ; +sip:user_204@sip.example.org clrtxt:secret ; +sip:user_205@sip.example.org clrtxt:secret ; +sip:user_206@sip.example.org clrtxt:secret ; +sip:user_207@sip.example.org clrtxt:secret ; +sip:user_208@sip.example.org clrtxt:secret ; +sip:user_209@sip.example.org clrtxt:secret ; +sip:user_210@sip.example.org clrtxt:secret ; +sip:user_211@sip.example.org clrtxt:secret ; +sip:user_212@sip.example.org clrtxt:secret ; +sip:user_213@sip.example.org clrtxt:secret ; +sip:user_214@sip.example.org clrtxt:secret ; +sip:user_215@sip.example.org clrtxt:secret ; +sip:user_216@sip.example.org clrtxt:secret ; +sip:user_217@sip.example.org clrtxt:secret ; +sip:user_218@sip.example.org clrtxt:secret ; +sip:user_219@sip.example.org clrtxt:secret ; +sip:user_220@sip.example.org clrtxt:secret ; +sip:user_221@sip.example.org clrtxt:secret ; +sip:user_222@sip.example.org clrtxt:secret ; +sip:user_223@sip.example.org clrtxt:secret ; +sip:user_224@sip.example.org clrtxt:secret ; +sip:user_225@sip.example.org clrtxt:secret ; +sip:user_226@sip.example.org clrtxt:secret ; +sip:user_227@sip.example.org clrtxt:secret ; +sip:user_228@sip.example.org clrtxt:secret ; +sip:user_229@sip.example.org clrtxt:secret ; +sip:user_230@sip.example.org clrtxt:secret ; +sip:user_231@sip.example.org clrtxt:secret ; +sip:user_232@sip.example.org clrtxt:secret ; +sip:user_233@sip.example.org clrtxt:secret ; +sip:user_234@sip.example.org clrtxt:secret ; +sip:user_235@sip.example.org clrtxt:secret ; +sip:user_236@sip.example.org clrtxt:secret ; +sip:user_237@sip.example.org clrtxt:secret ; +sip:user_238@sip.example.org clrtxt:secret ; +sip:user_239@sip.example.org clrtxt:secret ; +sip:user_240@sip.example.org clrtxt:secret ; +sip:user_241@sip.example.org clrtxt:secret ; +sip:user_242@sip.example.org clrtxt:secret ; +sip:user_243@sip.example.org clrtxt:secret ; +sip:user_244@sip.example.org clrtxt:secret ; +sip:user_245@sip.example.org clrtxt:secret ; +sip:user_246@sip.example.org clrtxt:secret ; +sip:user_247@sip.example.org clrtxt:secret ; +sip:user_248@sip.example.org clrtxt:secret ; +sip:user_249@sip.example.org clrtxt:secret ; +sip:user_250@sip.example.org clrtxt:secret ; +sip:user_251@sip.example.org clrtxt:secret ; +sip:user_252@sip.example.org clrtxt:secret ; +sip:user_253@sip.example.org clrtxt:secret ; +sip:user_254@sip.example.org clrtxt:secret ; +sip:user_255@sip.example.org clrtxt:secret ; +sip:user_256@sip.example.org clrtxt:secret ; +sip:user_257@sip.example.org clrtxt:secret ; +sip:user_258@sip.example.org clrtxt:secret ; +sip:user_259@sip.example.org clrtxt:secret ; +sip:user_260@sip.example.org clrtxt:secret ; +sip:user_261@sip.example.org clrtxt:secret ; +sip:user_262@sip.example.org clrtxt:secret ; +sip:user_263@sip.example.org clrtxt:secret ; +sip:user_264@sip.example.org clrtxt:secret ; +sip:user_265@sip.example.org clrtxt:secret ; +sip:user_266@sip.example.org clrtxt:secret ; +sip:user_267@sip.example.org clrtxt:secret ; +sip:user_268@sip.example.org clrtxt:secret ; +sip:user_269@sip.example.org clrtxt:secret ; +sip:user_270@sip.example.org clrtxt:secret ; +sip:user_271@sip.example.org clrtxt:secret ; +sip:user_272@sip.example.org clrtxt:secret ; +sip:user_273@sip.example.org clrtxt:secret ; +sip:user_274@sip.example.org clrtxt:secret ; +sip:user_275@sip.example.org clrtxt:secret ; +sip:user_276@sip.example.org clrtxt:secret ; +sip:user_277@sip.example.org clrtxt:secret ; +sip:user_278@sip.example.org clrtxt:secret ; +sip:user_279@sip.example.org clrtxt:secret ; +sip:user_280@sip.example.org clrtxt:secret ; +sip:user_281@sip.example.org clrtxt:secret ; +sip:user_282@sip.example.org clrtxt:secret ; +sip:user_283@sip.example.org clrtxt:secret ; +sip:user_284@sip.example.org clrtxt:secret ; +sip:user_285@sip.example.org clrtxt:secret ; +sip:user_286@sip.example.org clrtxt:secret ; +sip:user_287@sip.example.org clrtxt:secret ; +sip:user_288@sip.example.org clrtxt:secret ; +sip:user_289@sip.example.org clrtxt:secret ; +sip:user_290@sip.example.org clrtxt:secret ; +sip:user_291@sip.example.org clrtxt:secret ; +sip:user_292@sip.example.org clrtxt:secret ; +sip:user_293@sip.example.org clrtxt:secret ; +sip:user_294@sip.example.org clrtxt:secret ; +sip:user_295@sip.example.org clrtxt:secret ; +sip:user_296@sip.example.org clrtxt:secret ; +sip:user_297@sip.example.org clrtxt:secret ; +sip:user_298@sip.example.org clrtxt:secret ; +sip:user_299@sip.example.org clrtxt:secret ; +sip:user_300@sip.example.org clrtxt:secret ; +sip:user_301@sip.example.org clrtxt:secret ; +sip:user_302@sip.example.org clrtxt:secret ; +sip:user_303@sip.example.org clrtxt:secret ; +sip:user_304@sip.example.org clrtxt:secret ; +sip:user_305@sip.example.org clrtxt:secret ; +sip:user_306@sip.example.org clrtxt:secret ; +sip:user_307@sip.example.org clrtxt:secret ; +sip:user_308@sip.example.org clrtxt:secret ; +sip:user_309@sip.example.org clrtxt:secret ; +sip:user_310@sip.example.org clrtxt:secret ; +sip:user_311@sip.example.org clrtxt:secret ; +sip:user_312@sip.example.org clrtxt:secret ; +sip:user_313@sip.example.org clrtxt:secret ; +sip:user_314@sip.example.org clrtxt:secret ; +sip:user_315@sip.example.org clrtxt:secret ; +sip:user_316@sip.example.org clrtxt:secret ; +sip:user_317@sip.example.org clrtxt:secret ; +sip:user_318@sip.example.org clrtxt:secret ; +sip:user_319@sip.example.org clrtxt:secret ; +sip:user_320@sip.example.org clrtxt:secret ; +sip:user_321@sip.example.org clrtxt:secret ; +sip:user_322@sip.example.org clrtxt:secret ; +sip:user_323@sip.example.org clrtxt:secret ; +sip:user_324@sip.example.org clrtxt:secret ; +sip:user_325@sip.example.org clrtxt:secret ; +sip:user_326@sip.example.org clrtxt:secret ; +sip:user_327@sip.example.org clrtxt:secret ; +sip:user_328@sip.example.org clrtxt:secret ; +sip:user_329@sip.example.org clrtxt:secret ; +sip:user_330@sip.example.org clrtxt:secret ; +sip:user_331@sip.example.org clrtxt:secret ; +sip:user_332@sip.example.org clrtxt:secret ; +sip:user_333@sip.example.org clrtxt:secret ; +sip:user_334@sip.example.org clrtxt:secret ; +sip:user_335@sip.example.org clrtxt:secret ; +sip:user_336@sip.example.org clrtxt:secret ; +sip:user_337@sip.example.org clrtxt:secret ; +sip:user_338@sip.example.org clrtxt:secret ; +sip:user_339@sip.example.org clrtxt:secret ; +sip:user_340@sip.example.org clrtxt:secret ; +sip:user_341@sip.example.org clrtxt:secret ; +sip:user_342@sip.example.org clrtxt:secret ; +sip:user_343@sip.example.org clrtxt:secret ; +sip:user_344@sip.example.org clrtxt:secret ; +sip:user_345@sip.example.org clrtxt:secret ; +sip:user_346@sip.example.org clrtxt:secret ; +sip:user_347@sip.example.org clrtxt:secret ; +sip:user_348@sip.example.org clrtxt:secret ; +sip:user_349@sip.example.org clrtxt:secret ; +sip:user_350@sip.example.org clrtxt:secret ; +sip:user_351@sip.example.org clrtxt:secret ; +sip:user_352@sip.example.org clrtxt:secret ; +sip:user_353@sip.example.org clrtxt:secret ; +sip:user_354@sip.example.org clrtxt:secret ; +sip:user_355@sip.example.org clrtxt:secret ; +sip:user_356@sip.example.org clrtxt:secret ; +sip:user_357@sip.example.org clrtxt:secret ; +sip:user_358@sip.example.org clrtxt:secret ; +sip:user_359@sip.example.org clrtxt:secret ; +sip:user_360@sip.example.org clrtxt:secret ; +sip:user_361@sip.example.org clrtxt:secret ; +sip:user_362@sip.example.org clrtxt:secret ; +sip:user_363@sip.example.org clrtxt:secret ; +sip:user_364@sip.example.org clrtxt:secret ; +sip:user_365@sip.example.org clrtxt:secret ; +sip:user_366@sip.example.org clrtxt:secret ; +sip:user_367@sip.example.org clrtxt:secret ; +sip:user_368@sip.example.org clrtxt:secret ; +sip:user_369@sip.example.org clrtxt:secret ; +sip:user_370@sip.example.org clrtxt:secret ; +sip:user_371@sip.example.org clrtxt:secret ; +sip:user_372@sip.example.org clrtxt:secret ; +sip:user_373@sip.example.org clrtxt:secret ; +sip:user_374@sip.example.org clrtxt:secret ; +sip:user_375@sip.example.org clrtxt:secret ; +sip:user_376@sip.example.org clrtxt:secret ; +sip:user_377@sip.example.org clrtxt:secret ; +sip:user_378@sip.example.org clrtxt:secret ; +sip:user_379@sip.example.org clrtxt:secret ; +sip:user_380@sip.example.org clrtxt:secret ; +sip:user_381@sip.example.org clrtxt:secret ; +sip:user_382@sip.example.org clrtxt:secret ; +sip:user_383@sip.example.org clrtxt:secret ; +sip:user_384@sip.example.org clrtxt:secret ; +sip:user_385@sip.example.org clrtxt:secret ; +sip:user_386@sip.example.org clrtxt:secret ; +sip:user_387@sip.example.org clrtxt:secret ; +sip:user_388@sip.example.org clrtxt:secret ; +sip:user_389@sip.example.org clrtxt:secret ; +sip:user_390@sip.example.org clrtxt:secret ; +sip:user_391@sip.example.org clrtxt:secret ; +sip:user_392@sip.example.org clrtxt:secret ; +sip:user_393@sip.example.org clrtxt:secret ; +sip:user_394@sip.example.org clrtxt:secret ; +sip:user_395@sip.example.org clrtxt:secret ; +sip:user_396@sip.example.org clrtxt:secret ; +sip:user_397@sip.example.org clrtxt:secret ; +sip:user_398@sip.example.org clrtxt:secret ; +sip:user_399@sip.example.org clrtxt:secret ; +sip:user_400@sip.example.org clrtxt:secret ; +sip:user_401@sip.example.org clrtxt:secret ; +sip:user_402@sip.example.org clrtxt:secret ; +sip:user_403@sip.example.org clrtxt:secret ; +sip:user_404@sip.example.org clrtxt:secret ; +sip:user_405@sip.example.org clrtxt:secret ; +sip:user_406@sip.example.org clrtxt:secret ; +sip:user_407@sip.example.org clrtxt:secret ; +sip:user_408@sip.example.org clrtxt:secret ; +sip:user_409@sip.example.org clrtxt:secret ; +sip:user_410@sip.example.org clrtxt:secret ; +sip:user_411@sip.example.org clrtxt:secret ; +sip:user_412@sip.example.org clrtxt:secret ; +sip:user_413@sip.example.org clrtxt:secret ; +sip:user_414@sip.example.org clrtxt:secret ; +sip:user_415@sip.example.org clrtxt:secret ; +sip:user_416@sip.example.org clrtxt:secret ; +sip:user_417@sip.example.org clrtxt:secret ; +sip:user_418@sip.example.org clrtxt:secret ; +sip:user_419@sip.example.org clrtxt:secret ; +sip:user_420@sip.example.org clrtxt:secret ; +sip:user_421@sip.example.org clrtxt:secret ; +sip:user_422@sip.example.org clrtxt:secret ; +sip:user_423@sip.example.org clrtxt:secret ; +sip:user_424@sip.example.org clrtxt:secret ; +sip:user_425@sip.example.org clrtxt:secret ; +sip:user_426@sip.example.org clrtxt:secret ; +sip:user_427@sip.example.org clrtxt:secret ; +sip:user_428@sip.example.org clrtxt:secret ; +sip:user_429@sip.example.org clrtxt:secret ; +sip:user_430@sip.example.org clrtxt:secret ; +sip:user_431@sip.example.org clrtxt:secret ; +sip:user_432@sip.example.org clrtxt:secret ; +sip:user_433@sip.example.org clrtxt:secret ; +sip:user_434@sip.example.org clrtxt:secret ; +sip:user_435@sip.example.org clrtxt:secret ; +sip:user_436@sip.example.org clrtxt:secret ; +sip:user_437@sip.example.org clrtxt:secret ; +sip:user_438@sip.example.org clrtxt:secret ; +sip:user_439@sip.example.org clrtxt:secret ; +sip:user_440@sip.example.org clrtxt:secret ; +sip:user_441@sip.example.org clrtxt:secret ; +sip:user_442@sip.example.org clrtxt:secret ; +sip:user_443@sip.example.org clrtxt:secret ; +sip:user_444@sip.example.org clrtxt:secret ; +sip:user_445@sip.example.org clrtxt:secret ; +sip:user_446@sip.example.org clrtxt:secret ; +sip:user_447@sip.example.org clrtxt:secret ; +sip:user_448@sip.example.org clrtxt:secret ; +sip:user_449@sip.example.org clrtxt:secret ; +sip:user_450@sip.example.org clrtxt:secret ; +sip:user_451@sip.example.org clrtxt:secret ; +sip:user_452@sip.example.org clrtxt:secret ; +sip:user_453@sip.example.org clrtxt:secret ; +sip:user_454@sip.example.org clrtxt:secret ; +sip:user_455@sip.example.org clrtxt:secret ; +sip:user_456@sip.example.org clrtxt:secret ; +sip:user_457@sip.example.org clrtxt:secret ; +sip:user_458@sip.example.org clrtxt:secret ; +sip:user_459@sip.example.org clrtxt:secret ; +sip:user_460@sip.example.org clrtxt:secret ; +sip:user_461@sip.example.org clrtxt:secret ; +sip:user_462@sip.example.org clrtxt:secret ; +sip:user_463@sip.example.org clrtxt:secret ; +sip:user_464@sip.example.org clrtxt:secret ; +sip:user_465@sip.example.org clrtxt:secret ; +sip:user_466@sip.example.org clrtxt:secret ; +sip:user_467@sip.example.org clrtxt:secret ; +sip:user_468@sip.example.org clrtxt:secret ; +sip:user_469@sip.example.org clrtxt:secret ; +sip:user_470@sip.example.org clrtxt:secret ; +sip:user_471@sip.example.org clrtxt:secret ; +sip:user_472@sip.example.org clrtxt:secret ; +sip:user_473@sip.example.org clrtxt:secret ; +sip:user_474@sip.example.org clrtxt:secret ; +sip:user_475@sip.example.org clrtxt:secret ; +sip:user_476@sip.example.org clrtxt:secret ; +sip:user_477@sip.example.org clrtxt:secret ; +sip:user_478@sip.example.org clrtxt:secret ; +sip:user_479@sip.example.org clrtxt:secret ; +sip:user_480@sip.example.org clrtxt:secret ; +sip:user_481@sip.example.org clrtxt:secret ; +sip:user_482@sip.example.org clrtxt:secret ; +sip:user_483@sip.example.org clrtxt:secret ; +sip:user_484@sip.example.org clrtxt:secret ; +sip:user_485@sip.example.org clrtxt:secret ; +sip:user_486@sip.example.org clrtxt:secret ; +sip:user_487@sip.example.org clrtxt:secret ; +sip:user_488@sip.example.org clrtxt:secret ; +sip:user_489@sip.example.org clrtxt:secret ; +sip:user_490@sip.example.org clrtxt:secret ; +sip:user_491@sip.example.org clrtxt:secret ; +sip:user_492@sip.example.org clrtxt:secret ; +sip:user_493@sip.example.org clrtxt:secret ; +sip:user_494@sip.example.org clrtxt:secret ; +sip:user_495@sip.example.org clrtxt:secret ; +sip:user_496@sip.example.org clrtxt:secret ; +sip:user_497@sip.example.org clrtxt:secret ; +sip:user_498@sip.example.org clrtxt:secret ; +sip:user_499@sip.example.org clrtxt:secret ; +sip:user_500@sip.example.org clrtxt:secret ; +sip:user_501@sip.example.org clrtxt:secret ; +sip:user_502@sip.example.org clrtxt:secret ; +sip:user_503@sip.example.org clrtxt:secret ; +sip:user_504@sip.example.org clrtxt:secret ; +sip:user_505@sip.example.org clrtxt:secret ; +sip:user_506@sip.example.org clrtxt:secret ; +sip:user_507@sip.example.org clrtxt:secret ; +sip:user_508@sip.example.org clrtxt:secret ; +sip:user_509@sip.example.org clrtxt:secret ; +sip:user_510@sip.example.org clrtxt:secret ; +sip:user_511@sip.example.org clrtxt:secret ; +sip:user_512@sip.example.org clrtxt:secret ; +sip:user_513@sip.example.org clrtxt:secret ; +sip:user_514@sip.example.org clrtxt:secret ; +sip:user_515@sip.example.org clrtxt:secret ; +sip:user_516@sip.example.org clrtxt:secret ; +sip:user_517@sip.example.org clrtxt:secret ; +sip:user_518@sip.example.org clrtxt:secret ; +sip:user_519@sip.example.org clrtxt:secret ; +sip:user_520@sip.example.org clrtxt:secret ; +sip:user_521@sip.example.org clrtxt:secret ; +sip:user_522@sip.example.org clrtxt:secret ; +sip:user_523@sip.example.org clrtxt:secret ; +sip:user_524@sip.example.org clrtxt:secret ; +sip:user_525@sip.example.org clrtxt:secret ; +sip:user_526@sip.example.org clrtxt:secret ; +sip:user_527@sip.example.org clrtxt:secret ; +sip:user_528@sip.example.org clrtxt:secret ; +sip:user_529@sip.example.org clrtxt:secret ; +sip:user_530@sip.example.org clrtxt:secret ; +sip:user_531@sip.example.org clrtxt:secret ; +sip:user_532@sip.example.org clrtxt:secret ; +sip:user_533@sip.example.org clrtxt:secret ; +sip:user_534@sip.example.org clrtxt:secret ; +sip:user_535@sip.example.org clrtxt:secret ; +sip:user_536@sip.example.org clrtxt:secret ; +sip:user_537@sip.example.org clrtxt:secret ; +sip:user_538@sip.example.org clrtxt:secret ; +sip:user_539@sip.example.org clrtxt:secret ; +sip:user_540@sip.example.org clrtxt:secret ; +sip:user_541@sip.example.org clrtxt:secret ; +sip:user_542@sip.example.org clrtxt:secret ; +sip:user_543@sip.example.org clrtxt:secret ; +sip:user_544@sip.example.org clrtxt:secret ; +sip:user_545@sip.example.org clrtxt:secret ; +sip:user_546@sip.example.org clrtxt:secret ; +sip:user_547@sip.example.org clrtxt:secret ; +sip:user_548@sip.example.org clrtxt:secret ; +sip:user_549@sip.example.org clrtxt:secret ; +sip:user_550@sip.example.org clrtxt:secret ; +sip:user_551@sip.example.org clrtxt:secret ; +sip:user_552@sip.example.org clrtxt:secret ; +sip:user_553@sip.example.org clrtxt:secret ; +sip:user_554@sip.example.org clrtxt:secret ; +sip:user_555@sip.example.org clrtxt:secret ; +sip:user_556@sip.example.org clrtxt:secret ; +sip:user_557@sip.example.org clrtxt:secret ; +sip:user_558@sip.example.org clrtxt:secret ; +sip:user_559@sip.example.org clrtxt:secret ; +sip:user_560@sip.example.org clrtxt:secret ; +sip:user_561@sip.example.org clrtxt:secret ; +sip:user_562@sip.example.org clrtxt:secret ; +sip:user_563@sip.example.org clrtxt:secret ; +sip:user_564@sip.example.org clrtxt:secret ; +sip:user_565@sip.example.org clrtxt:secret ; +sip:user_566@sip.example.org clrtxt:secret ; +sip:user_567@sip.example.org clrtxt:secret ; +sip:user_568@sip.example.org clrtxt:secret ; +sip:user_569@sip.example.org clrtxt:secret ; +sip:user_570@sip.example.org clrtxt:secret ; +sip:user_571@sip.example.org clrtxt:secret ; +sip:user_572@sip.example.org clrtxt:secret ; +sip:user_573@sip.example.org clrtxt:secret ; +sip:user_574@sip.example.org clrtxt:secret ; +sip:user_575@sip.example.org clrtxt:secret ; +sip:user_576@sip.example.org clrtxt:secret ; +sip:user_577@sip.example.org clrtxt:secret ; +sip:user_578@sip.example.org clrtxt:secret ; +sip:user_579@sip.example.org clrtxt:secret ; +sip:user_580@sip.example.org clrtxt:secret ; +sip:user_581@sip.example.org clrtxt:secret ; +sip:user_582@sip.example.org clrtxt:secret ; +sip:user_583@sip.example.org clrtxt:secret ; +sip:user_584@sip.example.org clrtxt:secret ; +sip:user_585@sip.example.org clrtxt:secret ; +sip:user_586@sip.example.org clrtxt:secret ; +sip:user_587@sip.example.org clrtxt:secret ; +sip:user_588@sip.example.org clrtxt:secret ; +sip:user_589@sip.example.org clrtxt:secret ; +sip:user_590@sip.example.org clrtxt:secret ; +sip:user_591@sip.example.org clrtxt:secret ; +sip:user_592@sip.example.org clrtxt:secret ; +sip:user_593@sip.example.org clrtxt:secret ; +sip:user_594@sip.example.org clrtxt:secret ; +sip:user_595@sip.example.org clrtxt:secret ; +sip:user_596@sip.example.org clrtxt:secret ; +sip:user_597@sip.example.org clrtxt:secret ; +sip:user_598@sip.example.org clrtxt:secret ; +sip:user_599@sip.example.org clrtxt:secret ; +sip:user_600@sip.example.org clrtxt:secret ; +sip:user_601@sip.example.org clrtxt:secret ; +sip:user_602@sip.example.org clrtxt:secret ; +sip:user_603@sip.example.org clrtxt:secret ; +sip:user_604@sip.example.org clrtxt:secret ; +sip:user_605@sip.example.org clrtxt:secret ; +sip:user_606@sip.example.org clrtxt:secret ; +sip:user_607@sip.example.org clrtxt:secret ; +sip:user_608@sip.example.org clrtxt:secret ; +sip:user_609@sip.example.org clrtxt:secret ; +sip:user_610@sip.example.org clrtxt:secret ; +sip:user_611@sip.example.org clrtxt:secret ; +sip:user_612@sip.example.org clrtxt:secret ; +sip:user_613@sip.example.org clrtxt:secret ; +sip:user_614@sip.example.org clrtxt:secret ; +sip:user_615@sip.example.org clrtxt:secret ; +sip:user_616@sip.example.org clrtxt:secret ; +sip:user_617@sip.example.org clrtxt:secret ; +sip:user_618@sip.example.org clrtxt:secret ; +sip:user_619@sip.example.org clrtxt:secret ; +sip:user_620@sip.example.org clrtxt:secret ; +sip:user_621@sip.example.org clrtxt:secret ; +sip:user_622@sip.example.org clrtxt:secret ; +sip:user_623@sip.example.org clrtxt:secret ; +sip:user_624@sip.example.org clrtxt:secret ; +sip:user_625@sip.example.org clrtxt:secret ; +sip:user_626@sip.example.org clrtxt:secret ; +sip:user_627@sip.example.org clrtxt:secret ; +sip:user_628@sip.example.org clrtxt:secret ; +sip:user_629@sip.example.org clrtxt:secret ; +sip:user_630@sip.example.org clrtxt:secret ; +sip:user_631@sip.example.org clrtxt:secret ; +sip:user_632@sip.example.org clrtxt:secret ; +sip:user_633@sip.example.org clrtxt:secret ; +sip:user_634@sip.example.org clrtxt:secret ; +sip:user_635@sip.example.org clrtxt:secret ; +sip:user_636@sip.example.org clrtxt:secret ; +sip:user_637@sip.example.org clrtxt:secret ; +sip:user_638@sip.example.org clrtxt:secret ; +sip:user_639@sip.example.org clrtxt:secret ; +sip:user_640@sip.example.org clrtxt:secret ; +sip:user_641@sip.example.org clrtxt:secret ; +sip:user_642@sip.example.org clrtxt:secret ; +sip:user_643@sip.example.org clrtxt:secret ; +sip:user_644@sip.example.org clrtxt:secret ; +sip:user_645@sip.example.org clrtxt:secret ; +sip:user_646@sip.example.org clrtxt:secret ; +sip:user_647@sip.example.org clrtxt:secret ; +sip:user_648@sip.example.org clrtxt:secret ; +sip:user_649@sip.example.org clrtxt:secret ; +sip:user_650@sip.example.org clrtxt:secret ; +sip:user_651@sip.example.org clrtxt:secret ; +sip:user_652@sip.example.org clrtxt:secret ; +sip:user_653@sip.example.org clrtxt:secret ; +sip:user_654@sip.example.org clrtxt:secret ; +sip:user_655@sip.example.org clrtxt:secret ; +sip:user_656@sip.example.org clrtxt:secret ; +sip:user_657@sip.example.org clrtxt:secret ; +sip:user_658@sip.example.org clrtxt:secret ; +sip:user_659@sip.example.org clrtxt:secret ; +sip:user_660@sip.example.org clrtxt:secret ; +sip:user_661@sip.example.org clrtxt:secret ; +sip:user_662@sip.example.org clrtxt:secret ; +sip:user_663@sip.example.org clrtxt:secret ; +sip:user_664@sip.example.org clrtxt:secret ; +sip:user_665@sip.example.org clrtxt:secret ; +sip:user_666@sip.example.org clrtxt:secret ; +sip:user_667@sip.example.org clrtxt:secret ; +sip:user_668@sip.example.org clrtxt:secret ; +sip:user_669@sip.example.org clrtxt:secret ; +sip:user_670@sip.example.org clrtxt:secret ; +sip:user_671@sip.example.org clrtxt:secret ; +sip:user_672@sip.example.org clrtxt:secret ; +sip:user_673@sip.example.org clrtxt:secret ; +sip:user_674@sip.example.org clrtxt:secret ; +sip:user_675@sip.example.org clrtxt:secret ; +sip:user_676@sip.example.org clrtxt:secret ; +sip:user_677@sip.example.org clrtxt:secret ; +sip:user_678@sip.example.org clrtxt:secret ; +sip:user_679@sip.example.org clrtxt:secret ; +sip:user_680@sip.example.org clrtxt:secret ; +sip:user_681@sip.example.org clrtxt:secret ; +sip:user_682@sip.example.org clrtxt:secret ; +sip:user_683@sip.example.org clrtxt:secret ; +sip:user_684@sip.example.org clrtxt:secret ; +sip:user_685@sip.example.org clrtxt:secret ; +sip:user_686@sip.example.org clrtxt:secret ; +sip:user_687@sip.example.org clrtxt:secret ; +sip:user_688@sip.example.org clrtxt:secret ; +sip:user_689@sip.example.org clrtxt:secret ; +sip:user_690@sip.example.org clrtxt:secret ; +sip:user_691@sip.example.org clrtxt:secret ; +sip:user_692@sip.example.org clrtxt:secret ; +sip:user_693@sip.example.org clrtxt:secret ; +sip:user_694@sip.example.org clrtxt:secret ; +sip:user_695@sip.example.org clrtxt:secret ; +sip:user_696@sip.example.org clrtxt:secret ; +sip:user_697@sip.example.org clrtxt:secret ; +sip:user_698@sip.example.org clrtxt:secret ; +sip:user_699@sip.example.org clrtxt:secret ; +sip:user_700@sip.example.org clrtxt:secret ; +sip:user_701@sip.example.org clrtxt:secret ; +sip:user_702@sip.example.org clrtxt:secret ; +sip:user_703@sip.example.org clrtxt:secret ; +sip:user_704@sip.example.org clrtxt:secret ; +sip:user_705@sip.example.org clrtxt:secret ; +sip:user_706@sip.example.org clrtxt:secret ; +sip:user_707@sip.example.org clrtxt:secret ; +sip:user_708@sip.example.org clrtxt:secret ; +sip:user_709@sip.example.org clrtxt:secret ; +sip:user_710@sip.example.org clrtxt:secret ; +sip:user_711@sip.example.org clrtxt:secret ; +sip:user_712@sip.example.org clrtxt:secret ; +sip:user_713@sip.example.org clrtxt:secret ; +sip:user_714@sip.example.org clrtxt:secret ; +sip:user_715@sip.example.org clrtxt:secret ; +sip:user_716@sip.example.org clrtxt:secret ; +sip:user_717@sip.example.org clrtxt:secret ; +sip:user_718@sip.example.org clrtxt:secret ; +sip:user_719@sip.example.org clrtxt:secret ; +sip:user_720@sip.example.org clrtxt:secret ; +sip:user_721@sip.example.org clrtxt:secret ; +sip:user_722@sip.example.org clrtxt:secret ; +sip:user_723@sip.example.org clrtxt:secret ; +sip:user_724@sip.example.org clrtxt:secret ; +sip:user_725@sip.example.org clrtxt:secret ; +sip:user_726@sip.example.org clrtxt:secret ; +sip:user_727@sip.example.org clrtxt:secret ; +sip:user_728@sip.example.org clrtxt:secret ; +sip:user_729@sip.example.org clrtxt:secret ; +sip:user_730@sip.example.org clrtxt:secret ; +sip:user_731@sip.example.org clrtxt:secret ; +sip:user_732@sip.example.org clrtxt:secret ; +sip:user_733@sip.example.org clrtxt:secret ; +sip:user_734@sip.example.org clrtxt:secret ; +sip:user_735@sip.example.org clrtxt:secret ; +sip:user_736@sip.example.org clrtxt:secret ; +sip:user_737@sip.example.org clrtxt:secret ; +sip:user_738@sip.example.org clrtxt:secret ; +sip:user_739@sip.example.org clrtxt:secret ; +sip:user_740@sip.example.org clrtxt:secret ; +sip:user_741@sip.example.org clrtxt:secret ; +sip:user_742@sip.example.org clrtxt:secret ; +sip:user_743@sip.example.org clrtxt:secret ; +sip:user_744@sip.example.org clrtxt:secret ; +sip:user_745@sip.example.org clrtxt:secret ; +sip:user_746@sip.example.org clrtxt:secret ; +sip:user_747@sip.example.org clrtxt:secret ; +sip:user_748@sip.example.org clrtxt:secret ; +sip:user_749@sip.example.org clrtxt:secret ; +sip:user_750@sip.example.org clrtxt:secret ; +sip:user_751@sip.example.org clrtxt:secret ; +sip:user_752@sip.example.org clrtxt:secret ; +sip:user_753@sip.example.org clrtxt:secret ; +sip:user_754@sip.example.org clrtxt:secret ; +sip:user_755@sip.example.org clrtxt:secret ; +sip:user_756@sip.example.org clrtxt:secret ; +sip:user_757@sip.example.org clrtxt:secret ; +sip:user_758@sip.example.org clrtxt:secret ; +sip:user_759@sip.example.org clrtxt:secret ; +sip:user_760@sip.example.org clrtxt:secret ; +sip:user_761@sip.example.org clrtxt:secret ; +sip:user_762@sip.example.org clrtxt:secret ; +sip:user_763@sip.example.org clrtxt:secret ; +sip:user_764@sip.example.org clrtxt:secret ; +sip:user_765@sip.example.org clrtxt:secret ; +sip:user_766@sip.example.org clrtxt:secret ; +sip:user_767@sip.example.org clrtxt:secret ; +sip:user_768@sip.example.org clrtxt:secret ; +sip:user_769@sip.example.org clrtxt:secret ; +sip:user_770@sip.example.org clrtxt:secret ; +sip:user_771@sip.example.org clrtxt:secret ; +sip:user_772@sip.example.org clrtxt:secret ; +sip:user_773@sip.example.org clrtxt:secret ; +sip:user_774@sip.example.org clrtxt:secret ; +sip:user_775@sip.example.org clrtxt:secret ; +sip:user_776@sip.example.org clrtxt:secret ; +sip:user_777@sip.example.org clrtxt:secret ; +sip:user_778@sip.example.org clrtxt:secret ; +sip:user_779@sip.example.org clrtxt:secret ; +sip:user_780@sip.example.org clrtxt:secret ; +sip:user_781@sip.example.org clrtxt:secret ; +sip:user_782@sip.example.org clrtxt:secret ; +sip:user_783@sip.example.org clrtxt:secret ; +sip:user_784@sip.example.org clrtxt:secret ; +sip:user_785@sip.example.org clrtxt:secret ; +sip:user_786@sip.example.org clrtxt:secret ; +sip:user_787@sip.example.org clrtxt:secret ; +sip:user_788@sip.example.org clrtxt:secret ; +sip:user_789@sip.example.org clrtxt:secret ; +sip:user_790@sip.example.org clrtxt:secret ; +sip:user_791@sip.example.org clrtxt:secret ; +sip:user_792@sip.example.org clrtxt:secret ; +sip:user_793@sip.example.org clrtxt:secret ; +sip:user_794@sip.example.org clrtxt:secret ; +sip:user_795@sip.example.org clrtxt:secret ; +sip:user_796@sip.example.org clrtxt:secret ; +sip:user_797@sip.example.org clrtxt:secret ; +sip:user_798@sip.example.org clrtxt:secret ; +sip:user_799@sip.example.org clrtxt:secret ; +sip:user_800@sip.example.org clrtxt:secret ; +sip:user_801@sip.example.org clrtxt:secret ; +sip:user_802@sip.example.org clrtxt:secret ; +sip:user_803@sip.example.org clrtxt:secret ; +sip:user_804@sip.example.org clrtxt:secret ; +sip:user_805@sip.example.org clrtxt:secret ; +sip:user_806@sip.example.org clrtxt:secret ; +sip:user_807@sip.example.org clrtxt:secret ; +sip:user_808@sip.example.org clrtxt:secret ; +sip:user_809@sip.example.org clrtxt:secret ; +sip:user_810@sip.example.org clrtxt:secret ; +sip:user_811@sip.example.org clrtxt:secret ; +sip:user_812@sip.example.org clrtxt:secret ; +sip:user_813@sip.example.org clrtxt:secret ; +sip:user_814@sip.example.org clrtxt:secret ; +sip:user_815@sip.example.org clrtxt:secret ; +sip:user_816@sip.example.org clrtxt:secret ; +sip:user_817@sip.example.org clrtxt:secret ; +sip:user_818@sip.example.org clrtxt:secret ; +sip:user_819@sip.example.org clrtxt:secret ; +sip:user_820@sip.example.org clrtxt:secret ; +sip:user_821@sip.example.org clrtxt:secret ; +sip:user_822@sip.example.org clrtxt:secret ; +sip:user_823@sip.example.org clrtxt:secret ; +sip:user_824@sip.example.org clrtxt:secret ; +sip:user_825@sip.example.org clrtxt:secret ; +sip:user_826@sip.example.org clrtxt:secret ; +sip:user_827@sip.example.org clrtxt:secret ; +sip:user_828@sip.example.org clrtxt:secret ; +sip:user_829@sip.example.org clrtxt:secret ; +sip:user_830@sip.example.org clrtxt:secret ; +sip:user_831@sip.example.org clrtxt:secret ; +sip:user_832@sip.example.org clrtxt:secret ; +sip:user_833@sip.example.org clrtxt:secret ; +sip:user_834@sip.example.org clrtxt:secret ; +sip:user_835@sip.example.org clrtxt:secret ; +sip:user_836@sip.example.org clrtxt:secret ; +sip:user_837@sip.example.org clrtxt:secret ; +sip:user_838@sip.example.org clrtxt:secret ; +sip:user_839@sip.example.org clrtxt:secret ; +sip:user_840@sip.example.org clrtxt:secret ; +sip:user_841@sip.example.org clrtxt:secret ; +sip:user_842@sip.example.org clrtxt:secret ; +sip:user_843@sip.example.org clrtxt:secret ; +sip:user_844@sip.example.org clrtxt:secret ; +sip:user_845@sip.example.org clrtxt:secret ; +sip:user_846@sip.example.org clrtxt:secret ; +sip:user_847@sip.example.org clrtxt:secret ; +sip:user_848@sip.example.org clrtxt:secret ; +sip:user_849@sip.example.org clrtxt:secret ; +sip:user_850@sip.example.org clrtxt:secret ; +sip:user_851@sip.example.org clrtxt:secret ; +sip:user_852@sip.example.org clrtxt:secret ; +sip:user_853@sip.example.org clrtxt:secret ; +sip:user_854@sip.example.org clrtxt:secret ; +sip:user_855@sip.example.org clrtxt:secret ; +sip:user_856@sip.example.org clrtxt:secret ; +sip:user_857@sip.example.org clrtxt:secret ; +sip:user_858@sip.example.org clrtxt:secret ; +sip:user_859@sip.example.org clrtxt:secret ; +sip:user_860@sip.example.org clrtxt:secret ; +sip:user_861@sip.example.org clrtxt:secret ; +sip:user_862@sip.example.org clrtxt:secret ; +sip:user_863@sip.example.org clrtxt:secret ; +sip:user_864@sip.example.org clrtxt:secret ; +sip:user_865@sip.example.org clrtxt:secret ; +sip:user_866@sip.example.org clrtxt:secret ; +sip:user_867@sip.example.org clrtxt:secret ; +sip:user_868@sip.example.org clrtxt:secret ; +sip:user_869@sip.example.org clrtxt:secret ; +sip:user_870@sip.example.org clrtxt:secret ; +sip:user_871@sip.example.org clrtxt:secret ; +sip:user_872@sip.example.org clrtxt:secret ; +sip:user_873@sip.example.org clrtxt:secret ; +sip:user_874@sip.example.org clrtxt:secret ; +sip:user_875@sip.example.org clrtxt:secret ; +sip:user_876@sip.example.org clrtxt:secret ; +sip:user_877@sip.example.org clrtxt:secret ; +sip:user_878@sip.example.org clrtxt:secret ; +sip:user_879@sip.example.org clrtxt:secret ; +sip:user_880@sip.example.org clrtxt:secret ; +sip:user_881@sip.example.org clrtxt:secret ; +sip:user_882@sip.example.org clrtxt:secret ; +sip:user_883@sip.example.org clrtxt:secret ; +sip:user_884@sip.example.org clrtxt:secret ; +sip:user_885@sip.example.org clrtxt:secret ; +sip:user_886@sip.example.org clrtxt:secret ; +sip:user_887@sip.example.org clrtxt:secret ; +sip:user_888@sip.example.org clrtxt:secret ; +sip:user_889@sip.example.org clrtxt:secret ; +sip:user_890@sip.example.org clrtxt:secret ; +sip:user_891@sip.example.org clrtxt:secret ; +sip:user_892@sip.example.org clrtxt:secret ; +sip:user_893@sip.example.org clrtxt:secret ; +sip:user_894@sip.example.org clrtxt:secret ; +sip:user_895@sip.example.org clrtxt:secret ; +sip:user_896@sip.example.org clrtxt:secret ; +sip:user_897@sip.example.org clrtxt:secret ; +sip:user_898@sip.example.org clrtxt:secret ; +sip:user_899@sip.example.org clrtxt:secret ; +sip:user_900@sip.example.org clrtxt:secret ; +sip:user_901@sip.example.org clrtxt:secret ; +sip:user_902@sip.example.org clrtxt:secret ; +sip:user_903@sip.example.org clrtxt:secret ; +sip:user_904@sip.example.org clrtxt:secret ; +sip:user_905@sip.example.org clrtxt:secret ; +sip:user_906@sip.example.org clrtxt:secret ; +sip:user_907@sip.example.org clrtxt:secret ; +sip:user_908@sip.example.org clrtxt:secret ; +sip:user_909@sip.example.org clrtxt:secret ; +sip:user_910@sip.example.org clrtxt:secret ; +sip:user_911@sip.example.org clrtxt:secret ; +sip:user_912@sip.example.org clrtxt:secret ; +sip:user_913@sip.example.org clrtxt:secret ; +sip:user_914@sip.example.org clrtxt:secret ; +sip:user_915@sip.example.org clrtxt:secret ; +sip:user_916@sip.example.org clrtxt:secret ; +sip:user_917@sip.example.org clrtxt:secret ; +sip:user_918@sip.example.org clrtxt:secret ; +sip:user_919@sip.example.org clrtxt:secret ; +sip:user_920@sip.example.org clrtxt:secret ; +sip:user_921@sip.example.org clrtxt:secret ; +sip:user_922@sip.example.org clrtxt:secret ; +sip:user_923@sip.example.org clrtxt:secret ; +sip:user_924@sip.example.org clrtxt:secret ; +sip:user_925@sip.example.org clrtxt:secret ; +sip:user_926@sip.example.org clrtxt:secret ; +sip:user_927@sip.example.org clrtxt:secret ; +sip:user_928@sip.example.org clrtxt:secret ; +sip:user_929@sip.example.org clrtxt:secret ; +sip:user_930@sip.example.org clrtxt:secret ; +sip:user_931@sip.example.org clrtxt:secret ; +sip:user_932@sip.example.org clrtxt:secret ; +sip:user_933@sip.example.org clrtxt:secret ; +sip:user_934@sip.example.org clrtxt:secret ; +sip:user_935@sip.example.org clrtxt:secret ; +sip:user_936@sip.example.org clrtxt:secret ; +sip:user_937@sip.example.org clrtxt:secret ; +sip:user_938@sip.example.org clrtxt:secret ; +sip:user_939@sip.example.org clrtxt:secret ; +sip:user_940@sip.example.org clrtxt:secret ; +sip:user_941@sip.example.org clrtxt:secret ; +sip:user_942@sip.example.org clrtxt:secret ; +sip:user_943@sip.example.org clrtxt:secret ; +sip:user_944@sip.example.org clrtxt:secret ; +sip:user_945@sip.example.org clrtxt:secret ; +sip:user_946@sip.example.org clrtxt:secret ; +sip:user_947@sip.example.org clrtxt:secret ; +sip:user_948@sip.example.org clrtxt:secret ; +sip:user_949@sip.example.org clrtxt:secret ; +sip:user_950@sip.example.org clrtxt:secret ; +sip:user_951@sip.example.org clrtxt:secret ; +sip:user_952@sip.example.org clrtxt:secret ; +sip:user_953@sip.example.org clrtxt:secret ; +sip:user_954@sip.example.org clrtxt:secret ; +sip:user_955@sip.example.org clrtxt:secret ; +sip:user_956@sip.example.org clrtxt:secret ; +sip:user_957@sip.example.org clrtxt:secret ; +sip:user_958@sip.example.org clrtxt:secret ; +sip:user_959@sip.example.org clrtxt:secret ; +sip:user_960@sip.example.org clrtxt:secret ; +sip:user_961@sip.example.org clrtxt:secret ; +sip:user_962@sip.example.org clrtxt:secret ; +sip:user_963@sip.example.org clrtxt:secret ; +sip:user_964@sip.example.org clrtxt:secret ; +sip:user_965@sip.example.org clrtxt:secret ; +sip:user_966@sip.example.org clrtxt:secret ; +sip:user_967@sip.example.org clrtxt:secret ; +sip:user_968@sip.example.org clrtxt:secret ; +sip:user_969@sip.example.org clrtxt:secret ; +sip:user_970@sip.example.org clrtxt:secret ; +sip:user_971@sip.example.org clrtxt:secret ; +sip:user_972@sip.example.org clrtxt:secret ; +sip:user_973@sip.example.org clrtxt:secret ; +sip:user_974@sip.example.org clrtxt:secret ; +sip:user_975@sip.example.org clrtxt:secret ; +sip:user_976@sip.example.org clrtxt:secret ; +sip:user_977@sip.example.org clrtxt:secret ; +sip:user_978@sip.example.org clrtxt:secret ; +sip:user_979@sip.example.org clrtxt:secret ; +sip:user_980@sip.example.org clrtxt:secret ; +sip:user_981@sip.example.org clrtxt:secret ; +sip:user_982@sip.example.org clrtxt:secret ; +sip:user_983@sip.example.org clrtxt:secret ; +sip:user_984@sip.example.org clrtxt:secret ; +sip:user_985@sip.example.org clrtxt:secret ; +sip:user_986@sip.example.org clrtxt:secret ; +sip:user_987@sip.example.org clrtxt:secret ; +sip:user_988@sip.example.org clrtxt:secret ; +sip:user_989@sip.example.org clrtxt:secret ; +sip:user_990@sip.example.org clrtxt:secret ; +sip:user_991@sip.example.org clrtxt:secret ; +sip:user_992@sip.example.org clrtxt:secret ; +sip:user_993@sip.example.org clrtxt:secret ; +sip:user_994@sip.example.org clrtxt:secret ; +sip:user_995@sip.example.org clrtxt:secret ; +sip:user_996@sip.example.org clrtxt:secret ; +sip:user_997@sip.example.org clrtxt:secret ; +sip:user_998@sip.example.org clrtxt:secret ; +sip:user_999@sip.example.org clrtxt:secret ; +sip:user_1000@sip.example.org clrtxt:secret ; +sip:user_1001@sip.example.org clrtxt:secret ; +sip:user_1002@sip.example.org clrtxt:secret ; +sip:user_1003@sip.example.org clrtxt:secret ; +sip:user_1004@sip.example.org clrtxt:secret ; +sip:user_1005@sip.example.org clrtxt:secret ; +sip:user_1006@sip.example.org clrtxt:secret ; +sip:user_1007@sip.example.org clrtxt:secret ; +sip:user_1008@sip.example.org clrtxt:secret ; +sip:user_1009@sip.example.org clrtxt:secret ; +sip:user_1010@sip.example.org clrtxt:secret ; +sip:user_1011@sip.example.org clrtxt:secret ; +sip:user_1012@sip.example.org clrtxt:secret ; +sip:user_1013@sip.example.org clrtxt:secret ; +sip:user_1014@sip.example.org clrtxt:secret ; +sip:user_1015@sip.example.org clrtxt:secret ; +sip:user_1016@sip.example.org clrtxt:secret ; +sip:user_1017@sip.example.org clrtxt:secret ; +sip:user_1018@sip.example.org clrtxt:secret ; +sip:user_1019@sip.example.org clrtxt:secret ; +sip:user_1020@sip.example.org clrtxt:secret ; +sip:user_1021@sip.example.org clrtxt:secret ; +sip:user_1022@sip.example.org clrtxt:secret ; +sip:user_1023@sip.example.org clrtxt:secret ; +sip:user_1024@sip.example.org clrtxt:secret ; +sip:user_1025@sip.example.org clrtxt:secret ; +sip:user_1026@sip.example.org clrtxt:secret ; +sip:user_1027@sip.example.org clrtxt:secret ; +sip:user_1028@sip.example.org clrtxt:secret ; +sip:user_1029@sip.example.org clrtxt:secret ; +sip:user_1030@sip.example.org clrtxt:secret ; +sip:user_1031@sip.example.org clrtxt:secret ; +sip:user_1032@sip.example.org clrtxt:secret ; +sip:user_1033@sip.example.org clrtxt:secret ; +sip:user_1034@sip.example.org clrtxt:secret ; +sip:user_1035@sip.example.org clrtxt:secret ; +sip:user_1036@sip.example.org clrtxt:secret ; +sip:user_1037@sip.example.org clrtxt:secret ; +sip:user_1038@sip.example.org clrtxt:secret ; +sip:user_1039@sip.example.org clrtxt:secret ; +sip:user_1040@sip.example.org clrtxt:secret ; +sip:user_1041@sip.example.org clrtxt:secret ; +sip:user_1042@sip.example.org clrtxt:secret ; +sip:user_1043@sip.example.org clrtxt:secret ; +sip:user_1044@sip.example.org clrtxt:secret ; +sip:user_1045@sip.example.org clrtxt:secret ; +sip:user_1046@sip.example.org clrtxt:secret ; +sip:user_1047@sip.example.org clrtxt:secret ; +sip:user_1048@sip.example.org clrtxt:secret ; +sip:user_1049@sip.example.org clrtxt:secret ; +sip:user_1050@sip.example.org clrtxt:secret ; +sip:user_1051@sip.example.org clrtxt:secret ; +sip:user_1052@sip.example.org clrtxt:secret ; +sip:user_1053@sip.example.org clrtxt:secret ; +sip:user_1054@sip.example.org clrtxt:secret ; +sip:user_1055@sip.example.org clrtxt:secret ; +sip:user_1056@sip.example.org clrtxt:secret ; +sip:user_1057@sip.example.org clrtxt:secret ; +sip:user_1058@sip.example.org clrtxt:secret ; +sip:user_1059@sip.example.org clrtxt:secret ; +sip:user_1060@sip.example.org clrtxt:secret ; +sip:user_1061@sip.example.org clrtxt:secret ; +sip:user_1062@sip.example.org clrtxt:secret ; +sip:user_1063@sip.example.org clrtxt:secret ; +sip:user_1064@sip.example.org clrtxt:secret ; +sip:user_1065@sip.example.org clrtxt:secret ; +sip:user_1066@sip.example.org clrtxt:secret ; +sip:user_1067@sip.example.org clrtxt:secret ; +sip:user_1068@sip.example.org clrtxt:secret ; +sip:user_1069@sip.example.org clrtxt:secret ; +sip:user_1070@sip.example.org clrtxt:secret ; +sip:user_1071@sip.example.org clrtxt:secret ; +sip:user_1072@sip.example.org clrtxt:secret ; +sip:user_1073@sip.example.org clrtxt:secret ; +sip:user_1074@sip.example.org clrtxt:secret ; +sip:user_1075@sip.example.org clrtxt:secret ; +sip:user_1076@sip.example.org clrtxt:secret ; +sip:user_1077@sip.example.org clrtxt:secret ; +sip:user_1078@sip.example.org clrtxt:secret ; +sip:user_1079@sip.example.org clrtxt:secret ; +sip:user_1080@sip.example.org clrtxt:secret ; +sip:user_1081@sip.example.org clrtxt:secret ; +sip:user_1082@sip.example.org clrtxt:secret ; +sip:user_1083@sip.example.org clrtxt:secret ; +sip:user_1084@sip.example.org clrtxt:secret ; +sip:user_1085@sip.example.org clrtxt:secret ; +sip:user_1086@sip.example.org clrtxt:secret ; +sip:user_1087@sip.example.org clrtxt:secret ; +sip:user_1088@sip.example.org clrtxt:secret ; +sip:user_1089@sip.example.org clrtxt:secret ; +sip:user_1090@sip.example.org clrtxt:secret ; +sip:user_1091@sip.example.org clrtxt:secret ; +sip:user_1092@sip.example.org clrtxt:secret ; +sip:user_1093@sip.example.org clrtxt:secret ; +sip:user_1094@sip.example.org clrtxt:secret ; +sip:user_1095@sip.example.org clrtxt:secret ; +sip:user_1096@sip.example.org clrtxt:secret ; +sip:user_1097@sip.example.org clrtxt:secret ; +sip:user_1098@sip.example.org clrtxt:secret ; +sip:user_1099@sip.example.org clrtxt:secret ; +sip:user_1100@sip.example.org clrtxt:secret ; +sip:user_1101@sip.example.org clrtxt:secret ; +sip:user_1102@sip.example.org clrtxt:secret ; +sip:user_1103@sip.example.org clrtxt:secret ; +sip:user_1104@sip.example.org clrtxt:secret ; +sip:user_1105@sip.example.org clrtxt:secret ; +sip:user_1106@sip.example.org clrtxt:secret ; +sip:user_1107@sip.example.org clrtxt:secret ; +sip:user_1108@sip.example.org clrtxt:secret ; +sip:user_1109@sip.example.org clrtxt:secret ; +sip:user_1110@sip.example.org clrtxt:secret ; +sip:user_1111@sip.example.org clrtxt:secret ; +sip:user_1112@sip.example.org clrtxt:secret ; +sip:user_1113@sip.example.org clrtxt:secret ; +sip:user_1114@sip.example.org clrtxt:secret ; +sip:user_1115@sip.example.org clrtxt:secret ; +sip:user_1116@sip.example.org clrtxt:secret ; +sip:user_1117@sip.example.org clrtxt:secret ; +sip:user_1118@sip.example.org clrtxt:secret ; +sip:user_1119@sip.example.org clrtxt:secret ; +sip:user_1120@sip.example.org clrtxt:secret ; +sip:user_1121@sip.example.org clrtxt:secret ; +sip:user_1122@sip.example.org clrtxt:secret ; +sip:user_1123@sip.example.org clrtxt:secret ; +sip:user_1124@sip.example.org clrtxt:secret ; +sip:user_1125@sip.example.org clrtxt:secret ; +sip:user_1126@sip.example.org clrtxt:secret ; +sip:user_1127@sip.example.org clrtxt:secret ; +sip:user_1128@sip.example.org clrtxt:secret ; +sip:user_1129@sip.example.org clrtxt:secret ; +sip:user_1130@sip.example.org clrtxt:secret ; +sip:user_1131@sip.example.org clrtxt:secret ; +sip:user_1132@sip.example.org clrtxt:secret ; +sip:user_1133@sip.example.org clrtxt:secret ; +sip:user_1134@sip.example.org clrtxt:secret ; +sip:user_1135@sip.example.org clrtxt:secret ; +sip:user_1136@sip.example.org clrtxt:secret ; +sip:user_1137@sip.example.org clrtxt:secret ; +sip:user_1138@sip.example.org clrtxt:secret ; +sip:user_1139@sip.example.org clrtxt:secret ; +sip:user_1140@sip.example.org clrtxt:secret ; +sip:user_1141@sip.example.org clrtxt:secret ; +sip:user_1142@sip.example.org clrtxt:secret ; +sip:user_1143@sip.example.org clrtxt:secret ; +sip:user_1144@sip.example.org clrtxt:secret ; +sip:user_1145@sip.example.org clrtxt:secret ; +sip:user_1146@sip.example.org clrtxt:secret ; +sip:user_1147@sip.example.org clrtxt:secret ; +sip:user_1148@sip.example.org clrtxt:secret ; +sip:user_1149@sip.example.org clrtxt:secret ; +sip:user_1150@sip.example.org clrtxt:secret ; +sip:user_1151@sip.example.org clrtxt:secret ; +sip:user_1152@sip.example.org clrtxt:secret ; +sip:user_1153@sip.example.org clrtxt:secret ; +sip:user_1154@sip.example.org clrtxt:secret ; +sip:user_1155@sip.example.org clrtxt:secret ; +sip:user_1156@sip.example.org clrtxt:secret ; +sip:user_1157@sip.example.org clrtxt:secret ; +sip:user_1158@sip.example.org clrtxt:secret ; +sip:user_1159@sip.example.org clrtxt:secret ; +sip:user_1160@sip.example.org clrtxt:secret ; +sip:user_1161@sip.example.org clrtxt:secret ; +sip:user_1162@sip.example.org clrtxt:secret ; +sip:user_1163@sip.example.org clrtxt:secret ; +sip:user_1164@sip.example.org clrtxt:secret ; +sip:user_1165@sip.example.org clrtxt:secret ; +sip:user_1166@sip.example.org clrtxt:secret ; +sip:user_1167@sip.example.org clrtxt:secret ; +sip:user_1168@sip.example.org clrtxt:secret ; +sip:user_1169@sip.example.org clrtxt:secret ; +sip:user_1170@sip.example.org clrtxt:secret ; +sip:user_1171@sip.example.org clrtxt:secret ; +sip:user_1172@sip.example.org clrtxt:secret ; +sip:user_1173@sip.example.org clrtxt:secret ; +sip:user_1174@sip.example.org clrtxt:secret ; +sip:user_1175@sip.example.org clrtxt:secret ; +sip:user_1176@sip.example.org clrtxt:secret ; +sip:user_1177@sip.example.org clrtxt:secret ; +sip:user_1178@sip.example.org clrtxt:secret ; +sip:user_1179@sip.example.org clrtxt:secret ; +sip:user_1180@sip.example.org clrtxt:secret ; +sip:user_1181@sip.example.org clrtxt:secret ; +sip:user_1182@sip.example.org clrtxt:secret ; +sip:user_1183@sip.example.org clrtxt:secret ; +sip:user_1184@sip.example.org clrtxt:secret ; +sip:user_1185@sip.example.org clrtxt:secret ; +sip:user_1186@sip.example.org clrtxt:secret ; +sip:user_1187@sip.example.org clrtxt:secret ; +sip:user_1188@sip.example.org clrtxt:secret ; +sip:user_1189@sip.example.org clrtxt:secret ; +sip:user_1190@sip.example.org clrtxt:secret ; +sip:user_1191@sip.example.org clrtxt:secret ; +sip:user_1192@sip.example.org clrtxt:secret ; +sip:user_1193@sip.example.org clrtxt:secret ; +sip:user_1194@sip.example.org clrtxt:secret ; +sip:user_1195@sip.example.org clrtxt:secret ; +sip:user_1196@sip.example.org clrtxt:secret ; +sip:user_1197@sip.example.org clrtxt:secret ; +sip:user_1198@sip.example.org clrtxt:secret ; +sip:user_1199@sip.example.org clrtxt:secret ; +sip:user_1200@sip.example.org clrtxt:secret ; +sip:user_1201@sip.example.org clrtxt:secret ; +sip:user_1202@sip.example.org clrtxt:secret ; +sip:user_1203@sip.example.org clrtxt:secret ; +sip:user_1204@sip.example.org clrtxt:secret ; +sip:user_1205@sip.example.org clrtxt:secret ; +sip:user_1206@sip.example.org clrtxt:secret ; +sip:user_1207@sip.example.org clrtxt:secret ; +sip:user_1208@sip.example.org clrtxt:secret ; +sip:user_1209@sip.example.org clrtxt:secret ; +sip:user_1210@sip.example.org clrtxt:secret ; +sip:user_1211@sip.example.org clrtxt:secret ; +sip:user_1212@sip.example.org clrtxt:secret ; +sip:user_1213@sip.example.org clrtxt:secret ; +sip:user_1214@sip.example.org clrtxt:secret ; +sip:user_1215@sip.example.org clrtxt:secret ; +sip:user_1216@sip.example.org clrtxt:secret ; +sip:user_1217@sip.example.org clrtxt:secret ; +sip:user_1218@sip.example.org clrtxt:secret ; +sip:user_1219@sip.example.org clrtxt:secret ; +sip:user_1220@sip.example.org clrtxt:secret ; +sip:user_1221@sip.example.org clrtxt:secret ; +sip:user_1222@sip.example.org clrtxt:secret ; +sip:user_1223@sip.example.org clrtxt:secret ; +sip:user_1224@sip.example.org clrtxt:secret ; +sip:user_1225@sip.example.org clrtxt:secret ; +sip:user_1226@sip.example.org clrtxt:secret ; +sip:user_1227@sip.example.org clrtxt:secret ; +sip:user_1228@sip.example.org clrtxt:secret ; +sip:user_1229@sip.example.org clrtxt:secret ; +sip:user_1230@sip.example.org clrtxt:secret ; +sip:user_1231@sip.example.org clrtxt:secret ; +sip:user_1232@sip.example.org clrtxt:secret ; +sip:user_1233@sip.example.org clrtxt:secret ; +sip:user_1234@sip.example.org clrtxt:secret ; +sip:user_1235@sip.example.org clrtxt:secret ; +sip:user_1236@sip.example.org clrtxt:secret ; +sip:user_1237@sip.example.org clrtxt:secret ; +sip:user_1238@sip.example.org clrtxt:secret ; +sip:user_1239@sip.example.org clrtxt:secret ; +sip:user_1240@sip.example.org clrtxt:secret ; +sip:user_1241@sip.example.org clrtxt:secret ; +sip:user_1242@sip.example.org clrtxt:secret ; +sip:user_1243@sip.example.org clrtxt:secret ; +sip:user_1244@sip.example.org clrtxt:secret ; +sip:user_1245@sip.example.org clrtxt:secret ; +sip:user_1246@sip.example.org clrtxt:secret ; +sip:user_1247@sip.example.org clrtxt:secret ; +sip:user_1248@sip.example.org clrtxt:secret ; +sip:user_1249@sip.example.org clrtxt:secret ; +sip:user_1250@sip.example.org clrtxt:secret ; +sip:user_1251@sip.example.org clrtxt:secret ; +sip:user_1252@sip.example.org clrtxt:secret ; +sip:user_1253@sip.example.org clrtxt:secret ; +sip:user_1254@sip.example.org clrtxt:secret ; +sip:user_1255@sip.example.org clrtxt:secret ; +sip:user_1256@sip.example.org clrtxt:secret ; +sip:user_1257@sip.example.org clrtxt:secret ; +sip:user_1258@sip.example.org clrtxt:secret ; +sip:user_1259@sip.example.org clrtxt:secret ; +sip:user_1260@sip.example.org clrtxt:secret ; +sip:user_1261@sip.example.org clrtxt:secret ; +sip:user_1262@sip.example.org clrtxt:secret ; +sip:user_1263@sip.example.org clrtxt:secret ; +sip:user_1264@sip.example.org clrtxt:secret ; +sip:user_1265@sip.example.org clrtxt:secret ; +sip:user_1266@sip.example.org clrtxt:secret ; +sip:user_1267@sip.example.org clrtxt:secret ; +sip:user_1268@sip.example.org clrtxt:secret ; +sip:user_1269@sip.example.org clrtxt:secret ; +sip:user_1270@sip.example.org clrtxt:secret ; +sip:user_1271@sip.example.org clrtxt:secret ; +sip:user_1272@sip.example.org clrtxt:secret ; +sip:user_1273@sip.example.org clrtxt:secret ; +sip:user_1274@sip.example.org clrtxt:secret ; +sip:user_1275@sip.example.org clrtxt:secret ; +sip:user_1276@sip.example.org clrtxt:secret ; +sip:user_1277@sip.example.org clrtxt:secret ; +sip:user_1278@sip.example.org clrtxt:secret ; +sip:user_1279@sip.example.org clrtxt:secret ; +sip:user_1280@sip.example.org clrtxt:secret ; +sip:user_1281@sip.example.org clrtxt:secret ; +sip:user_1282@sip.example.org clrtxt:secret ; +sip:user_1283@sip.example.org clrtxt:secret ; +sip:user_1284@sip.example.org clrtxt:secret ; +sip:user_1285@sip.example.org clrtxt:secret ; +sip:user_1286@sip.example.org clrtxt:secret ; +sip:user_1287@sip.example.org clrtxt:secret ; +sip:user_1288@sip.example.org clrtxt:secret ; +sip:user_1289@sip.example.org clrtxt:secret ; +sip:user_1290@sip.example.org clrtxt:secret ; +sip:user_1291@sip.example.org clrtxt:secret ; +sip:user_1292@sip.example.org clrtxt:secret ; +sip:user_1293@sip.example.org clrtxt:secret ; +sip:user_1294@sip.example.org clrtxt:secret ; +sip:user_1295@sip.example.org clrtxt:secret ; +sip:user_1296@sip.example.org clrtxt:secret ; +sip:user_1297@sip.example.org clrtxt:secret ; +sip:user_1298@sip.example.org clrtxt:secret ; +sip:user_1299@sip.example.org clrtxt:secret ; +sip:user_1300@sip.example.org clrtxt:secret ; +sip:user_1301@sip.example.org clrtxt:secret ; +sip:user_1302@sip.example.org clrtxt:secret ; +sip:user_1303@sip.example.org clrtxt:secret ; +sip:user_1304@sip.example.org clrtxt:secret ; +sip:user_1305@sip.example.org clrtxt:secret ; +sip:user_1306@sip.example.org clrtxt:secret ; +sip:user_1307@sip.example.org clrtxt:secret ; +sip:user_1308@sip.example.org clrtxt:secret ; +sip:user_1309@sip.example.org clrtxt:secret ; +sip:user_1310@sip.example.org clrtxt:secret ; +sip:user_1311@sip.example.org clrtxt:secret ; +sip:user_1312@sip.example.org clrtxt:secret ; +sip:user_1313@sip.example.org clrtxt:secret ; +sip:user_1314@sip.example.org clrtxt:secret ; +sip:user_1315@sip.example.org clrtxt:secret ; +sip:user_1316@sip.example.org clrtxt:secret ; +sip:user_1317@sip.example.org clrtxt:secret ; +sip:user_1318@sip.example.org clrtxt:secret ; +sip:user_1319@sip.example.org clrtxt:secret ; +sip:user_1320@sip.example.org clrtxt:secret ; +sip:user_1321@sip.example.org clrtxt:secret ; +sip:user_1322@sip.example.org clrtxt:secret ; +sip:user_1323@sip.example.org clrtxt:secret ; +sip:user_1324@sip.example.org clrtxt:secret ; +sip:user_1325@sip.example.org clrtxt:secret ; +sip:user_1326@sip.example.org clrtxt:secret ; +sip:user_1327@sip.example.org clrtxt:secret ; +sip:user_1328@sip.example.org clrtxt:secret ; +sip:user_1329@sip.example.org clrtxt:secret ; +sip:user_1330@sip.example.org clrtxt:secret ; +sip:user_1331@sip.example.org clrtxt:secret ; +sip:user_1332@sip.example.org clrtxt:secret ; +sip:user_1333@sip.example.org clrtxt:secret ; +sip:user_1334@sip.example.org clrtxt:secret ; +sip:user_1335@sip.example.org clrtxt:secret ; +sip:user_1336@sip.example.org clrtxt:secret ; +sip:user_1337@sip.example.org clrtxt:secret ; +sip:user_1338@sip.example.org clrtxt:secret ; +sip:user_1339@sip.example.org clrtxt:secret ; +sip:user_1340@sip.example.org clrtxt:secret ; +sip:user_1341@sip.example.org clrtxt:secret ; +sip:user_1342@sip.example.org clrtxt:secret ; +sip:user_1343@sip.example.org clrtxt:secret ; +sip:user_1344@sip.example.org clrtxt:secret ; +sip:user_1345@sip.example.org clrtxt:secret ; +sip:user_1346@sip.example.org clrtxt:secret ; +sip:user_1347@sip.example.org clrtxt:secret ; +sip:user_1348@sip.example.org clrtxt:secret ; +sip:user_1349@sip.example.org clrtxt:secret ; +sip:user_1350@sip.example.org clrtxt:secret ; +sip:user_1351@sip.example.org clrtxt:secret ; +sip:user_1352@sip.example.org clrtxt:secret ; +sip:user_1353@sip.example.org clrtxt:secret ; +sip:user_1354@sip.example.org clrtxt:secret ; +sip:user_1355@sip.example.org clrtxt:secret ; +sip:user_1356@sip.example.org clrtxt:secret ; +sip:user_1357@sip.example.org clrtxt:secret ; +sip:user_1358@sip.example.org clrtxt:secret ; +sip:user_1359@sip.example.org clrtxt:secret ; +sip:user_1360@sip.example.org clrtxt:secret ; +sip:user_1361@sip.example.org clrtxt:secret ; +sip:user_1362@sip.example.org clrtxt:secret ; +sip:user_1363@sip.example.org clrtxt:secret ; +sip:user_1364@sip.example.org clrtxt:secret ; +sip:user_1365@sip.example.org clrtxt:secret ; +sip:user_1366@sip.example.org clrtxt:secret ; +sip:user_1367@sip.example.org clrtxt:secret ; +sip:user_1368@sip.example.org clrtxt:secret ; +sip:user_1369@sip.example.org clrtxt:secret ; +sip:user_1370@sip.example.org clrtxt:secret ; +sip:user_1371@sip.example.org clrtxt:secret ; +sip:user_1372@sip.example.org clrtxt:secret ; +sip:user_1373@sip.example.org clrtxt:secret ; +sip:user_1374@sip.example.org clrtxt:secret ; +sip:user_1375@sip.example.org clrtxt:secret ; +sip:user_1376@sip.example.org clrtxt:secret ; +sip:user_1377@sip.example.org clrtxt:secret ; +sip:user_1378@sip.example.org clrtxt:secret ; +sip:user_1379@sip.example.org clrtxt:secret ; +sip:user_1380@sip.example.org clrtxt:secret ; +sip:user_1381@sip.example.org clrtxt:secret ; +sip:user_1382@sip.example.org clrtxt:secret ; +sip:user_1383@sip.example.org clrtxt:secret ; +sip:user_1384@sip.example.org clrtxt:secret ; +sip:user_1385@sip.example.org clrtxt:secret ; +sip:user_1386@sip.example.org clrtxt:secret ; +sip:user_1387@sip.example.org clrtxt:secret ; +sip:user_1388@sip.example.org clrtxt:secret ; +sip:user_1389@sip.example.org clrtxt:secret ; +sip:user_1390@sip.example.org clrtxt:secret ; +sip:user_1391@sip.example.org clrtxt:secret ; +sip:user_1392@sip.example.org clrtxt:secret ; +sip:user_1393@sip.example.org clrtxt:secret ; +sip:user_1394@sip.example.org clrtxt:secret ; +sip:user_1395@sip.example.org clrtxt:secret ; +sip:user_1396@sip.example.org clrtxt:secret ; +sip:user_1397@sip.example.org clrtxt:secret ; +sip:user_1398@sip.example.org clrtxt:secret ; +sip:user_1399@sip.example.org clrtxt:secret ; +sip:user_1400@sip.example.org clrtxt:secret ; +sip:user_1401@sip.example.org clrtxt:secret ; +sip:user_1402@sip.example.org clrtxt:secret ; +sip:user_1403@sip.example.org clrtxt:secret ; +sip:user_1404@sip.example.org clrtxt:secret ; +sip:user_1405@sip.example.org clrtxt:secret ; +sip:user_1406@sip.example.org clrtxt:secret ; +sip:user_1407@sip.example.org clrtxt:secret ; +sip:user_1408@sip.example.org clrtxt:secret ; +sip:user_1409@sip.example.org clrtxt:secret ; +sip:user_1410@sip.example.org clrtxt:secret ; +sip:user_1411@sip.example.org clrtxt:secret ; +sip:user_1412@sip.example.org clrtxt:secret ; +sip:user_1413@sip.example.org clrtxt:secret ; +sip:user_1414@sip.example.org clrtxt:secret ; +sip:user_1415@sip.example.org clrtxt:secret ; +sip:user_1416@sip.example.org clrtxt:secret ; +sip:user_1417@sip.example.org clrtxt:secret ; +sip:user_1418@sip.example.org clrtxt:secret ; +sip:user_1419@sip.example.org clrtxt:secret ; +sip:user_1420@sip.example.org clrtxt:secret ; +sip:user_1421@sip.example.org clrtxt:secret ; +sip:user_1422@sip.example.org clrtxt:secret ; +sip:user_1423@sip.example.org clrtxt:secret ; +sip:user_1424@sip.example.org clrtxt:secret ; +sip:user_1425@sip.example.org clrtxt:secret ; +sip:user_1426@sip.example.org clrtxt:secret ; +sip:user_1427@sip.example.org clrtxt:secret ; +sip:user_1428@sip.example.org clrtxt:secret ; +sip:user_1429@sip.example.org clrtxt:secret ; +sip:user_1430@sip.example.org clrtxt:secret ; +sip:user_1431@sip.example.org clrtxt:secret ; +sip:user_1432@sip.example.org clrtxt:secret ; +sip:user_1433@sip.example.org clrtxt:secret ; +sip:user_1434@sip.example.org clrtxt:secret ; +sip:user_1435@sip.example.org clrtxt:secret ; +sip:user_1436@sip.example.org clrtxt:secret ; +sip:user_1437@sip.example.org clrtxt:secret ; +sip:user_1438@sip.example.org clrtxt:secret ; +sip:user_1439@sip.example.org clrtxt:secret ; +sip:user_1440@sip.example.org clrtxt:secret ; +sip:user_1441@sip.example.org clrtxt:secret ; +sip:user_1442@sip.example.org clrtxt:secret ; +sip:user_1443@sip.example.org clrtxt:secret ; +sip:user_1444@sip.example.org clrtxt:secret ; +sip:user_1445@sip.example.org clrtxt:secret ; +sip:user_1446@sip.example.org clrtxt:secret ; +sip:user_1447@sip.example.org clrtxt:secret ; +sip:user_1448@sip.example.org clrtxt:secret ; +sip:user_1449@sip.example.org clrtxt:secret ; +sip:user_1450@sip.example.org clrtxt:secret ; +sip:user_1451@sip.example.org clrtxt:secret ; +sip:user_1452@sip.example.org clrtxt:secret ; +sip:user_1453@sip.example.org clrtxt:secret ; +sip:user_1454@sip.example.org clrtxt:secret ; +sip:user_1455@sip.example.org clrtxt:secret ; +sip:user_1456@sip.example.org clrtxt:secret ; +sip:user_1457@sip.example.org clrtxt:secret ; +sip:user_1458@sip.example.org clrtxt:secret ; +sip:user_1459@sip.example.org clrtxt:secret ; +sip:user_1460@sip.example.org clrtxt:secret ; +sip:user_1461@sip.example.org clrtxt:secret ; +sip:user_1462@sip.example.org clrtxt:secret ; +sip:user_1463@sip.example.org clrtxt:secret ; +sip:user_1464@sip.example.org clrtxt:secret ; +sip:user_1465@sip.example.org clrtxt:secret ; +sip:user_1466@sip.example.org clrtxt:secret ; +sip:user_1467@sip.example.org clrtxt:secret ; +sip:user_1468@sip.example.org clrtxt:secret ; +sip:user_1469@sip.example.org clrtxt:secret ; +sip:user_1470@sip.example.org clrtxt:secret ; +sip:user_1471@sip.example.org clrtxt:secret ; +sip:user_1472@sip.example.org clrtxt:secret ; +sip:user_1473@sip.example.org clrtxt:secret ; +sip:user_1474@sip.example.org clrtxt:secret ; +sip:user_1475@sip.example.org clrtxt:secret ; +sip:user_1476@sip.example.org clrtxt:secret ; +sip:user_1477@sip.example.org clrtxt:secret ; +sip:user_1478@sip.example.org clrtxt:secret ; +sip:user_1479@sip.example.org clrtxt:secret ; +sip:user_1480@sip.example.org clrtxt:secret ; +sip:user_1481@sip.example.org clrtxt:secret ; +sip:user_1482@sip.example.org clrtxt:secret ; +sip:user_1483@sip.example.org clrtxt:secret ; +sip:user_1484@sip.example.org clrtxt:secret ; +sip:user_1485@sip.example.org clrtxt:secret ; +sip:user_1486@sip.example.org clrtxt:secret ; +sip:user_1487@sip.example.org clrtxt:secret ; +sip:user_1488@sip.example.org clrtxt:secret ; +sip:user_1489@sip.example.org clrtxt:secret ; +sip:user_1490@sip.example.org clrtxt:secret ; +sip:user_1491@sip.example.org clrtxt:secret ; +sip:user_1492@sip.example.org clrtxt:secret ; +sip:user_1493@sip.example.org clrtxt:secret ; +sip:user_1494@sip.example.org clrtxt:secret ; +sip:user_1495@sip.example.org clrtxt:secret ; +sip:user_1496@sip.example.org clrtxt:secret ; +sip:user_1497@sip.example.org clrtxt:secret ; +sip:user_1498@sip.example.org clrtxt:secret ; +sip:user_1499@sip.example.org clrtxt:secret ; +sip:user_1500@sip.example.org clrtxt:secret ; +sip:user_1501@sip.example.org clrtxt:secret ; +sip:user_1502@sip.example.org clrtxt:secret ; +sip:user_1503@sip.example.org clrtxt:secret ; +sip:user_1504@sip.example.org clrtxt:secret ; +sip:user_1505@sip.example.org clrtxt:secret ; +sip:user_1506@sip.example.org clrtxt:secret ; +sip:user_1507@sip.example.org clrtxt:secret ; +sip:user_1508@sip.example.org clrtxt:secret ; +sip:user_1509@sip.example.org clrtxt:secret ; +sip:user_1510@sip.example.org clrtxt:secret ; +sip:user_1511@sip.example.org clrtxt:secret ; +sip:user_1512@sip.example.org clrtxt:secret ; +sip:user_1513@sip.example.org clrtxt:secret ; +sip:user_1514@sip.example.org clrtxt:secret ; +sip:user_1515@sip.example.org clrtxt:secret ; +sip:user_1516@sip.example.org clrtxt:secret ; +sip:user_1517@sip.example.org clrtxt:secret ; +sip:user_1518@sip.example.org clrtxt:secret ; +sip:user_1519@sip.example.org clrtxt:secret ; +sip:user_1520@sip.example.org clrtxt:secret ; +sip:user_1521@sip.example.org clrtxt:secret ; +sip:user_1522@sip.example.org clrtxt:secret ; +sip:user_1523@sip.example.org clrtxt:secret ; +sip:user_1524@sip.example.org clrtxt:secret ; +sip:user_1525@sip.example.org clrtxt:secret ; +sip:user_1526@sip.example.org clrtxt:secret ; +sip:user_1527@sip.example.org clrtxt:secret ; +sip:user_1528@sip.example.org clrtxt:secret ; +sip:user_1529@sip.example.org clrtxt:secret ; +sip:user_1530@sip.example.org clrtxt:secret ; +sip:user_1531@sip.example.org clrtxt:secret ; +sip:user_1532@sip.example.org clrtxt:secret ; +sip:user_1533@sip.example.org clrtxt:secret ; +sip:user_1534@sip.example.org clrtxt:secret ; +sip:user_1535@sip.example.org clrtxt:secret ; +sip:user_1536@sip.example.org clrtxt:secret ; +sip:user_1537@sip.example.org clrtxt:secret ; +sip:user_1538@sip.example.org clrtxt:secret ; +sip:user_1539@sip.example.org clrtxt:secret ; +sip:user_1540@sip.example.org clrtxt:secret ; +sip:user_1541@sip.example.org clrtxt:secret ; +sip:user_1542@sip.example.org clrtxt:secret ; +sip:user_1543@sip.example.org clrtxt:secret ; +sip:user_1544@sip.example.org clrtxt:secret ; +sip:user_1545@sip.example.org clrtxt:secret ; +sip:user_1546@sip.example.org clrtxt:secret ; +sip:user_1547@sip.example.org clrtxt:secret ; +sip:user_1548@sip.example.org clrtxt:secret ; +sip:user_1549@sip.example.org clrtxt:secret ; +sip:user_1550@sip.example.org clrtxt:secret ; +sip:user_1551@sip.example.org clrtxt:secret ; +sip:user_1552@sip.example.org clrtxt:secret ; +sip:user_1553@sip.example.org clrtxt:secret ; +sip:user_1554@sip.example.org clrtxt:secret ; +sip:user_1555@sip.example.org clrtxt:secret ; +sip:user_1556@sip.example.org clrtxt:secret ; +sip:user_1557@sip.example.org clrtxt:secret ; +sip:user_1558@sip.example.org clrtxt:secret ; +sip:user_1559@sip.example.org clrtxt:secret ; +sip:user_1560@sip.example.org clrtxt:secret ; +sip:user_1561@sip.example.org clrtxt:secret ; +sip:user_1562@sip.example.org clrtxt:secret ; +sip:user_1563@sip.example.org clrtxt:secret ; +sip:user_1564@sip.example.org clrtxt:secret ; +sip:user_1565@sip.example.org clrtxt:secret ; +sip:user_1566@sip.example.org clrtxt:secret ; +sip:user_1567@sip.example.org clrtxt:secret ; +sip:user_1568@sip.example.org clrtxt:secret ; +sip:user_1569@sip.example.org clrtxt:secret ; +sip:user_1570@sip.example.org clrtxt:secret ; +sip:user_1571@sip.example.org clrtxt:secret ; +sip:user_1572@sip.example.org clrtxt:secret ; +sip:user_1573@sip.example.org clrtxt:secret ; +sip:user_1574@sip.example.org clrtxt:secret ; +sip:user_1575@sip.example.org clrtxt:secret ; +sip:user_1576@sip.example.org clrtxt:secret ; +sip:user_1577@sip.example.org clrtxt:secret ; +sip:user_1578@sip.example.org clrtxt:secret ; +sip:user_1579@sip.example.org clrtxt:secret ; +sip:user_1580@sip.example.org clrtxt:secret ; +sip:user_1581@sip.example.org clrtxt:secret ; +sip:user_1582@sip.example.org clrtxt:secret ; +sip:user_1583@sip.example.org clrtxt:secret ; +sip:user_1584@sip.example.org clrtxt:secret ; +sip:user_1585@sip.example.org clrtxt:secret ; +sip:user_1586@sip.example.org clrtxt:secret ; +sip:user_1587@sip.example.org clrtxt:secret ; +sip:user_1588@sip.example.org clrtxt:secret ; +sip:user_1589@sip.example.org clrtxt:secret ; +sip:user_1590@sip.example.org clrtxt:secret ; +sip:user_1591@sip.example.org clrtxt:secret ; +sip:user_1592@sip.example.org clrtxt:secret ; +sip:user_1593@sip.example.org clrtxt:secret ; +sip:user_1594@sip.example.org clrtxt:secret ; +sip:user_1595@sip.example.org clrtxt:secret ; +sip:user_1596@sip.example.org clrtxt:secret ; +sip:user_1597@sip.example.org clrtxt:secret ; +sip:user_1598@sip.example.org clrtxt:secret ; +sip:user_1599@sip.example.org clrtxt:secret ; +sip:user_1600@sip.example.org clrtxt:secret ; +sip:user_1601@sip.example.org clrtxt:secret ; +sip:user_1602@sip.example.org clrtxt:secret ; +sip:user_1603@sip.example.org clrtxt:secret ; +sip:user_1604@sip.example.org clrtxt:secret ; +sip:user_1605@sip.example.org clrtxt:secret ; +sip:user_1606@sip.example.org clrtxt:secret ; +sip:user_1607@sip.example.org clrtxt:secret ; +sip:user_1608@sip.example.org clrtxt:secret ; +sip:user_1609@sip.example.org clrtxt:secret ; +sip:user_1610@sip.example.org clrtxt:secret ; +sip:user_1611@sip.example.org clrtxt:secret ; +sip:user_1612@sip.example.org clrtxt:secret ; +sip:user_1613@sip.example.org clrtxt:secret ; +sip:user_1614@sip.example.org clrtxt:secret ; +sip:user_1615@sip.example.org clrtxt:secret ; +sip:user_1616@sip.example.org clrtxt:secret ; +sip:user_1617@sip.example.org clrtxt:secret ; +sip:user_1618@sip.example.org clrtxt:secret ; +sip:user_1619@sip.example.org clrtxt:secret ; +sip:user_1620@sip.example.org clrtxt:secret ; +sip:user_1621@sip.example.org clrtxt:secret ; +sip:user_1622@sip.example.org clrtxt:secret ; +sip:user_1623@sip.example.org clrtxt:secret ; +sip:user_1624@sip.example.org clrtxt:secret ; +sip:user_1625@sip.example.org clrtxt:secret ; +sip:user_1626@sip.example.org clrtxt:secret ; +sip:user_1627@sip.example.org clrtxt:secret ; +sip:user_1628@sip.example.org clrtxt:secret ; +sip:user_1629@sip.example.org clrtxt:secret ; +sip:user_1630@sip.example.org clrtxt:secret ; +sip:user_1631@sip.example.org clrtxt:secret ; +sip:user_1632@sip.example.org clrtxt:secret ; +sip:user_1633@sip.example.org clrtxt:secret ; +sip:user_1634@sip.example.org clrtxt:secret ; +sip:user_1635@sip.example.org clrtxt:secret ; +sip:user_1636@sip.example.org clrtxt:secret ; +sip:user_1637@sip.example.org clrtxt:secret ; +sip:user_1638@sip.example.org clrtxt:secret ; +sip:user_1639@sip.example.org clrtxt:secret ; +sip:user_1640@sip.example.org clrtxt:secret ; +sip:user_1641@sip.example.org clrtxt:secret ; +sip:user_1642@sip.example.org clrtxt:secret ; +sip:user_1643@sip.example.org clrtxt:secret ; +sip:user_1644@sip.example.org clrtxt:secret ; +sip:user_1645@sip.example.org clrtxt:secret ; +sip:user_1646@sip.example.org clrtxt:secret ; +sip:user_1647@sip.example.org clrtxt:secret ; +sip:user_1648@sip.example.org clrtxt:secret ; +sip:user_1649@sip.example.org clrtxt:secret ; +sip:user_1650@sip.example.org clrtxt:secret ; +sip:user_1651@sip.example.org clrtxt:secret ; +sip:user_1652@sip.example.org clrtxt:secret ; +sip:user_1653@sip.example.org clrtxt:secret ; +sip:user_1654@sip.example.org clrtxt:secret ; +sip:user_1655@sip.example.org clrtxt:secret ; +sip:user_1656@sip.example.org clrtxt:secret ; +sip:user_1657@sip.example.org clrtxt:secret ; +sip:user_1658@sip.example.org clrtxt:secret ; +sip:user_1659@sip.example.org clrtxt:secret ; +sip:user_1660@sip.example.org clrtxt:secret ; +sip:user_1661@sip.example.org clrtxt:secret ; +sip:user_1662@sip.example.org clrtxt:secret ; +sip:user_1663@sip.example.org clrtxt:secret ; +sip:user_1664@sip.example.org clrtxt:secret ; +sip:user_1665@sip.example.org clrtxt:secret ; +sip:user_1666@sip.example.org clrtxt:secret ; +sip:user_1667@sip.example.org clrtxt:secret ; +sip:user_1668@sip.example.org clrtxt:secret ; +sip:user_1669@sip.example.org clrtxt:secret ; +sip:user_1670@sip.example.org clrtxt:secret ; +sip:user_1671@sip.example.org clrtxt:secret ; +sip:user_1672@sip.example.org clrtxt:secret ; +sip:user_1673@sip.example.org clrtxt:secret ; +sip:user_1674@sip.example.org clrtxt:secret ; +sip:user_1675@sip.example.org clrtxt:secret ; +sip:user_1676@sip.example.org clrtxt:secret ; +sip:user_1677@sip.example.org clrtxt:secret ; +sip:user_1678@sip.example.org clrtxt:secret ; +sip:user_1679@sip.example.org clrtxt:secret ; +sip:user_1680@sip.example.org clrtxt:secret ; +sip:user_1681@sip.example.org clrtxt:secret ; +sip:user_1682@sip.example.org clrtxt:secret ; +sip:user_1683@sip.example.org clrtxt:secret ; +sip:user_1684@sip.example.org clrtxt:secret ; +sip:user_1685@sip.example.org clrtxt:secret ; +sip:user_1686@sip.example.org clrtxt:secret ; +sip:user_1687@sip.example.org clrtxt:secret ; +sip:user_1688@sip.example.org clrtxt:secret ; +sip:user_1689@sip.example.org clrtxt:secret ; +sip:user_1690@sip.example.org clrtxt:secret ; +sip:user_1691@sip.example.org clrtxt:secret ; +sip:user_1692@sip.example.org clrtxt:secret ; +sip:user_1693@sip.example.org clrtxt:secret ; +sip:user_1694@sip.example.org clrtxt:secret ; +sip:user_1695@sip.example.org clrtxt:secret ; +sip:user_1696@sip.example.org clrtxt:secret ; +sip:user_1697@sip.example.org clrtxt:secret ; +sip:user_1698@sip.example.org clrtxt:secret ; +sip:user_1699@sip.example.org clrtxt:secret ; +sip:user_1700@sip.example.org clrtxt:secret ; +sip:user_1701@sip.example.org clrtxt:secret ; +sip:user_1702@sip.example.org clrtxt:secret ; +sip:user_1703@sip.example.org clrtxt:secret ; +sip:user_1704@sip.example.org clrtxt:secret ; +sip:user_1705@sip.example.org clrtxt:secret ; +sip:user_1706@sip.example.org clrtxt:secret ; +sip:user_1707@sip.example.org clrtxt:secret ; +sip:user_1708@sip.example.org clrtxt:secret ; +sip:user_1709@sip.example.org clrtxt:secret ; +sip:user_1710@sip.example.org clrtxt:secret ; +sip:user_1711@sip.example.org clrtxt:secret ; +sip:user_1712@sip.example.org clrtxt:secret ; +sip:user_1713@sip.example.org clrtxt:secret ; +sip:user_1714@sip.example.org clrtxt:secret ; +sip:user_1715@sip.example.org clrtxt:secret ; +sip:user_1716@sip.example.org clrtxt:secret ; +sip:user_1717@sip.example.org clrtxt:secret ; +sip:user_1718@sip.example.org clrtxt:secret ; +sip:user_1719@sip.example.org clrtxt:secret ; +sip:user_1720@sip.example.org clrtxt:secret ; +sip:user_1721@sip.example.org clrtxt:secret ; +sip:user_1722@sip.example.org clrtxt:secret ; +sip:user_1723@sip.example.org clrtxt:secret ; +sip:user_1724@sip.example.org clrtxt:secret ; +sip:user_1725@sip.example.org clrtxt:secret ; +sip:user_1726@sip.example.org clrtxt:secret ; +sip:user_1727@sip.example.org clrtxt:secret ; +sip:user_1728@sip.example.org clrtxt:secret ; +sip:user_1729@sip.example.org clrtxt:secret ; +sip:user_1730@sip.example.org clrtxt:secret ; +sip:user_1731@sip.example.org clrtxt:secret ; +sip:user_1732@sip.example.org clrtxt:secret ; +sip:user_1733@sip.example.org clrtxt:secret ; +sip:user_1734@sip.example.org clrtxt:secret ; +sip:user_1735@sip.example.org clrtxt:secret ; +sip:user_1736@sip.example.org clrtxt:secret ; +sip:user_1737@sip.example.org clrtxt:secret ; +sip:user_1738@sip.example.org clrtxt:secret ; +sip:user_1739@sip.example.org clrtxt:secret ; +sip:user_1740@sip.example.org clrtxt:secret ; +sip:user_1741@sip.example.org clrtxt:secret ; +sip:user_1742@sip.example.org clrtxt:secret ; +sip:user_1743@sip.example.org clrtxt:secret ; +sip:user_1744@sip.example.org clrtxt:secret ; +sip:user_1745@sip.example.org clrtxt:secret ; +sip:user_1746@sip.example.org clrtxt:secret ; +sip:user_1747@sip.example.org clrtxt:secret ; +sip:user_1748@sip.example.org clrtxt:secret ; +sip:user_1749@sip.example.org clrtxt:secret ; +sip:user_1750@sip.example.org clrtxt:secret ; +sip:user_1751@sip.example.org clrtxt:secret ; +sip:user_1752@sip.example.org clrtxt:secret ; +sip:user_1753@sip.example.org clrtxt:secret ; +sip:user_1754@sip.example.org clrtxt:secret ; +sip:user_1755@sip.example.org clrtxt:secret ; +sip:user_1756@sip.example.org clrtxt:secret ; +sip:user_1757@sip.example.org clrtxt:secret ; +sip:user_1758@sip.example.org clrtxt:secret ; +sip:user_1759@sip.example.org clrtxt:secret ; +sip:user_1760@sip.example.org clrtxt:secret ; +sip:user_1761@sip.example.org clrtxt:secret ; +sip:user_1762@sip.example.org clrtxt:secret ; +sip:user_1763@sip.example.org clrtxt:secret ; +sip:user_1764@sip.example.org clrtxt:secret ; +sip:user_1765@sip.example.org clrtxt:secret ; +sip:user_1766@sip.example.org clrtxt:secret ; +sip:user_1767@sip.example.org clrtxt:secret ; +sip:user_1768@sip.example.org clrtxt:secret ; +sip:user_1769@sip.example.org clrtxt:secret ; +sip:user_1770@sip.example.org clrtxt:secret ; +sip:user_1771@sip.example.org clrtxt:secret ; +sip:user_1772@sip.example.org clrtxt:secret ; +sip:user_1773@sip.example.org clrtxt:secret ; +sip:user_1774@sip.example.org clrtxt:secret ; +sip:user_1775@sip.example.org clrtxt:secret ; +sip:user_1776@sip.example.org clrtxt:secret ; +sip:user_1777@sip.example.org clrtxt:secret ; +sip:user_1778@sip.example.org clrtxt:secret ; +sip:user_1779@sip.example.org clrtxt:secret ; +sip:user_1780@sip.example.org clrtxt:secret ; +sip:user_1781@sip.example.org clrtxt:secret ; +sip:user_1782@sip.example.org clrtxt:secret ; +sip:user_1783@sip.example.org clrtxt:secret ; +sip:user_1784@sip.example.org clrtxt:secret ; +sip:user_1785@sip.example.org clrtxt:secret ; +sip:user_1786@sip.example.org clrtxt:secret ; +sip:user_1787@sip.example.org clrtxt:secret ; +sip:user_1788@sip.example.org clrtxt:secret ; +sip:user_1789@sip.example.org clrtxt:secret ; +sip:user_1790@sip.example.org clrtxt:secret ; +sip:user_1791@sip.example.org clrtxt:secret ; +sip:user_1792@sip.example.org clrtxt:secret ; +sip:user_1793@sip.example.org clrtxt:secret ; +sip:user_1794@sip.example.org clrtxt:secret ; +sip:user_1795@sip.example.org clrtxt:secret ; +sip:user_1796@sip.example.org clrtxt:secret ; +sip:user_1797@sip.example.org clrtxt:secret ; +sip:user_1798@sip.example.org clrtxt:secret ; +sip:user_1799@sip.example.org clrtxt:secret ; +sip:user_1800@sip.example.org clrtxt:secret ; +sip:user_1801@sip.example.org clrtxt:secret ; +sip:user_1802@sip.example.org clrtxt:secret ; +sip:user_1803@sip.example.org clrtxt:secret ; +sip:user_1804@sip.example.org clrtxt:secret ; +sip:user_1805@sip.example.org clrtxt:secret ; +sip:user_1806@sip.example.org clrtxt:secret ; +sip:user_1807@sip.example.org clrtxt:secret ; +sip:user_1808@sip.example.org clrtxt:secret ; +sip:user_1809@sip.example.org clrtxt:secret ; +sip:user_1810@sip.example.org clrtxt:secret ; +sip:user_1811@sip.example.org clrtxt:secret ; +sip:user_1812@sip.example.org clrtxt:secret ; +sip:user_1813@sip.example.org clrtxt:secret ; +sip:user_1814@sip.example.org clrtxt:secret ; +sip:user_1815@sip.example.org clrtxt:secret ; +sip:user_1816@sip.example.org clrtxt:secret ; +sip:user_1817@sip.example.org clrtxt:secret ; +sip:user_1818@sip.example.org clrtxt:secret ; +sip:user_1819@sip.example.org clrtxt:secret ; +sip:user_1820@sip.example.org clrtxt:secret ; +sip:user_1821@sip.example.org clrtxt:secret ; +sip:user_1822@sip.example.org clrtxt:secret ; +sip:user_1823@sip.example.org clrtxt:secret ; +sip:user_1824@sip.example.org clrtxt:secret ; +sip:user_1825@sip.example.org clrtxt:secret ; +sip:user_1826@sip.example.org clrtxt:secret ; +sip:user_1827@sip.example.org clrtxt:secret ; +sip:user_1828@sip.example.org clrtxt:secret ; +sip:user_1829@sip.example.org clrtxt:secret ; +sip:user_1830@sip.example.org clrtxt:secret ; +sip:user_1831@sip.example.org clrtxt:secret ; +sip:user_1832@sip.example.org clrtxt:secret ; +sip:user_1833@sip.example.org clrtxt:secret ; +sip:user_1834@sip.example.org clrtxt:secret ; +sip:user_1835@sip.example.org clrtxt:secret ; +sip:user_1836@sip.example.org clrtxt:secret ; +sip:user_1837@sip.example.org clrtxt:secret ; +sip:user_1838@sip.example.org clrtxt:secret ; +sip:user_1839@sip.example.org clrtxt:secret ; +sip:user_1840@sip.example.org clrtxt:secret ; +sip:user_1841@sip.example.org clrtxt:secret ; +sip:user_1842@sip.example.org clrtxt:secret ; +sip:user_1843@sip.example.org clrtxt:secret ; +sip:user_1844@sip.example.org clrtxt:secret ; +sip:user_1845@sip.example.org clrtxt:secret ; +sip:user_1846@sip.example.org clrtxt:secret ; +sip:user_1847@sip.example.org clrtxt:secret ; +sip:user_1848@sip.example.org clrtxt:secret ; +sip:user_1849@sip.example.org clrtxt:secret ; +sip:user_1850@sip.example.org clrtxt:secret ; +sip:user_1851@sip.example.org clrtxt:secret ; +sip:user_1852@sip.example.org clrtxt:secret ; +sip:user_1853@sip.example.org clrtxt:secret ; +sip:user_1854@sip.example.org clrtxt:secret ; +sip:user_1855@sip.example.org clrtxt:secret ; +sip:user_1856@sip.example.org clrtxt:secret ; +sip:user_1857@sip.example.org clrtxt:secret ; +sip:user_1858@sip.example.org clrtxt:secret ; +sip:user_1859@sip.example.org clrtxt:secret ; +sip:user_1860@sip.example.org clrtxt:secret ; +sip:user_1861@sip.example.org clrtxt:secret ; +sip:user_1862@sip.example.org clrtxt:secret ; +sip:user_1863@sip.example.org clrtxt:secret ; +sip:user_1864@sip.example.org clrtxt:secret ; +sip:user_1865@sip.example.org clrtxt:secret ; +sip:user_1866@sip.example.org clrtxt:secret ; +sip:user_1867@sip.example.org clrtxt:secret ; +sip:user_1868@sip.example.org clrtxt:secret ; +sip:user_1869@sip.example.org clrtxt:secret ; +sip:user_1870@sip.example.org clrtxt:secret ; +sip:user_1871@sip.example.org clrtxt:secret ; +sip:user_1872@sip.example.org clrtxt:secret ; +sip:user_1873@sip.example.org clrtxt:secret ; +sip:user_1874@sip.example.org clrtxt:secret ; +sip:user_1875@sip.example.org clrtxt:secret ; +sip:user_1876@sip.example.org clrtxt:secret ; +sip:user_1877@sip.example.org clrtxt:secret ; +sip:user_1878@sip.example.org clrtxt:secret ; +sip:user_1879@sip.example.org clrtxt:secret ; +sip:user_1880@sip.example.org clrtxt:secret ; +sip:user_1881@sip.example.org clrtxt:secret ; +sip:user_1882@sip.example.org clrtxt:secret ; +sip:user_1883@sip.example.org clrtxt:secret ; +sip:user_1884@sip.example.org clrtxt:secret ; +sip:user_1885@sip.example.org clrtxt:secret ; +sip:user_1886@sip.example.org clrtxt:secret ; +sip:user_1887@sip.example.org clrtxt:secret ; +sip:user_1888@sip.example.org clrtxt:secret ; +sip:user_1889@sip.example.org clrtxt:secret ; +sip:user_1890@sip.example.org clrtxt:secret ; +sip:user_1891@sip.example.org clrtxt:secret ; +sip:user_1892@sip.example.org clrtxt:secret ; +sip:user_1893@sip.example.org clrtxt:secret ; +sip:user_1894@sip.example.org clrtxt:secret ; +sip:user_1895@sip.example.org clrtxt:secret ; +sip:user_1896@sip.example.org clrtxt:secret ; +sip:user_1897@sip.example.org clrtxt:secret ; +sip:user_1898@sip.example.org clrtxt:secret ; +sip:user_1899@sip.example.org clrtxt:secret ; +sip:user_1900@sip.example.org clrtxt:secret ; +sip:user_1901@sip.example.org clrtxt:secret ; +sip:user_1902@sip.example.org clrtxt:secret ; +sip:user_1903@sip.example.org clrtxt:secret ; +sip:user_1904@sip.example.org clrtxt:secret ; +sip:user_1905@sip.example.org clrtxt:secret ; +sip:user_1906@sip.example.org clrtxt:secret ; +sip:user_1907@sip.example.org clrtxt:secret ; +sip:user_1908@sip.example.org clrtxt:secret ; +sip:user_1909@sip.example.org clrtxt:secret ; +sip:user_1910@sip.example.org clrtxt:secret ; +sip:user_1911@sip.example.org clrtxt:secret ; +sip:user_1912@sip.example.org clrtxt:secret ; +sip:user_1913@sip.example.org clrtxt:secret ; +sip:user_1914@sip.example.org clrtxt:secret ; +sip:user_1915@sip.example.org clrtxt:secret ; +sip:user_1916@sip.example.org clrtxt:secret ; +sip:user_1917@sip.example.org clrtxt:secret ; +sip:user_1918@sip.example.org clrtxt:secret ; +sip:user_1919@sip.example.org clrtxt:secret ; +sip:user_1920@sip.example.org clrtxt:secret ; +sip:user_1921@sip.example.org clrtxt:secret ; +sip:user_1922@sip.example.org clrtxt:secret ; +sip:user_1923@sip.example.org clrtxt:secret ; +sip:user_1924@sip.example.org clrtxt:secret ; +sip:user_1925@sip.example.org clrtxt:secret ; +sip:user_1926@sip.example.org clrtxt:secret ; +sip:user_1927@sip.example.org clrtxt:secret ; +sip:user_1928@sip.example.org clrtxt:secret ; +sip:user_1929@sip.example.org clrtxt:secret ; +sip:user_1930@sip.example.org clrtxt:secret ; +sip:user_1931@sip.example.org clrtxt:secret ; +sip:user_1932@sip.example.org clrtxt:secret ; +sip:user_1933@sip.example.org clrtxt:secret ; +sip:user_1934@sip.example.org clrtxt:secret ; +sip:user_1935@sip.example.org clrtxt:secret ; +sip:user_1936@sip.example.org clrtxt:secret ; +sip:user_1937@sip.example.org clrtxt:secret ; +sip:user_1938@sip.example.org clrtxt:secret ; +sip:user_1939@sip.example.org clrtxt:secret ; +sip:user_1940@sip.example.org clrtxt:secret ; +sip:user_1941@sip.example.org clrtxt:secret ; +sip:user_1942@sip.example.org clrtxt:secret ; +sip:user_1943@sip.example.org clrtxt:secret ; +sip:user_1944@sip.example.org clrtxt:secret ; +sip:user_1945@sip.example.org clrtxt:secret ; +sip:user_1946@sip.example.org clrtxt:secret ; +sip:user_1947@sip.example.org clrtxt:secret ; +sip:user_1948@sip.example.org clrtxt:secret ; +sip:user_1949@sip.example.org clrtxt:secret ; +sip:user_1950@sip.example.org clrtxt:secret ; +sip:user_1951@sip.example.org clrtxt:secret ; +sip:user_1952@sip.example.org clrtxt:secret ; +sip:user_1953@sip.example.org clrtxt:secret ; +sip:user_1954@sip.example.org clrtxt:secret ; +sip:user_1955@sip.example.org clrtxt:secret ; +sip:user_1956@sip.example.org clrtxt:secret ; +sip:user_1957@sip.example.org clrtxt:secret ; +sip:user_1958@sip.example.org clrtxt:secret ; +sip:user_1959@sip.example.org clrtxt:secret ; +sip:user_1960@sip.example.org clrtxt:secret ; +sip:user_1961@sip.example.org clrtxt:secret ; +sip:user_1962@sip.example.org clrtxt:secret ; +sip:user_1963@sip.example.org clrtxt:secret ; +sip:user_1964@sip.example.org clrtxt:secret ; +sip:user_1965@sip.example.org clrtxt:secret ; +sip:user_1966@sip.example.org clrtxt:secret ; +sip:user_1967@sip.example.org clrtxt:secret ; +sip:user_1968@sip.example.org clrtxt:secret ; +sip:user_1969@sip.example.org clrtxt:secret ; +sip:user_1970@sip.example.org clrtxt:secret ; +sip:user_1971@sip.example.org clrtxt:secret ; +sip:user_1972@sip.example.org clrtxt:secret ; +sip:user_1973@sip.example.org clrtxt:secret ; +sip:user_1974@sip.example.org clrtxt:secret ; +sip:user_1975@sip.example.org clrtxt:secret ; +sip:user_1976@sip.example.org clrtxt:secret ; +sip:user_1977@sip.example.org clrtxt:secret ; +sip:user_1978@sip.example.org clrtxt:secret ; +sip:user_1979@sip.example.org clrtxt:secret ; +sip:user_1980@sip.example.org clrtxt:secret ; +sip:user_1981@sip.example.org clrtxt:secret ; +sip:user_1982@sip.example.org clrtxt:secret ; +sip:user_1983@sip.example.org clrtxt:secret ; +sip:user_1984@sip.example.org clrtxt:secret ; +sip:user_1985@sip.example.org clrtxt:secret ; +sip:user_1986@sip.example.org clrtxt:secret ; +sip:user_1987@sip.example.org clrtxt:secret ; +sip:user_1988@sip.example.org clrtxt:secret ; +sip:user_1989@sip.example.org clrtxt:secret ; +sip:user_1990@sip.example.org clrtxt:secret ; +sip:user_1991@sip.example.org clrtxt:secret ; +sip:user_1992@sip.example.org clrtxt:secret ; +sip:user_1993@sip.example.org clrtxt:secret ; +sip:user_1994@sip.example.org clrtxt:secret ; +sip:user_1995@sip.example.org clrtxt:secret ; +sip:user_1996@sip.example.org clrtxt:secret ; +sip:user_1997@sip.example.org clrtxt:secret ; +sip:user_1998@sip.example.org clrtxt:secret ; +sip:user_1999@sip.example.org clrtxt:secret ; +sip:user_2000@sip.example.org clrtxt:secret ; diff --git a/tester/presence_server_tester.c b/tester/presence_server_tester.c index 62bb8a364..db3f0ca07 100644 --- a/tester/presence_server_tester.c +++ b/tester/presence_server_tester.c @@ -788,7 +788,7 @@ static void presence_list_subscribe_network_changes(void) { linphone_core_set_presence_model(pauline->lc, presence); linphone_presence_model_unref(presence); - BC_ASSERT_TRUE(wait_for_until(laure->lc, pauline->lc, &laure->stat.number_of_LinphonePresenceActivityAway, 1, 6000)); + BC_ASSERT_TRUE(wait_for_until(laure->lc, pauline->lc, &laure->stat.number_of_LinphonePresenceActivityAway, 2, 6000)); lf = linphone_friend_list_find_friend_by_uri(linphone_core_get_default_friend_list(laure->lc), pauline_identity); BC_ASSERT_EQUAL(linphone_friend_get_status(lf), LinphoneStatusAway, int, "%d"); @@ -829,6 +829,28 @@ static void long_term_presence_base(const char* addr, bool_t exist, const char* linphone_friend_unref(friend2); linphone_core_manager_destroy(pauline); } + +static void long_term_presence_large_number_of_subs(void) { + int i=0; + LinphoneCoreManager* pauline = linphone_core_manager_new(transport_supported(LinphoneTransportTls) ? "pauline_rc" : "pauline_tcp_rc"); + linphone_core_set_user_agent(pauline->lc, "bypass", NULL); + LinphoneFriendList *friends = linphone_core_create_friend_list(pauline->lc); + linphone_friend_list_set_rls_uri(friends, "sip:rls@sip.example.org"); + for (i = 0 ; i <1000; i++ ) { + char user_id[256]; + snprintf(user_id, sizeof(user_id), "sip:user_%i@sip.example.org",i); + LinphoneFriend* friend2 =linphone_core_create_friend_with_address(pauline->lc, user_id); + linphone_friend_list_add_friend(friends,friend2); + linphone_friend_unref(friend2); + } + linphone_core_add_friend_list(pauline->lc, friends); + linphone_friend_list_unref(friends); + + BC_ASSERT_TRUE(wait_for(pauline->lc,NULL,&pauline->stat.number_of_NotifyPresenceReceived,i)); + + linphone_core_manager_destroy(pauline); +} + static void long_term_presence_existing_friend(void) { // this friend is not online, but is known from flexisip to be registered (see flexisip/userdb.conf), // so we expect to get a report that he is currently not online @@ -1739,6 +1761,7 @@ test_t presence_server_tests[] = { TEST_ONE_TAG("Long term presence with +164 phone, without sip",long_term_presence_with_e164_phone_without_sip, "longterm"), TEST_ONE_TAG("Long term presence with phone, without sip",long_term_presence_with_phone_without_sip, "longterm"), TEST_ONE_TAG("Long term presence with cross references", long_term_presence_with_crossed_references,"longtern"), + TEST_ONE_TAG("Long term presence with large number of subs", long_term_presence_large_number_of_subs,"longtern"), TEST_NO_TAG("Subscriber no longer reachable using server",subscriber_no_longer_reachable), TEST_NO_TAG("Subscribe with late publish", subscribe_with_late_publish), TEST_NO_TAG("Multiple publish aggregation", multiple_publish_aggregation), From ba68bf754c82ce3d53be5c91d93adf0e022774ad Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Wed, 28 Mar 2018 15:09:20 +0200 Subject: [PATCH 06/23] improve group chat tests reliability --- tester/group_chat_tester.c | 5 +++-- tester/rcfiles/marie_rc | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/tester/group_chat_tester.c b/tester/group_chat_tester.c index bc9bb7159..9ddfc9329 100644 --- a/tester/group_chat_tester.c +++ b/tester/group_chat_tester.c @@ -2430,6 +2430,7 @@ static void group_chat_room_migrate_from_basic_to_client_fail (void) { BC_ASSERT_EQUAL(linphone_chat_room_get_history_size(paulineCr), 4, int, "%d"); // Activate groupchat on Pauline's side and wait for 5 seconds, the migration should now be done on next message sending + lp_config_set_int(linphone_core_get_config(marie->lc),"misc","basic_to_client_group_chat_room_migration_timer",5); linphone_core_set_linphone_specs(pauline->lc, "groupchat"); linphone_core_set_network_reachable(pauline->lc, FALSE); wait_for_list(coresList, &dummy, 1, 1000); @@ -2508,13 +2509,13 @@ static void group_chat_donot_room_migrate_from_basic_chat_room (void) { linphone_chat_message_send(msg); linphone_chat_message_unref(msg); BC_ASSERT_FALSE(wait_for_list(coresList, &marie->stat.number_of_LinphoneChatRoomStateCreationPending, initialMarieStats.number_of_LinphoneChatRoomStateCreationPending + 1, 10000)); - BC_ASSERT_FALSE(wait_for_list(coresList, &marie->stat.number_of_LinphoneChatRoomStateCreated, initialMarieStats.number_of_LinphoneChatRoomStateCreated + 1, 10000)); + BC_ASSERT_FALSE(wait_for_list(coresList, &marie->stat.number_of_LinphoneChatRoomStateCreated, initialMarieStats.number_of_LinphoneChatRoomStateCreated + 1, 3000)); BC_ASSERT_TRUE(linphone_chat_room_get_capabilities(marieCr) & LinphoneChatRoomCapabilitiesBasic); BC_ASSERT_EQUAL(linphone_chat_room_get_nb_participants(marieCr), 1, int, "%d"); BC_ASSERT_EQUAL(linphone_chat_room_get_history_size(marieCr), 2, int, "%d"); BC_ASSERT_FALSE(wait_for_list(coresList, &pauline->stat.number_of_LinphoneChatRoomStateCreationPending, initialPaulineStats.number_of_LinphoneChatRoomStateCreationPending + 1, 10000)); - BC_ASSERT_FALSE(wait_for_list(coresList, &pauline->stat.number_of_LinphoneChatRoomStateCreated, initialPaulineStats.number_of_LinphoneChatRoomStateCreated + 1, 10000)); + BC_ASSERT_FALSE(wait_for_list(coresList, &pauline->stat.number_of_LinphoneChatRoomStateCreated, initialPaulineStats.number_of_LinphoneChatRoomStateCreated + 1, 3000)); BC_ASSERT_TRUE(linphone_chat_room_get_capabilities(paulineCr) & LinphoneChatRoomCapabilitiesBasic); BC_ASSERT_EQUAL(linphone_chat_room_get_nb_participants(paulineCr), 1, int, "%d"); BC_ASSERT_TRUE(wait_for_list(coresList, &pauline->stat.number_of_LinphoneMessageReceived, initialPaulineStats.number_of_LinphoneMessageReceived + 1, 1000)); diff --git a/tester/rcfiles/marie_rc b/tester/rcfiles/marie_rc index ce4c4877f..7c511b311 100644 --- a/tester/rcfiles/marie_rc +++ b/tester/rcfiles/marie_rc @@ -29,7 +29,7 @@ subscribe=0 [misc] enable_basic_to_client_group_chat_room_migration=1 -basic_to_client_group_chat_room_migration_timer=10 +basic_to_client_group_chat_room_migration_timer=180 [rtp] audio_rtp_port=18070-28000 From cd08c6e2fee6c99ead64dde6783337714c5aedc8 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 28 Mar 2018 15:28:49 +0200 Subject: [PATCH 07/23] Added missing doc in header --- include/linphone/api/c-chat-room.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/include/linphone/api/c-chat-room.h b/include/linphone/api/c-chat-room.h index 63aa290cb..41f3c669e 100644 --- a/include/linphone/api/c-chat-room.h +++ b/include/linphone/api/c-chat-room.h @@ -227,6 +227,12 @@ LINPHONE_PUBLIC int linphone_chat_room_get_history_events_size(LinphoneChatRoom */ LINPHONE_PUBLIC LinphoneChatMessage *linphone_chat_room_get_last_message_in_history(LinphoneChatRoom *cr); +/** + * Gets the chat message sent or received in this chat room that matches the message_id + * @param[in] cr The #LinphoneChatRoom object corresponding to the conversation for which the message should be retrieved + * @param[in] message_id The id of the message to find + * @return the #LinphoneChatMessage + */ LINPHONE_PUBLIC LinphoneChatMessage * linphone_chat_room_find_message(LinphoneChatRoom *cr, const char *message_id); /** From 8966c2ca77289366aa6bb93ec5199683d057acd8 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 28 Mar 2018 18:20:22 +0200 Subject: [PATCH 08/23] Started method to get participants in given state for given chat message --- include/linphone/api/c-chat-message.h | 2 ++ src/c-wrapper/api/c-chat-message.cpp | 5 +++++ src/chat/chat-message/chat-message-p.h | 1 + src/chat/chat-message/chat-message.cpp | 24 ++++++++++++++++++++++++ src/chat/chat-message/chat-message.h | 1 + src/db/main-db.cpp | 24 ++++++++++++++++++++++++ src/db/main-db.h | 1 + 7 files changed, 58 insertions(+) diff --git a/include/linphone/api/c-chat-message.h b/include/linphone/api/c-chat-message.h index f028464a2..1cd3dbd21 100644 --- a/include/linphone/api/c-chat-message.h +++ b/include/linphone/api/c-chat-message.h @@ -369,6 +369,8 @@ LINPHONE_PUBLIC const char* linphone_chat_message_get_text_content(const Linphon */ LINPHONE_PUBLIC bool_t linphone_chat_message_is_file_transfer_in_progress(LinphoneChatMessage *msg); +LINPHONE_PUBLIC bctbx_list_t *linphone_chat_message_get_participants_in_state (const LinphoneChatMessage *msg, const LinphoneChatMessageState state); + /** * @} */ diff --git a/src/c-wrapper/api/c-chat-message.cpp b/src/c-wrapper/api/c-chat-message.cpp index 902055f9a..a616a9659 100644 --- a/src/c-wrapper/api/c-chat-message.cpp +++ b/src/c-wrapper/api/c-chat-message.cpp @@ -31,6 +31,7 @@ #include "chat/notification/imdn.h" #include "content/content-type.h" #include "content/content.h" +#include "conference/participant.h" // ============================================================================= @@ -246,6 +247,10 @@ bool_t linphone_chat_message_is_file_transfer_in_progress(LinphoneChatMessage *m return L_GET_CPP_PTR_FROM_C_OBJECT(msg)->isFileTransferInProgress(); } +bctbx_list_t *linphone_chat_message_get_participants_in_state (const LinphoneChatMessage *msg, const LinphoneChatMessageState state) { + return L_GET_RESOLVED_C_LIST_FROM_CPP_LIST(L_GET_PRIVATE_FROM_C_OBJECT(msg)->getParticipantsInState((LinphonePrivate::ChatMessage::State) state)); +} + // ============================================================================= // Old listener // ============================================================================= diff --git a/src/chat/chat-message/chat-message-p.h b/src/chat/chat-message/chat-message-p.h index b665e0d1f..4c957ed71 100644 --- a/src/chat/chat-message/chat-message-p.h +++ b/src/chat/chat-message/chat-message-p.h @@ -59,6 +59,7 @@ public: void setDirection (ChatMessage::Direction dir); void setParticipantState (const IdentityAddress &participantAddress, ChatMessage::State newState); + std::list> getParticipantsInState (const ChatMessage::State state) const; void setState (ChatMessage::State newState, bool force = false); void setTime (time_t time); diff --git a/src/chat/chat-message/chat-message.cpp b/src/chat/chat-message/chat-message.cpp index eb2d1f029..0fcde7521 100644 --- a/src/chat/chat-message/chat-message.cpp +++ b/src/chat/chat-message/chat-message.cpp @@ -34,6 +34,7 @@ #include "chat/modifier/encryption-chat-message-modifier.h" #include "chat/modifier/file-transfer-chat-message-modifier.h" #include "chat/modifier/multipart-chat-message-modifier.h" +#include "conference/participant.h" #include "content/file-content.h" #include "content/content.h" #include "core/core.h" @@ -122,6 +123,29 @@ void ChatMessagePrivate::setParticipantState (const IdentityAddress &participant setState(ChatMessage::State::DeliveredToUser); } +list> ChatMessagePrivate::getParticipantsInState (const ChatMessage::State state) const { + L_Q(); + + list> participantsInState; + if (!(q->getChatRoom()->getCapabilities() & AbstractChatRoom::Capabilities::Conference) || !dbKey.isValid()) { + return participantsInState; + } + + unique_ptr &mainDb = q->getChatRoom()->getCore()->getPrivate()->mainDb; + shared_ptr eventLog = mainDb->getEventFromKey(dbKey); + list addressesInState = mainDb->getChatMessageParticipantsInState(eventLog, state); + const list> &participants = q->getChatRoom()->getParticipants(); + for (IdentityAddress addr : addressesInState) { + for (const auto &participant : participants) { + if (participant->getAddress() == addr) { + participantsInState.push_back(participant); + } + } + } + + return participantsInState; +} + void ChatMessagePrivate::setState (ChatMessage::State newState, bool force) { L_Q(); diff --git a/src/chat/chat-message/chat-message.h b/src/chat/chat-message/chat-message.h index 961455882..2b53bda7d 100644 --- a/src/chat/chat-message/chat-message.h +++ b/src/chat/chat-message/chat-message.h @@ -39,6 +39,7 @@ class AbstractChatRoom; class Content; class FileTransferContent; class ChatMessagePrivate; +class Participant; class LINPHONE_PUBLIC ChatMessage : public Object, public CoreAccessor { friend class BasicToClientGroupChatRoom; diff --git a/src/db/main-db.cpp b/src/db/main-db.cpp index 983630099..e6cfd375d 100644 --- a/src/db/main-db.cpp +++ b/src/db/main-db.cpp @@ -1970,6 +1970,30 @@ list MainDb::getChatMessageParticipantStates (const shared_p }; } +list MainDb::getChatMessageParticipantsInState (const shared_ptr &eventLog, const ChatMessage::State state) const { + return L_DB_TRANSACTION { + L_D(); + + const EventLogPrivate *dEventLog = eventLog->getPrivate(); + MainDbKeyPrivate *dEventKey = static_cast(dEventLog->dbKey).getPrivate(); + const long long &eventId = dEventKey->storageId; + + int stateInt = static_cast(state); + list participantsAddresses; + + static const string query = "SELECT sip_address.value" + " FROM sip_address, chat_message_participant" + " WHERE event_id = :eventId AND state = :state" + " AND sip_address.id = chat_message_participant.participant_sip_address_id"; + soci::rowset rows = (d->dbSession.getBackendSession()->prepare << query, soci::use(eventId), soci::use(stateInt)); + for (const auto &row : rows) { + participantsAddresses.push_back(IdentityAddress(row.get(0))); + } + + return participantsAddresses; + }; +} + ChatMessage::State MainDb::getChatMessageParticipantState ( const shared_ptr &eventLog, const IdentityAddress &participantAddress diff --git a/src/db/main-db.h b/src/db/main-db.h index f0f4b6f06..ae46a5e3e 100644 --- a/src/db/main-db.h +++ b/src/db/main-db.h @@ -91,6 +91,7 @@ public: std::list> getUnreadChatMessages (const ChatRoomId &chatRoomId) const; std::list getChatMessageParticipantStates (const std::shared_ptr &eventLog) const; + std::list getChatMessageParticipantsInState (const std::shared_ptr &eventLog, const ChatMessage::State state) const; ChatMessage::State getChatMessageParticipantState ( const std::shared_ptr &eventLog, const IdentityAddress &participantAddress From 04fffe5c9053f2b4ec6f2d79b857d6907f4ce864 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Tue, 26 Sep 2017 10:22:08 +0200 Subject: [PATCH 09/23] attempt to fix a crash with LinphoneChatMessage (java) pointing to a null LinphoneChatMessage (C) --- coreapi/linphonecore_jni.cc | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index 707d229f3..6b33215d2 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -4742,7 +4742,7 @@ static void message_state_changed(LinphoneChatMessage* msg, LinphoneChatMessageS } jclass clazz = (jclass) env->GetObjectClass(listener); jmethodID method = env->GetMethodID(clazz, "onLinphoneChatMessageStateChanged","(Lorg/linphone/core/LinphoneChatMessage;Lorg/linphone/core/LinphoneChatMessage$State;)V"); - jobject jmessage = getChatMessage(env, msg); + jobject jmessage = (jobject)linphone_chat_message_get_user_data(msg); /*this returns a global ref that was taken in setListener*/ env->DeleteLocalRef(clazz); LinphoneChatRoom *room = linphone_chat_message_get_chat_room(msg); @@ -4756,6 +4756,10 @@ static void message_state_changed(LinphoneChatMessage* msg, LinphoneChatMessageS } if (jmessage) { env->DeleteLocalRef(jmessage); + //We are going to drop our global ref, as the listener is no longer needed. + //Before, replace it by a weak ref, as other messages. + linphone_chat_message_set_user_data(msg, env->NewWeakGlobalRef(jmessage)); + env->DeleteGlobalRef(jmessage); } } @@ -4840,11 +4844,17 @@ static LinphoneBuffer* file_transfer_send(LinphoneChatMessage *msg, const Linph return buffer; } +/* + * When the listener is set, we must take a global reference to the listener and the message, so that + * we are able to notify the state changes of the message, until it reaches its final state + */ extern "C" void Java_org_linphone_core_LinphoneChatMessageImpl_setListener(JNIEnv* env, jobject thiz, jlong ptr, jobject jlistener) { jobject listener = env->NewGlobalRef(jlistener); LinphoneChatMessage *message = (LinphoneChatMessage *)ptr; LinphoneChatMessageCbs *cbs; + jobject jmessage = env->NewGlobalRef(thiz); + linphone_chat_message_set_user_data(message, jmessage); linphone_chat_message_set_message_state_changed_cb_user_data(message, listener); cbs = linphone_chat_message_get_callbacks(message); linphone_chat_message_cbs_set_msg_state_changed(cbs, message_state_changed); @@ -4961,8 +4971,7 @@ extern "C" void Java_org_linphone_core_LinphoneChatRoomImpl_sendChatMessage(JNIE ,jlong chatroom_ptr ,jobject message ,jlong messagePtr) { - message = env->NewGlobalRef(message); - linphone_chat_message_set_user_data((LinphoneChatMessage*)messagePtr, message); + linphone_chat_room_send_chat_message_2((LinphoneChatRoom*)chatroom_ptr, (LinphoneChatMessage*)messagePtr); } From 4dd2b64c0b64371eabe4519565e5e7332ead7760 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Fri, 6 Oct 2017 13:39:47 +0200 Subject: [PATCH 10/23] Fix reference model of LinphoneChatMessage and its listener. --- coreapi/linphonecore_jni.cc | 134 +++++------------- .../org/linphone/core/LinphoneChatRoom.java | 5 - .../linphone/core/LinphoneChatRoomImpl.java | 20 +-- 3 files changed, 40 insertions(+), 119 deletions(-) diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index 6b33215d2..a6b01bb58 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -4462,7 +4462,7 @@ extern "C" jlong Java_org_linphone_core_LinphoneChatRoomImpl_getPeerAddress(JNIE ,jlong ptr) { return (jlong) linphone_chat_room_get_peer_address((LinphoneChatRoom*)ptr); } -extern "C" jlong Java_org_linphone_core_LinphoneChatRoomImpl_createLinphoneChatMessage(JNIEnv* env +extern "C" jobject Java_org_linphone_core_LinphoneChatRoomImpl_createLinphoneChatMessage(JNIEnv* env ,jobject thiz ,jlong ptr ,jstring jmessage) { @@ -4470,29 +4470,10 @@ extern "C" jlong Java_org_linphone_core_LinphoneChatRoomImpl_createLinphoneChatM LinphoneChatMessage *chatMessage = linphone_chat_room_create_message((LinphoneChatRoom *)ptr, message); ReleaseStringUTFChars(env, jmessage, message); - return (jlong) chatMessage; + return getChatMessage(env, chatMessage); } -extern "C" jlong Java_org_linphone_core_LinphoneChatRoomImpl_createLinphoneChatMessage2(JNIEnv* env - ,jobject thiz - ,jlong ptr - ,jstring jmessage - ,jstring jurl - ,jint state - ,jlong time - ,jboolean read - ,jboolean incoming) { - const char* message = GetStringUTFChars(env, jmessage); - const char* url = GetStringUTFChars(env, jurl); - LinphoneChatMessage *chatMessage = linphone_chat_room_create_message_2( - (LinphoneChatRoom *)ptr, message, url, (LinphoneChatMessageState)state, - (time_t)time, read, incoming); - ReleaseStringUTFChars(env, jmessage, message); - ReleaseStringUTFChars(env, jurl, url); - - return (jlong) chatMessage; -} extern "C" jint Java_org_linphone_core_LinphoneChatRoomImpl_getHistorySize (JNIEnv* env ,jobject thiz ,jlong ptr) { @@ -4527,7 +4508,7 @@ extern "C" void Java_org_linphone_core_LinphoneChatRoomImpl_markAsRead(JNIEnv* } -extern "C" jlong Java_org_linphone_core_LinphoneChatRoomImpl_createFileTransferMessage(JNIEnv* env, jobject thiz, jlong ptr, jstring jname, jstring jtype, jstring jsubtype, jint data_size) { +extern "C" jobject Java_org_linphone_core_LinphoneChatRoomImpl_createFileTransferMessage(JNIEnv* env, jobject thiz, jlong ptr, jstring jname, jstring jtype, jstring jsubtype, jint data_size) { LinphoneCore *lc = linphone_chat_room_get_core((LinphoneChatRoom*) ptr); LinphoneContent * content = linphone_core_create_content(lc); LinphoneChatMessage *message = NULL; @@ -4548,7 +4529,7 @@ extern "C" jlong Java_org_linphone_core_LinphoneChatRoomImpl_createFileTransferM linphone_content_unref(content); - return (jlong) message; + return getChatMessage(env, message); } extern "C" jboolean Java_org_linphone_core_LinphoneChatRoomImpl_islimeAvailable(JNIEnv *env, jobject thiz, jlong ptr) { @@ -4726,6 +4707,22 @@ extern "C" void Java_org_linphone_core_LinphoneChatMessageImpl_reSend(JNIEnv* e linphone_chat_message_resend_2((LinphoneChatMessage*)ptr); } +static jobject getMessageListener(JNIEnv *env, LinphoneChatMessage *msg){ + jobject listener = (jobject) linphone_chat_message_get_message_state_changed_cb_user_data(msg); + + if (listener == NULL) { + ms_error("message_state_changed() notification without listener"); + return NULL; + } + listener = env->NewLocalRef(listener); //promote the weak ref into a local ref*/ + if (listener == NULL){ + ms_error("message_state_changed() listener is no longer valid"); + linphone_chat_message_set_message_state_changed_cb_user_data(msg, NULL); + return NULL; + } + return listener; +} + static void message_state_changed(LinphoneChatMessage* msg, LinphoneChatMessageState state) { JNIEnv *env = 0; jint result = jvm->AttachCurrentThread(&env,NULL); @@ -4734,33 +4731,19 @@ static void message_state_changed(LinphoneChatMessage* msg, LinphoneChatMessageS return; } - jobject listener = (jobject) linphone_chat_message_get_message_state_changed_cb_user_data(msg); + jobject listener = getMessageListener(env, msg); + if (!listener) return; - if (listener == NULL) { - ms_error("message_state_changed() notification without listener"); - return ; - } jclass clazz = (jclass) env->GetObjectClass(listener); jmethodID method = env->GetMethodID(clazz, "onLinphoneChatMessageStateChanged","(Lorg/linphone/core/LinphoneChatMessage;Lorg/linphone/core/LinphoneChatMessage$State;)V"); - jobject jmessage = (jobject)linphone_chat_message_get_user_data(msg); /*this returns a global ref that was taken in setListener*/ + jobject jmessage = getChatMessage(env, msg); env->DeleteLocalRef(clazz); LinphoneChatRoom *room = linphone_chat_message_get_chat_room(msg); LinphoneCore *lc = linphone_chat_room_get_core(room); LinphoneJavaBindings *ljb = (LinphoneJavaBindings *)linphone_core_get_user_data(lc); env->CallVoidMethod(listener, method, jmessage, env->CallStaticObjectMethod(ljb->chatMessageStateClass, ljb->chatMessageStateFromIntId, (jint)state)); - - if (state == LinphoneChatMessageStateDisplayed) { - env->DeleteGlobalRef(listener); - linphone_chat_message_set_message_state_changed_cb_user_data(msg, NULL); - } - if (jmessage) { - env->DeleteLocalRef(jmessage); - //We are going to drop our global ref, as the listener is no longer needed. - //Before, replace it by a weak ref, as other messages. - linphone_chat_message_set_user_data(msg, env->NewWeakGlobalRef(jmessage)); - env->DeleteGlobalRef(jmessage); - } + env->DeleteLocalRef(listener); } static void file_transfer_progress_indication(LinphoneChatMessage *msg, const LinphoneContent* content, size_t offset, size_t total) { @@ -4771,7 +4754,8 @@ static void file_transfer_progress_indication(LinphoneChatMessage *msg, const Li return; } - jobject listener = (jobject) linphone_chat_message_get_message_state_changed_cb_user_data(msg); + jobject listener = getMessageListener(env, msg); + if (!listener) return; jclass clazz = (jclass) env->GetObjectClass(listener); jmethodID method = env->GetMethodID(clazz, "onLinphoneChatMessageFileTransferProgressChanged", "(Lorg/linphone/core/LinphoneChatMessage;Lorg/linphone/core/LinphoneContent;II)V"); env->DeleteLocalRef(clazz); @@ -4794,7 +4778,8 @@ static void file_transfer_recv(LinphoneChatMessage *msg, const LinphoneContent* return; } - jobject listener = (jobject) linphone_chat_message_get_message_state_changed_cb_user_data(msg); + jobject listener = getMessageListener(env, msg); + if (!listener) return; jclass clazz = (jclass) env->GetObjectClass(listener); jmethodID method = env->GetMethodID(clazz, "onLinphoneChatMessageFileTransferReceived", "(Lorg/linphone/core/LinphoneChatMessage;Lorg/linphone/core/LinphoneContent;Lorg/linphone/core/LinphoneBuffer;)V"); env->DeleteLocalRef(clazz); @@ -4823,7 +4808,8 @@ static LinphoneBuffer* file_transfer_send(LinphoneChatMessage *msg, const Linph return buffer; } - jobject listener = (jobject) linphone_chat_message_get_message_state_changed_cb_user_data(msg); + jobject listener = getMessageListener(env, msg); + if (!listener) return NULL; jclass clazz = (jclass) env->GetObjectClass(listener); jmethodID method = env->GetMethodID(clazz, "onLinphoneChatMessageFileTransferSent","(Lorg/linphone/core/LinphoneChatMessage;Lorg/linphone/core/LinphoneContent;IILorg/linphone/core/LinphoneBuffer;)V"); env->DeleteLocalRef(clazz); @@ -4849,13 +4835,10 @@ static LinphoneBuffer* file_transfer_send(LinphoneChatMessage *msg, const Linph * we are able to notify the state changes of the message, until it reaches its final state */ extern "C" void Java_org_linphone_core_LinphoneChatMessageImpl_setListener(JNIEnv* env, jobject thiz, jlong ptr, jobject jlistener) { - jobject listener = env->NewGlobalRef(jlistener); LinphoneChatMessage *message = (LinphoneChatMessage *)ptr; LinphoneChatMessageCbs *cbs; - jobject jmessage = env->NewGlobalRef(thiz); - linphone_chat_message_set_user_data(message, jmessage); - linphone_chat_message_set_message_state_changed_cb_user_data(message, listener); + linphone_chat_message_set_message_state_changed_cb_user_data(message, env->NewWeakGlobalRef(jlistener)); cbs = linphone_chat_message_get_callbacks(message); linphone_chat_message_cbs_set_msg_state_changed(cbs, message_state_changed); linphone_chat_message_cbs_set_file_transfer_progress_indication(cbs, file_transfer_progress_indication); @@ -4867,10 +4850,15 @@ extern "C" void Java_org_linphone_core_LinphoneChatMessageImpl_unref(JNIEnv* en ,jobject thiz ,jlong ptr) { jobject wref = (jobject)linphone_chat_message_get_user_data((LinphoneChatMessage*)ptr); + jobject listener_wref = (jobject) linphone_chat_message_get_message_state_changed_cb_user_data((LinphoneChatMessage*)ptr); linphone_chat_message_set_user_data((LinphoneChatMessage*)ptr, NULL); if (wref){ env->DeleteWeakGlobalRef(wref); } + if (listener_wref){ + linphone_chat_message_set_message_state_changed_cb_user_data((LinphoneChatMessage*)ptr, NULL); + env->DeleteWeakGlobalRef(listener_wref); + } linphone_chat_message_unref((LinphoneChatMessage*)ptr); } @@ -4905,34 +4893,6 @@ extern "C" void Java_org_linphone_core_LinphoneChatRoomImpl_sendMessage(JNIEnv* ReleaseStringUTFChars(env, jmessage, message); } -static void chat_room_impl_callback(LinphoneChatMessage* msg, LinphoneChatMessageState state, void* ud) { - JNIEnv *env = 0; - jint result = jvm->AttachCurrentThread(&env,NULL); - if (result != 0) { - ms_error("cannot attach VM\n"); - return; - } - - jobject listener = (jobject) ud; - jclass clazz = (jclass) env->GetObjectClass(listener); - jmethodID method = env->GetMethodID(clazz, "onLinphoneChatMessageStateChanged","(Lorg/linphone/core/LinphoneChatMessage;Lorg/linphone/core/LinphoneChatMessage$State;)V"); - jobject jmessage=(jobject)linphone_chat_message_get_user_data(msg); - - LinphoneChatRoom *room = linphone_chat_message_get_chat_room(msg); - LinphoneCore *lc = linphone_chat_room_get_core(room); - LinphoneJavaBindings *ljb = (LinphoneJavaBindings *)linphone_core_get_user_data(lc); - env->CallVoidMethod( - listener, - method, - jmessage, - env->CallStaticObjectMethod(ljb->chatMessageStateClass,ljb->chatMessageStateFromIntId,(jint)state)); - - if (state == LinphoneChatMessageStateDisplayed ) { - env->DeleteGlobalRef(listener); - env->DeleteGlobalRef(jmessage); - linphone_chat_message_set_user_data(msg,NULL); - } -} extern "C" jobject Java_org_linphone_core_LinphoneChatRoomImpl_getCore(JNIEnv* env ,jobject thiz @@ -4943,28 +4903,6 @@ extern "C" jobject Java_org_linphone_core_LinphoneChatRoomImpl_getCore(JNIEnv* return core; } -extern "C" void Java_org_linphone_core_LinphoneChatRoomImpl_sendMessage2(JNIEnv* env - ,jobject thiz - ,jlong chatroom_ptr - ,jobject message - ,jlong messagePtr - ,jobject jlistener) { - jobject listener = env->NewGlobalRef(jlistener); - LinphoneChatMessage *msg = (LinphoneChatMessage *)messagePtr; - message = env->NewGlobalRef(message); - linphone_chat_message_ref(msg); - linphone_chat_message_set_user_data(msg, message); - - LinphoneChatMessageCbs *cbs; - cbs = linphone_chat_message_get_callbacks(msg); - linphone_chat_message_cbs_set_user_data(cbs, (void *)listener); - linphone_chat_message_cbs_set_msg_state_changed(cbs, message_state_changed); - linphone_chat_message_cbs_set_file_transfer_progress_indication(cbs, file_transfer_progress_indication); - linphone_chat_message_cbs_set_file_transfer_recv(cbs, file_transfer_recv); - linphone_chat_message_cbs_set_file_transfer_send(cbs, file_transfer_send); - - linphone_chat_room_send_chat_message_2((LinphoneChatRoom*)chatroom_ptr, msg); -} extern "C" void Java_org_linphone_core_LinphoneChatRoomImpl_sendChatMessage(JNIEnv* env ,jobject thiz diff --git a/java/common/org/linphone/core/LinphoneChatRoom.java b/java/common/org/linphone/core/LinphoneChatRoom.java index e08378b02..65b635e51 100644 --- a/java/common/org/linphone/core/LinphoneChatRoom.java +++ b/java/common/org/linphone/core/LinphoneChatRoom.java @@ -115,11 +115,6 @@ public interface LinphoneChatRoom { */ void deleteMessage(LinphoneChatMessage message); - /** - * Create a LinphoneChatMessage - * @return LinphoneChatMessage object - */ - LinphoneChatMessage createLinphoneChatMessage(String message, String url, State state, long timestamp, boolean isRead, boolean isIncoming); /** * Returns a back pointer to the core managing the chat room. diff --git a/java/impl/org/linphone/core/LinphoneChatRoomImpl.java b/java/impl/org/linphone/core/LinphoneChatRoomImpl.java index f44c6ecf6..97c919716 100644 --- a/java/impl/org/linphone/core/LinphoneChatRoomImpl.java +++ b/java/impl/org/linphone/core/LinphoneChatRoomImpl.java @@ -25,7 +25,7 @@ import org.linphone.core.LinphoneCall; @SuppressWarnings("deprecation") class LinphoneChatRoomImpl implements LinphoneChatRoom { protected final long nativePtr; - private native long createLinphoneChatMessage(long ptr, String message); + private native Object createLinphoneChatMessage(long ptr, String message); private native long getPeerAddress(long ptr); private native void sendMessage(long ptr, String message); private native void sendMessage2(long ptr, Object msg, long messagePtr, StateListener listener); @@ -39,9 +39,6 @@ class LinphoneChatRoomImpl implements LinphoneChatRoom { private native boolean isRemoteComposing(long ptr); private native void markAsRead(long ptr); private native void deleteMessage(long room, long message); - private native long createLinphoneChatMessage2(long ptr, String message, - String url, int state, long timestamp, boolean isRead, - boolean isIncoming); private native void sendChatMessage(long ptr, Object message, long messagePtr); private native void finalize(long nativePtr); private native boolean islimeAvailable(long nativePtr); @@ -77,7 +74,7 @@ class LinphoneChatRoomImpl implements LinphoneChatRoom { @Override public LinphoneChatMessage createLinphoneChatMessage(String message) { synchronized(getCore()){ - return new LinphoneChatMessageImpl(createLinphoneChatMessage(nativePtr, message)); + return (LinphoneChatMessage)createLinphoneChatMessage(nativePtr, message); } } @@ -144,15 +141,6 @@ class LinphoneChatRoomImpl implements LinphoneChatRoom { } } - @Override - public LinphoneChatMessage createLinphoneChatMessage(String message, - String url, State state, long timestamp, boolean isRead, - boolean isIncoming) { - synchronized(getCore()){ - return new LinphoneChatMessageImpl(createLinphoneChatMessage2( - nativePtr, message, url, state.value(), timestamp / 1000, isRead, isIncoming)); - } - } private native Object getCore(long nativePtr); @Override public synchronized LinphoneCore getCore() { @@ -162,11 +150,11 @@ class LinphoneChatRoomImpl implements LinphoneChatRoom { return (LinphoneChatMessage[]) typesPtr; } - private native long createFileTransferMessage(long ptr, String name, String type, String subtype, int size); + private native Object createFileTransferMessage(long ptr, String name, String type, String subtype, int size); @Override public LinphoneChatMessage createFileTransferMessage(LinphoneContent content) { synchronized(getCore()) { - return new LinphoneChatMessageImpl(createFileTransferMessage(nativePtr, content.getName(), content.getType(), content.getSubtype(), content.getRealSize())); + return (LinphoneChatMessage)createFileTransferMessage(nativePtr, content.getName(), content.getType(), content.getSubtype(), content.getRealSize()); } } @Override From 853f44269423bd4a4f65d95b2a5ca2c9ac4d5c02 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Fri, 30 Mar 2018 16:54:23 +0200 Subject: [PATCH 11/23] fix NULL reason header & missed call when timeout --- src/conference/session/call-session.cpp | 5 +++-- src/sal/call-op.cpp | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/conference/session/call-session.cpp b/src/conference/session/call-session.cpp index a11a4ed1d..c2244a569 100644 --- a/src/conference/session/call-session.cpp +++ b/src/conference/session/call-session.cpp @@ -92,7 +92,8 @@ void CallSessionPrivate::setState (CallSession::State newState, const string &me case CallSession::State::Error: switch (linphone_error_info_get_reason(q->getErrorInfo())) { case LinphoneReasonDeclined: - log->status = LinphoneCallDeclined; + if(log->status == LinphoneCallSuccess) // Do not re-change the status of a call if it's already set + log->status = LinphoneCallDeclined; break; case LinphoneReasonNotAnswered: if (log->dir == LinphoneCallIncoming) @@ -470,7 +471,7 @@ void CallSessionPrivate::updatedByRemote () { if (deferUpdate || deferUpdateInternal) { if (state == CallSession::State::UpdatedByRemote && !deferUpdateInternal){ lInfo() << "CallSession [" << q << "]: UpdatedByRemoted was signaled but defered. LinphoneCore expects the application to call linphone_call_accept_update() later"; - } + } } else { if (state == CallSession::State::UpdatedByRemote) q->acceptUpdate(nullptr); diff --git a/src/sal/call-op.cpp b/src/sal/call-op.cpp index 238e6d255..ade2d214b 100644 --- a/src/sal/call-op.cpp +++ b/src/sal/call-op.cpp @@ -1037,7 +1037,7 @@ int SalCallOp::decline(SalReason reason, const char *redirection /*optional*/){ } belle_sip_header_reason_t *SalCallOp::make_reason_header( const SalErrorInfo *info){ - if (info != NULL){ + if (info && info->reason != SalReasonNone) { belle_sip_header_reason_t* reason = BELLE_SIP_HEADER_REASON(belle_sip_header_reason_new()); belle_sip_header_reason_set_text(reason, info->status_string); belle_sip_header_reason_set_protocol(reason,info->protocol); @@ -1123,12 +1123,12 @@ int SalCallOp::update(const char *subject, bool_t no_user_consent) { int SalCallOp::cancel_invite_with_info(const SalErrorInfo *info) { belle_sip_request_t* cancel; ms_message("Cancelling INVITE request from [%s] to [%s] ",get_from(), get_to()); - + if (this->pending_client_trans == NULL){ ms_warning("There is no transaction to cancel."); return -1; } - + cancel = belle_sip_client_transaction_create_cancel(this->pending_client_trans); if (cancel){ if (info != NULL){ From 91f5e64e5c3e40de4247930fe84ec8b251635737 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Fri, 30 Mar 2018 16:56:50 +0200 Subject: [PATCH 12/23] do not crash on null reason header --- src/sal/call-op.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/sal/call-op.cpp b/src/sal/call-op.cpp index ade2d214b..a900ab5d8 100644 --- a/src/sal/call-op.cpp +++ b/src/sal/call-op.cpp @@ -1124,24 +1124,24 @@ int SalCallOp::cancel_invite_with_info(const SalErrorInfo *info) { belle_sip_request_t* cancel; ms_message("Cancelling INVITE request from [%s] to [%s] ",get_from(), get_to()); - if (this->pending_client_trans == NULL){ + if (this->pending_client_trans == NULL) { ms_warning("There is no transaction to cancel."); return -1; } cancel = belle_sip_client_transaction_create_cancel(this->pending_client_trans); - if (cancel){ - if (info != NULL){ + if (cancel) { + if (info && info->reason != SalReasonNone) { belle_sip_header_reason_t* reason = make_reason_header(info); belle_sip_message_add_header(BELLE_SIP_MESSAGE(cancel),BELLE_SIP_HEADER(reason)); } send_request(cancel); return 0; - }else if (this->dialog){ + } else if (this->dialog) { belle_sip_dialog_state_t state = belle_sip_dialog_get_state(this->dialog);; /*case where the response received is invalid (could not establish a dialog), but the transaction is not cancellable * because already terminated*/ - switch(state){ + switch(state) { case BELLE_SIP_DIALOG_EARLY: case BELLE_SIP_DIALOG_NULL: /*force kill the dialog*/ @@ -1303,7 +1303,7 @@ int SalCallOp::terminate_with_error(const SalErrorInfo *info) { int ret = 0; memset(&sei, 0, sizeof(sei)); - if (info == NULL && dialog_state != BELLE_SIP_DIALOG_CONFIRMED && this->dir == Dir::Incoming){ + if (info == NULL && dialog_state != BELLE_SIP_DIALOG_CONFIRMED && this->dir == Dir::Incoming) { /*the purpose of this line is to set a default SalErrorInfo for declining an incoming call (not yet established of course) */ sal_error_info_set(&sei,SalReasonDeclined, "SIP", 0, NULL, NULL); p_sei = &sei; @@ -1318,7 +1318,7 @@ int SalCallOp::terminate_with_error(const SalErrorInfo *info) { switch(dialog_state) { case BELLE_SIP_DIALOG_CONFIRMED: { belle_sip_request_t * req = belle_sip_dialog_create_request(this->dialog,"BYE"); - if (info != NULL){ + if (info && info->reason != SalReasonNone) { belle_sip_header_reason_t* reason = make_reason_header(info); belle_sip_message_add_header(BELLE_SIP_MESSAGE(req),BELLE_SIP_HEADER(reason)); } @@ -1334,7 +1334,7 @@ int SalCallOp::terminate_with_error(const SalErrorInfo *info) { } else if (this->pending_client_trans){ if (belle_sip_transaction_get_state(BELLE_SIP_TRANSACTION(this->pending_client_trans)) == BELLE_SIP_TRANSACTION_PROCEEDING){ cancelling_invite(p_sei); - }else{ + } else { /* Case where the CANCEL cannot be sent because no provisional response was received so far. * The Op must be kept for the time of the transaction in case a response is received later. * The state is passed to Terminating to remember to terminate later. @@ -1351,7 +1351,7 @@ int SalCallOp::terminate_with_error(const SalErrorInfo *info) { if (this->dir == Dir::Incoming) { decline_with_error_info(p_sei,NULL); this->state=State::Terminated; - } else { + } else { cancelling_invite(p_sei); } break; From e63290b4c7acffd7602baaeb2eb9f09c0e3f95d2 Mon Sep 17 00:00:00 2001 From: Benjamin Reis Date: Fri, 30 Mar 2018 17:00:52 +0200 Subject: [PATCH 13/23] better reason management --- src/conference/session/call-session.cpp | 2 +- tester/call_single_tester.c | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/conference/session/call-session.cpp b/src/conference/session/call-session.cpp index c2244a569..668f0df33 100644 --- a/src/conference/session/call-session.cpp +++ b/src/conference/session/call-session.cpp @@ -92,7 +92,7 @@ void CallSessionPrivate::setState (CallSession::State newState, const string &me case CallSession::State::Error: switch (linphone_error_info_get_reason(q->getErrorInfo())) { case LinphoneReasonDeclined: - if(log->status == LinphoneCallSuccess) // Do not re-change the status of a call if it's already set + if (log->status != LinphoneCallMissed) // Do not re-change the status of a call if it's already set log->status = LinphoneCallDeclined; break; case LinphoneReasonNotAnswered: diff --git a/tester/call_single_tester.c b/tester/call_single_tester.c index 88a6de226..c33e95e63 100644 --- a/tester/call_single_tester.c +++ b/tester/call_single_tester.c @@ -821,11 +821,11 @@ static void multiple_answers_call_with_media_relay(void) { linphone_core_remove_supported_tag(pauline->lc,"gruu"); linphone_core_remove_supported_tag(marie1->lc,"gruu"); linphone_core_remove_supported_tag(marie2->lc,"gruu"); - + linphone_core_manager_start(pauline, TRUE); linphone_core_manager_start(marie1, TRUE); linphone_core_manager_start(marie2, TRUE); - + LinphoneCall* call1, *call2; bctbx_list_t* lcs = bctbx_list_append(NULL,pauline->lc); @@ -1038,7 +1038,7 @@ static void terminate_call_with_error(void) { linphone_call_ref(out_call); ei = linphone_error_info_new(); - linphone_error_info_set(ei, NULL, LinphoneReasonNone, 200, "Call refused for security reason", NULL); + linphone_error_info_set(ei, NULL, LinphoneReasonUnknown, 200, "Call refused for security reason", NULL); BC_ASSERT_TRUE(wait_for(caller_mgr->lc, callee_mgr->lc, &caller_mgr->stat.number_of_LinphoneCallOutgoingInit,1)); BC_ASSERT_TRUE(wait_for(caller_mgr->lc, callee_mgr->lc, &callee_mgr->stat.number_of_LinphoneCallIncomingReceived, 1)); @@ -1093,7 +1093,7 @@ static void cancel_call_with_error(void) { linphone_call_ref(out_call); ei = linphone_error_info_new(); - linphone_error_info_set(ei, NULL, LinphoneReasonNone, 600, "Call has been cancelled", NULL); + linphone_error_info_set(ei, NULL, LinphoneReasonUnknown, 600, "Call has been cancelled", NULL); BC_ASSERT_TRUE(wait_for(caller_mgr->lc, callee_mgr->lc, &caller_mgr->stat.number_of_LinphoneCallOutgoingInit,1)); BC_ASSERT_TRUE(wait_for(caller_mgr->lc, callee_mgr->lc, &callee_mgr->stat.number_of_LinphoneCallIncomingReceived, 1)); @@ -1421,8 +1421,8 @@ static void call_declined_with_error(void) { LinphoneErrorInfo *ei = linphone_factory_create_error_info(factory); LinphoneErrorInfo *reason_ei = linphone_factory_create_error_info(factory); - linphone_error_info_set(ei, "SIP", LinphoneReasonUnknown, 603, "Decline", NULL); //ordre des arguments à vérifier - linphone_error_info_set(reason_ei, "hardware", LinphoneReasonUnknown, 66, "J'ai plus de batterie", NULL); + linphone_error_info_set(ei, "SIP", LinphoneReasonDeclined, 603, "Decline", NULL); //ordre des arguments à vérifier + linphone_error_info_set(reason_ei, "hardware", LinphoneReasonDeclined, 66, "J'ai plus de batterie", NULL); linphone_error_info_set_sub_error_info(ei, reason_ei); @@ -5908,7 +5908,7 @@ static void call_with_ice_without_stun2(void){ static void call_with_ice_stun_not_responding(void){ LinphoneCoreManager * marie = linphone_core_manager_new( "marie_rc"); LinphoneCoreManager *pauline = linphone_core_manager_new(transport_supported(LinphoneTransportTls) ? "pauline_rc" : "pauline_tcp_rc"); - + /*set dummy stun servers*/ linphone_core_set_stun_server(marie->lc, "belledonne-communications.com:443"); linphone_core_set_stun_server(pauline->lc, "belledonne-communications.com:443"); From fd91311ace8091f945f0fee59970e66a66d27113 Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Wed, 27 Sep 2017 15:04:31 +0200 Subject: [PATCH 14/23] avoid crash in case audio resources (mainly on macosx) take to much time to start --- tester/call_single_tester.c | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/tester/call_single_tester.c b/tester/call_single_tester.c index c33e95e63..08be21bf9 100644 --- a/tester/call_single_tester.c +++ b/tester/call_single_tester.c @@ -3153,22 +3153,25 @@ static void early_media_call_with_ringing_base(bool_t network_change){ _linphone_call_add_local_desc_changed_flag(marie_call, SAL_MEDIA_DESCRIPTION_NETWORK_CHANGED); } - linphone_call_accept(linphone_core_get_current_call(pauline->lc)); - - BC_ASSERT_TRUE(wait_for_list(lcs, &marie->stat.number_of_LinphoneCallConnected, 1,1000)); - connected_time=ms_get_cur_time_ms(); - BC_ASSERT_TRUE(wait_for_list(lcs, &marie->stat.number_of_LinphoneCallStreamsRunning, 1,1000)); - - BC_ASSERT_PTR_EQUAL(marie_call, linphone_core_get_current_call(marie->lc)); - BC_ASSERT_FALSE(linphone_call_get_all_muted(marie_call)); - - liblinphone_tester_check_rtcp(marie, pauline); - /*just to have a call duration !=0*/ - wait_for_list(lcs,&dummy,1,2000); - - end_call(pauline, marie); - ended_time=ms_get_cur_time_ms(); - BC_ASSERT_LOWER( labs((long)((linphone_call_log_get_duration(marie_call_log)*1000) - (int64_t)(ended_time - connected_time))), 1000, long, "%ld"); + if (linphone_core_get_current_call(pauline->lc) + && linphone_call_get_state(linphone_core_get_current_call(pauline->lc)) == LinphoneCallIncomingEarlyMedia) { + linphone_call_accept(linphone_core_get_current_call(pauline->lc)); + + BC_ASSERT_TRUE(wait_for_list(lcs, &marie->stat.number_of_LinphoneCallConnected, 1,1000)); + connected_time=ms_get_cur_time_ms(); + BC_ASSERT_TRUE(wait_for_list(lcs, &marie->stat.number_of_LinphoneCallStreamsRunning, 1,1000)); + + BC_ASSERT_PTR_EQUAL(marie_call, linphone_core_get_current_call(marie->lc)); + BC_ASSERT_FALSE(linphone_call_get_all_muted(marie_call)); + + liblinphone_tester_check_rtcp(marie, pauline); + /*just to have a call duration !=0*/ + wait_for_list(lcs,&dummy,1,2000); + + end_call(pauline, marie); + ended_time=ms_get_cur_time_ms(); + BC_ASSERT_LOWER( labs((long)((linphone_call_log_get_duration(marie_call_log)*1000) - (int64_t)(ended_time - connected_time))), 1000, long, "%ld"); + } bctbx_list_free(lcs); } From 220ccbac9a16ed4ac2ac6012e05595b53292ea4e Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Wed, 27 Sep 2017 17:05:59 +0200 Subject: [PATCH 15/23] make sure local sip ports used by testers are always random --- tester/rcfiles/laure_call_logs_rc | 6 +++--- tester/rcfiles/laure_rc_udp | 6 +++--- tester/rcfiles/laure_tcp_rc | 6 +++--- tester/rcfiles/multi_account_rc | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/tester/rcfiles/laure_call_logs_rc b/tester/rcfiles/laure_call_logs_rc index bbeafabeb..e5a964f72 100644 --- a/tester/rcfiles/laure_call_logs_rc +++ b/tester/rcfiles/laure_call_logs_rc @@ -1,7 +1,7 @@ [sip] -sip_port=5092 -sip_tcp_port=5092 -sip_tls_port=5093 +sip_port=-1 +sip_tcp_port=-1 +sip_tls_port=-1 default_proxy=0 ping_with_options=0 diff --git a/tester/rcfiles/laure_rc_udp b/tester/rcfiles/laure_rc_udp index c4016c4fa..e221c248a 100644 --- a/tester/rcfiles/laure_rc_udp +++ b/tester/rcfiles/laure_rc_udp @@ -1,7 +1,7 @@ [sip] -sip_port=5092 -sip_tcp_port=5092 -sip_tls_port=5093 +sip_port=-1 +sip_tcp_port=-1 +sip_tls_port=-1 default_proxy=0 ping_with_options=0 diff --git a/tester/rcfiles/laure_tcp_rc b/tester/rcfiles/laure_tcp_rc index 8ed5de984..912db8271 100644 --- a/tester/rcfiles/laure_tcp_rc +++ b/tester/rcfiles/laure_tcp_rc @@ -1,7 +1,7 @@ [sip] -sip_port=5092 -sip_tcp_port=5092 -sip_tls_port=5093 +sip_port=-1 +sip_tcp_port=-1 +sip_tls_port=-1 default_proxy=0 ping_with_options=0 diff --git a/tester/rcfiles/multi_account_rc b/tester/rcfiles/multi_account_rc index 8aefbfcaf..3c1e52020 100644 --- a/tester/rcfiles/multi_account_rc +++ b/tester/rcfiles/multi_account_rc @@ -1,7 +1,7 @@ [sip] -sip_port=5072 -sip_tcp_port=5072 -sip_tls_port=5073 +sip_port=-1 +sip_tcp_port=-1 +sip_tls_port=-1 default_proxy=0 [auth_info_0] From 4b2c1ef133df64cee9b90978b51859b14d81e43b Mon Sep 17 00:00:00 2001 From: Erwan Croze Date: Wed, 27 Sep 2017 17:18:59 +0200 Subject: [PATCH 16/23] Init bctbx logger before create the core in factory --- coreapi/factory.c | 1 + 1 file changed, 1 insertion(+) diff --git a/coreapi/factory.c b/coreapi/factory.c index e316a93ba..5138534a4 100644 --- a/coreapi/factory.c +++ b/coreapi/factory.c @@ -167,6 +167,7 @@ static LinphoneCore *_linphone_factory_create_core ( LpConfig *config = lp_config_new_with_factory(config_path, factory_config_path); LinphoneCore *lc = _linphone_core_new_with_config(cbs, config, user_data, system_context, automatically_start); lp_config_unref(config); + bctbx_uninit_logger(); return lc; } From 3976181afaa8996154ce5438607618025bd86ed1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micka=C3=ABl=20Turnel?= Date: Tue, 3 Apr 2018 14:47:46 +0200 Subject: [PATCH 17/23] Removed default bitrate limitation. (retrofit of commit 0d38a7) --- src/conference/session/media-session.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/conference/session/media-session.cpp b/src/conference/session/media-session.cpp index a124200cf..853d6ffc4 100644 --- a/src/conference/session/media-session.cpp +++ b/src/conference/session/media-session.cpp @@ -1920,8 +1920,7 @@ int MediaSessionPrivate::getVideoBandwidth (const SalMediaDescription *md, const else if (md->bandwidth > 0) { /* Case where b=AS is given globally, not per stream */ remoteBandwidth = PayloadTypeHandler::getRemainingBandwidthForVideo(md->bandwidth, audioBandwidth); - } else - remoteBandwidth = lp_config_get_int(linphone_core_get_config(q->getCore()->getCCore()), "net", "default_max_bandwidth", 1500); + } return PayloadTypeHandler::getMinBandwidth(PayloadTypeHandler::getRemainingBandwidthForVideo(linphone_core_get_upload_bandwidth(q->getCore()->getCCore()), audioBandwidth), remoteBandwidth); } From b2f43b06de2521c1cfd3d95a25d4800546a0571a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micka=C3=ABl=20Turnel?= Date: Tue, 3 Apr 2018 14:53:51 +0200 Subject: [PATCH 18/23] Add unit tests for fps in video calls. (retrofit of commit cc6b6b) --- tester/call_video_tester.c | 96 +++++++++++++++++++++++++++++++++++++- 1 file changed, 95 insertions(+), 1 deletion(-) diff --git a/tester/call_video_tester.c b/tester/call_video_tester.c index d74fbd2f8..fe85820a3 100644 --- a/tester/call_video_tester.c +++ b/tester/call_video_tester.c @@ -2072,6 +2072,97 @@ static void video_call_with_high_bandwidth_available(void) { linphone_core_manager_destroy(pauline); } +static void video_call_expected_fps_for_specified_bandwidth(int bandwidth, int fps, const char *resolution) { + LinphoneCoreManager *marie = linphone_core_manager_new("marie_rc"); + LinphoneCoreManager *pauline = linphone_core_manager_new("pauline_rc"); + LinphoneVideoPolicy pol = {0}; + OrtpNetworkSimulatorParams simparams = { 0 }; + + if (ms_factory_get_cpu_count(linphone_core_get_ms_factory(marie->lc)) >= 2) { + linphone_core_set_video_device(marie->lc, "Mire: Mire (synthetic moving picture)"); + linphone_core_enable_video_capture(marie->lc, TRUE); + linphone_core_enable_video_display(marie->lc, TRUE); + linphone_core_enable_video_capture(pauline->lc, TRUE); + linphone_core_enable_video_display(pauline->lc, TRUE); + + pol.automatically_accept = TRUE; + pol.automatically_initiate = TRUE; + linphone_core_set_video_policy(marie->lc, &pol); + linphone_core_set_video_policy(pauline->lc, &pol); + + linphone_core_set_preferred_video_size_by_name(marie->lc, resolution); + simparams.mode = OrtpNetworkSimulatorOutbound; + simparams.enabled = TRUE; + simparams.max_bandwidth = bandwidth; + simparams.max_buffer_size = (int)simparams.max_bandwidth; + simparams.latency = 60; + + linphone_core_set_network_simulator_params(marie->lc, &simparams); + + if (BC_ASSERT_TRUE(call(marie, pauline))){ + LinphoneCall *call = linphone_core_get_current_call(marie->lc); + + /*wait for the first TMMBR*/ + BC_ASSERT_TRUE(wait_for_until(marie->lc, pauline->lc, &marie->stat.last_tmmbr_value_received, 1, 10000)); + + VideoStream *vstream = (VideoStream *)linphone_call_get_stream(call, LinphoneStreamTypeVideo); + BC_ASSERT_EQUAL((int)vstream->configured_fps, fps, int, "%d"); + + end_call(marie, pauline); + } + } else { + BC_PASS("Test requires at least a dual core"); + } + + linphone_core_manager_destroy(marie); + linphone_core_manager_destroy(pauline); +} + +/* + * This test simulates a video call with a lower bandwidth than the required_bitrate of the lowest given configuration. + * The stream from pauline to marie is not under test. + * It checks that after a few seconds marie, after receiving a TMMBR, has her fps set to the lowest given configuration. + * This test requires at least a computer with 2 CPUs. + * +**/ +static void video_call_expected_fps_for_low_bandwidth(void) { +#if defined(__ANDROID__) || (TARGET_OS_IPHONE == 1) || defined(__arm__) || defined(_M_ARM) + video_call_expected_fps_for_specified_bandwidth(80000, 10, "qvga"); +#else + video_call_expected_fps_for_specified_bandwidth(250000, 15, "vga"); +#endif +} + +/* + * This test simulates a video call with a regular bandwidth that is between a given configuration. + * The stream from pauline to marie is not under test. + * It checks that after a few seconds marie, after receiving a TMMBR, has her fps set to the expected given configuration. + * This test requires at least a computer with 2 CPUs. + * +**/ +static void video_call_expected_fps_for_regular_bandwidth(void) { +#if defined(__ANDROID__) || (TARGET_OS_IPHONE == 1) || defined(__arm__) || defined(_M_ARM) + video_call_expected_fps_for_specified_bandwidth(400000, 12, "vga"); +#else + video_call_expected_fps_for_specified_bandwidth(450000, 25, "vga"); +#endif +} + +/* + * This test simulates a video call with a higher bandwidth than the bitrate_limit of the highest given configuration. + * The stream from pauline to marie is not under test. + * It checks that after a few seconds marie, after receiving a TMMBR, has her fps set to the highest given configuration. + * This test requires at least a computer with 2 CPUs. + * +**/ +static void video_call_expected_fps_for_high_bandwidth(void) { +#if defined(__ANDROID__) || (TARGET_OS_IPHONE == 1) || defined(__arm__) || defined(_M_ARM) + video_call_expected_fps_for_specified_bandwidth(400000, 12, "qcif"); +#else + video_call_expected_fps_for_specified_bandwidth(5000000, 30, "vga"); +#endif +} + test_t call_video_tests[] = { #ifdef VIDEO_ENABLED TEST_NO_TAG("Call paused resumed with video", call_paused_resumed_with_video), @@ -2140,7 +2231,10 @@ test_t call_video_tests[] = { TEST_NO_TAG("Video call with no audio and no video codec", video_call_with_no_audio_and_no_video_codec), TEST_NO_TAG("Call with early media and no SDP in 200 Ok with video", call_with_early_media_and_no_sdp_in_200_with_video), TEST_NO_TAG("Video call with thin congestion", video_call_with_thin_congestion), - TEST_NO_TAG("Video call with high bandwidth available", video_call_with_high_bandwidth_available) + TEST_NO_TAG("Video call with high bandwidth available", video_call_with_high_bandwidth_available), + TEST_NO_TAG("Video call expected FPS for low bandwidth", video_call_expected_fps_for_low_bandwidth), + TEST_NO_TAG("Video call expected FPS for regular bandwidth", video_call_expected_fps_for_regular_bandwidth), + TEST_NO_TAG("Video call expected FPS for high bandwidth", video_call_expected_fps_for_high_bandwidth) #endif }; From 47415adf2aa216a45ae6163271af64f333688273 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Grisez?= Date: Tue, 3 Apr 2018 15:36:11 +0200 Subject: [PATCH 19/23] Removes duplicate CMake command --- coreapi/help/doc/doxygen/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/coreapi/help/doc/doxygen/CMakeLists.txt b/coreapi/help/doc/doxygen/CMakeLists.txt index ef96a784f..91c62458d 100644 --- a/coreapi/help/doc/doxygen/CMakeLists.txt +++ b/coreapi/help/doc/doxygen/CMakeLists.txt @@ -39,7 +39,6 @@ if (ENABLE_DOC OR ENABLE_CXX_WRAPPER OR ENABLE_CSHARP_WRAPPER OR ENABLE_JAVA_WRA set(XML_DIR "${CMAKE_CURRENT_BINARY_DIR}/xml") set(LINPHONE_DOXYGEN_XML_DIR ${XML_DIR} PARENT_SCOPE) add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/html/index.html" "${XML_DIR}/index.xml" - COMMAND ${CMAKE_COMMAND} -E remove -f html/* xml/* COMMAND ${CMAKE_COMMAND} -E remove -f html/* xml/* COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile DEPENDS ${DOC_INPUT_FILES} From 4f805973aef4d50dfab099e264b1e7b40cd9a020 Mon Sep 17 00:00:00 2001 From: Erwan Croze Date: Tue, 3 Apr 2018 16:17:10 +0200 Subject: [PATCH 20/23] Blacklist linphone_call_set_audio_route --- include/linphone/api/c-call.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/linphone/api/c-call.h b/include/linphone/api/c-call.h index 272e67b1d..464436945 100644 --- a/include/linphone/api/c-call.h +++ b/include/linphone/api/c-call.h @@ -338,6 +338,7 @@ LINPHONE_PUBLIC LinphoneConference *linphone_call_get_conference (const Linphone * Change the playback output device (currently only used for blackberry) * @param call * @param route the wanted audio route (earpiece, speaker, ...) + * @donotwrap **/ LINPHONE_PUBLIC void linphone_call_set_audio_route (LinphoneCall *call, LinphoneAudioRoute route); From 490c4bf913e741e9e0799fa4b9cdc6d26104adf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micka=C3=ABl=20Turnel?= Date: Tue, 3 Apr 2018 16:58:13 +0200 Subject: [PATCH 21/23] Update fps tests according to VP8 conf table changes. (retrofit of commit fb465e) --- tester/call_video_tester.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tester/call_video_tester.c b/tester/call_video_tester.c index fe85820a3..3189fe3c2 100644 --- a/tester/call_video_tester.c +++ b/tester/call_video_tester.c @@ -2142,7 +2142,7 @@ static void video_call_expected_fps_for_low_bandwidth(void) { **/ static void video_call_expected_fps_for_regular_bandwidth(void) { #if defined(__ANDROID__) || (TARGET_OS_IPHONE == 1) || defined(__arm__) || defined(_M_ARM) - video_call_expected_fps_for_specified_bandwidth(400000, 12, "vga"); + video_call_expected_fps_for_specified_bandwidth(500000, 12, "vga"); #else video_call_expected_fps_for_specified_bandwidth(450000, 25, "vga"); #endif From 13a398462c1befcecd83d135922f1189577747ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micka=C3=ABl=20Turnel?= Date: Tue, 3 Apr 2018 16:58:56 +0200 Subject: [PATCH 22/23] Fix implicit cast for windows. (retrofit of commit 1dfa27) --- tester/call_video_tester.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tester/call_video_tester.c b/tester/call_video_tester.c index 3189fe3c2..4b4efb5ad 100644 --- a/tester/call_video_tester.c +++ b/tester/call_video_tester.c @@ -2093,8 +2093,8 @@ static void video_call_expected_fps_for_specified_bandwidth(int bandwidth, int f linphone_core_set_preferred_video_size_by_name(marie->lc, resolution); simparams.mode = OrtpNetworkSimulatorOutbound; simparams.enabled = TRUE; - simparams.max_bandwidth = bandwidth; - simparams.max_buffer_size = (int)simparams.max_bandwidth; + simparams.max_bandwidth = (float)bandwidth; + simparams.max_buffer_size = bandwidth; simparams.latency = 60; linphone_core_set_network_simulator_params(marie->lc, &simparams); From 5e98347b313a5703a88d2c1fb12537565d426c1a Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Tue, 3 Apr 2018 17:05:02 +0200 Subject: [PATCH 23/23] Add log when we cannot find the selected valid ICE pair in the case where it should be there (retrofit of commit 452234d4). --- src/nat/ice-agent.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/nat/ice-agent.cpp b/src/nat/ice-agent.cpp index 726312f9f..cbc74cd4a 100644 --- a/src/nat/ice-agent.cpp +++ b/src/nat/ice-agent.cpp @@ -317,10 +317,12 @@ void IceAgent::updateLocalMediaDescriptionFromIce (SalMediaDescription *desc) { } if (firstCl) result = !!ice_check_list_selected_valid_local_candidate(firstCl, &rtpCandidate, nullptr); - if (result) + if (result) { strncpy(desc->addr, rtpCandidate->taddr.ip, sizeof(desc->addr)); - else + } else { lWarning() << "If ICE has completed successfully, rtp_candidate should be set!"; + ice_dump_valid_list(firstCl); + } } strncpy(desc->ice_pwd, ice_session_local_pwd(iceSession), sizeof(desc->ice_pwd));