diff --git a/res/values/non_localizable_strings.xml b/res/values/non_localizable_strings.xml
index bb1a96296..9941e0832 100644
--- a/res/values/non_localizable_strings.xml
+++ b/res/values/non_localizable_strings.xml
@@ -113,6 +113,8 @@
pref_display_name_key
pref_user_name_key
pref_expire_key
+ pref_avpf_key
+ pref_avpf_rr_interval_key
pref_rfc2833_dtmf_key
pref_sipinfo_dtmf_key
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 46f698b40..547ad3498 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -400,6 +400,8 @@
Display name
Username
Expire
+ AVPF
+ AVPF regular RTCP interval in seconds (between 1 and 5)
Send RFC2833 DTMFs
Send SIP INFO DTMFs
diff --git a/res/xml/account_preferences.xml b/res/xml/account_preferences.xml
index 5feccf845..02e09b2a4 100644
--- a/res/xml/account_preferences.xml
+++ b/res/xml/account_preferences.xml
@@ -59,6 +59,15 @@
android:title="@string/pref_prefix"
android:key="@string/pref_prefix_key"/>
+
+
+
+
diff --git a/src/org/linphone/AccountPreferencesFragment.java b/src/org/linphone/AccountPreferencesFragment.java
index f292029fb..8d90e5ead 100644
--- a/src/org/linphone/AccountPreferencesFragment.java
+++ b/src/org/linphone/AccountPreferencesFragment.java
@@ -141,6 +141,29 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
return true;
}
};
+ OnPreferenceChangeListener avpfChangedListener = new OnPreferenceChangeListener() {
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ boolean value = (Boolean) newValue;
+ mPrefs.enableAvpf(n, value);
+ return true;
+ }
+ };
+ OnPreferenceChangeListener avpfRRIntervalChangedListener = new OnPreferenceChangeListener() {
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ String value = newValue.toString();
+ try {
+ int intValue = Integer.parseInt(value);
+ if ((intValue < 1) || (intValue > 5)) {
+ return false;
+ }
+ } catch (NumberFormatException nfe) { }
+ mPrefs.setAvpfRRInterval(n, value);
+ preference.setSummary(value);
+ return true;
+ }
+ };
OnPreferenceChangeListener escapeChangedListener = new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
@@ -233,8 +256,17 @@ public class AccountPreferencesFragment extends PreferencesListFragment {
prefix.setSummary(prefixValue);
prefix.setText(prefixValue);
prefix.setOnPreferenceChangeListener(prefixChangedListener);
-
- CheckBoxPreference escape = (CheckBoxPreference) advanced.getPreference(5);
+
+ CheckBoxPreference avpf = (CheckBoxPreference) advanced.getPreference(5);
+ avpf.setChecked(mPrefs.avpfEnabled(n));
+ avpf.setOnPreferenceChangeListener(avpfChangedListener);
+
+ EditTextPreference avpfRRInterval = (EditTextPreference) advanced.getPreference(6);
+ avpfRRInterval.setText(mPrefs.getAvpfRRInterval(n));
+ avpfRRInterval.setOnPreferenceChangeListener(avpfRRIntervalChangedListener);
+ avpfRRInterval.setSummary(mPrefs.getAvpfRRInterval(n));
+
+ CheckBoxPreference escape = (CheckBoxPreference) advanced.getPreference(7);
escape.setChecked(mPrefs.getReplacePlusByZeroZero(n));
escape.setOnPreferenceChangeListener(escapeChangedListener);
diff --git a/src/org/linphone/LinphonePreferences.java b/src/org/linphone/LinphonePreferences.java
index 713c31c75..b657ea4e3 100644
--- a/src/org/linphone/LinphonePreferences.java
+++ b/src/org/linphone/LinphonePreferences.java
@@ -524,7 +524,29 @@ public class LinphonePreferences {
prxCfg.setDialPrefix(prefix);
prxCfg.done();
}
-
+
+ public boolean avpfEnabled(int n) {
+ return getProxyConfig(n).avpfEnabled();
+ }
+
+ public void enableAvpf(int n, boolean enable) {
+ LinphoneProxyConfig prxCfg = getProxyConfig(n);
+ prxCfg.enableAvpf(enable);
+ prxCfg.done();
+ }
+
+ public String getAvpfRRInterval(int n) {
+ return String.valueOf(getProxyConfig(n).getAvpfRRInterval());
+ }
+
+ public void setAvpfRRInterval(int n, String interval) {
+ try {
+ LinphoneProxyConfig prxCfg = getProxyConfig(n);
+ prxCfg.setAvpfRRInterval(Integer.parseInt(interval));
+ prxCfg.done();
+ } catch (NumberFormatException nfe) { }
+ }
+
public boolean getReplacePlusByZeroZero(int n) {
return getProxyConfig(n).getDialEscapePlus();
}