Fixed setting of outbound proxies

This commit is contained in:
Juha Heinanen
2022-08-24 11:22:39 +03:00
parent 3074b9d5c4
commit b341021071
@@ -32,8 +32,7 @@ class AccountActivity : AppCompatActivity() {
private lateinit var aor: String private lateinit var aor: String
private lateinit var authUser: EditText private lateinit var authUser: EditText
private lateinit var authPass: EditText private lateinit var authPass: EditText
private lateinit var outbound1: EditText private lateinit var outbound: Array<EditText>
private lateinit var outbound2: EditText
private lateinit var mediaNat: String private lateinit var mediaNat: String
private lateinit var stun: LinearLayout private lateinit var stun: LinearLayout
private lateinit var stunServer: EditText private lateinit var stunServer: EditText
@@ -75,8 +74,7 @@ class AccountActivity : AppCompatActivity() {
displayName = binding.DisplayName displayName = binding.DisplayName
authUser = binding.AuthUser authUser = binding.AuthUser
authPass = binding.AuthPass authPass = binding.AuthPass
outbound1 = binding.Outbound1 outbound = arrayOf(binding.Outbound1, binding.Outbound2)
outbound2 = binding.Outbound2
regCheck = binding.Register regCheck = binding.Register
mediaNatSpinner = binding.mediaNatSpinner mediaNatSpinner = binding.mediaNatSpinner
stun = binding.Stun stun = binding.Stun
@@ -217,9 +215,9 @@ class AccountActivity : AppCompatActivity() {
authPass.setText(acc.authPass) authPass.setText(acc.authPass)
if (acc.outbound.size > 0) { if (acc.outbound.size > 0) {
outbound1.setText(acc.outbound[0]) outbound[0].setText(acc.outbound[0])
if (acc.outbound.size > 1) if (acc.outbound.size > 1)
outbound2.setText(acc.outbound[1]) outbound[1].setText(acc.outbound[1])
} }
regCheck.isChecked = acc.regint > 0 regCheck.isChecked = acc.regint > 0
@@ -439,37 +437,33 @@ class AccountActivity : AppCompatActivity() {
} }
val ob = ArrayList<String>() val ob = ArrayList<String>()
var uri: String for (i in 0..1) {
if (outbound1.text.toString().trim() != "") { var uri: String
uri = outbound1.text.toString().trim().replace(" ", "") if (outbound[i].text.toString().trim() != "") {
if (!uri.startsWith("sip:")) uri = "sip:$uri" uri = outbound[i].text.toString().trim().replace(" ", "")
ob.add(uri) if (!uri.startsWith("sip:"))
} uri = "sip:$uri"
if (outbound2.text.toString().trim() != "") { if (checkOutboundUri(uri)) {
uri = outbound2.text.toString().trim().replace(" ", "") ob.add(uri)
if (!uri.startsWith("sip:")) uri = "sip:$uri"
ob.add(uri)
}
if (ob != acc.outbound) {
val outbound = ArrayList<String>()
for (i in ob.indices) {
if ((ob[i] == "") || checkOutboundUri(ob[i])) {
if (Api.account_set_outbound(acc.accp, ob[i], i) == 0) {
if (ob[i] != "")
outbound.add(Api.account_outbound(acc.accp, i))
} else {
Log.e(TAG, "Setting of outbound proxy ${ob[i]} failed")
break
}
} else { } else {
Utils.alertView(this, getString(R.string.notice), Utils.alertView(this, getString(R.string.notice),
String.format(getString(R.string.invalid_proxy_server_uri), ob[i])) String.format(getString(R.string.invalid_proxy_server_uri), ob[i]))
return false return false
} }
} }
Log.d(TAG, "New outbound proxies are $outbound") }
acc.outbound = outbound if (ob != acc.outbound) {
if (outbound.isEmpty()) for (i in 0..1) {
val uri = if (ob.size > i)
ob[i]
else
""
if (Api.account_set_outbound(acc.accp, uri, i) != 0)
Log.e(TAG, "Setting of outbound proxy $i uri '$uri' failed")
}
Log.d(TAG, "New outbound proxies are $ob")
acc.outbound = ob
if (ob.isEmpty())
Api.account_set_sipnat(acc.accp, "") Api.account_set_sipnat(acc.accp, "")
else else
Api.account_set_sipnat(acc.accp, "outbound") Api.account_set_sipnat(acc.accp, "outbound")