Added Redirect Mode account setting that tells if call redirect requests
(3xx responses) can be followed automatically or if confirmation needs to be asked
This commit is contained in:
@@ -49,6 +49,8 @@ class AccountActivity : AppCompatActivity() {
|
||||
private lateinit var dtmfModeSpinner: Spinner
|
||||
private var answerMode = Api.ANSWERMODE_MANUAL
|
||||
private lateinit var answerModeSpinner: Spinner
|
||||
private var autoRedirect = false
|
||||
private lateinit var redirectModeSpinner: Spinner
|
||||
private lateinit var vmUri: EditText
|
||||
private lateinit var countryCode: EditText
|
||||
private lateinit var telProvider: EditText
|
||||
@@ -95,6 +97,7 @@ class AccountActivity : AppCompatActivity() {
|
||||
rtcpCheck = binding.RtcpMux
|
||||
dtmfModeSpinner = binding.dtmfModeSpinner
|
||||
answerModeSpinner = binding.answerModeSpinner
|
||||
redirectModeSpinner = binding.redirectModeSpinner
|
||||
vmUri = binding.voicemailUri
|
||||
countryCode = binding.countryCode
|
||||
telProvider = binding.telephonyProvider
|
||||
@@ -203,6 +206,8 @@ class AccountActivity : AppCompatActivity() {
|
||||
else
|
||||
Api.ANSWERMODE_AUTO
|
||||
}
|
||||
"redirect-mode" ->
|
||||
acc.autoRedirect = text == "yes"
|
||||
"voicemail-uri" ->
|
||||
if (text.isNotEmpty())
|
||||
acc.vmUri = text
|
||||
@@ -344,6 +349,27 @@ class AccountActivity : AppCompatActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
autoRedirect = acc.autoRedirect
|
||||
val redirectModeKeys = arrayListOf(false, true)
|
||||
val redirectModeVals = arrayListOf(getString(R.string.manual), getString(R.string.auto))
|
||||
keyIx = redirectModeKeys.indexOf(acc.autoRedirect)
|
||||
keyVal = redirectModeVals.elementAt(keyIx)
|
||||
redirectModeKeys.removeAt(keyIx)
|
||||
redirectModeVals.removeAt(keyIx)
|
||||
redirectModeKeys.add(0, acc.autoRedirect)
|
||||
redirectModeVals.add(0, keyVal)
|
||||
val redirectModeAdapter = ArrayAdapter(this,android.R.layout.simple_spinner_item,
|
||||
redirectModeVals)
|
||||
redirectModeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
|
||||
redirectModeSpinner.adapter = redirectModeAdapter
|
||||
redirectModeSpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
|
||||
override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long) {
|
||||
autoRedirect = redirectModeKeys[redirectModeVals.indexOf(parent.selectedItem.toString())]
|
||||
}
|
||||
override fun onNothingSelected(parent: AdapterView<*>) {
|
||||
}
|
||||
}
|
||||
|
||||
if (acc.countryCode != "")
|
||||
countryCode.setText(acc.countryCode)
|
||||
|
||||
@@ -612,6 +638,12 @@ class AccountActivity : AppCompatActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
if (autoRedirect != acc.autoRedirect) {
|
||||
Api.account_set_sip_autoredirect(acc.accp, autoRedirect)
|
||||
acc.autoRedirect = autoRedirect
|
||||
Log.d(TAG, "New autoRedirect is ${acc.autoRedirect}")
|
||||
}
|
||||
|
||||
var tVmUri = vmUri.text.toString().trim()
|
||||
if (tVmUri != acc.vmUri) {
|
||||
if (tVmUri != "") {
|
||||
@@ -785,6 +817,12 @@ class AccountActivity : AppCompatActivity() {
|
||||
getString(R.string.answer_mode_help)
|
||||
)
|
||||
}
|
||||
binding.RedirectModeTitle.setOnClickListener {
|
||||
Utils.alertView(
|
||||
this, getString(R.string.redirect_mode),
|
||||
getString(R.string.redirect_mode_help)
|
||||
)
|
||||
}
|
||||
binding.VoicemailUriTitle.setOnClickListener {
|
||||
Utils.alertView(
|
||||
this, getString(R.string.voicemail_uri),
|
||||
|
||||
Reference in New Issue
Block a user