From 3d35278366b119ba9566708d0fca82be5984e783 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 18 Feb 2014 17:29:05 +0100 Subject: [PATCH] Fix outbound proxy issue + fixed tester --- src/org/linphone/LinphonePreferences.java | 3 +- .../org/linphone/test/AccountAssistant.java | 4 +-- .../linphone/test/LinphoneTestManager.java | 29 ++++++++++--------- 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/src/org/linphone/LinphonePreferences.java b/src/org/linphone/LinphonePreferences.java index 0c1e0af9e..2aa751f61 100644 --- a/src/org/linphone/LinphonePreferences.java +++ b/src/org/linphone/LinphonePreferences.java @@ -166,13 +166,14 @@ public class LinphonePreferences { String proxy = "sip:"; proxy += tempProxy == null ? tempDomain : tempProxy; LinphoneAddress proxyAddr = LinphoneCoreFactory.instance().createLinphoneAddress(proxy); - String route = tempOutboundProxy ? tempProxy : null; if (tempTransport == null) { tempTransport = TransportType.LinphoneTransportUdp; } proxyAddr.setTransport(tempTransport); + String route = tempOutboundProxy ? proxyAddr.asStringUriOnly() : null; + LinphoneProxyConfig prxCfg = LinphoneCoreFactory.instance().createProxyConfig(identity, proxyAddr.asStringUriOnly(), route, true); if (tempContactsParams != null) prxCfg.setContactUriParameters(tempContactsParams); diff --git a/tests/src/org/linphone/test/AccountAssistant.java b/tests/src/org/linphone/test/AccountAssistant.java index dc0126743..f5bde9712 100644 --- a/tests/src/org/linphone/test/AccountAssistant.java +++ b/tests/src/org/linphone/test/AccountAssistant.java @@ -59,11 +59,11 @@ public class AccountAssistant extends SampleTest { String stunServer = prefs.getStunServer(); Assert.assertEquals(aContext.getString(org.linphone.R.string.default_stun), stunServer); - String transport = prefs.getTransportKey(); + String transport = prefs.getAccountTransportKey(0); Assert.assertEquals(aContext.getString(org.linphone.R.string.pref_transport_tls_key), transport); String proxy = prefs.getAccountProxy(0); - Assert.assertEquals(aContext.getString(org.linphone.R.string.default_domain) + ":5223", proxy); + Assert.assertEquals("", proxy); Assert.assertEquals(true, prefs.isAccountOutboundProxySet(0)); boolean ice = prefs.isIceEnabled(); diff --git a/tests/src/org/linphone/test/LinphoneTestManager.java b/tests/src/org/linphone/test/LinphoneTestManager.java index da38d3ec2..b825ea08e 100644 --- a/tests/src/org/linphone/test/LinphoneTestManager.java +++ b/tests/src/org/linphone/test/LinphoneTestManager.java @@ -8,6 +8,7 @@ import org.linphone.LinphoneManager; import org.linphone.LinphoneManager.LinphoneConfigException; import org.linphone.LinphoneService; import org.linphone.core.LinphoneAddress; +import org.linphone.core.LinphoneAddress.TransportType; import org.linphone.core.LinphoneAuthInfo; import org.linphone.core.LinphoneCall; import org.linphone.core.LinphoneCall.State; @@ -33,8 +34,6 @@ import org.linphone.core.PayloadType; import org.linphone.core.PublishState; import org.linphone.core.SubscriptionState; import org.linphone.mediastream.Log; -import org.linphone.mediastream.Version; -import org.linphone.mediastream.video.capture.AndroidVideoApi5JniWrapper; import org.linphone.mediastream.video.capture.hwconf.AndroidCameraConfiguration; import org.linphone.mediastream.video.capture.hwconf.AndroidCameraConfiguration.AndroidCamera; @@ -45,20 +44,22 @@ import android.telephony.TelephonyManager; public class LinphoneTestManager implements LinphoneCoreListener { private static LinphoneTestManager instance; - private Context mAContext, mIContext; + private Context mIContext; private LinphoneCore mLc1, mLc2; public String lastMessageReceived; public boolean isDTMFReceived = false; public boolean autoAnswer = true; public boolean declineCall = false; + + private final String linphoneRootCaFile; private Timer mTimer1 = new Timer("Linphone scheduler 1"); private Timer mTimer2 = new Timer("Linphone scheduler 2"); private LinphoneTestManager(Context ac, Context ic) { mIContext = ic; - mAContext = ac; + linphoneRootCaFile = ac.getFilesDir().getAbsolutePath() + "/rootca.pem"; } public static LinphoneTestManager createAndStart(Context ac, Context ic, int id) { @@ -97,11 +98,17 @@ public class LinphoneTestManager implements LinphoneCoreListener { mLc.enableIpv6(false); mLc.setRing(null); + mLc.setRootCA(linphoneRootCaFile); int availableCores = Runtime.getRuntime().availableProcessors(); Log.w("MediaStreamer : " + availableCores + " cores detected and configured"); mLc.setCpuCount(availableCores); + Transports t = mLc.getSignalingTransportPorts(); + t.udp = -1; + t.tcp = -1; + mLc.setSignalingTransportPorts(t); + try { initFromConf(mLc); } catch (LinphoneException e) { @@ -141,13 +148,6 @@ public class LinphoneTestManager implements LinphoneCoreListener { public void initFromConf(LinphoneCore mLc) throws LinphoneConfigException, LinphoneCoreException { LinphoneCoreFactory.instance().setDebugMode(true, "LinphoneTester"); - - // Use TCP with Random port - Transports transports = getLc().getSignalingTransportPorts(); - transports.tcp = -1; - transports.udp = 0; - transports.tls = 0; - mLc.setSignalingTransportPorts(transports); initAccounts(mLc); @@ -175,7 +175,7 @@ public class LinphoneTestManager implements LinphoneCoreListener { } void initMediaEncryption(LinphoneCore mLc){ - MediaEncryption me=MediaEncryption.None; + MediaEncryption me = MediaEncryption.None; mLc.setMediaEncryption(me); } @@ -193,11 +193,14 @@ public class LinphoneTestManager implements LinphoneCoreListener { password = mIContext.getString(org.linphone.test.R.string.conference_account_password); domain = mIContext.getString(org.linphone.test.R.string.conference_account_domain); } + LinphoneAuthInfo lAuthInfo = LinphoneCoreFactory.instance().createAuthInfo(username, password, null, domain); mLc.addAuthInfo(lAuthInfo); String identity = "sip:" + username +"@" + domain; String proxy = "sip:" + domain; - LinphoneProxyConfig proxycon = LinphoneCoreFactory.instance().createProxyConfig(identity, proxy, null, true); + LinphoneAddress proxyAddr = LinphoneCoreFactory.instance().createLinphoneAddress(proxy); + proxyAddr.setTransport(TransportType.LinphoneTransportTls); + LinphoneProxyConfig proxycon = LinphoneCoreFactory.instance().createProxyConfig(identity, proxyAddr.asStringUriOnly(), proxyAddr.asStringUriOnly(), true); mLc.addProxyConfig(proxycon); mLc.setDefaultProxyConfig(proxycon);