Added Registration Interval account setting
This commit is contained in:
@ -22,6 +22,7 @@ class Account(val accp: Long) {
|
||||
var audioCodec = ArrayList<String>()
|
||||
var videoCodec = ArrayList<String>()
|
||||
var regint = Api.account_regint(accp)
|
||||
var configuredRegInt = REGISTRATION_INTERVAL
|
||||
var mediaEnc = Api.account_mediaenc(accp)
|
||||
var rtcpMux = Api.account_rtcp_mux(accp)
|
||||
var dtmfMode = Api.account_dtmfmode(accp)
|
||||
@ -66,6 +67,8 @@ class Account(val accp: Long) {
|
||||
val extra = Api.account_extra(accp)
|
||||
if (Utils.paramExists(extra, "nickname"))
|
||||
nickName = Utils.paramValue(extra,"nickname")
|
||||
if (Utils.paramExists(extra, "regint"))
|
||||
configuredRegInt = Utils.paramValue(extra,"regint").toInt()
|
||||
callHistory = Utils.paramValue(extra,"call_history") == ""
|
||||
if (Utils.paramExists(extra, "country_code"))
|
||||
countryCode = Utils.paramValue(extra,"country_code")
|
||||
@ -144,7 +147,10 @@ class Account(val accp: Long) {
|
||||
if (countryCode != "")
|
||||
extra += ";country_code=$countryCode"
|
||||
|
||||
if (extra != "")
|
||||
if (configuredRegInt != REGISTRATION_INTERVAL)
|
||||
extra += ";regint=$configuredRegInt"
|
||||
|
||||
if (extra !="")
|
||||
res += ";extra=\"" + extra.substringAfter(";") + "\""
|
||||
|
||||
return res
|
||||
|
||||
@ -40,6 +40,7 @@ class AccountActivity : AppCompatActivity() {
|
||||
private lateinit var stunUser: EditText
|
||||
private lateinit var stunPass: EditText
|
||||
private lateinit var regCheck: CheckBox
|
||||
private lateinit var regInt: EditText
|
||||
private lateinit var mediaNatSpinner: Spinner
|
||||
private lateinit var mediaEnc: String
|
||||
private lateinit var mediaEncSpinner: Spinner
|
||||
@ -84,6 +85,7 @@ class AccountActivity : AppCompatActivity() {
|
||||
authPass = binding.AuthPass
|
||||
outbound = arrayOf(binding.Outbound1, binding.Outbound2)
|
||||
regCheck = binding.Register
|
||||
regInt = binding.RegInt
|
||||
mediaNatSpinner = binding.mediaNatSpinner
|
||||
stun = binding.Stun
|
||||
stunServer = binding.StunServer
|
||||
@ -234,6 +236,7 @@ class AccountActivity : AppCompatActivity() {
|
||||
}
|
||||
|
||||
regCheck.isChecked = acc.regint > 0
|
||||
regInt.setText(acc.configuredRegInt.toString())
|
||||
|
||||
this.acc.audioCodec = acc.audioCodec
|
||||
|
||||
@ -485,26 +488,38 @@ class AccountActivity : AppCompatActivity() {
|
||||
save = true
|
||||
}
|
||||
|
||||
var newRegint = -1
|
||||
if (regCheck.isChecked) {
|
||||
if (acc.regint != REGISTRATION_INTERVAL) {
|
||||
newRegint = REGISTRATION_INTERVAL
|
||||
ua.status = R.drawable.dot_yellow
|
||||
}
|
||||
} else {
|
||||
if (acc.regint != 0) {
|
||||
ua.status = R.drawable.dot_white
|
||||
newRegint = 0
|
||||
}
|
||||
val newConfiguredRegInt = regInt.text.toString().trim().toInt()
|
||||
if (newConfiguredRegInt < 60 || newConfiguredRegInt > 3600) {
|
||||
Utils.alertView(
|
||||
this, getString(R.string.notice),
|
||||
String.format(getString(R.string.invalid_reg_int), newConfiguredRegInt)
|
||||
)
|
||||
return false
|
||||
}
|
||||
if (newRegint != -1) {
|
||||
if (Api.account_set_regint(acc.accp, newRegint) != 0) {
|
||||
val reRegister = (regCheck.isChecked != acc.regint > 0) ||
|
||||
(regCheck.isChecked && newConfiguredRegInt != acc.configuredRegInt)
|
||||
if (reRegister) {
|
||||
if (Api.account_set_regint(
|
||||
acc.accp,
|
||||
if (regCheck.isChecked) newConfiguredRegInt else 0
|
||||
) != 0
|
||||
) {
|
||||
Log.e(TAG, "Setting of regint failed")
|
||||
} else {
|
||||
ua.status = if (regCheck.isChecked)
|
||||
R.drawable.dot_yellow
|
||||
else
|
||||
R.drawable.dot_white
|
||||
acc.regint = Api.account_regint(acc.accp)
|
||||
acc.configuredRegInt = newConfiguredRegInt
|
||||
Log.d(TAG, "New regint is ${acc.regint}")
|
||||
save = true
|
||||
}
|
||||
} else {
|
||||
if (newConfiguredRegInt != acc.configuredRegInt) {
|
||||
acc.configuredRegInt = newConfiguredRegInt
|
||||
save = true
|
||||
}
|
||||
}
|
||||
|
||||
if (mediaNat != acc.mediaNat) {
|
||||
@ -660,8 +675,8 @@ class AccountActivity : AppCompatActivity() {
|
||||
|
||||
if (save) {
|
||||
AccountsActivity.saveAccounts()
|
||||
if (newRegint != -1) {
|
||||
if (newRegint == 0)
|
||||
if (reRegister) {
|
||||
if (acc.regint == 0)
|
||||
Api.ua_unregister(ua.uap)
|
||||
else
|
||||
Api.ua_register(ua.uap)
|
||||
|
||||
@ -161,6 +161,33 @@
|
||||
</CheckBox>
|
||||
</RelativeLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal" >
|
||||
<TextView
|
||||
android:id="@+id/RegIntTitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_toStartOf="@id/RegInt"
|
||||
android:textSize="18sp"
|
||||
android:text="@string/reg_int" >
|
||||
</TextView>
|
||||
<EditText
|
||||
android:id="@+id/RegInt"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_gravity="end"
|
||||
android:layout_centerVertical="true"
|
||||
android:textSize="18sp"
|
||||
android:inputType="number"
|
||||
android:importantForAutofill="no" >
|
||||
</EditText>
|
||||
</RelativeLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/AudioCodecsTitle"
|
||||
android:layout_width="wrap_content"
|
||||
@ -355,25 +382,35 @@
|
||||
android:layout_width="fill_parent">
|
||||
</EditText>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/CountryCodeTitle"
|
||||
<RelativeLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="10dp"
|
||||
android:textSize="18sp"
|
||||
android:text="@string/country_code" >
|
||||
</TextView>
|
||||
|
||||
<EditText
|
||||
android:id="@+id/countryCode"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/country_code_hint"
|
||||
android:textColorHint="@color/colorSecondaryDark"
|
||||
android:textSize="18sp"
|
||||
android:inputType="phone"
|
||||
android:importantForAutofill="no"
|
||||
android:layout_width="fill_parent">
|
||||
</EditText>
|
||||
android:orientation="horizontal" >
|
||||
<TextView
|
||||
android:id="@+id/CountryCodeTitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_toStartOf="@id/countryCode"
|
||||
android:paddingTop="10dp"
|
||||
android:textSize="18sp"
|
||||
android:text="@string/country_code" >
|
||||
</TextView>
|
||||
<EditText
|
||||
android:id="@+id/countryCode"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_gravity="end"
|
||||
android:layout_centerVertical="true"
|
||||
android:hint="@string/country_code_hint"
|
||||
android:textColorHint="@color/colorSecondaryDark"
|
||||
android:textSize="18sp"
|
||||
android:inputType="phone"
|
||||
android:importantForAutofill="no" >
|
||||
</EditText>
|
||||
</RelativeLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/TelephonyProviderTitle"
|
||||
|
||||
@ -138,9 +138,12 @@
|
||||
välityspalvelimen SIP URI</string>
|
||||
<string name="invalid_proxy_server_uri">Virheellinen välityspalvelimen URI \'%1$s\'</string>
|
||||
<string name="register">Rekisteröi</string>
|
||||
<string name="register_help">Jos merkitty, rekisteröinti on
|
||||
aktiivinen ja REGISTER-sanomat lähetetään noin 12 minuutin välein.
|
||||
</string>
|
||||
<string name="register_help">Jos merkitty, rekisteröinti on aktiivinen ja REGISTER-sanomat
|
||||
lähetetään Rekisteröintitaajuus-asetuksen mukaisesti.</string>
|
||||
<string name="reg_int">Rekisteröintitaajuus</string>
|
||||
<string name="reg_int_help">Kertoo kuinka usein baresip lähettää REGISTER-sanomia. Arvon on
|
||||
oltava välillä 60-3600 (sekunttia).</string>
|
||||
<string name="invalid_reg_int">Virheellinen Rekisteröintitaajuus \'%1$s\'</string>
|
||||
<string name="media_nat">Media NAT hallinta</string>
|
||||
<string name="media_nat_help">Valitsee media NAT hallintaprotokollan
|
||||
(vapaaehtoinen). Vaihtoehtoja ovat STUN (Session Traversal Utilities
|
||||
@ -385,7 +388,9 @@
|
||||
<string name="debug">Lokiviestit</string>
|
||||
<string name="debug_help">Jos merkitty, baresip tuottaa debug- ja info-tason Logcat-viestejä.</string>
|
||||
<string name="sip_trace">SIP-sanomien jäljitys</string>
|
||||
<string name="sip_trace_help">Jos merkitty ja jos Lokiviestit on merkitty, Logcat-viestit sisältävät myös lähetetyt ja vastaanotetut SIP-sanomat. On aina merkitsemättä sovelluksen käynnistyessä.</string>
|
||||
<string name="sip_trace_help">Jos merkitty ja jos Lokiviestit on merkitty, Logcat-viestit
|
||||
sisältävät myös lähetetyt ja vastaanotetut SIP-sanomat. On aina merkitsemättä sovelluksen
|
||||
käynnistyessä.</string>
|
||||
<string name="reset_config">Palauta oletusasetukset</string>
|
||||
<string name="reset_config_help">Jos merkitty, oletusasetukset palautetaan, kun
|
||||
baresip seuraavan kerran käynnistetään.
|
||||
|
||||
@ -139,9 +139,12 @@
|
||||
<string name="sip_uri_of_another_proxy_server">SIP URI of another Proxy Server</string>
|
||||
<string name="invalid_proxy_server_uri">Invalid Proxy Server URI \'%1$s\'</string>
|
||||
<string name="register">Register</string>
|
||||
<string name="register_help">If checked, registration is enabled and REGISTER requests are sent at
|
||||
12 minute intervals.
|
||||
</string>
|
||||
<string name="register_help">If checked, registration is enabled and REGISTER requests are sent
|
||||
at the interval specified by Registration Interval.</string>
|
||||
<string name="reg_int">Registration Interval</string>
|
||||
<string name="reg_int_help">Tells how often (in seconds) baresip sends REGISTER requests.
|
||||
Valid values are from 60 to 3600.</string>
|
||||
<string name="invalid_reg_int">Invalid Registration Interval\'%1$s\'</string>
|
||||
<string name="media_nat">Media NAT Traversal</string>
|
||||
<string name="media_nat_help">Selects media NAT traversal protocol (if any). Possible choices are STUN
|
||||
(Session Traversal Utilities for NAT, RFC 5389) and ICE (Interactive Connectivity
|
||||
|
||||
Reference in New Issue
Block a user