Fixed handling of call action when baresip app was not running
This commit is contained in:
@@ -562,6 +562,9 @@ Java_com_tutpro_baresip_BaresipService_baresipStart(JNIEnv *env, jobject instanc
|
|||||||
for (le = list_head(uag_list()); le != NULL; le = le->next)
|
for (le = list_head(uag_list()); le != NULL; le = le->next)
|
||||||
ua_print_status_log(le->data);
|
ua_print_status_log(le->data);
|
||||||
|
|
||||||
|
jmethodID startedId = (*env)->GetMethodID(env, g_ctx.mainActivityClz, "started", "()V");
|
||||||
|
(*env)->CallVoidMethod(env, g_ctx.mainActivityObj, startedId);
|
||||||
|
|
||||||
LOGI("running main loop ...\n");
|
LOGI("running main loop ...\n");
|
||||||
err = re_main(signal_handler);
|
err = re_main(signal_handler);
|
||||||
|
|
||||||
|
|||||||
@@ -859,6 +859,18 @@ class BaresipService: Service() {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Keep
|
||||||
|
fun started() {
|
||||||
|
Log.d(LOG_TAG, "Received 'started' from baresip")
|
||||||
|
if (callActionUri != "") {
|
||||||
|
val intent = Intent("service event")
|
||||||
|
intent.putExtra("event", "started")
|
||||||
|
intent.putExtra("params", arrayListOf(callActionUri))
|
||||||
|
LocalBroadcastManager.getInstance(this).sendBroadcast(intent)
|
||||||
|
callActionUri = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Keep
|
@Keep
|
||||||
fun stopped(error: String) {
|
fun stopped(error: String) {
|
||||||
Log.d(LOG_TAG, "Received 'stopped' from baresip with param '$error'")
|
Log.d(LOG_TAG, "Received 'stopped' from baresip with param '$error'")
|
||||||
@@ -1194,6 +1206,7 @@ class BaresipService: Service() {
|
|||||||
var downloadsPath = ""
|
var downloadsPath = ""
|
||||||
var logLevel = 2
|
var logLevel = 2
|
||||||
var sipTrace = false
|
var sipTrace = false
|
||||||
|
var callActionUri = ""
|
||||||
|
|
||||||
val uas = ArrayList<UserAgent>()
|
val uas = ArrayList<UserAgent>()
|
||||||
val status = ArrayList<Int>()
|
val status = ArrayList<Int>()
|
||||||
|
|||||||
@@ -82,7 +82,10 @@ class MainActivity : AppCompatActivity() {
|
|||||||
|
|
||||||
val intentAction = intent.getStringExtra("action")
|
val intentAction = intent.getStringExtra("action")
|
||||||
|
|
||||||
Log.d("Baresip", "At MainActivity onCreate with action '$intentAction'")
|
Log.d("Baresip", "MainActivity onCreate ${intent.action}/${intent.data}/$intentAction")
|
||||||
|
|
||||||
|
if (intent?.action == ACTION_CALL && BaresipService.callActionUri == "")
|
||||||
|
BaresipService.callActionUri = URLDecoder.decode(intent.data.toString(), "UTF-8")
|
||||||
|
|
||||||
kgm = getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager
|
kgm = getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager
|
||||||
dismissKeyguard()
|
dismissKeyguard()
|
||||||
@@ -712,6 +715,23 @@ class MainActivity : AppCompatActivity() {
|
|||||||
Log.d("Baresip", "Omit service event '$event' for task -1")
|
Log.d("Baresip", "Omit service event '$event' for task -1")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if (event == "started") {
|
||||||
|
val callActionUri = params[0]
|
||||||
|
Log.d("Baresip", "Handling service event 'started' with '$callActionUri'")
|
||||||
|
var ua = UserAgent.ofDomain(Utils.uriHostPart(callActionUri))
|
||||||
|
if (ua == null)
|
||||||
|
if (BaresipService.uas.size > 0) {
|
||||||
|
ua = BaresipService.uas[0]
|
||||||
|
} else {
|
||||||
|
Log.w("Baresip", "No UAs to make the call to $callActionUri")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
spinToAor(ua.account.aor)
|
||||||
|
ua.account.resumeUri = callActionUri
|
||||||
|
callUri.setText(callActionUri)
|
||||||
|
callButton.performClick()
|
||||||
|
return
|
||||||
|
}
|
||||||
if (event == "stopped") {
|
if (event == "stopped") {
|
||||||
Log.d("Baresip", "Handling service event 'stopped' with param '${params[0]}'")
|
Log.d("Baresip", "Handling service event 'stopped' with param '${params[0]}'")
|
||||||
if (params[0] != "") {
|
if (params[0] != "") {
|
||||||
|
|||||||
Reference in New Issue
Block a user