Use new API functions account[_set]_stun_uri for STUN URI handling.

This commit is contained in:
Juha Heinanen
2020-06-19 13:11:37 +03:00
parent 9f0c261387
commit 76911788fd
6 changed files with 53 additions and 80 deletions
@@ -13,7 +13,7 @@ class Account(val accp: String) {
var authPass = account_auth_pass(accp)
var outbound = ArrayList<String>()
var mediaNat = account_medianat(accp)
var stunServer = ""
var stunServer = account_stun_uri(accp)
var stunUser = account_stun_user(accp)
var stunPass = account_stun_pass(accp)
var audioCodec = ArrayList<String>()
@@ -31,15 +31,6 @@ class Account(val accp: String) {
init {
val stunHost = account_stun_host(accp)
if (stunHost != "") {
val stunPort = account_stun_port(accp)
if (stunPort == 0)
stunServer = stunHost
else
stunServer = "$stunHost:$stunPort"
}
var i = 0
while (true) {
val ob = account_outbound(accp, i)
@@ -100,9 +91,9 @@ class Account(val accp: String) {
res += ";stunserver=\"${stunServer}\""
}
if (stunUser != "") res = res + ";stunuser=\"${stunUser}\""
res += ";stunuser=\"${stunUser}\""
if (stunPass != "") res = res + ";stunpass=\"${stunPass}\""
if (stunPass != "") res += ";stunpass=\"${stunPass}\""
if (audioCodec.size > 0) {
var first = true
@@ -249,10 +240,8 @@ external fun account_set_sipnat(acc: String, sipnat: String): Int
external fun account_audio_codec(acc: String, ix: Int): String
external fun account_regint(acc: String): Int
external fun account_set_regint(acc: String, regint: Int): Int
external fun account_stun_host(acc: String): String
external fun account_stun_port(acc: String): Int
external fun account_set_stun_host(acc: String, host: String): Int
external fun account_set_stun_port(acc: String, port: Int): Int
external fun account_stun_uri(acc: String): String
external fun account_set_stun_uri(acc: String, uri: String): Int
external fun account_stun_user(acc: String): String
external fun account_set_stun_user(acc: String, user: String): Int
external fun account_stun_pass(acc: String): String
@@ -266,3 +255,5 @@ external fun account_set_video_codecs(acc: String, codecs: String): Int
external fun account_set_mwi(acc: String, value: String): Int
external fun account_vm_uri(acc: String): String
external fun account_extra(acc: String): String
external fun account_debug(acc: String)
@@ -325,30 +325,24 @@ class AccountActivity : AppCompatActivity() {
if (mediaNat != "") {
var newStunServer = stunServer.text.toString().trim()
if (newStunServer == "")
newStunServer = resources.getString(R.string.stun_server_default)
if (newStunServer == "") {
if (mediaNat.startsWith("turn")) {
Utils.alertView(this, getString(R.string.notice),
String.format(getString(R.string.invalid_stun_server), newStunServer))
return false
} else
newStunServer = resources.getString(R.string.stun_server_default)
}
if (acc.stunServer != newStunServer) {
if (!Utils.checkStunUri(newStunServer)) {
Utils.alertView(this, getString(R.string.notice),
String.format(getString(R.string.invalid_stun_server), newStunServer))
return false
}
val p = newStunServer.split(":")
var host = ""
val port: Int
if (p.size == 2) {
host = newStunServer
port = 0
} else {
host = newStunServer.substringBeforeLast(":")
port = newStunServer.substringAfterLast(":").toInt()
}
if ((account_set_stun_host(acc.accp, host) == 0) &&
(account_set_stun_port(acc.accp, port) == 0)) {
acc.stunServer = account_stun_host(acc.accp)
if (port != 0)
acc.stunServer += ":" + account_stun_port(acc.accp).toString()
if (account_set_stun_uri(acc.accp, newStunServer) == 0) {
acc.stunServer = account_stun_uri(acc.accp)
Log.d("Baresip", "New STUN/TURN server URI is '${acc.stunServer}'")
account_debug(acc.accp);
save = true
} else {
Log.e("Baresip", "Setting of STUN/TURN URI server failed")