From 5c898ca323393e44068efdd61a04c515b1fe38d3 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 14 Oct 2013 16:02:05 +0200 Subject: [PATCH] Fix sip port and random port --- res/raw-sw600dp/linphonerc_default | 1 - res/raw/linphonerc_default | 1 - src/org/linphone/LinphonePreferences.java | 16 +++++++++++----- src/org/linphone/SettingsFragment.java | 7 ++++++- 4 files changed, 17 insertions(+), 8 deletions(-) diff --git a/res/raw-sw600dp/linphonerc_default b/res/raw-sw600dp/linphonerc_default index c1f6fc231..7814a11d5 100644 --- a/res/raw-sw600dp/linphonerc_default +++ b/res/raw-sw600dp/linphonerc_default @@ -4,7 +4,6 @@ upload_bw=512 firewall_policy=0 [sip] -sip_random_port=1 contact=sip:unknown@unknown-host use_info=0 use_ipv6=0 diff --git a/res/raw/linphonerc_default b/res/raw/linphonerc_default index 7d46faa90..dccf4167c 100644 --- a/res/raw/linphonerc_default +++ b/res/raw/linphonerc_default @@ -3,7 +3,6 @@ download_bw=380 upload_bw=380 [sip] -sip_random_port=1 contact=sip:unknown@unknown-host use_info=0 use_ipv6=0 diff --git a/src/org/linphone/LinphonePreferences.java b/src/org/linphone/LinphonePreferences.java index d8bc1f5a9..ba79ac2ed 100644 --- a/src/org/linphone/LinphonePreferences.java +++ b/src/org/linphone/LinphonePreferences.java @@ -36,6 +36,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * @author Sylvain Berfini */ public class LinphonePreferences { + private static final int LINPHONE_CORE_RANDOM_PORT = -1; private static LinphonePreferences instance; private Context mContext; @@ -403,11 +404,19 @@ public class LinphonePreferences { } public void useRandomPort(boolean enabled) { - getConfig().setBool("sip", "sip_random_port", enabled); //FIXME + getConfig().setBool("app", "random_port", enabled); + if (enabled) { + setSipPort(LINPHONE_CORE_RANDOM_PORT); + } else { + if (getTransport().equals(getString(R.string.pref_transport_tls))) + setSipPort(5061); + else + setSipPort(5060); + } } public boolean isUsingRandomPort() { - return getConfig().getBool("sip", "sip_random_port", true); //FIXME + return getConfig().getBool("app", "random_port", true); } public String getSipPort() { @@ -423,9 +432,6 @@ public class LinphonePreferences { } public void setSipPort(int port) { - if (port <= 0) - return; - Transports transports = getLc().getSignalingTransportPorts(); if (transports.udp > 0) transports.udp = port; diff --git a/src/org/linphone/SettingsFragment.java b/src/org/linphone/SettingsFragment.java index d28ba7d56..c1d17b8a6 100644 --- a/src/org/linphone/SettingsFragment.java +++ b/src/org/linphone/SettingsFragment.java @@ -466,7 +466,12 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib findPreference(getString(R.string.pref_sip_port_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { - mPrefs.setSipPort((Integer) newValue); + int port = -1; + try { + port = Integer.parseInt(newValue.toString()); + } catch (NumberFormatException nfe) { } + + mPrefs.setSipPort(port); preference.setSummary(newValue.toString()); return true; }