Use new API functions account[_set]_stun_uri for STUN URI handling.
This commit is contained in:
+29
-42
@@ -945,52 +945,39 @@ Java_com_tutpro_baresip_AccountKt_account_1set_1sipnat(JNIEnv *env, jobject thiz
|
|||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT jstring JNICALL
|
JNIEXPORT jstring JNICALL
|
||||||
Java_com_tutpro_baresip_AccountKt_account_1stun_1host(JNIEnv *env, jobject thiz, jstring javaAcc)
|
Java_com_tutpro_baresip_AccountKt_account_1stun_1uri(JNIEnv *env, jobject thiz, jstring jAcc)
|
||||||
{
|
{
|
||||||
const char *native_acc = (*env)->GetStringUTFChars(env, javaAcc, 0);
|
const char *native_acc = (*env)->GetStringUTFChars(env, jAcc, 0);
|
||||||
struct account *acc = (struct account *) strtoul(native_acc, NULL, 10);
|
struct account *acc = (struct account *) strtoul(native_acc, NULL, 10);
|
||||||
(*env)->ReleaseStringUTFChars(env, javaAcc, native_acc);
|
(*env)->ReleaseStringUTFChars(env, jAcc, native_acc);
|
||||||
if (acc) {
|
if (acc) {
|
||||||
const char *stun_host = account_stun_host(acc);
|
const struct stun_uri *stun_uri = account_stun_uri(acc);
|
||||||
if (stun_host) return (*env)->NewStringUTF(env, stun_host);
|
if (stun_uri) {
|
||||||
|
char uri_str[256];
|
||||||
|
if (stun_uri->port != 0)
|
||||||
|
sprintf(uri_str, "%s:%s:%d", stunuri_scheme_name(stun_uri->scheme),
|
||||||
|
stun_uri->host, stun_uri->port);
|
||||||
|
else
|
||||||
|
sprintf(uri_str, "%s:%s", stunuri_scheme_name(stun_uri->scheme),
|
||||||
|
stun_uri->host);
|
||||||
|
return (*env)->NewStringUTF(env, uri_str);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return (*env)->NewStringUTF(env, "");
|
return (*env)->NewStringUTF(env, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT jint JNICALL
|
JNIEXPORT jint JNICALL
|
||||||
Java_com_tutpro_baresip_AccountKt_account_1set_1stun_1host(JNIEnv *env, jobject thiz,
|
Java_com_tutpro_baresip_AccountKt_account_1set_1stun_1uri(JNIEnv *env, jobject thiz, jstring jAcc, jstring jUri) {
|
||||||
jstring javaAcc, jstring javaStunHost) {
|
const char *native_acc = (*env)->GetStringUTFChars(env, jAcc, 0);
|
||||||
const char *native_acc = (*env)->GetStringUTFChars(env, javaAcc, 0);
|
|
||||||
struct account *acc = (struct account *)strtoul(native_acc, NULL, 10);
|
struct account *acc = (struct account *)strtoul(native_acc, NULL, 10);
|
||||||
(*env)->ReleaseStringUTFChars(env, javaAcc, native_acc);
|
(*env)->ReleaseStringUTFChars(env, jAcc, native_acc);
|
||||||
const char *stun_host = (*env)->GetStringUTFChars(env, javaStunHost, 0);
|
const char *uri = (*env)->GetStringUTFChars(env, jUri, 0);
|
||||||
int res;
|
int res;
|
||||||
if (strlen(stun_host) > 0)
|
if (strlen(uri) > 0)
|
||||||
res = account_set_stun_host(acc, stun_host);
|
res = account_set_stun_uri(acc, uri);
|
||||||
else
|
else
|
||||||
res = account_set_stun_host(acc, NULL);
|
res = account_set_stun_uri(acc, NULL);
|
||||||
(*env)->ReleaseStringUTFChars(env, javaStunHost, stun_host);
|
(*env)->ReleaseStringUTFChars(env, jUri, uri);
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
JNIEXPORT jint JNICALL
|
|
||||||
Java_com_tutpro_baresip_AccountKt_account_1stun_1port(JNIEnv *env, jobject thiz, jstring javaAcc)
|
|
||||||
{
|
|
||||||
const char *native_acc = (*env)->GetStringUTFChars(env, javaAcc, 0);
|
|
||||||
struct account *acc = (struct account *) strtoul(native_acc, NULL, 10);
|
|
||||||
(*env)->ReleaseStringUTFChars(env, javaAcc, native_acc);
|
|
||||||
return account_stun_port(acc);
|
|
||||||
}
|
|
||||||
|
|
||||||
JNIEXPORT jint JNICALL
|
|
||||||
Java_com_tutpro_baresip_AccountKt_account_1set_1stun_1port(JNIEnv *env, jobject thiz,
|
|
||||||
jstring javaAcc, jint javaStunPort) {
|
|
||||||
const char *native_acc = (*env)->GetStringUTFChars(env, javaAcc, 0);
|
|
||||||
struct account *acc = (struct account *)strtoul(native_acc, NULL, 10);
|
|
||||||
(*env)->ReleaseStringUTFChars(env, javaAcc, native_acc);
|
|
||||||
const uint16_t native_port = javaStunPort;
|
|
||||||
int res;
|
|
||||||
res = account_set_stun_port(acc, native_port);
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1099,6 +1086,13 @@ Java_com_tutpro_baresip_AccountKt_account_1extra(JNIEnv *env, jobject thiz, jstr
|
|||||||
return (*env)->NewStringUTF(env, "");
|
return (*env)->NewStringUTF(env, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
JNIEXPORT void JNICALL
|
||||||
|
Java_com_tutpro_baresip_AccountKt_account_1debug(JNIEnv *env, jobject thiz, jstring javaAccount) {
|
||||||
|
const char *native_account = (*env)->GetStringUTFChars(env, javaAccount, 0);
|
||||||
|
struct account *acc = (struct account *)strtoul(native_account, NULL, 10);
|
||||||
|
account_debug_log(acc);
|
||||||
|
}
|
||||||
|
|
||||||
JNIEXPORT jstring JNICALL
|
JNIEXPORT jstring JNICALL
|
||||||
Java_com_tutpro_baresip_Api_ua_1alloc(JNIEnv *env, jobject thiz, jstring javaUri) {
|
Java_com_tutpro_baresip_Api_ua_1alloc(JNIEnv *env, jobject thiz, jstring javaUri) {
|
||||||
const char *uri = (*env)->GetStringUTFChars(env, javaUri, 0);
|
const char *uri = (*env)->GetStringUTFChars(env, javaUri, 0);
|
||||||
@@ -1287,13 +1281,6 @@ Java_com_tutpro_baresip_Api_ua_1set_1media_1af(JNIEnv *env, jobject thiz, jstrin
|
|||||||
ua_set_media_af(ua, javaAf);
|
ua_set_media_af(ua, javaAf);
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT void JNICALL
|
|
||||||
Java_com_tutpro_baresip_Api_account_1debug(JNIEnv *env, jobject thiz, jstring javaAccount) {
|
|
||||||
const char *native_account = (*env)->GetStringUTFChars(env, javaAccount, 0);
|
|
||||||
struct account *acc = (struct account *)strtoul(native_account, NULL, 10);
|
|
||||||
account_debug_log(acc);
|
|
||||||
}
|
|
||||||
|
|
||||||
JNIEXPORT void JNICALL
|
JNIEXPORT void JNICALL
|
||||||
Java_com_tutpro_baresip_Api_ua_1debug(JNIEnv *env, jobject thiz, jstring javaUA) {
|
Java_com_tutpro_baresip_Api_ua_1debug(JNIEnv *env, jobject thiz, jstring javaUA) {
|
||||||
const char *native_ua = (*env)->GetStringUTFChars(env, javaUA, 0);
|
const char *native_ua = (*env)->GetStringUTFChars(env, javaUA, 0);
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ class Account(val accp: String) {
|
|||||||
var authPass = account_auth_pass(accp)
|
var authPass = account_auth_pass(accp)
|
||||||
var outbound = ArrayList<String>()
|
var outbound = ArrayList<String>()
|
||||||
var mediaNat = account_medianat(accp)
|
var mediaNat = account_medianat(accp)
|
||||||
var stunServer = ""
|
var stunServer = account_stun_uri(accp)
|
||||||
var stunUser = account_stun_user(accp)
|
var stunUser = account_stun_user(accp)
|
||||||
var stunPass = account_stun_pass(accp)
|
var stunPass = account_stun_pass(accp)
|
||||||
var audioCodec = ArrayList<String>()
|
var audioCodec = ArrayList<String>()
|
||||||
@@ -31,15 +31,6 @@ class Account(val accp: String) {
|
|||||||
|
|
||||||
init {
|
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
|
var i = 0
|
||||||
while (true) {
|
while (true) {
|
||||||
val ob = account_outbound(accp, i)
|
val ob = account_outbound(accp, i)
|
||||||
@@ -100,9 +91,9 @@ class Account(val accp: String) {
|
|||||||
res += ";stunserver=\"${stunServer}\""
|
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) {
|
if (audioCodec.size > 0) {
|
||||||
var first = true
|
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_audio_codec(acc: String, ix: Int): String
|
||||||
external fun account_regint(acc: String): Int
|
external fun account_regint(acc: String): Int
|
||||||
external fun account_set_regint(acc: String, regint: Int): Int
|
external fun account_set_regint(acc: String, regint: Int): Int
|
||||||
external fun account_stun_host(acc: String): String
|
external fun account_stun_uri(acc: String): String
|
||||||
external fun account_stun_port(acc: String): Int
|
external fun account_set_stun_uri(acc: String, uri: 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_user(acc: String): String
|
external fun account_stun_user(acc: String): String
|
||||||
external fun account_set_stun_user(acc: String, user: String): Int
|
external fun account_set_stun_user(acc: String, user: String): Int
|
||||||
external fun account_stun_pass(acc: String): String
|
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_set_mwi(acc: String, value: String): Int
|
||||||
external fun account_vm_uri(acc: String): String
|
external fun account_vm_uri(acc: String): String
|
||||||
external fun account_extra(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 != "") {
|
if (mediaNat != "") {
|
||||||
var newStunServer = stunServer.text.toString().trim()
|
var newStunServer = stunServer.text.toString().trim()
|
||||||
if (newStunServer == "")
|
if (newStunServer == "") {
|
||||||
newStunServer = resources.getString(R.string.stun_server_default)
|
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 (acc.stunServer != newStunServer) {
|
||||||
if (!Utils.checkStunUri(newStunServer)) {
|
if (!Utils.checkStunUri(newStunServer)) {
|
||||||
Utils.alertView(this, getString(R.string.notice),
|
Utils.alertView(this, getString(R.string.notice),
|
||||||
String.format(getString(R.string.invalid_stun_server), newStunServer))
|
String.format(getString(R.string.invalid_stun_server), newStunServer))
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
val p = newStunServer.split(":")
|
if (account_set_stun_uri(acc.accp, newStunServer) == 0) {
|
||||||
var host = ""
|
acc.stunServer = account_stun_uri(acc.accp)
|
||||||
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()
|
|
||||||
Log.d("Baresip", "New STUN/TURN server URI is '${acc.stunServer}'")
|
Log.d("Baresip", "New STUN/TURN server URI is '${acc.stunServer}'")
|
||||||
|
account_debug(acc.accp);
|
||||||
save = true
|
save = true
|
||||||
} else {
|
} else {
|
||||||
Log.e("Baresip", "Setting of STUN/TURN URI server failed")
|
Log.e("Baresip", "Setting of STUN/TURN URI server failed")
|
||||||
|
|||||||
@@ -210,7 +210,6 @@
|
|||||||
android:paddingStart="10dp"
|
android:paddingStart="10dp"
|
||||||
android:paddingEnd="0dp"
|
android:paddingEnd="0dp"
|
||||||
android:scrollHorizontally="true"
|
android:scrollHorizontally="true"
|
||||||
android:hint="@string/stun_server_default"
|
|
||||||
android:importantForAutofill="no"
|
android:importantForAutofill="no"
|
||||||
android:inputType="textEmailAddress" >
|
android:inputType="textEmailAddress" >
|
||||||
</EditText>
|
</EditText>
|
||||||
|
|||||||
@@ -86,8 +86,9 @@
|
|||||||
</string>
|
</string>
|
||||||
<string name="stun_server">STUN/TURN-palvelin</string>
|
<string name="stun_server">STUN/TURN-palvelin</string>
|
||||||
<string name="stun_server_help">STUN/TURN-palvelimen muotoa \'kaava:palvelin[:portti]\'
|
<string name="stun_server_help">STUN/TURN-palvelimen muotoa \'kaava:palvelin[:portti]\'
|
||||||
oleva osoite, missä kaava on \'stun\', \'stuns\', \'turn\' tai \'turns\'. Oletusarvo on
|
oleva osoite, missä kaava on \'stun\', \'stuns\', \'turn\' tai \'turns\'. STUN-palvelimen
|
||||||
\'stun:stun.l.google.com:19302\', joka osoittaa Google:n julkiseen STUN-palvelimeen.
|
oletusarvo \'stun:stun.l.google.com:19302\', joka osoittaa Google:n julkiseen STUN-palvelimeen.
|
||||||
|
TURN-palvelimella ei ole oletusarvoa.
|
||||||
</string>
|
</string>
|
||||||
<string name="invalid_stun_server">Virheellinen STUN/TURN-palvelimen URI \'%1$s\'</string>
|
<string name="invalid_stun_server">Virheellinen STUN/TURN-palvelimen URI \'%1$s\'</string>
|
||||||
<string name="stun_username">STUN/TURN-käyttäjätunnus</string>
|
<string name="stun_username">STUN/TURN-käyttäjätunnus</string>
|
||||||
|
|||||||
@@ -80,8 +80,9 @@
|
|||||||
</string>
|
</string>
|
||||||
<string name="stun_server">STUN/TURN Server</string>
|
<string name="stun_server">STUN/TURN Server</string>
|
||||||
<string name="stun_server_help">A STUN/TURN Server URI of form scheme:host[:port], where scheme
|
<string name="stun_server_help">A STUN/TURN Server URI of form scheme:host[:port], where scheme
|
||||||
is \'stun\', \'stuns\', \'turn\', or \'turns\'. Factory default value is
|
is \'stun\', \'stuns\', \'turn\', or \'turns\'. Factory default STUN server is
|
||||||
\'stun:stun.l.google.com:19302\', pointing to public Google STUN server.
|
\'stun:stun.l.google.com:19302\', pointing to public Google STUN server. There is no
|
||||||
|
factory default TURN server.
|
||||||
</string>
|
</string>
|
||||||
<string name="invalid_stun_server">Invalid STUN/TURN Server URI \'%1$s\'</string>
|
<string name="invalid_stun_server">Invalid STUN/TURN Server URI \'%1$s\'</string>
|
||||||
<string name="stun_server_default" translatable="false">stun:stun.l.google.com:19302</string>
|
<string name="stun_server_default" translatable="false">stun:stun.l.google.com:19302</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user