diff --git a/app/src/main/cpp/baresip.c b/app/src/main/cpp/baresip.c index 7265f5cc..7bbc33e9 100644 --- a/app/src/main/cpp/baresip.c +++ b/app/src/main/cpp/baresip.c @@ -404,7 +404,8 @@ JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) } JNIEXPORT void JNICALL Java_com_tutpro_baresip_BaresipService_baresipStart( - JNIEnv *env, jobject instance, jstring jPath, jstring jAddrs, jint jLogLevel) + JNIEnv *env, jobject instance, jstring jPath, jstring jAddrs, jint jLogLevel, + jstring jSoftware) { LOGI("starting baresip\n"); @@ -419,6 +420,7 @@ JNIEXPORT void JNICALL Java_com_tutpro_baresip_BaresipService_baresipStart( int err; const char *path = (*env)->GetStringUTFChars(env, jPath, 0); const char *addrs = (*env)->GetStringUTFChars(env, jAddrs, 0); + const char *software = (*env)->GetStringUTFChars(env, jSoftware, 0); struct le *le; runLoggingThread(); @@ -486,7 +488,7 @@ JNIEXPORT void JNICALL Java_com_tutpro_baresip_BaresipService_baresipStart( // net_debug_log(); - err = ua_init("baresip v" BARESIP_VERSION " (" ARCH "/" OS ")", true, true, true); + err = ua_init(software, true, true, true); if (err) { LOGE("ua_init() failed (%d)\n", err); strcpy(start_error, "ua_init"); @@ -566,6 +568,10 @@ out: (*env)->GetMethodID(env, g_ctx.mainActivityClz, "stopped", "(Ljava/lang/String;)V"); (*env)->CallVoidMethod(env, g_ctx.mainActivityObj, stoppedId, javaError); (*env)->DeleteLocalRef(env, javaError); + + (*env)->ReleaseStringUTFChars(env, jPath, path); + (*env)->ReleaseStringUTFChars(env, jAddrs, addrs); + (*env)->ReleaseStringUTFChars(env, jSoftware, software); } JNIEXPORT void JNICALL Java_com_tutpro_baresip_BaresipService_baresipStop( diff --git a/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt b/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt index f1e62088..41912863 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt @@ -442,7 +442,13 @@ class BaresipService: Service() { Log.i(TAG, "Active network: $activeNetwork") Thread { - baresipStart(filesPath, addresses.removePrefix(";"), logLevel) + baresipStart( + filesPath, + addresses.removePrefix(";"), + logLevel, + "baresip v${BuildConfig.VERSION_NAME} " + + "(${System.getProperty("os.arch") ?: "?"}/Android${VERSION.RELEASE})" + ) }.start() isServiceRunning = true @@ -1536,7 +1542,13 @@ class BaresipService: Service() { } } - private external fun baresipStart(path: String, addresses: String, logLevel: Int) + private external fun baresipStart( + path: String, + addresses: String, + logLevel: Int, + software: String + ) + private external fun baresipStop(force: Boolean) companion object {