- Improved asking of permissions and acting on the answers.
This commit is contained in:
@@ -529,7 +529,10 @@ class BaresipService: Service() {
|
|||||||
}
|
}
|
||||||
"call incoming" -> {
|
"call incoming" -> {
|
||||||
val peerUri = Api.call_peeruri(callp)
|
val peerUri = Api.call_peeruri(callp)
|
||||||
if ((Call.calls().size > 0) || (tm.callState != TelephonyManager.CALL_STATE_IDLE)) {
|
if ((Call.calls().size > 0) ||
|
||||||
|
(tm.callState != TelephonyManager.CALL_STATE_IDLE) ||
|
||||||
|
!Utils.checkPermission(applicationContext,
|
||||||
|
android.Manifest.permission.RECORD_AUDIO)) {
|
||||||
Log.d(LOG_TAG, "Auto-rejecting incoming call $uap/$callp/$peerUri")
|
Log.d(LOG_TAG, "Auto-rejecting incoming call $uap/$callp/$peerUri")
|
||||||
Api.ua_hangup(uap, callp, 486, "Busy Here")
|
Api.ua_hangup(uap, callp, 486, "Busy Here")
|
||||||
if (ua.account.callHistory) {
|
if (ua.account.callHistory) {
|
||||||
|
|||||||
@@ -1,11 +1,9 @@
|
|||||||
package com.tutpro.baresip
|
package com.tutpro.baresip
|
||||||
|
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.content.Context
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
import android.content.pm.PackageManager
|
||||||
import android.graphics.Color
|
import android.graphics.Color
|
||||||
import android.net.ConnectivityManager
|
|
||||||
import android.os.Build
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.support.v7.app.AppCompatActivity
|
import android.support.v7.app.AppCompatActivity
|
||||||
import android.util.TypedValue
|
import android.util.TypedValue
|
||||||
@@ -48,6 +46,10 @@ class ConfigActivity : AppCompatActivity() {
|
|||||||
private var save = false
|
private var save = false
|
||||||
private var restart = false
|
private var restart = false
|
||||||
private val audioModules = listOf("opus", "amr", "ilbc", "g722", "g7221", "g726", "g711")
|
private val audioModules = listOf("opus", "amr", "ilbc", "g722", "g7221", "g726", "g711")
|
||||||
|
private var menu: Menu? = null
|
||||||
|
|
||||||
|
private val READ_CERT_PERMISSION_CODE = 1
|
||||||
|
private val READ_CA_PERMISSION_CODE = 2
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
|
|
||||||
@@ -182,6 +184,9 @@ class ConfigActivity : AppCompatActivity() {
|
|||||||
|
|
||||||
val inflater = menuInflater
|
val inflater = menuInflater
|
||||||
inflater.inflate(R.menu.check_icon, menu)
|
inflater.inflate(R.menu.check_icon, menu)
|
||||||
|
|
||||||
|
this.menu = menu
|
||||||
|
|
||||||
return true
|
return true
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -253,7 +258,8 @@ class ConfigActivity : AppCompatActivity() {
|
|||||||
if (certificateFile.isChecked != oldCertificateFile) {
|
if (certificateFile.isChecked != oldCertificateFile) {
|
||||||
if (certificateFile.isChecked) {
|
if (certificateFile.isChecked) {
|
||||||
if (!Utils.requestPermission(this,
|
if (!Utils.requestPermission(this,
|
||||||
android.Manifest.permission.READ_EXTERNAL_STORAGE))
|
android.Manifest.permission.READ_EXTERNAL_STORAGE,
|
||||||
|
READ_CERT_PERMISSION_CODE))
|
||||||
return false
|
return false
|
||||||
val content = Utils.getFileContents(BaresipService.downloadsPath + "/cert.pem")
|
val content = Utils.getFileContents(BaresipService.downloadsPath + "/cert.pem")
|
||||||
if (content == null) {
|
if (content == null) {
|
||||||
@@ -275,9 +281,11 @@ class ConfigActivity : AppCompatActivity() {
|
|||||||
if (caFile.isChecked != oldCAFile) {
|
if (caFile.isChecked != oldCAFile) {
|
||||||
if (caFile.isChecked) {
|
if (caFile.isChecked) {
|
||||||
if (!Utils.requestPermission(this,
|
if (!Utils.requestPermission(this,
|
||||||
android.Manifest.permission.READ_EXTERNAL_STORAGE))
|
android.Manifest.permission.READ_EXTERNAL_STORAGE,
|
||||||
|
READ_CA_PERMISSION_CODE))
|
||||||
return false
|
return false
|
||||||
val content = Utils.getFileContents(BaresipService.downloadsPath + "/ca_certs.crt")
|
val content = Utils.getFileContents(BaresipService.downloadsPath +
|
||||||
|
"/ca_certs.crt")
|
||||||
if (content == null) {
|
if (content == null) {
|
||||||
Utils.alertView(this, getString(R.string.error),
|
Utils.alertView(this, getString(R.string.error),
|
||||||
getString(R.string.read_ca_certs_error))
|
getString(R.string.read_ca_certs_error))
|
||||||
@@ -414,6 +422,28 @@ class ConfigActivity : AppCompatActivity() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>,
|
||||||
|
grantResults: IntArray) {
|
||||||
|
|
||||||
|
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
|
||||||
|
|
||||||
|
when (requestCode) {
|
||||||
|
READ_CERT_PERMISSION_CODE ->
|
||||||
|
if (grantResults.isNotEmpty() && (grantResults[0] ==
|
||||||
|
PackageManager.PERMISSION_GRANTED))
|
||||||
|
menu!!.performIdentifierAction(R.id.checkIcon, 0)
|
||||||
|
else
|
||||||
|
certificateFile.isChecked = false
|
||||||
|
READ_CA_PERMISSION_CODE ->
|
||||||
|
if ((grantResults.size > 0) && (grantResults[0] ==
|
||||||
|
PackageManager.PERMISSION_GRANTED))
|
||||||
|
menu!!.performIdentifierAction(R.id.checkIcon, 0)
|
||||||
|
else
|
||||||
|
caFile.isChecked = false
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
override fun onBackPressed() {
|
override fun onBackPressed() {
|
||||||
|
|
||||||
BaresipService.activities.removeAt(0)
|
BaresipService.activities.removeAt(0)
|
||||||
|
|||||||
@@ -6,8 +6,6 @@ import android.app.NotificationManager
|
|||||||
import android.app.AlarmManager
|
import android.app.AlarmManager
|
||||||
import android.app.PendingIntent
|
import android.app.PendingIntent
|
||||||
import android.content.*
|
import android.content.*
|
||||||
import android.support.v4.app.ActivityCompat
|
|
||||||
import android.support.v4.content.ContextCompat
|
|
||||||
import android.support.v7.app.AlertDialog
|
import android.support.v7.app.AlertDialog
|
||||||
import android.support.v7.app.AppCompatActivity
|
import android.support.v7.app.AppCompatActivity
|
||||||
import android.content.pm.PackageManager
|
import android.content.pm.PackageManager
|
||||||
@@ -110,7 +108,6 @@ class MainActivity : AppCompatActivity() {
|
|||||||
override fun onTick(millisUntilFinished: Long) {
|
override fun onTick(millisUntilFinished: Long) {
|
||||||
Log.d("Baresip", "Seconds remaining: ${millisUntilFinished / 1000}")
|
Log.d("Baresip", "Seconds remaining: ${millisUntilFinished / 1000}")
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onFinish() {
|
override fun onFinish() {
|
||||||
when (stopState) {
|
when (stopState) {
|
||||||
"initial" -> {
|
"initial" -> {
|
||||||
@@ -129,13 +126,6 @@ class MainActivity : AppCompatActivity() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ContextCompat.checkSelfPermission(this,
|
|
||||||
Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) {
|
|
||||||
Log.w("Baresip", "Baresip does not have RECORD_AUDIO permission")
|
|
||||||
ActivityCompat.requestPermissions(this,
|
|
||||||
arrayOf(Manifest.permission.RECORD_AUDIO), PERMISSION_REQUEST_CODE)
|
|
||||||
}
|
|
||||||
|
|
||||||
uaAdapter = UaSpinnerAdapter(applicationContext, BaresipService.uas, BaresipService.status)
|
uaAdapter = UaSpinnerAdapter(applicationContext, BaresipService.uas, BaresipService.status)
|
||||||
aorSpinner.adapter = uaAdapter
|
aorSpinner.adapter = uaAdapter
|
||||||
aorSpinner.setSelection(-1)
|
aorSpinner.setSelection(-1)
|
||||||
@@ -150,7 +140,6 @@ class MainActivity : AppCompatActivity() {
|
|||||||
showCall(ua)
|
showCall(ua)
|
||||||
updateIcons(acc)
|
updateIcons(acc)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onNothingSelected(parent: AdapterView<*>) {
|
override fun onNothingSelected(parent: AdapterView<*>) {
|
||||||
Log.d("Baresip", "Nothing selected")
|
Log.d("Baresip", "Nothing selected")
|
||||||
}
|
}
|
||||||
@@ -433,6 +422,8 @@ class MainActivity : AppCompatActivity() {
|
|||||||
if (!BaresipService.isServiceRunning) {
|
if (!BaresipService.isServiceRunning) {
|
||||||
baresipService.setAction("Start")
|
baresipService.setAction("Start")
|
||||||
startService(baresipService)
|
startService(baresipService)
|
||||||
|
Utils.requestPermission(this, Manifest.permission.RECORD_AUDIO,
|
||||||
|
RECORD_PERMISSION_REQUEST_CODE)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (intent.hasExtra("onStartup"))
|
if (intent.hasExtra("onStartup"))
|
||||||
@@ -649,12 +640,7 @@ class MainActivity : AppCompatActivity() {
|
|||||||
}
|
}
|
||||||
"call incoming" -> {
|
"call incoming" -> {
|
||||||
val callp = params[1]
|
val callp = params[1]
|
||||||
if (ContextCompat.checkSelfPermission(applicationContext,
|
if (!Utils.checkPermission(this, Manifest.permission.RECORD_AUDIO)) {
|
||||||
Manifest.permission.RECORD_AUDIO) ==
|
|
||||||
PackageManager.PERMISSION_DENIED) {
|
|
||||||
Toast.makeText(applicationContext,
|
|
||||||
getString(R.string.no_microphone_permission),
|
|
||||||
Toast.LENGTH_SHORT).show()
|
|
||||||
Api.ua_hangup(uap, callp, 486, "Busy Here")
|
Api.ua_hangup(uap, callp, 486, "Busy Here")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -895,13 +881,13 @@ class MainActivity : AppCompatActivity() {
|
|||||||
startActivityForResult(i, ACCOUNTS_CODE)
|
startActivityForResult(i, ACCOUNTS_CODE)
|
||||||
}
|
}
|
||||||
R.id.backup -> {
|
R.id.backup -> {
|
||||||
if (Utils.requestPermission(this,
|
if (Utils.requestPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
||||||
android.Manifest.permission.WRITE_EXTERNAL_STORAGE))
|
BACKUP_PERMISSION_REQUEST_CODE))
|
||||||
askPassword(getString(R.string.encrypt_password))
|
askPassword(getString(R.string.encrypt_password))
|
||||||
}
|
}
|
||||||
R.id.restore -> {
|
R.id.restore -> {
|
||||||
if (Utils.requestPermission(this,
|
if (Utils.requestPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE,
|
||||||
android.Manifest.permission.READ_EXTERNAL_STORAGE))
|
RESTORE_PERMISSION_REQUEST_CODE))
|
||||||
askPassword(getString(R.string.decrypt_password))
|
askPassword(getString(R.string.decrypt_password))
|
||||||
}
|
}
|
||||||
R.id.about -> {
|
R.id.about -> {
|
||||||
@@ -915,6 +901,36 @@ class MainActivity : AppCompatActivity() {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>,
|
||||||
|
grantResults: IntArray) {
|
||||||
|
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
|
||||||
|
|
||||||
|
when (requestCode) {
|
||||||
|
|
||||||
|
RECORD_PERMISSION_REQUEST_CODE ->
|
||||||
|
if ((grantResults.size > 0) && (grantResults[0] != PackageManager.PERMISSION_GRANTED))
|
||||||
|
Toast.makeText(applicationContext, getString(R.string.no_calls),
|
||||||
|
Toast.LENGTH_LONG).show()
|
||||||
|
else
|
||||||
|
Utils.requestPermission(this, Manifest.permission.READ_PHONE_STATE,
|
||||||
|
PHONE_PERMISSION_REQUEST_CODE)
|
||||||
|
|
||||||
|
PHONE_PERMISSION_REQUEST_CODE ->
|
||||||
|
if ((grantResults.size > 0) && (grantResults[0] != PackageManager.PERMISSION_GRANTED))
|
||||||
|
Toast.makeText(applicationContext, getString(R.string.no_call_awareness),
|
||||||
|
Toast.LENGTH_LONG).show()
|
||||||
|
|
||||||
|
BACKUP_PERMISSION_REQUEST_CODE ->
|
||||||
|
if ((grantResults.size > 0) && (grantResults[0] == PackageManager.PERMISSION_GRANTED))
|
||||||
|
askPassword(getString(R.string.encrypt_password))
|
||||||
|
|
||||||
|
RESTORE_PERMISSION_REQUEST_CODE ->
|
||||||
|
if ((grantResults.size > 0) && (grantResults[0] == PackageManager.PERMISSION_GRANTED))
|
||||||
|
askPassword(getString(R.string.decrypt_password))
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun quitRestart(reStart: Boolean) {
|
private fun quitRestart(reStart: Boolean) {
|
||||||
if (stopState == "initial") {
|
if (stopState == "initial") {
|
||||||
Log.d("Baresip", "quitRestart Restart = $restart")
|
Log.d("Baresip", "quitRestart Restart = $restart")
|
||||||
@@ -1086,10 +1102,9 @@ class MainActivity : AppCompatActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun call(ua: UserAgent, uri: String, status: String): Boolean {
|
private fun call(ua: UserAgent, uri: String, status: String): Boolean {
|
||||||
if (ContextCompat.checkSelfPermission(applicationContext, Manifest.permission.RECORD_AUDIO)
|
if (Utils.checkPermission(this, Manifest.permission.RECORD_AUDIO)) {
|
||||||
== PackageManager.PERMISSION_DENIED) {
|
Toast.makeText(applicationContext, getString(R.string.no_calls),
|
||||||
Toast.makeText(applicationContext,
|
Toast.LENGTH_LONG).show()
|
||||||
getString(R.string.no_microphone_permission), Toast.LENGTH_SHORT).show()
|
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if (ua != UserAgent.uas()[aorSpinner.selectedItemPosition]) spinToAor(ua.account.aor)
|
if (ua != UserAgent.uas()[aorSpinner.selectedItemPosition]) spinToAor(ua.account.aor)
|
||||||
@@ -1361,8 +1376,11 @@ class MainActivity : AppCompatActivity() {
|
|||||||
const val CHATS_CODE = 8
|
const val CHATS_CODE = 8
|
||||||
const val CHAT_CODE = 9
|
const val CHAT_CODE = 9
|
||||||
|
|
||||||
const val PERMISSION_REQUEST_CODE = 1
|
const val BACKUP_PERMISSION_REQUEST_CODE = 1
|
||||||
const val RESTART_REQUEST_CODE = 2
|
const val RESTORE_PERMISSION_REQUEST_CODE = 2
|
||||||
|
const val RECORD_PERMISSION_REQUEST_CODE = 3
|
||||||
|
const val PHONE_PERMISSION_REQUEST_CODE = 4
|
||||||
|
const val RESTART_REQUEST_CODE = 5
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -307,11 +307,15 @@ object Utils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun requestPermission(ctx: Context, permission: String) : Boolean {
|
|
||||||
|
fun checkPermission(ctx: Context, permission: String) : Boolean {
|
||||||
|
return ContextCompat.checkSelfPermission(ctx, permission) == PackageManager.PERMISSION_GRANTED
|
||||||
|
}
|
||||||
|
|
||||||
|
fun requestPermission(ctx: Context, permission: String, requestCode: Int) : Boolean {
|
||||||
if (ContextCompat.checkSelfPermission(ctx, permission) != PackageManager.PERMISSION_GRANTED) {
|
if (ContextCompat.checkSelfPermission(ctx, permission) != PackageManager.PERMISSION_GRANTED) {
|
||||||
Log.w("Baresip", "Baresip does not have $permission permission")
|
Log.w("Baresip", "Baresip does not have $permission permission")
|
||||||
ActivityCompat.requestPermissions(ctx as Activity, arrayOf(permission),
|
ActivityCompat.requestPermissions(ctx as Activity, arrayOf(permission), requestCode)
|
||||||
MainActivity.PERMISSION_REQUEST_CODE)
|
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
|
|||||||
@@ -271,7 +271,6 @@
|
|||||||
Те са нулирани. Рестартирайте baresip.
|
Те са нулирани. Рестартирайте baresip.
|
||||||
</string>
|
</string>
|
||||||
<string name="registering_failed">Регистрация на \`%1$s\` се провали.</string>
|
<string name="registering_failed">Регистрация на \`%1$s\` се провали.</string>
|
||||||
<string name="no_microphone_permission">Не сте дали разрешение за микрофон.</string>
|
|
||||||
<string name="verify">Потвърди</string>
|
<string name="verify">Потвърди</string>
|
||||||
<string name="verify_sas">Искате ли да потвърдите <%1$s> <%2$s>?</string>
|
<string name="verify_sas">Искате ли да потвърдите <%1$s> <%2$s>?</string>
|
||||||
<string name="transfer_query">Приемате ли да прехвърлите обаждане до \'%1$s\'?</string>
|
<string name="transfer_query">Приемате ли да прехвърлите обаждане до \'%1$s\'?</string>
|
||||||
|
|||||||
@@ -268,7 +268,6 @@
|
|||||||
<string name="start_failed">Baresip no pudo iniciar. Esto puede deberse a una dirección de escucha no válida
|
<string name="start_failed">Baresip no pudo iniciar. Esto puede deberse a una dirección de escucha no válida
|
||||||
o archivo TLS. Han sido reiniciados. Reiniciar baresip.</string>
|
o archivo TLS. Han sido reiniciados. Reiniciar baresip.</string>
|
||||||
<string name="registering_failed">Registro de \`%1$s\` ha fallado.</string>
|
<string name="registering_failed">Registro de \`%1$s\` ha fallado.</string>
|
||||||
<string name="no_microphone_permission">No ha otorgado permiso de micrófono.</string>
|
|
||||||
<string name="verify">Verificar</string>
|
<string name="verify">Verificar</string>
|
||||||
<string name="verify_sas">¿Quieres verificar SAS <%1$s> <%2$s>?</string>
|
<string name="verify_sas">¿Quieres verificar SAS <%1$s> <%2$s>?</string>
|
||||||
<string name="transfer_query">¿Aceptas transferir la llamada a \'%1$s\'?</string>
|
<string name="transfer_query">¿Aceptas transferir la llamada a \'%1$s\'?</string>
|
||||||
|
|||||||
@@ -105,11 +105,9 @@
|
|||||||
<string name="account_allocation_failure">"Uuden tilin luonti
|
<string name="account_allocation_failure">"Uuden tilin luonti
|
||||||
epäonnistui.
|
epäonnistui.
|
||||||
</string>
|
</string>
|
||||||
<string name="encrypt_password">Salasana</string>
|
<string name="encrypt_password">Tallenna salasanalla</string>
|
||||||
<string name="decrypt_password">Salasana</string>
|
<string name="decrypt_password">Palauta salasanalla</string>
|
||||||
<string name="delete_account">Haluatko poistaa tilin
|
<string name="delete_account">Haluatko poistaa tilin \'%1$s\'?</string>
|
||||||
\'%1$s\'?
|
|
||||||
</string>
|
|
||||||
<!-- Baresip Service -->
|
<!-- Baresip Service -->
|
||||||
<string name="answer">Vastaa</string>
|
<string name="answer">Vastaa</string>
|
||||||
<string name="reject">Hylkää</string>
|
<string name="reject">Hylkää</string>
|
||||||
@@ -296,9 +294,6 @@
|
|||||||
baresip uudelleen.
|
baresip uudelleen.
|
||||||
</string>
|
</string>
|
||||||
<string name="registering_failed">Tilin \'%1$s\' rekisteröinti epäonnistui.</string>
|
<string name="registering_failed">Tilin \'%1$s\' rekisteröinti epäonnistui.</string>
|
||||||
<string name="no_microphone_permission">Et ole sallinut mikrofonin
|
|
||||||
käyttöä.
|
|
||||||
</string>
|
|
||||||
<string name="verify">Todenna</string>
|
<string name="verify">Todenna</string>
|
||||||
<string name="verify_sas">Todennatko SAS:n <%1$s> <%2$s>?
|
<string name="verify_sas">Todennatko SAS:n <%1$s> <%2$s>?
|
||||||
</string>
|
</string>
|
||||||
@@ -327,4 +322,10 @@
|
|||||||
Tarkista Asetukset → Sovellukset → baresip → Käyttöluvat → Tallennustila ja että tallennettu
|
Tarkista Asetukset → Sovellukset → baresip → Käyttöluvat → Tallennustila ja että tallennettu
|
||||||
tiedosto \'baresip.bs\' on kansiossa ja (jos on) että annoit oikean salasanan.
|
tiedosto \'baresip.bs\' on kansiossa ja (jos on) että annoit oikean salasanan.
|
||||||
</string>
|
</string>
|
||||||
|
<string name="no_calls">Et voi soittaa puheluita tai vastata niihin
|
||||||
|
ilman Mikrofoni-käyttöoikeutta.
|
||||||
|
</string>
|
||||||
|
<string name="no_call_awareness">Ilman Puhelin-käyttöoikeutta baresip ei voi tietää, onko
|
||||||
|
toinen puhelu parhaillaan jo käynnissä.
|
||||||
|
</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -163,7 +163,6 @@
|
|||||||
<string name="call_already_active">Du har allerede et aktivt anrop.</string>
|
<string name="call_already_active">Du har allerede et aktivt anrop.</string>
|
||||||
<string name="start_failed">Baresip kunne ikke starte. Lytteadressen ble tilbakestilt. Start programmet på ny.</string>
|
<string name="start_failed">Baresip kunne ikke starte. Lytteadressen ble tilbakestilt. Start programmet på ny.</string>
|
||||||
<string name="registering_failed">Registrering av %1$s mislyktes.</string>
|
<string name="registering_failed">Registrering av %1$s mislyktes.</string>
|
||||||
<string name="no_microphone_permission">Du har ikke innvilget mikrofontilgang.</string>
|
|
||||||
<string name="verify_sas">Ønsker du å bekrefte SAS <%1$s> <%2$s>\?</string>
|
<string name="verify_sas">Ønsker du å bekrefte SAS <%1$s> <%2$s>\?</string>
|
||||||
<string name="transfer_query">Godtar du å overføre samtalen til \"%1$s\"\?</string>
|
<string name="transfer_query">Godtar du å overføre samtalen til \"%1$s\"\?</string>
|
||||||
<string name="call_failed">Anrop mislyktes</string>
|
<string name="call_failed">Anrop mislyktes</string>
|
||||||
|
|||||||
@@ -130,7 +130,6 @@
|
|||||||
<string name="dialpad">Tastatura virtuală</string>
|
<string name="dialpad">Tastatura virtuală</string>
|
||||||
<string name="call_already_active">Aveți deja un apel activ.</string>
|
<string name="call_already_active">Aveți deja un apel activ.</string>
|
||||||
<string name="registering_failed">Înregistrarea %1$s a eșuat.</string>
|
<string name="registering_failed">Înregistrarea %1$s a eșuat.</string>
|
||||||
<string name="no_microphone_permission">Nu ați acordat permisiunea de acces la microfon.</string>
|
|
||||||
<string name="verify">Verificare</string>
|
<string name="verify">Verificare</string>
|
||||||
<string name="verify_sas">Doriți să verificați SAS <%1$s> <%2$s>\?</string>
|
<string name="verify_sas">Doriți să verificați SAS <%1$s> <%2$s>\?</string>
|
||||||
<string name="transfer_query">Acceptați să transferați apelul către \'%1$s\'\?</string>
|
<string name="transfer_query">Acceptați să transferați apelul către \'%1$s\'\?</string>
|
||||||
|
|||||||
@@ -277,7 +277,6 @@
|
|||||||
or TLS file. They have been reset. Restart baresip.
|
or TLS file. They have been reset. Restart baresip.
|
||||||
</string>
|
</string>
|
||||||
<string name="registering_failed">Registering of \`%1$s\` failed.</string>
|
<string name="registering_failed">Registering of \`%1$s\` failed.</string>
|
||||||
<string name="no_microphone_permission">You have not granted microphone permission.</string>
|
|
||||||
<string name="verify">Verify</string>
|
<string name="verify">Verify</string>
|
||||||
<string name="verify_sas">Do you want to verify SAS <%1$s> <%2$s>?</string>
|
<string name="verify_sas">Do you want to verify SAS <%1$s> <%2$s>?</string>
|
||||||
<string name="transfer_query">Do you accept to transfer call to \'%1$s\'?</string>
|
<string name="transfer_query">Do you accept to transfer call to \'%1$s\'?</string>
|
||||||
@@ -299,5 +298,11 @@
|
|||||||
baresip → Permissions → Storage and that backup file \'baresip.bs\' exists in the folder
|
baresip → Permissions → Storage and that backup file \'baresip.bs\' exists in the folder
|
||||||
and, if so, you gave correct Decrypt Password.
|
and, if so, you gave correct Decrypt Password.
|
||||||
</string>
|
</string>
|
||||||
|
<string name="no_calls">You are not able to place or answer calls without Record Audio
|
||||||
|
permission.
|
||||||
|
</string>
|
||||||
|
<string name="no_call_awareness">Without Phone permission, baresip cannot be aware if another
|
||||||
|
phone call has already been established.
|
||||||
|
</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
Reference in New Issue
Block a user