Added possibility ro (un-)register accounts via broadcast intents
This commit is contained in:
@ -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>
|
||||
41
app/src/main/kotlin/com/tutpro/baresip/TaskReceiver.kt
Normal file
41
app/src/main/kotlin/com/tutpro/baresip/TaskReceiver.kt
Normal 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)
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user