Added possibility ro (un-)register accounts via broadcast intents

This commit is contained in:
Juha Heinanen
2022-05-29 13:22:13 +03:00
parent 49d4b8f759
commit 56d8767e1d
2 changed files with 51 additions and 0 deletions

View File

@ -156,6 +156,16 @@
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
</intent-filter>
</receiver>
<receiver
android:name=".TaskReceiver"
android:enabled="true"
android:exported="true"
tools:ignore="ExportedReceiver">
<intent-filter>
<action android:name="com.tutpro.baresip.REGISTER" />
<action android:name="com.tutpro.baresip.UNREGISTER" />
</intent-filter>
</receiver>
</application>
</manifest>

View File

@ -0,0 +1,41 @@
package com.tutpro.baresip
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
class TaskReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
Log.d(TAG, "TaskReceiver: received intent ${intent.action}")
var aor = intent.getStringExtra("aor")
if (aor == null) {
Log.i(TAG,"TaskReceiver: 'aor' extra is missing")
return
}
if (!aor.startsWith("sip:"))
aor = "sip:$aor"
val ua = UserAgent.ofAor(aor)
if (ua == null) {
Log.i(TAG, "TaskReceiver: user agent of AoR $aor is not found")
return
}
val acc = ua.account
when (intent.action) {
"com.tutpro.baresip.REGISTER" -> {
Log.d(TAG, "TaskReceiver: registering $aor")
Api.ua_register(ua.uap)
acc.regint = 3600
}
"com.tutpro.baresip.UNREGISTER" -> {
Log.d(TAG, "TaskReceiver: un-registering $aor")
Api.ua_unregister(ua.uap)
acc.regint = 0
}
else -> return
}
AccountsActivity.saveAccounts()
Api.ua_update_account(ua.uap)
}
}