Add Nat policy by account
This commit is contained in:
parent
e41c7db954
commit
8a7e6facd9
3 changed files with 96 additions and 38 deletions
|
@ -1,33 +1,33 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<config xmlns="http://www.linphone.org/xsds/lpconfig.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.linphone.org/xsds/lpconfig.xsd lpconfig.xsd">
|
||||
|
||||
<section name="proxy_default_values">
|
||||
<entry name="avpf" overwrite="true">1</entry>
|
||||
<entry name="dial_escape_plus" overwrite="true">0</entry>
|
||||
<entry name="publish" overwrite="true">0</entry>
|
||||
<entry name="quality_reporting_collector" overwrite="true">sip:voip-metrics@sip.linphone.org;transport=tls</entry>
|
||||
<entry name="quality_reporting_enabled" overwrite="true">1</entry>
|
||||
<entry name="quality_reporting_interval" overwrite="true">180</entry>
|
||||
<entry name="reg_expires" overwrite="true">31536000</entry>
|
||||
<entry name="reg_identity" overwrite="true">sip:?@sip.linphone.org</entry>
|
||||
<entry name="reg_proxy" overwrite="true"><sip:sip.linphone.org;transport=tls></entry>
|
||||
<entry name="reg_sendregister" overwrite="true">1</entry>
|
||||
<entry name="refkey" overwrite="true">push_notification</entry>
|
||||
<entry name="realm" overwrite="true">sip.linphone.org</entry>
|
||||
</section>
|
||||
|
||||
<section name="sip">
|
||||
<entry name="rls_uri" overwrite="true">sips:rls@sip.linphone.org</entry>
|
||||
</section>
|
||||
|
||||
<section name="assistant">
|
||||
<entry name="domain" overwrite="true">sip.linphone.org</entry>
|
||||
<entry name="password_max_length" overwrite="true">-1</entry>
|
||||
<entry name="password_min_length" overwrite="true">1</entry>
|
||||
<entry name="username_length" overwrite="true">-1</entry>
|
||||
<entry name="username_max_length" overwrite="true">64</entry>
|
||||
<entry name="username_min_length" overwrite="true">1</entry>
|
||||
<entry name="username_regex" overwrite="true">^[a-z0-9+_.\-]*$</entry>
|
||||
<entry name="xmlrpc_url" overwrite="true">https://sip3.linphone.org:444/wizard.php</entry>
|
||||
</section>
|
||||
<section name="proxy_default_values">
|
||||
<entry name="avpf" overwrite="true">1</entry>
|
||||
<entry name="dial_escape_plus" overwrite="true">0</entry>
|
||||
<entry name="publish" overwrite="true">1</entry>
|
||||
<entry name="quality_reporting_collector" overwrite="true">sip:voip-metrics@sip.linphone.org;transport=tls</entry>
|
||||
<entry name="quality_reporting_enabled" overwrite="true">1</entry>
|
||||
<entry name="quality_reporting_interval" overwrite="true">180</entry>
|
||||
<entry name="reg_expires" overwrite="true">600</entry>
|
||||
<entry name="reg_identity" overwrite="true">sip:?@sip.linphone.org</entry>
|
||||
<entry name="reg_proxy" overwrite="true"><sip:sip.linphone.org;transport=tls></entry>
|
||||
<entry name="reg_sendregister" overwrite="true">1</entry>
|
||||
<entry name="nat_policy_ref" overwrite="true">nat_policy_default_values</entry>
|
||||
<entry name="realm" overwrite="true">sip.linphone.org</entry>
|
||||
</section>
|
||||
<section name="nat_policy_default_values">
|
||||
<entry name="stun_server" overwrite="true">stun.linphone.org</entry>
|
||||
<entry name="protocols" overwrite="true">stun,ice</entry>
|
||||
</section>
|
||||
<section name="sip">
|
||||
<entry name="rls_uri" overwrite="true">sips:rls@sip.linphone.org</entry>
|
||||
</section>
|
||||
<section name="assistant">
|
||||
<entry name="domain" overwrite="true">sip.linphone.org</entry>
|
||||
<entry name="password_max_length" overwrite="true">-1</entry>
|
||||
<entry name="password_min_length" overwrite="true">1</entry>
|
||||
<entry name="username_length" overwrite="true">-1</entry>
|
||||
<entry name="username_max_length" overwrite="true">64</entry>
|
||||
<entry name="username_min_length" overwrite="true">1</entry>
|
||||
<entry name="username_regex" overwrite="true">^[a-z0-9+_.\-]*$</entry>
|
||||
</section>
|
||||
</config>
|
||||
|
|
|
@ -48,6 +48,17 @@
|
|||
android:key="@string/pref_transport_key"
|
||||
android:persistent="false"/>
|
||||
|
||||
<CheckBoxPreference
|
||||
android:title="@string/pref_ice_enable"
|
||||
android:key="@string/pref_ice_enable_key"
|
||||
android:persistent="false"/>
|
||||
|
||||
<EditTextPreference
|
||||
android:title="@string/pref_stun_server"
|
||||
android:key="@string/pref_stun_server_key"
|
||||
android:inputType="textUri"
|
||||
android:persistent="false"/>
|
||||
|
||||
<EditTextPreference
|
||||
android:title="@string/pref_proxy"
|
||||
android:inputType="textUri"
|
||||
|
|
|
@ -48,6 +48,7 @@ import android.support.v4.content.ContextCompat;
|
|||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.EditText;
|
||||
|
||||
/**
|
||||
|
@ -292,6 +293,40 @@ public class AccountPreferencesFragment extends PreferencesListFragment implemen
|
|||
}
|
||||
};
|
||||
|
||||
OnPreferenceChangeListener iceChangedListener = new OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
boolean value = (Boolean) newValue;
|
||||
if (isNewAccount) {
|
||||
} else {
|
||||
if (LinphoneManager.getLcIfManagerNotDestroyedOrNull() != null
|
||||
&& LinphoneManager.getLc().getProxyConfigList()[n].getNatPolicy() != null)
|
||||
LinphoneManager.getLc().getProxyConfigList()[n].getNatPolicy().enableIce(value);
|
||||
else
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
OnPreferenceChangeListener stunTurnChangedListener = new OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
String value = newValue.toString();
|
||||
if (isNewAccount) {
|
||||
} else {
|
||||
if (LinphoneManager.getLcIfManagerNotDestroyedOrNull() != null
|
||||
&& LinphoneManager.getLc().getProxyConfigList()[n].getNatPolicy() != null) {
|
||||
LinphoneManager.getLc().getProxyConfigList()[n].getNatPolicy().setStunServer(value);
|
||||
preference.setSummary(value);
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
private void initAccountPreferencesFields(PreferenceScreen parent) {
|
||||
boolean isDefaultAccount = mPrefs.getDefaultAccountIndex() == n;
|
||||
|
||||
|
@ -342,27 +377,39 @@ public class AccountPreferencesFragment extends PreferencesListFragment implemen
|
|||
mTransportPreference.setSummary(mPrefs.getAccountTransportString(n));
|
||||
}
|
||||
|
||||
mProxyPreference = (EditTextPreference) advanced.getPreference(1);
|
||||
CheckBoxPreference ice = (CheckBoxPreference) advanced.getPreference(1);
|
||||
ice.setOnPreferenceChangeListener(iceChangedListener);
|
||||
if (LinphoneManager.getLcIfManagerNotDestroyedOrNull() != null
|
||||
&& LinphoneManager.getLc().getProxyConfigList()[n].getNatPolicy() != null)
|
||||
ice.setChecked(LinphoneManager.getLc().getProxyConfigList()[n].getNatPolicy().iceEnabled());
|
||||
|
||||
EditTextPreference stunTurn = (EditTextPreference) advanced.getPreference(2);
|
||||
stunTurn.setOnPreferenceChangeListener(stunTurnChangedListener);
|
||||
if (LinphoneManager.getLcIfManagerNotDestroyedOrNull() != null
|
||||
&& LinphoneManager.getLc().getProxyConfigList()[n].getNatPolicy() != null)
|
||||
stunTurn.setText(LinphoneManager.getLc().getProxyConfigList()[n].getNatPolicy().getStunServer());
|
||||
|
||||
mProxyPreference = (EditTextPreference) advanced.getPreference(3);
|
||||
mProxyPreference.setOnPreferenceChangeListener(proxyChangedListener);
|
||||
if (!isNewAccount){
|
||||
mProxyPreference.setText(mPrefs.getAccountProxy(n));
|
||||
mProxyPreference.setSummary("".equals(mProxyPreference.getText()) || (mProxyPreference.getText() == null) ? getString(R.string.pref_help_proxy) : mProxyPreference.getText());
|
||||
}
|
||||
|
||||
CheckBoxPreference outboundProxy = (CheckBoxPreference) advanced.getPreference(2);
|
||||
CheckBoxPreference outboundProxy = (CheckBoxPreference) advanced.getPreference(4);
|
||||
outboundProxy.setOnPreferenceChangeListener(outboundProxyChangedListener);
|
||||
if (!isNewAccount){
|
||||
outboundProxy.setChecked(mPrefs.isAccountOutboundProxySet(n));
|
||||
}
|
||||
|
||||
EditTextPreference expires = (EditTextPreference) advanced.getPreference(3);
|
||||
EditTextPreference expires = (EditTextPreference) advanced.getPreference(5);
|
||||
expires.setOnPreferenceChangeListener(expiresChangedListener);
|
||||
if(!isNewAccount){
|
||||
expires.setText(mPrefs.getExpires(n));
|
||||
expires.setSummary(mPrefs.getExpires(n));
|
||||
}
|
||||
|
||||
EditTextPreference prefix = (EditTextPreference) advanced.getPreference(4);
|
||||
EditTextPreference prefix = (EditTextPreference) advanced.getPreference(6);
|
||||
prefix.setOnPreferenceChangeListener(prefixChangedListener);
|
||||
if(!isNewAccount){
|
||||
String prefixValue = mPrefs.getPrefix(n);
|
||||
|
@ -370,26 +417,26 @@ public class AccountPreferencesFragment extends PreferencesListFragment implemen
|
|||
prefix.setSummary(prefixValue);
|
||||
}
|
||||
|
||||
CheckBoxPreference avpf = (CheckBoxPreference) advanced.getPreference(5);
|
||||
CheckBoxPreference avpf = (CheckBoxPreference) advanced.getPreference(7);
|
||||
avpf.setOnPreferenceChangeListener(avpfChangedListener);
|
||||
if (!isNewAccount){
|
||||
avpf.setChecked(mPrefs.avpfEnabled(n));
|
||||
}
|
||||
|
||||
EditTextPreference avpfRRInterval = (EditTextPreference) advanced.getPreference(6);
|
||||
EditTextPreference avpfRRInterval = (EditTextPreference) advanced.getPreference(8);
|
||||
avpfRRInterval.setOnPreferenceChangeListener(avpfRRIntervalChangedListener);
|
||||
if (!isNewAccount){
|
||||
avpfRRInterval.setText(mPrefs.getAvpfRRInterval(n));
|
||||
avpfRRInterval.setSummary(mPrefs.getAvpfRRInterval(n));
|
||||
}
|
||||
|
||||
CheckBoxPreference escape = (CheckBoxPreference) advanced.getPreference(7);
|
||||
CheckBoxPreference escape = (CheckBoxPreference) advanced.getPreference(9);
|
||||
escape.setOnPreferenceChangeListener(escapeChangedListener);
|
||||
if(!isNewAccount){
|
||||
escape.setChecked(mPrefs.getReplacePlusByZeroZero(n));
|
||||
}
|
||||
|
||||
Preference linkAccount = advanced.getPreference(8);
|
||||
Preference linkAccount = advanced.getPreference(10);
|
||||
linkAccount.setOnPreferenceClickListener(linkAccountListener);
|
||||
|
||||
PreferenceCategory manage = (PreferenceCategory) getPreferenceScreen().findPreference(getString(R.string.pref_manage_key));
|
||||
|
|
Loading…
Reference in a new issue