- Fixed bug in call transfer.
- Cleaner implementation of notifications.
This commit is contained in:
+2
-2
@@ -7,8 +7,8 @@ android {
|
|||||||
applicationId = 'com.tutpro.baresip'
|
applicationId = 'com.tutpro.baresip'
|
||||||
minSdkVersion 21
|
minSdkVersion 21
|
||||||
targetSdkVersion 27
|
targetSdkVersion 27
|
||||||
versionCode = 48
|
versionCode = 49
|
||||||
versionName = '6.0.2'
|
versionName = '6.1.0'
|
||||||
externalNativeBuild {
|
externalNativeBuild {
|
||||||
cmake {
|
cmake {
|
||||||
cFlags '-DHAVE_INTTYPES_H'
|
cFlags '-DHAVE_INTTYPES_H'
|
||||||
|
|||||||
@@ -271,8 +271,8 @@ class BaresipService: Service() {
|
|||||||
val intent = Intent(this, MainActivity::class.java)
|
val intent = Intent(this, MainActivity::class.java)
|
||||||
.setAction(Intent.ACTION_MAIN)
|
.setAction(Intent.ACTION_MAIN)
|
||||||
.addCategory(Intent.CATEGORY_LAUNCHER)
|
.addCategory(Intent.CATEGORY_LAUNCHER)
|
||||||
val pi = PendingIntent.getActivity(this,
|
val pi = PendingIntent.getActivity(this, CALL_REQ_CODE, intent,
|
||||||
System.currentTimeMillis().toInt(), intent, 0)
|
0)
|
||||||
val nb = NotificationCompat.Builder(this, HIGH_CHANNEL_ID)
|
val nb = NotificationCompat.Builder(this, HIGH_CHANNEL_ID)
|
||||||
val caller = Utils.friendlyUri(ContactsActivity.contactName(peerUri),
|
val caller = Utils.friendlyUri(ContactsActivity.contactName(peerUri),
|
||||||
Utils.aorDomain(aor))
|
Utils.aorDomain(aor))
|
||||||
@@ -294,14 +294,14 @@ class BaresipService: Service() {
|
|||||||
answerIntent.putExtra("action", "answer")
|
answerIntent.putExtra("action", "answer")
|
||||||
answerIntent.putExtra("callp", callp)
|
answerIntent.putExtra("callp", callp)
|
||||||
val answerPendingIntent = PendingIntent.getActivity(this,
|
val answerPendingIntent = PendingIntent.getActivity(this,
|
||||||
1, answerIntent, PendingIntent.FLAG_UPDATE_CURRENT)
|
ANSWER_REQ_CODE, answerIntent, PendingIntent.FLAG_UPDATE_CURRENT)
|
||||||
val rejectIntent = Intent(this, MainActivity::class.java)
|
val rejectIntent = Intent(this, MainActivity::class.java)
|
||||||
rejectIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK or
|
rejectIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK or
|
||||||
Intent.FLAG_ACTIVITY_SINGLE_TOP)
|
Intent.FLAG_ACTIVITY_SINGLE_TOP)
|
||||||
rejectIntent.putExtra("action", "reject")
|
rejectIntent.putExtra("action", "reject")
|
||||||
rejectIntent.putExtra("callp", callp)
|
rejectIntent.putExtra("callp", callp)
|
||||||
val rejectPendingIntent = PendingIntent.getActivity(this,
|
val rejectPendingIntent = PendingIntent.getActivity(this,
|
||||||
2, rejectIntent, PendingIntent.FLAG_UPDATE_CURRENT)
|
REJECT_REQ_CODE, rejectIntent, PendingIntent.FLAG_UPDATE_CURRENT)
|
||||||
nb.addAction(R.drawable.ic_stat, "Answer", answerPendingIntent)
|
nb.addAction(R.drawable.ic_stat, "Answer", answerPendingIntent)
|
||||||
nb.addAction(R.drawable.ic_stat, "Reject", rejectPendingIntent)
|
nb.addAction(R.drawable.ic_stat, "Reject", rejectPendingIntent)
|
||||||
nm.notify(CALL_NOTIFICATION_ID, nb.build())
|
nm.notify(CALL_NOTIFICATION_ID, nb.build())
|
||||||
@@ -335,8 +335,8 @@ class BaresipService: Service() {
|
|||||||
val intent = Intent(this, MainActivity::class.java)
|
val intent = Intent(this, MainActivity::class.java)
|
||||||
.setAction(Intent.ACTION_MAIN)
|
.setAction(Intent.ACTION_MAIN)
|
||||||
.addCategory(Intent.CATEGORY_LAUNCHER)
|
.addCategory(Intent.CATEGORY_LAUNCHER)
|
||||||
val pi = PendingIntent.getActivity(this,
|
val pi = PendingIntent.getActivity(this, TRANSFER_REQ_CODE,
|
||||||
System.currentTimeMillis().toInt(), intent, 0)
|
intent, 0)
|
||||||
val nb = NotificationCompat.Builder(this, HIGH_CHANNEL_ID)
|
val nb = NotificationCompat.Builder(this, HIGH_CHANNEL_ID)
|
||||||
val target = Utils.friendlyUri(ContactsActivity.contactName(ev[1]),
|
val target = Utils.friendlyUri(ContactsActivity.contactName(ev[1]),
|
||||||
Utils.aorDomain(aor))
|
Utils.aorDomain(aor))
|
||||||
@@ -361,16 +361,16 @@ class BaresipService: Service() {
|
|||||||
acceptIntent.putExtra("callp", callp)
|
acceptIntent.putExtra("callp", callp)
|
||||||
acceptIntent.putExtra("uri", ev[1])
|
acceptIntent.putExtra("uri", ev[1])
|
||||||
val acceptPendingIntent = PendingIntent.getActivity(this,
|
val acceptPendingIntent = PendingIntent.getActivity(this,
|
||||||
3, acceptIntent, PendingIntent.FLAG_UPDATE_CURRENT)
|
ACCEPT_REQ_CODE, acceptIntent, PendingIntent.FLAG_UPDATE_CURRENT)
|
||||||
val rejectIntent = Intent(this, MainActivity::class.java)
|
val denyIntent = Intent(this, MainActivity::class.java)
|
||||||
rejectIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK or
|
denyIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK or
|
||||||
Intent.FLAG_ACTIVITY_SINGLE_TOP)
|
Intent.FLAG_ACTIVITY_SINGLE_TOP)
|
||||||
rejectIntent.putExtra("action", "deny")
|
denyIntent.putExtra("action", "deny")
|
||||||
rejectIntent.putExtra("callp", callp)
|
denyIntent.putExtra("callp", callp)
|
||||||
val rejectPendingIntent = PendingIntent.getActivity(this,
|
val denyPendingIntent = PendingIntent.getActivity(this,
|
||||||
4, rejectIntent, PendingIntent.FLAG_UPDATE_CURRENT)
|
DENY_REQ_CODE, denyIntent, PendingIntent.FLAG_UPDATE_CURRENT)
|
||||||
nb.addAction(R.drawable.ic_stat, "Accept", acceptPendingIntent)
|
nb.addAction(R.drawable.ic_stat, "Accept", acceptPendingIntent)
|
||||||
nb.addAction(R.drawable.ic_stat, "Deny", rejectPendingIntent)
|
nb.addAction(R.drawable.ic_stat, "Deny", denyPendingIntent)
|
||||||
nm.notify(CALL_NOTIFICATION_ID, nb.build())
|
nm.notify(CALL_NOTIFICATION_ID, nb.build())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -392,13 +392,9 @@ class BaresipService: Service() {
|
|||||||
}
|
}
|
||||||
if (Call.calls().size == 0) {
|
if (Call.calls().size == 0) {
|
||||||
am.mode = AudioManager.MODE_NORMAL
|
am.mode = AudioManager.MODE_NORMAL
|
||||||
} else {
|
if (am.isSpeakerphoneOn) am.isSpeakerphoneOn = false
|
||||||
val uaCalls = Call.uaCalls(ua, "")
|
if (audioFocused) abandonAudioFocus()
|
||||||
if (uaCalls.size > 0)
|
|
||||||
Api.call_start_audio(uaCalls[uaCalls.size - 1].callp)
|
|
||||||
}
|
}
|
||||||
if (am.isSpeakerphoneOn) am.isSpeakerphoneOn = false
|
|
||||||
if (audioFocused) abandonAudioFocus()
|
|
||||||
}
|
}
|
||||||
"transfer failed" -> {
|
"transfer failed" -> {
|
||||||
Log.d(LOG_TAG, "AoR $aor hanging up call $callp with ${ev[1]}")
|
Log.d(LOG_TAG, "AoR $aor hanging up call $callp with ${ev[1]}")
|
||||||
@@ -437,8 +433,7 @@ class BaresipService: Service() {
|
|||||||
.putExtra("action", "show")
|
.putExtra("action", "show")
|
||||||
.putExtra("uap", uap)
|
.putExtra("uap", uap)
|
||||||
.putExtra("peer", peer)
|
.putExtra("peer", peer)
|
||||||
val pi = PendingIntent.getActivity(this,
|
val pi = PendingIntent.getActivity(this, MESSAGE_REQ_CODE, intent, 0)
|
||||||
System.currentTimeMillis().toInt(), intent, 0)
|
|
||||||
val nb = NotificationCompat.Builder(this, HIGH_CHANNEL_ID)
|
val nb = NotificationCompat.Builder(this, HIGH_CHANNEL_ID)
|
||||||
val sender = Utils.friendlyUri(ContactsActivity.contactName(peer),
|
val sender = Utils.friendlyUri(ContactsActivity.contactName(peer),
|
||||||
Utils.aorDomain(ua.account.aor))
|
Utils.aorDomain(ua.account.aor))
|
||||||
@@ -461,7 +456,7 @@ class BaresipService: Service() {
|
|||||||
replyIntent.putExtra("uap", uap)
|
replyIntent.putExtra("uap", uap)
|
||||||
replyIntent.putExtra("peer", peer)
|
replyIntent.putExtra("peer", peer)
|
||||||
val replyPendingIntent = PendingIntent.getActivity(this,
|
val replyPendingIntent = PendingIntent.getActivity(this,
|
||||||
5, replyIntent, PendingIntent.FLAG_UPDATE_CURRENT)
|
REPLY_REQ_CODE, replyIntent, PendingIntent.FLAG_UPDATE_CURRENT)
|
||||||
val saveIntent = Intent(this, MainActivity::class.java)
|
val saveIntent = Intent(this, MainActivity::class.java)
|
||||||
saveIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK or
|
saveIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK or
|
||||||
Intent.FLAG_ACTIVITY_SINGLE_TOP)
|
Intent.FLAG_ACTIVITY_SINGLE_TOP)
|
||||||
@@ -469,7 +464,7 @@ class BaresipService: Service() {
|
|||||||
saveIntent.putExtra("uap", uap)
|
saveIntent.putExtra("uap", uap)
|
||||||
saveIntent.putExtra("time", timeStamp)
|
saveIntent.putExtra("time", timeStamp)
|
||||||
val savePendingIntent = PendingIntent.getActivity(this,
|
val savePendingIntent = PendingIntent.getActivity(this,
|
||||||
6, saveIntent, PendingIntent.FLAG_UPDATE_CURRENT)
|
SAVE_REQ_CODE, saveIntent, PendingIntent.FLAG_UPDATE_CURRENT)
|
||||||
val deleteIntent = Intent(this, MainActivity::class.java)
|
val deleteIntent = Intent(this, MainActivity::class.java)
|
||||||
deleteIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK or
|
deleteIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK or
|
||||||
Intent.FLAG_ACTIVITY_SINGLE_TOP)
|
Intent.FLAG_ACTIVITY_SINGLE_TOP)
|
||||||
@@ -477,7 +472,7 @@ class BaresipService: Service() {
|
|||||||
deleteIntent.putExtra("uap", uap)
|
deleteIntent.putExtra("uap", uap)
|
||||||
deleteIntent.putExtra("time", timeStamp)
|
deleteIntent.putExtra("time", timeStamp)
|
||||||
val deletePendingIntent = PendingIntent.getActivity(this,
|
val deletePendingIntent = PendingIntent.getActivity(this,
|
||||||
7, deleteIntent, PendingIntent.FLAG_UPDATE_CURRENT)
|
DELETE_REQ_CODE, deleteIntent, PendingIntent.FLAG_UPDATE_CURRENT)
|
||||||
nb.addAction(R.drawable.ic_stat, "Reply", replyPendingIntent)
|
nb.addAction(R.drawable.ic_stat, "Reply", replyPendingIntent)
|
||||||
nb.addAction(R.drawable.ic_stat, "Save", savePendingIntent)
|
nb.addAction(R.drawable.ic_stat, "Save", savePendingIntent)
|
||||||
nb.addAction(R.drawable.ic_stat, "Delete", deletePendingIntent)
|
nb.addAction(R.drawable.ic_stat, "Delete", deletePendingIntent)
|
||||||
@@ -531,7 +526,7 @@ class BaresipService: Service() {
|
|||||||
val intent = Intent(this, MainActivity::class.java)
|
val intent = Intent(this, MainActivity::class.java)
|
||||||
.setAction(Intent.ACTION_MAIN)
|
.setAction(Intent.ACTION_MAIN)
|
||||||
.addCategory(Intent.CATEGORY_LAUNCHER)
|
.addCategory(Intent.CATEGORY_LAUNCHER)
|
||||||
val pi = PendingIntent.getActivity(this, 0, intent, 0)
|
val pi = PendingIntent.getActivity(this, STATUS_REQ_CODE, intent, 0)
|
||||||
snb.setVisibility(VISIBILITY_PUBLIC)
|
snb.setVisibility(VISIBILITY_PUBLIC)
|
||||||
.setSmallIcon(R.drawable.ic_stat)
|
.setSmallIcon(R.drawable.ic_stat)
|
||||||
.setContentIntent(pi)
|
.setContentIntent(pi)
|
||||||
@@ -652,6 +647,18 @@ class BaresipService: Service() {
|
|||||||
val CALL_NOTIFICATION_ID = 102
|
val CALL_NOTIFICATION_ID = 102
|
||||||
val MESSAGE_NOTIFICATION_ID = 103
|
val MESSAGE_NOTIFICATION_ID = 103
|
||||||
|
|
||||||
|
val STATUS_REQ_CODE = 1
|
||||||
|
val CALL_REQ_CODE = 2
|
||||||
|
val ANSWER_REQ_CODE = 3
|
||||||
|
val REJECT_REQ_CODE = 4
|
||||||
|
val TRANSFER_REQ_CODE = 5
|
||||||
|
val ACCEPT_REQ_CODE = 6
|
||||||
|
val DENY_REQ_CODE = 7
|
||||||
|
val MESSAGE_REQ_CODE = 8
|
||||||
|
val REPLY_REQ_CODE = 9
|
||||||
|
val SAVE_REQ_CODE = 10
|
||||||
|
val DELETE_REQ_CODE = 11
|
||||||
|
|
||||||
val DEFAULT_CHANNEL_ID = "com.tutpro.baresip.default"
|
val DEFAULT_CHANNEL_ID = "com.tutpro.baresip.default"
|
||||||
val HIGH_CHANNEL_ID = "com.tutpro.baresip.high"
|
val HIGH_CHANNEL_ID = "com.tutpro.baresip.high"
|
||||||
|
|
||||||
|
|||||||
@@ -635,7 +635,7 @@ class MainActivity : AppCompatActivity() {
|
|||||||
startService(baresipService)
|
startService(baresipService)
|
||||||
}
|
}
|
||||||
val param = ev[1].trim()
|
val param = ev[1].trim()
|
||||||
if (param != "") {
|
if ((param != "") && (Call.uaCalls(ua, "").size == 0)) {
|
||||||
if (param.get(0).isDigit())
|
if (param.get(0).isDigit())
|
||||||
Toast.makeText(applicationContext, "Call failed: $param",
|
Toast.makeText(applicationContext, "Call failed: $param",
|
||||||
Toast.LENGTH_LONG).show()
|
Toast.LENGTH_LONG).show()
|
||||||
@@ -1018,9 +1018,9 @@ class MainActivity : AppCompatActivity() {
|
|||||||
Utils.dtmfWatcher(newCallp))
|
Utils.dtmfWatcher(newCallp))
|
||||||
Call.calls().add(newCall)
|
Call.calls().add(newCall)
|
||||||
Api.call_stop_audio(call.callp)
|
Api.call_stop_audio(call.callp)
|
||||||
Api.call_start_audio(newCallp)
|
|
||||||
val err = Api.call_connect(newCallp, uri)
|
val err = Api.call_connect(newCallp, uri)
|
||||||
if (err == 0) {
|
if (err == 0) {
|
||||||
|
Api.call_start_audio(newCallp)
|
||||||
if (ua != UserAgent.uas()[aorSpinner.selectedItemPosition])
|
if (ua != UserAgent.uas()[aorSpinner.selectedItemPosition])
|
||||||
spinToAor(ua.account.aor)
|
spinToAor(ua.account.aor)
|
||||||
showCall(ua)
|
showCall(ua)
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
- Go to chat window when message notification is clicked.
|
||||||
|
- Fixed bug in call transfer.
|
||||||
Reference in New Issue
Block a user