From 5b3c9d6bb4e4c577812b31df07a41f8e4b08fd11 Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Wed, 24 Aug 2022 17:09:44 +0300 Subject: [PATCH 1/6] Replaced zrtp module with gzrtp module --- app/build.gradle | 4 ++-- app/src/main/cpp/CMakeLists.txt | 13 ++++--------- .../kotlin/com/tutpro/baresip/BaresipService.kt | 2 +- app/src/main/kotlin/com/tutpro/baresip/Config.kt | 2 ++ app/src/main/kotlin/com/tutpro/baresip/Utils.kt | 2 +- app/src/main/res/values/strings.xml | 2 +- 6 files changed, 11 insertions(+), 14 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 5db596bc..401d4ced 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -51,7 +51,7 @@ android { dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.4.2' + implementation 'androidx.appcompat:appcompat:1.5.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" implementation 'com.google.android.material:material:1.6.1' @@ -64,6 +64,6 @@ dependencies { implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" implementation "androidx.activity:activity-ktx:1.5.1" - implementation "androidx.fragment:fragment-ktx:1.5.1" + implementation "androidx.fragment:fragment-ktx:1.5.2" implementation 'androidx.media:media:1.6.0' } diff --git a/app/src/main/cpp/CMakeLists.txt b/app/src/main/cpp/CMakeLists.txt index ec6b9219..70ebf7e6 100644 --- a/app/src/main/cpp/CMakeLists.txt +++ b/app/src/main/cpp/CMakeLists.txt @@ -52,13 +52,9 @@ add_library(lib_webrtc STATIC IMPORTED) set_target_properties(lib_webrtc PROPERTIES IMPORTED_LOCATION ${distribution_DIR}/webrtc/lib/${ANDROID_ABI}/libwebrtc.a) -add_library(lib_bn STATIC IMPORTED) -set_target_properties(lib_bn PROPERTIES IMPORTED_LOCATION - ${distribution_DIR}/bn/lib/${ANDROID_ABI}/libbn.a) - -add_library(lib_zrtp STATIC IMPORTED) -set_target_properties(lib_zrtp PROPERTIES IMPORTED_LOCATION - ${distribution_DIR}/zrtp/lib/${ANDROID_ABI}/libzrtp.a) +add_library(lib_zrtpcppcore STATIC IMPORTED) +set_target_properties(lib_zrtpcppcore PROPERTIES IMPORTED_LOCATION + ${distribution_DIR}/gzrtp/lib/${ANDROID_ABI}/libzrtpcppcore.a) add_library(lib_baresip STATIC IMPORTED) set_target_properties(lib_baresip PROPERTIES IMPORTED_LOCATION @@ -90,7 +86,6 @@ target_link_libraries(baresip lib_amrwb lib_amrwbenc lib_webrtc - lib_zrtp - lib_bn + lib_zrtpcppcore z log) diff --git a/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt b/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt index f64d0731..921b35ce 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt @@ -791,7 +791,7 @@ class BaresipService: Service() { call!!.security = R.drawable.locked_yellow } else { call!!.security = R.drawable.locked_green - call.zid = ev[1] + call.zid = ev[3] } if (!isMainVisible) return diff --git a/app/src/main/kotlin/com/tutpro/baresip/Config.kt b/app/src/main/kotlin/com/tutpro/baresip/Config.kt index 92939f49..6dd1dc78 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/Config.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/Config.kt @@ -18,6 +18,8 @@ object Config { config = config.replace("webrtc_aec.so", "webrtc_aecm.so") + config = config.replace("module zrtp.so", "module gzrtp.so") + if (config.contains("rtp_stats no")) replaceVariable("rtp_stats", "yes") diff --git a/app/src/main/kotlin/com/tutpro/baresip/Utils.kt b/app/src/main/kotlin/com/tutpro/baresip/Utils.kt index df2af77e..f0ccb024 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/Utils.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/Utils.kt @@ -783,7 +783,7 @@ object Utils { fun unZip(zipFilePath: String): Boolean { val allFiles = listOf("accounts", "calls", "config", "contacts", "messages", "uuid", - "zrtp_cache.dat", "zrtp_zid", "cert.pem", "ca_cert", "ca_certs.crt") + "zrtp_cache.dat", "gzrtp_zid", "cert.pem", "ca_cert", "ca_certs.crt") val zipFiles = mutableListOf() try { ZipFile(zipFilePath).use { zip -> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index cbd3247a..1676a9df 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -476,7 +476,7 @@ Registering of \`%1$s\` failed. Verify Request - Do you want to verify SAS <%1$s> <%2$s>? + Do you want to verify SAS <%1$s>? Transfer Request Do you accept to transfer this call to \'%1$s\'? Call failed From dbccfcf86f7e892f8d38fcc5b2361f78202348b0 Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Wed, 24 Aug 2022 17:17:19 +0300 Subject: [PATCH 2/6] Added cmake flags and arguments --- app/build.gradle | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 401d4ced..cf85accc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,7 +12,8 @@ android { versionName = '47.3.0' externalNativeBuild { cmake { - cFlags '-DHAVE_INTTYPES_H' + cFlags '-DHAVE_INTTYPES_H -lstdc++' + arguments '-DANDROID_STL=c++_shared' version '3.18.1' } } From dd01ec6371dd8c2d05feb5db1a8181178b119561 Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Thu, 25 Aug 2022 08:22:58 +0300 Subject: [PATCH 3/6] Verify event now has only two arguments --- .../main/kotlin/com/tutpro/baresip/BaresipService.kt | 2 +- .../main/kotlin/com/tutpro/baresip/MainActivity.kt | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt b/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt index 921b35ce..f64d0731 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt @@ -791,7 +791,7 @@ class BaresipService: Service() { call!!.security = R.drawable.locked_yellow } else { call!!.security = R.drawable.locked_green - call.zid = ev[3] + call.zid = ev[1] } if (!isMainVisible) return diff --git a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt index 81777753..526fe292 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt @@ -1034,16 +1034,15 @@ class MainActivity : AppCompatActivity() { } with(MaterialAlertDialogBuilder(this, R.style.AlertDialogTheme)) { setTitle(R.string.verify) - setMessage(String.format(getString(R.string.verify_sas), - ev[1], ev[2])) + setMessage(String.format(getString(R.string.verify_sas), ev[1])) setPositiveButton(getString(R.string.yes)) { dialog, _ -> - call.security = if (Api.cmd_exec("zrtp_verify ${ev[3]}") != 0) { - Log.e(TAG, "Command 'zrtp_verify ${ev[3]}' failed") + call.security = if (Api.cmd_exec("zrtp_verify ${ev[2]}") != 0) { + Log.e(TAG, "Command 'zrtp_verify ${ev[2]}' failed") R.drawable.locked_yellow } else { R.drawable.locked_green } - call.zid = ev[3] + call.zid = ev[2] if (aor == aorSpinner.tag) { securityButton.tag = call.security securityButton.setImageResource(call.security) @@ -1052,7 +1051,7 @@ class MainActivity : AppCompatActivity() { } setNeutralButton(getString(R.string.no)) { dialog, _ -> call.security = R.drawable.locked_yellow - call.zid = ev[3] + call.zid = ev[2] if (aor == aorSpinner.tag) { securityButton.tag = R.drawable.locked_yellow securityButton.setImageResource(R.drawable.locked_yellow) From fb5bdfd039d9847267a13d52a03409d329373399 Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Thu, 25 Aug 2022 08:30:28 +0300 Subject: [PATCH 4/6] ZRTP license change --- app/src/main/res/values-fi/strings.xml | 6 +++--- app/src/main/res/values/strings.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index cc73dbfc..d789dcec 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -37,9 +37,9 @@

Lisenssit

  • BSD-3-Clause paitsi seuraavat:
  • -
  • Apache 2.0 AMR koodausmenetelmä ja TLS turvallisuus
  • +
  • Apache 2.0 AMR koodausmenetelmä, TLS + turvallisuus ja ZRTP median salaus
  • LGPL 2.1 G.722 ja G.726 koodausmenetelmät
  • -
  • AGPLv4 ZRTP median salausmenetelmä
  • GNU GPLv3 G.729 koodausmenetelmä
]]> @@ -539,4 +539,4 @@ Valitse puhelinpalvelun tarjoava tili Puhelutiedot Et voi käyttää Androidin yhteystietoja ilman Yhteystiedot-sovelluslupaa. - \ No newline at end of file + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1676a9df..2f561704 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -43,9 +43,9 @@

Licenses

  • BSD-3-Clause except the following:
  • -
  • Apache 2.0 AMR codec and TLS security
  • +
  • Apache 2.0 AMR codec, TLS security, and ZRTP + media encryption
  • LGPL 2.1 G.722 and G.726 codecs
  • -
  • AGPLv4 ZRTP media encryption
  • GNU GPLv3 G.729 codec
]]> From 247be49c6645030399d02baf7ebf8b60ae539a42 Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Thu, 25 Aug 2022 11:25:13 +0300 Subject: [PATCH 5/6] Avoid possible crash at quit --- app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt index 526fe292..95ab625e 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt @@ -240,7 +240,8 @@ class MainActivity : AppCompatActivity() { accountRequest!!.launch(i) true } else { - BaresipService.uas[aorSpinner.selectedItemPosition].account.resumeUri = + if (aorSpinner.selectedItemPosition < BaresipService.uas.size) + BaresipService.uas[aorSpinner.selectedItemPosition].account.resumeUri = callUri.text.toString() false } From 95e051ccb44ad8f1ccda3abcdee094d0804a3685 Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Sun, 28 Aug 2022 15:58:32 +0300 Subject: [PATCH 6/6] gzrtp module does not use zrtp_cache.dat --- app/src/main/kotlin/com/tutpro/baresip/Utils.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/tutpro/baresip/Utils.kt b/app/src/main/kotlin/com/tutpro/baresip/Utils.kt index f0ccb024..eadf4a93 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/Utils.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/Utils.kt @@ -783,7 +783,7 @@ object Utils { fun unZip(zipFilePath: String): Boolean { val allFiles = listOf("accounts", "calls", "config", "contacts", "messages", "uuid", - "zrtp_cache.dat", "gzrtp_zid", "cert.pem", "ca_cert", "ca_certs.crt") + "gzrtp_zid", "cert.pem", "ca_cert", "ca_certs.crt") val zipFiles = mutableListOf() try { ZipFile(zipFilePath).use { zip ->