Setting to choose random port or user defined port
This commit is contained in:
parent
ef021b1e8a
commit
19cc854b16
7 changed files with 37 additions and 26 deletions
|
@ -76,7 +76,8 @@
|
||||||
|
|
||||||
<string name="pref_network_title">Réseau</string>
|
<string name="pref_network_title">Réseau</string>
|
||||||
<string name="pref_transport">Transport</string>
|
<string name="pref_transport">Transport</string>
|
||||||
<string name="pref_transport_use_standard_ports">Utiliser les ports standards</string>
|
<string name="pref_transport_use_random_ports">Utiliser des ports aléatoires</string>
|
||||||
|
<string name="pref_sip_port_title">Port SIP à utiliser si port aléatoire désactivé</string>
|
||||||
<string name="at_least_a_protocol">Au moins un est requis</string>
|
<string name="at_least_a_protocol">Au moins un est requis</string>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,8 @@
|
||||||
<bool name="pref_wifi_only_default">false</bool>
|
<bool name="pref_wifi_only_default">false</bool>
|
||||||
<string name="default_stun">stun.linphone.org</string>
|
<string name="default_stun">stun.linphone.org</string>
|
||||||
<bool name="pref_ice_enabled_default">false</bool>
|
<bool name="pref_ice_enabled_default">false</bool>
|
||||||
<bool name="pref_transport_use_standard_ports_default">false</bool>
|
<bool name="pref_transport_use_random_ports_default">true</bool>
|
||||||
|
<string name="pref_sip_port_default">5060</string>
|
||||||
<string name="pref_transport_default">@string/pref_transport_udp_key</string>
|
<string name="pref_transport_default">@string/pref_transport_udp_key</string>
|
||||||
<string name="default_audio_port">7078</string>
|
<string name="default_audio_port">7078</string>
|
||||||
<string name="default_video_port">9078</string>
|
<string name="default_video_port">9078</string>
|
||||||
|
|
|
@ -40,7 +40,8 @@
|
||||||
<string name="pref_transport_udp_key">pref_transport_udp_key</string>
|
<string name="pref_transport_udp_key">pref_transport_udp_key</string>
|
||||||
<string name="pref_transport_tcp_key">pref_transport_tcp_key</string>
|
<string name="pref_transport_tcp_key">pref_transport_tcp_key</string>
|
||||||
<string name="pref_transport_tls_key">pref_transport_tls_key</string>
|
<string name="pref_transport_tls_key">pref_transport_tls_key</string>
|
||||||
<string name="pref_transport_use_standard_ports_key">pref_transport_use_standard_ports_key</string>
|
<string name="pref_transport_use_random_ports_key">pref_transport_use_random_ports_key</string>
|
||||||
|
<string name="pref_sip_port_key">pref_sip_port_key</string>
|
||||||
|
|
||||||
<string name="pref_echo_canceller_calibration_key">pref_echo_canceller_calibration_key</string>
|
<string name="pref_echo_canceller_calibration_key">pref_echo_canceller_calibration_key</string>
|
||||||
<string name="pref_prefix_key">pref_prefix_key</string>
|
<string name="pref_prefix_key">pref_prefix_key</string>
|
||||||
|
|
|
@ -95,7 +95,8 @@
|
||||||
<string name="pref_transport_udp">UDP</string>
|
<string name="pref_transport_udp">UDP</string>
|
||||||
<string name="pref_transport_tcp">TCP</string>
|
<string name="pref_transport_tcp">TCP</string>
|
||||||
<string name="pref_transport_tls">TLS</string>
|
<string name="pref_transport_tls">TLS</string>
|
||||||
<string name="pref_transport_use_standard_ports">Use standard ports</string>
|
<string name="pref_transport_use_random_ports">Use random ports</string>
|
||||||
|
<string name="pref_sip_port_title">SIP port to use</string>
|
||||||
<string name="at_least_a_protocol">At least one item is required</string>
|
<string name="at_least_a_protocol">At least one item is required</string>
|
||||||
|
|
||||||
<string name="first_launch_ok">Registration successful</string>
|
<string name="first_launch_ok">Registration successful</string>
|
||||||
|
|
|
@ -233,9 +233,15 @@
|
||||||
android:defaultValue="@bool/pref_ice_enabled_default"/>
|
android:defaultValue="@bool/pref_ice_enabled_default"/>
|
||||||
|
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:key="@string/pref_transport_use_standard_ports_key"
|
android:key="@string/pref_transport_use_random_ports_key"
|
||||||
android:title="@string/pref_transport_use_standard_ports"
|
android:title="@string/pref_transport_use_random_ports"
|
||||||
android:defaultValue="@bool/pref_transport_use_standard_ports_default"/>
|
android:defaultValue="@bool/pref_transport_use_random_ports_default"/>
|
||||||
|
|
||||||
|
<EditTextPreference
|
||||||
|
android:key="@string/pref_sip_port_key"
|
||||||
|
android:title="@string/pref_sip_port_title"
|
||||||
|
android:defaultValue="@string/pref_sip_port_default"
|
||||||
|
android:numeric="integer"/>
|
||||||
|
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:key="@string/pref_audio_port_key"
|
android:key="@string/pref_audio_port_key"
|
||||||
|
|
|
@ -788,11 +788,11 @@ public final class LinphoneManager implements LinphoneCoreListener {
|
||||||
|
|
||||||
private void setSignalingTransportsFromConfiguration(Transports t) {
|
private void setSignalingTransportsFromConfiguration(Transports t) {
|
||||||
Transports ports = new Transports(t);
|
Transports ports = new Transports(t);
|
||||||
boolean useStandardPort = getPrefBoolean(R.string.pref_transport_use_standard_ports_key, mR.getBoolean(R.bool.pref_transport_use_standard_ports_default));
|
boolean useRandomPort = getPrefBoolean(R.string.pref_transport_use_random_ports_key, mR.getBoolean(R.bool.pref_transport_use_random_ports_default));
|
||||||
int lPreviousPort = ports.tcp +ports.udp +ports.tls; // assume only one port is active
|
int lPreviousPort = tryToParseIntValue(getPrefString(R.string.pref_sip_port_key, getString(R.string.pref_sip_port_default)), 5060);
|
||||||
if (lPreviousPort>0xFFFF) {
|
if (lPreviousPort>0xFFFF || useRandomPort) {
|
||||||
Log.e("Bad port number ["+lPreviousPort+"] using random instead");
|
|
||||||
lPreviousPort=(0xDFFF & (int)Math.random())+1024;
|
lPreviousPort=(0xDFFF & (int)Math.random())+1024;
|
||||||
|
Log.w("Using random port " + lPreviousPort);
|
||||||
}
|
}
|
||||||
|
|
||||||
String transport = getPrefString(R.string.pref_transport_key, getString(R.string.pref_transport_udp_key));
|
String transport = getPrefString(R.string.pref_transport_key, getString(R.string.pref_transport_udp_key));
|
||||||
|
@ -800,29 +800,17 @@ public final class LinphoneManager implements LinphoneCoreListener {
|
||||||
{
|
{
|
||||||
ports.udp = 0;
|
ports.udp = 0;
|
||||||
ports.tls = 0;
|
ports.tls = 0;
|
||||||
if (useStandardPort) {
|
ports.tcp = lPreviousPort;
|
||||||
ports.tcp = 5060;
|
|
||||||
} else if (ports.tcp==0){
|
|
||||||
ports.tcp=lPreviousPort;
|
|
||||||
}
|
|
||||||
} else if (transport.equals(getString(R.string.pref_transport_udp_key)))
|
} else if (transport.equals(getString(R.string.pref_transport_udp_key)))
|
||||||
{
|
{
|
||||||
ports.tcp = 0;
|
ports.tcp = 0;
|
||||||
ports.tls = 0;
|
ports.tls = 0;
|
||||||
if (useStandardPort) {
|
ports.udp = lPreviousPort;
|
||||||
ports.udp = 5060;
|
|
||||||
} else if (ports.udp==0) {
|
|
||||||
ports.udp = lPreviousPort;
|
|
||||||
}
|
|
||||||
} else if (transport.equals(getString(R.string.pref_transport_tls_key)))
|
} else if (transport.equals(getString(R.string.pref_transport_tls_key)))
|
||||||
{
|
{
|
||||||
ports.udp = 0;
|
ports.udp = 0;
|
||||||
ports.tcp = 0;
|
ports.tcp = 0;
|
||||||
if (useStandardPort) {
|
ports.tls = lPreviousPort;
|
||||||
ports.tls = 5061;
|
|
||||||
} else if (ports.tls==0) {
|
|
||||||
ports.tls=lPreviousPort;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
mLc.setSignalingTransportPorts(ports);
|
mLc.setSignalingTransportPorts(ports);
|
||||||
|
|
|
@ -56,6 +56,7 @@ import android.preference.CheckBoxPreference;
|
||||||
import android.preference.EditTextPreference;
|
import android.preference.EditTextPreference;
|
||||||
import android.preference.ListPreference;
|
import android.preference.ListPreference;
|
||||||
import android.preference.Preference;
|
import android.preference.Preference;
|
||||||
|
import android.preference.Preference.OnPreferenceChangeListener;
|
||||||
import android.preference.Preference.OnPreferenceClickListener;
|
import android.preference.Preference.OnPreferenceClickListener;
|
||||||
import android.preference.PreferenceCategory;
|
import android.preference.PreferenceCategory;
|
||||||
|
|
||||||
|
@ -204,6 +205,18 @@ public class PreferencesFragment extends PreferencesListFragment implements EcCa
|
||||||
} else {
|
} else {
|
||||||
findPreference(getString(R.string.menu_about_key)).setLayoutResource(R.layout.hidden);
|
findPreference(getString(R.string.menu_about_key)).setLayoutResource(R.layout.hidden);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final CheckBoxPreference useRandomPort = (CheckBoxPreference) findPreference(R.string.pref_transport_use_random_ports_key);
|
||||||
|
final Preference sipPort = findPreference(R.string.pref_sip_port_key);
|
||||||
|
sipPort.setEnabled(!useRandomPort.isChecked());
|
||||||
|
useRandomPort.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
boolean isChecked = (Boolean) newValue;
|
||||||
|
sipPort.setEnabled(!isChecked);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createAddAccountButton() {
|
private void createAddAccountButton() {
|
||||||
|
|
Loading…
Reference in a new issue