diff --git a/build/vsx/LibLinphone/LibLinphone.vcxproj b/build/vsx/LibLinphone/LibLinphone.vcxproj
index 3644e8e47..65ad06dc8 100644
--- a/build/vsx/LibLinphone/LibLinphone.vcxproj
+++ b/build/vsx/LibLinphone/LibLinphone.vcxproj
@@ -125,6 +125,7 @@
$(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories)
false
false
+ Sync
Console
diff --git a/build/vsx/LibLinphoneTester-wp8/LibLinphoneTester-wp8.v11.suo b/build/vsx/LibLinphoneTester-wp8/LibLinphoneTester-wp8.v11.suo
index 56db99fd1..88762f6d7 100644
Binary files a/build/vsx/LibLinphoneTester-wp8/LibLinphoneTester-wp8.v11.suo and b/build/vsx/LibLinphoneTester-wp8/LibLinphoneTester-wp8.v11.suo differ
diff --git a/build/vsx/LibLinphoneTester-wp8/LibLinphoneTester-wp8/Assets/empty_rc b/build/vsx/LibLinphoneTester-wp8/LibLinphoneTester-wp8/Assets/empty_rc
new file mode 100644
index 000000000..e8de43fa4
--- /dev/null
+++ b/build/vsx/LibLinphoneTester-wp8/LibLinphoneTester-wp8/Assets/empty_rc
@@ -0,0 +1,5 @@
+[net]
+mtu=1300
+
+[sip]
+ping_with_options=0
\ No newline at end of file
diff --git a/build/vsx/LibLinphoneTester-wp8/LibLinphoneTester-wp8/LibLinphoneTester-wp8.csproj b/build/vsx/LibLinphoneTester-wp8/LibLinphoneTester-wp8/LibLinphoneTester-wp8.csproj
index 1647d6be2..89ef910f3 100644
--- a/build/vsx/LibLinphoneTester-wp8/LibLinphoneTester-wp8/LibLinphoneTester-wp8.csproj
+++ b/build/vsx/LibLinphoneTester-wp8/LibLinphoneTester-wp8/LibLinphoneTester-wp8.csproj
@@ -129,6 +129,7 @@
+
diff --git a/coreapi/bellesip_sal/sal_op_call.c b/coreapi/bellesip_sal/sal_op_call.c
index f2ec4e883..2b484ac18 100644
--- a/coreapi/bellesip_sal/sal_op_call.c
+++ b/coreapi/bellesip_sal/sal_op_call.c
@@ -453,6 +453,7 @@ int sal_call(SalOp *op, const char *from, const char *to){
sal_op_set_from(op,from);
sal_op_set_to(op,to);
+ ms_message("[%s] calling [%s] on op [%p]", from, to, op);
invite=sal_op_build_request(op,"INVITE");
sal_op_fill_invite(op,invite);
diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c
index a43b36362..30dc49637 100644
--- a/coreapi/linphonecore.c
+++ b/coreapi/linphonecore.c
@@ -3313,7 +3313,13 @@ int linphone_core_terminate_call(LinphoneCore *lc, LinphoneCall *the_call)
call = the_call;
}
- sal_call_terminate(call->op);
+ if (call->state != LinphoneCallOutgoingInit)
+ sal_call_terminate(call->op);
+ else {
+ /* In state OutgoingInit, op has to be destroyed */
+ sal_op_release(call->op);
+ call->op = NULL;
+ }
terminate_call(lc,call);
return 0;
}
diff --git a/coreapi/linphonecore.h b/coreapi/linphonecore.h
index ab56e6b29..1cba2ac3b 100644
--- a/coreapi/linphonecore.h
+++ b/coreapi/linphonecore.h
@@ -1323,7 +1323,7 @@ LINPHONE_PUBLIC void linphone_core_set_user_data(LinphoneCore *lc, void *userdat
/* returns LpConfig object to read/write to the config file: usefull if you wish to extend
the config file with your own sections */
-struct _LpConfig *linphone_core_get_config(LinphoneCore *lc);
+LINPHONE_PUBLIC struct _LpConfig *linphone_core_get_config(LinphoneCore *lc);
/*set a callback for some blocking operations, it takes you informed of the progress of the operation*/
void linphone_core_set_waiting_callback(LinphoneCore *lc, LinphoneWaitingCallback cb, void *user_context);
diff --git a/tester/call_tester.c b/tester/call_tester.c
index 188f08b77..8e3b9f630 100644
--- a/tester/call_tester.c
+++ b/tester/call_tester.c
@@ -19,6 +19,7 @@
#include
#include "CUnit/Basic.h"
#include "linphonecore.h"
+#include "lpconfig.h"
#include "private.h"
#include "liblinphone_tester.h"
@@ -200,12 +201,11 @@ static void cancelled_call(void) {
}
static void call_with_dns_time_out(void) {
- LinphoneCoreManager* marie = linphone_core_manager_new(NULL, NULL);
+ LinphoneCoreManager* marie = linphone_core_manager_new2(liblinphone_tester_file_prefix, "empty_rc", FALSE);
LCSipTransports transport = {9773,0,0,0};
linphone_core_set_sip_transports(marie->lc,&transport);
linphone_core_iterate(marie->lc);
sal_set_dns_timeout(marie->lc->sal,0);
- linphone_core_set_mtu(marie->lc, 1300);
linphone_core_invite(marie->lc,"sip:toto@toto.com");
linphone_core_iterate(marie->lc);
linphone_core_iterate(marie->lc);
diff --git a/tester/empty_rc b/tester/empty_rc
new file mode 100644
index 000000000..e8de43fa4
--- /dev/null
+++ b/tester/empty_rc
@@ -0,0 +1,5 @@
+[net]
+mtu=1300
+
+[sip]
+ping_with_options=0
\ No newline at end of file
diff --git a/tester/liblinphone_tester.c b/tester/liblinphone_tester.c
index 703ba318f..f495b3c42 100644
--- a/tester/liblinphone_tester.c
+++ b/tester/liblinphone_tester.c
@@ -162,7 +162,7 @@ static void enable_codec(LinphoneCore* lc,const char* type,int rate) {
}
}
-LinphoneCoreManager* linphone_core_manager_new(const char* path, const char* rc_file) {
+LinphoneCoreManager* linphone_core_manager_new2(const char* path, const char* rc_file, int check_for_proxies) {
LinphoneCoreManager* mgr= malloc(sizeof(LinphoneCoreManager));
LinphoneProxyConfig* proxy;
memset (mgr,0,sizeof(LinphoneCoreManager));
@@ -173,7 +173,7 @@ LinphoneCoreManager* linphone_core_manager_new(const char* path, const char* rc_
mgr->v_table.new_subscription_request=new_subscribtion_request;
mgr->v_table.notify_presence_recv=notify_presence_received;
mgr->v_table.transfer_state_changed=linphone_transfer_state_changed;
- mgr->lc=configure_lc_from(&mgr->v_table, path, rc_file, rc_file?1:0);
+ mgr->lc=configure_lc_from(&mgr->v_table, path, rc_file, check_for_proxies?(rc_file?1:0):0);
enable_codec(mgr->lc,"PCMU",8000);
linphone_core_set_user_data(mgr->lc,&mgr->stat);
linphone_core_get_default_proxy(mgr->lc,&proxy);
@@ -184,6 +184,10 @@ LinphoneCoreManager* linphone_core_manager_new(const char* path, const char* rc_
return mgr;
}
+LinphoneCoreManager* linphone_core_manager_new(const char* path, const char* rc_file) {
+ return linphone_core_manager_new2(path, rc_file, TRUE);
+}
+
void linphone_core_manager_destroy(LinphoneCoreManager* mgr) {
linphone_core_destroy(mgr->lc);
if (mgr->identity) linphone_address_destroy(mgr->identity);
diff --git a/tester/liblinphone_tester.h b/tester/liblinphone_tester.h
index 2efc1a23c..82aa5181b 100644
--- a/tester/liblinphone_tester.h
+++ b/tester/liblinphone_tester.h
@@ -130,7 +130,7 @@ typedef struct _LinphoneCoreManager {
LinphoneAddress* identity;
} LinphoneCoreManager;
-
+LinphoneCoreManager* linphone_core_manager_new2(const char* path, const char* rc_file, int check_for_proxies);
LinphoneCoreManager* linphone_core_manager_new(const char * path, const char* rc_file);
void linphone_core_manager_destroy(LinphoneCoreManager* mgr);
diff --git a/tester/register_tester.c b/tester/register_tester.c
index 94fd37ec5..0ff192682 100644
--- a/tester/register_tester.c
+++ b/tester/register_tester.c
@@ -313,7 +313,7 @@ static void io_recv_error(){
test_t register_tests[] = {
{ "Simple register", simple_register },
{ "TCP register", simple_tcp_register },
-#ifndef ANDROID
+#ifndef ANDROID
{ "TLS register", simple_tls_register },
#endif
{ "Simple authenticated register", simple_authenticated_register },