Fix outbound proxy issue + fixed tester

This commit is contained in:
Sylvain Berfini 2014-02-18 17:29:05 +01:00
parent d6de11a800
commit 3d35278366
3 changed files with 20 additions and 16 deletions

View file

@ -166,13 +166,14 @@ public class LinphonePreferences {
String proxy = "sip:"; String proxy = "sip:";
proxy += tempProxy == null ? tempDomain : tempProxy; proxy += tempProxy == null ? tempDomain : tempProxy;
LinphoneAddress proxyAddr = LinphoneCoreFactory.instance().createLinphoneAddress(proxy); LinphoneAddress proxyAddr = LinphoneCoreFactory.instance().createLinphoneAddress(proxy);
String route = tempOutboundProxy ? tempProxy : null;
if (tempTransport == null) { if (tempTransport == null) {
tempTransport = TransportType.LinphoneTransportUdp; tempTransport = TransportType.LinphoneTransportUdp;
} }
proxyAddr.setTransport(tempTransport); proxyAddr.setTransport(tempTransport);
String route = tempOutboundProxy ? proxyAddr.asStringUriOnly() : null;
LinphoneProxyConfig prxCfg = LinphoneCoreFactory.instance().createProxyConfig(identity, proxyAddr.asStringUriOnly(), route, true); LinphoneProxyConfig prxCfg = LinphoneCoreFactory.instance().createProxyConfig(identity, proxyAddr.asStringUriOnly(), route, true);
if (tempContactsParams != null) if (tempContactsParams != null)
prxCfg.setContactUriParameters(tempContactsParams); prxCfg.setContactUriParameters(tempContactsParams);

View file

@ -59,11 +59,11 @@ public class AccountAssistant extends SampleTest {
String stunServer = prefs.getStunServer(); String stunServer = prefs.getStunServer();
Assert.assertEquals(aContext.getString(org.linphone.R.string.default_stun), stunServer); 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); Assert.assertEquals(aContext.getString(org.linphone.R.string.pref_transport_tls_key), transport);
String proxy = prefs.getAccountProxy(0); String proxy = prefs.getAccountProxy(0);
Assert.assertEquals(aContext.getString(org.linphone.R.string.default_domain) + ":5223", proxy); Assert.assertEquals("<sip:" + aContext.getString(org.linphone.R.string.default_domain) + ":5223;transport=tls>", proxy);
Assert.assertEquals(true, prefs.isAccountOutboundProxySet(0)); Assert.assertEquals(true, prefs.isAccountOutboundProxySet(0));
boolean ice = prefs.isIceEnabled(); boolean ice = prefs.isIceEnabled();

View file

@ -8,6 +8,7 @@ import org.linphone.LinphoneManager;
import org.linphone.LinphoneManager.LinphoneConfigException; import org.linphone.LinphoneManager.LinphoneConfigException;
import org.linphone.LinphoneService; import org.linphone.LinphoneService;
import org.linphone.core.LinphoneAddress; import org.linphone.core.LinphoneAddress;
import org.linphone.core.LinphoneAddress.TransportType;
import org.linphone.core.LinphoneAuthInfo; import org.linphone.core.LinphoneAuthInfo;
import org.linphone.core.LinphoneCall; import org.linphone.core.LinphoneCall;
import org.linphone.core.LinphoneCall.State; import org.linphone.core.LinphoneCall.State;
@ -33,8 +34,6 @@ import org.linphone.core.PayloadType;
import org.linphone.core.PublishState; import org.linphone.core.PublishState;
import org.linphone.core.SubscriptionState; import org.linphone.core.SubscriptionState;
import org.linphone.mediastream.Log; 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;
import org.linphone.mediastream.video.capture.hwconf.AndroidCameraConfiguration.AndroidCamera; import org.linphone.mediastream.video.capture.hwconf.AndroidCameraConfiguration.AndroidCamera;
@ -45,7 +44,7 @@ import android.telephony.TelephonyManager;
public class LinphoneTestManager implements LinphoneCoreListener { public class LinphoneTestManager implements LinphoneCoreListener {
private static LinphoneTestManager instance; private static LinphoneTestManager instance;
private Context mAContext, mIContext; private Context mIContext;
private LinphoneCore mLc1, mLc2; private LinphoneCore mLc1, mLc2;
public String lastMessageReceived; public String lastMessageReceived;
@ -53,12 +52,14 @@ public class LinphoneTestManager implements LinphoneCoreListener {
public boolean autoAnswer = true; public boolean autoAnswer = true;
public boolean declineCall = false; public boolean declineCall = false;
private final String linphoneRootCaFile;
private Timer mTimer1 = new Timer("Linphone scheduler 1"); private Timer mTimer1 = new Timer("Linphone scheduler 1");
private Timer mTimer2 = new Timer("Linphone scheduler 2"); private Timer mTimer2 = new Timer("Linphone scheduler 2");
private LinphoneTestManager(Context ac, Context ic) { private LinphoneTestManager(Context ac, Context ic) {
mIContext = ic; mIContext = ic;
mAContext = ac; linphoneRootCaFile = ac.getFilesDir().getAbsolutePath() + "/rootca.pem";
} }
public static LinphoneTestManager createAndStart(Context ac, Context ic, int id) { public static LinphoneTestManager createAndStart(Context ac, Context ic, int id) {
@ -97,11 +98,17 @@ public class LinphoneTestManager implements LinphoneCoreListener {
mLc.enableIpv6(false); mLc.enableIpv6(false);
mLc.setRing(null); mLc.setRing(null);
mLc.setRootCA(linphoneRootCaFile);
int availableCores = Runtime.getRuntime().availableProcessors(); int availableCores = Runtime.getRuntime().availableProcessors();
Log.w("MediaStreamer : " + availableCores + " cores detected and configured"); Log.w("MediaStreamer : " + availableCores + " cores detected and configured");
mLc.setCpuCount(availableCores); mLc.setCpuCount(availableCores);
Transports t = mLc.getSignalingTransportPorts();
t.udp = -1;
t.tcp = -1;
mLc.setSignalingTransportPorts(t);
try { try {
initFromConf(mLc); initFromConf(mLc);
} catch (LinphoneException e) { } catch (LinphoneException e) {
@ -142,13 +149,6 @@ public class LinphoneTestManager implements LinphoneCoreListener {
public void initFromConf(LinphoneCore mLc) throws LinphoneConfigException, LinphoneCoreException { public void initFromConf(LinphoneCore mLc) throws LinphoneConfigException, LinphoneCoreException {
LinphoneCoreFactory.instance().setDebugMode(true, "LinphoneTester"); 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); initAccounts(mLc);
mLc.setVideoPolicy(true, true); mLc.setVideoPolicy(true, true);
@ -193,11 +193,14 @@ public class LinphoneTestManager implements LinphoneCoreListener {
password = mIContext.getString(org.linphone.test.R.string.conference_account_password); password = mIContext.getString(org.linphone.test.R.string.conference_account_password);
domain = mIContext.getString(org.linphone.test.R.string.conference_account_domain); domain = mIContext.getString(org.linphone.test.R.string.conference_account_domain);
} }
LinphoneAuthInfo lAuthInfo = LinphoneCoreFactory.instance().createAuthInfo(username, password, null, domain); LinphoneAuthInfo lAuthInfo = LinphoneCoreFactory.instance().createAuthInfo(username, password, null, domain);
mLc.addAuthInfo(lAuthInfo); mLc.addAuthInfo(lAuthInfo);
String identity = "sip:" + username +"@" + domain; String identity = "sip:" + username +"@" + domain;
String proxy = "sip:" + 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.addProxyConfig(proxycon);
mLc.setDefaultProxyConfig(proxycon); mLc.setDefaultProxyConfig(proxycon);