- Added Tone Country Audio Configuration option
- Fixed checking of DNS Servers config value
This commit is contained in:
@ -27,6 +27,7 @@ class AudioActivity : AppCompatActivity() {
|
||||
private var oldOpusBitrate = ""
|
||||
private var oldOpusPacketLoss = ""
|
||||
private var oldAec = false
|
||||
private var toneCountry = BaresipService.toneCountry
|
||||
|
||||
private val onBackPressedCallback = object : OnBackPressedCallback(true) {
|
||||
override fun handleOnBackPressed() {
|
||||
@ -123,6 +124,27 @@ class AudioActivity : AppCompatActivity() {
|
||||
audioDelay = binding.AudioDelay
|
||||
audioDelay.setText(BaresipService.audioDelay.toString())
|
||||
|
||||
val toneCountrySpinner = binding.ToneCountrySpinner
|
||||
val toneCountryKeys = arrayListOf("bg", "br", "de", "cz", "es", "fi", "fr", "uk", "jp", "no", "nz", "se", "ru", "us")
|
||||
val toneCountryVals = arrayListOf("BG", "BR", "DE", "CZ", "ES", "FI", "FR", "GB", "JP", "NO", "NZ", "SE", "RU", "US")
|
||||
val keyIx = toneCountryKeys.indexOf(toneCountry)
|
||||
val keyVal = toneCountryVals.elementAt(keyIx)
|
||||
toneCountryKeys.removeAt(keyIx)
|
||||
toneCountryVals.removeAt(keyIx)
|
||||
toneCountryKeys.add(0, toneCountry)
|
||||
toneCountryVals.add(0, keyVal)
|
||||
val toneCountryAdapter = ArrayAdapter(this,android.R.layout.simple_spinner_item,
|
||||
toneCountryVals)
|
||||
toneCountryAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
|
||||
toneCountrySpinner.adapter = toneCountryAdapter
|
||||
toneCountrySpinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
|
||||
override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long) {
|
||||
toneCountry = toneCountryKeys[toneCountryVals.indexOf(parent.selectedItem.toString())]
|
||||
}
|
||||
override fun onNothingSelected(parent: AdapterView<*>) {
|
||||
}
|
||||
}
|
||||
|
||||
bindTitles()
|
||||
|
||||
onBackPressedDispatcher.addCallback(this, onBackPressedCallback)
|
||||
@ -228,6 +250,12 @@ class AudioActivity : AppCompatActivity() {
|
||||
save = true
|
||||
}
|
||||
|
||||
if (BaresipService.toneCountry != toneCountry) {
|
||||
BaresipService.toneCountry = toneCountry
|
||||
Config.replaceVariable("tone_country", toneCountry)
|
||||
save = true
|
||||
}
|
||||
|
||||
if (save)
|
||||
Config.save()
|
||||
|
||||
@ -279,6 +307,10 @@ class AudioActivity : AppCompatActivity() {
|
||||
Utils.alertView(this, getString(R.string.audio_delay),
|
||||
getString(R.string.audio_delay_help))
|
||||
}
|
||||
binding.ToneCountryTitle.setOnClickListener {
|
||||
Utils.alertView(this, getString(R.string.tone_country),
|
||||
getString(R.string.tone_country_help))
|
||||
}
|
||||
}
|
||||
|
||||
private fun checkOpusBitRate(opusBitRate: String): Boolean {
|
||||
|
||||
@ -564,7 +564,7 @@ class BaresipService: Service() {
|
||||
sendBroadcast(Intent("com.tutpro.baresip.Restart"))
|
||||
}
|
||||
|
||||
@SuppressLint("UnspecifiedImmutableFlag")
|
||||
@SuppressLint("UnspecifiedImmutableFlag", "DiscouragedApi")
|
||||
@Keep
|
||||
fun uaEvent(event: String, uap: Long, callp: Long) {
|
||||
|
||||
@ -698,7 +698,16 @@ class BaresipService: Service() {
|
||||
Log.d(TAG, "Auto-rejecting incoming call $uap/$callp/$peerUri")
|
||||
Api.ua_hangup(uap, callp, 486, "Busy Here")
|
||||
toast(toastMsg)
|
||||
playUnInterrupted(R.raw.callwaiting, 1)
|
||||
val name = "callwaiting_$toneCountry"
|
||||
val resourceId = applicationContext.resources.getIdentifier(
|
||||
name,
|
||||
"raw",
|
||||
applicationContext.packageName)
|
||||
if (resourceId != 0) {
|
||||
playUnInterrupted(resourceId, 1)
|
||||
} else {
|
||||
Log.e(TAG, "Callwaiting tone $name.wav not found\")")
|
||||
}
|
||||
if (ua.account.callHistory) {
|
||||
CallHistoryNew.add(CallHistoryNew(aor, peerUri, "in"))
|
||||
CallHistoryNew.save()
|
||||
@ -1255,26 +1264,46 @@ class BaresipService: Service() {
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("DiscouragedApi")
|
||||
private fun playRingBack() {
|
||||
if (mediaPlayer == null) {
|
||||
mediaPlayer = MediaPlayer.create(this, R.raw.ringback)
|
||||
mediaPlayer?.isLooping = true
|
||||
mediaPlayer?.start()
|
||||
val name = "ringback_$toneCountry"
|
||||
val resourceId = applicationContext.resources.getIdentifier(
|
||||
name,
|
||||
"raw",
|
||||
applicationContext.packageName)
|
||||
if (resourceId != 0) {
|
||||
mediaPlayer = MediaPlayer.create(this, resourceId)
|
||||
mediaPlayer?.isLooping = true
|
||||
mediaPlayer?.start()
|
||||
} else {
|
||||
Log.e(TAG, "Ringback tone $name.wav not found")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("DiscouragedApi")
|
||||
private fun playBusy() {
|
||||
if (mediaPlayer == null ) {
|
||||
mediaPlayer = MediaPlayer.create(applicationContext, R.raw.busy)
|
||||
mediaPlayer?.setOnCompletionListener {
|
||||
stopMediaPlayer()
|
||||
if (!Call.inCall()) {
|
||||
resetCallVolume()
|
||||
abandonAudioFocus(applicationContext)
|
||||
proximitySensing(false)
|
||||
val name = "busy_$toneCountry"
|
||||
val resourceId = applicationContext.resources.getIdentifier(
|
||||
name,
|
||||
"raw",
|
||||
applicationContext.packageName)
|
||||
if (resourceId != 0) {
|
||||
mediaPlayer = MediaPlayer.create(this, resourceId)
|
||||
mediaPlayer?.setOnCompletionListener {
|
||||
stopMediaPlayer()
|
||||
if (!Call.inCall()) {
|
||||
resetCallVolume()
|
||||
abandonAudioFocus(applicationContext)
|
||||
proximitySensing(false)
|
||||
}
|
||||
}
|
||||
mediaPlayer?.start()
|
||||
} else {
|
||||
Log.e(TAG, "Busy tone $name.wav not found")
|
||||
}
|
||||
mediaPlayer?.start()
|
||||
}
|
||||
}
|
||||
|
||||
@ -1506,6 +1535,7 @@ class BaresipService: Service() {
|
||||
var isMainVisible = false
|
||||
var isMicMuted = false
|
||||
var isRecOn = false
|
||||
var toneCountry = "us"
|
||||
|
||||
val uas = ArrayList<UserAgent>()
|
||||
val calls = ArrayList<Call>()
|
||||
|
||||
@ -129,6 +129,11 @@ object Config {
|
||||
config = "${config}audio_delay ${BaresipService.audioDelay}\n"
|
||||
}
|
||||
|
||||
val toneCountry = previousVariable("tone_country")
|
||||
if (toneCountry != "")
|
||||
BaresipService.toneCountry = toneCountry
|
||||
config = "${config}tone_country ${BaresipService.toneCountry}\n"
|
||||
|
||||
save()
|
||||
BaresipService.isConfigInitialized = true
|
||||
|
||||
|
||||
@ -535,9 +535,10 @@ class ConfigActivity : AppCompatActivity() {
|
||||
restart = true
|
||||
}
|
||||
|
||||
val dnsServers = addMissingPorts(
|
||||
dnsServers.text.toString().trim().lowercase(Locale.ROOT))
|
||||
if (dnsServers != oldDnsServers) {
|
||||
var dnsServers = dnsServers.text.toString().lowercase(Locale.ROOT)
|
||||
.replace(" ", "")
|
||||
dnsServers = addMissingPorts(dnsServers)
|
||||
if (dnsServers != oldDnsServers.replace(" ", "")) {
|
||||
if (!checkDnsServers(dnsServers)) {
|
||||
Utils.alertView(this, getString(R.string.notice),
|
||||
"${getString(R.string.invalid_dns_servers)}: $dnsServers")
|
||||
|
||||
@ -1037,3 +1037,4 @@ object Utils {
|
||||
}
|
||||
|
||||
}
|
||||
.
|
||||
@ -176,6 +176,31 @@
|
||||
</EditText>
|
||||
</RelativeLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="12dp"
|
||||
android:orientation="horizontal" >
|
||||
<TextView
|
||||
android:id="@+id/ToneCountryTitle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_toStartOf="@id/ToneCountrySpinner"
|
||||
android:textSize="18sp"
|
||||
android:text="@string/tone_country" >
|
||||
</TextView>
|
||||
<Spinner
|
||||
android:id="@+id/ToneCountrySpinner"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_gravity="end" >
|
||||
</Spinner>
|
||||
</RelativeLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</ScrollView>
|
||||
|
||||
Binary file not shown.
BIN
app/src/main/res/raw/busy_bg.wav
Normal file
BIN
app/src/main/res/raw/busy_bg.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/busy_br.wav
Normal file
BIN
app/src/main/res/raw/busy_br.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/busy_cz.wav
Normal file
BIN
app/src/main/res/raw/busy_cz.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/busy_de.wav
Normal file
BIN
app/src/main/res/raw/busy_de.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/busy_es.wav
Normal file
BIN
app/src/main/res/raw/busy_es.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/busy_fi.wav
Normal file
BIN
app/src/main/res/raw/busy_fi.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/busy_fr.wav
Normal file
BIN
app/src/main/res/raw/busy_fr.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/busy_jp.wav
Normal file
BIN
app/src/main/res/raw/busy_jp.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/busy_no.wav
Normal file
BIN
app/src/main/res/raw/busy_no.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/busy_nz.wav
Normal file
BIN
app/src/main/res/raw/busy_nz.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/busy_ru.wav
Normal file
BIN
app/src/main/res/raw/busy_ru.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/busy_se.wav
Normal file
BIN
app/src/main/res/raw/busy_se.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/busy_uk.wav
Normal file
BIN
app/src/main/res/raw/busy_uk.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/busy_us.wav
Normal file
BIN
app/src/main/res/raw/busy_us.wav
Normal file
Binary file not shown.
Binary file not shown.
BIN
app/src/main/res/raw/callwaiting_bg.wav
Normal file
BIN
app/src/main/res/raw/callwaiting_bg.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/callwaiting_br.wav
Normal file
BIN
app/src/main/res/raw/callwaiting_br.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/callwaiting_cz.wav
Normal file
BIN
app/src/main/res/raw/callwaiting_cz.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/callwaiting_de.wav
Normal file
BIN
app/src/main/res/raw/callwaiting_de.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/callwaiting_es.wav
Normal file
BIN
app/src/main/res/raw/callwaiting_es.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/callwaiting_fi.wav
Normal file
BIN
app/src/main/res/raw/callwaiting_fi.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/callwaiting_fr.wav
Normal file
BIN
app/src/main/res/raw/callwaiting_fr.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/callwaiting_jp.wav
Normal file
BIN
app/src/main/res/raw/callwaiting_jp.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/callwaiting_no.wav
Normal file
BIN
app/src/main/res/raw/callwaiting_no.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/callwaiting_nz.wav
Normal file
BIN
app/src/main/res/raw/callwaiting_nz.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/callwaiting_ru.wav
Normal file
BIN
app/src/main/res/raw/callwaiting_ru.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/callwaiting_se.wav
Normal file
BIN
app/src/main/res/raw/callwaiting_se.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/callwaiting_uk.wav
Normal file
BIN
app/src/main/res/raw/callwaiting_uk.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/callwaiting_us.wav
Normal file
BIN
app/src/main/res/raw/callwaiting_us.wav
Normal file
Binary file not shown.
Binary file not shown.
BIN
app/src/main/res/raw/ringback_bg.wav
Normal file
BIN
app/src/main/res/raw/ringback_bg.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/ringback_br.wav
Normal file
BIN
app/src/main/res/raw/ringback_br.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/ringback_cz.wav
Normal file
BIN
app/src/main/res/raw/ringback_cz.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/ringback_de.wav
Normal file
BIN
app/src/main/res/raw/ringback_de.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/ringback_es.wav
Normal file
BIN
app/src/main/res/raw/ringback_es.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/ringback_fi.wav
Normal file
BIN
app/src/main/res/raw/ringback_fi.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/ringback_fr.wav
Normal file
BIN
app/src/main/res/raw/ringback_fr.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/ringback_jp.wav
Normal file
BIN
app/src/main/res/raw/ringback_jp.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/ringback_no.wav
Normal file
BIN
app/src/main/res/raw/ringback_no.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/ringback_nz.wav
Normal file
BIN
app/src/main/res/raw/ringback_nz.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/ringback_ru.wav
Normal file
BIN
app/src/main/res/raw/ringback_ru.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/ringback_se.wav
Normal file
BIN
app/src/main/res/raw/ringback_se.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/ringback_uk.wav
Normal file
BIN
app/src/main/res/raw/ringback_uk.wav
Normal file
Binary file not shown.
BIN
app/src/main/res/raw/ringback_us.wav
Normal file
BIN
app/src/main/res/raw/ringback_us.wav
Normal file
Binary file not shown.
@ -383,8 +383,9 @@
|
||||
<string name="invalid_audio_delay">Virheellinen audioviive \'%1$s\'. Sallittu arvo on välillä 100–3000.</string>
|
||||
<string name="default_call_volume">Oletus äänen voimakkuus</string>
|
||||
<string name="default_call_volume_help">Jos valittu, puhelun äänen voimakkuus
|
||||
asteikolla 1–10.
|
||||
</string>
|
||||
asteikolla 1–10.</string>
|
||||
<string name="tone_country">Puheluäänien maa</string>
|
||||
<string name="tone_country_help">Soitto-, odotus- ja varattuäänien maa</string>
|
||||
<string name="dark_theme">Tumma teema</string>
|
||||
<string name="dark_theme_help">Käytä aina tummaa näyttöteemaa</string>
|
||||
<string name="video_size">Videon kehyskoko</string>
|
||||
|
||||
@ -359,6 +359,8 @@
|
||||
<string name="invalid_audio_delay">Invalid Audio Delay \'%1$s\'. Valid values are from 100 to 3000.</string>
|
||||
<string name="default_call_volume">Default Call Volume</string>
|
||||
<string name="default_call_volume_help">If set, default call audio volume at scale 1–10.</string>
|
||||
<string name="tone_country">Tone Country</string>
|
||||
<string name="tone_country_help">Country of call ringing, waiting, and callee busy tones</string>
|
||||
<string name="dark_theme">Dark Theme</string>
|
||||
<string name="dark_theme_help">Force dark display theme</string>
|
||||
<string name="video_size">Video Frame Size</string>
|
||||
|
||||
Reference in New Issue
Block a user