diff --git a/app/src/main/cpp/baresip.c b/app/src/main/cpp/baresip.c index c0409beb..77fd90ac 100644 --- a/app/src/main/cpp/baresip.c +++ b/app/src/main/cpp/baresip.c @@ -1165,18 +1165,18 @@ Java_com_tutpro_baresip_Api_ua_1hangup(JNIEnv *env, jobject thiz, } JNIEXPORT jstring JNICALL -Java_com_tutpro_baresip_Api_ua_1connect(JNIEnv *env, jobject thiz, jstring javaUA, - jstring javaURI) { +Java_com_tutpro_baresip_Api_ua_1connect(JNIEnv *env, jobject thiz, jstring javaUA, jstring javaURI, jint javaVidMode) { struct call *call; struct ua *ua; int err; const char *native_ua = (*env)->GetStringUTFChars(env, javaUA, 0); const char *native_uri = (*env)->GetStringUTFChars(env, javaURI, 0); char call_buf[32]; - LOGD("connecting ua %s to %s\n", native_ua, native_uri); + LOGD("connecting ua %s to %s %s video\n", native_ua, native_uri, + javaVidMode == 0 ? "without" : "with"); ua = (struct ua *)strtoul(native_ua, NULL, 10); re_thread_enter(); - err = ua_connect(ua, &call, NULL, native_uri, VIDMODE_OFF); + err = ua_connect(ua, &call, NULL, native_uri, (enum vidmode)javaVidMode); re_thread_leave(); if (err) { LOGW("connecting to %s failed with error %d\n", native_uri, err); @@ -1190,8 +1190,7 @@ Java_com_tutpro_baresip_Api_ua_1connect(JNIEnv *env, jobject thiz, jstring javaU } JNIEXPORT jstring JNICALL -Java_com_tutpro_baresip_Api_ua_1call_1alloc(JNIEnv *env, jobject thiz, jstring javaUA, - jstring javaXCall) { +Java_com_tutpro_baresip_Api_ua_1call_1alloc(JNIEnv *env, jobject thiz, jstring javaUA, jstring javaXCall, jint javaVidMode) { struct call *xcall, *call = NULL; struct ua *ua; int err; @@ -1202,7 +1201,7 @@ Java_com_tutpro_baresip_Api_ua_1call_1alloc(JNIEnv *env, jobject thiz, jstring j ua = (struct ua *)strtoul(native_ua, NULL, 10); xcall = (struct call *)strtoul(native_xcall, NULL, 10); re_thread_enter(); - err = ua_call_alloc(&call, ua, VIDMODE_OFF, NULL, xcall, call_localuri(xcall), true); + err = ua_call_alloc(&call, ua, (enum vidmode)javaVidMode, NULL, xcall, call_localuri(xcall), true); if (err) { LOGW("call allocation for ua %s failed with error %d\n", native_ua, err); call_buf[0] = '\0'; diff --git a/app/src/main/kotlin/com/tutpro/baresip/Api.kt b/app/src/main/kotlin/com/tutpro/baresip/Api.kt index 9ffa3264..f001bd0e 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/Api.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/Api.kt @@ -5,6 +5,8 @@ object Api { val AF_UNSPEC = 0 val AF_INET = 2 val AF_INET6 = 10 + val VIDMODE_OFF = 0 + val VIDMODE_ON = 1 external fun audio_codecs(): String external fun uag_current_set(uap: String) @@ -16,9 +18,9 @@ object Api { external fun ua_register(ua: String): Int external fun ua_isregistered(ua: String): Boolean external fun ua_unregister(ua: String) - external fun ua_connect(uap: String, peer_uri: String): String + external fun ua_connect(uap: String, peer_uri: String, video: Int): String external fun ua_hangup(uap: String, callp: String, code: Int, reason: String) - external fun ua_call_alloc(uap: String, xcallp: String): String + external fun ua_call_alloc(uap: String, xcallp: String, video: Int): String external fun ua_answer(uap: String, callp: String) external fun ua_set_media_af(uap: String, af: Int) external fun account_debug(accp: String) diff --git a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt index 76c78043..63636dec 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/MainActivity.kt @@ -1185,7 +1185,7 @@ class MainActivity : AppCompatActivity() { return false } if (ua != UserAgent.uas()[aorSpinner.selectedItemPosition]) spinToAor(ua.account.aor) - val callp = Api.ua_connect(ua.uap, uri) + val callp = Api.ua_connect(ua.uap, uri, Api.VIDMODE_OFF) if (callp != "") { Log.d("Baresip", "Adding outgoing call ${ua.uap}/$callp/$uri") Call.calls().add(Call(callp, ua, uri, "out", status, Utils.dtmfWatcher(callp))) @@ -1199,7 +1199,7 @@ class MainActivity : AppCompatActivity() { // Currently transfer is implemented by first closing existing call and the making the new one private fun transfer(ua: UserAgent, call: Call, uri: String) { - val newCallp = Api.ua_call_alloc(ua.uap, call.callp) + val newCallp = Api.ua_call_alloc(ua.uap, call.callp, Api.VIDMODE_OFF) if (newCallp != "") { Log.d("Baresip", "Adding outgoing call ${ua.uap}/$newCallp/$uri") val newCall = Call(newCallp, ua, uri, "out", "transferring",