- Added video argument to ua_connect and ua_call_alloc API functions.
This commit is contained in:
@@ -1165,18 +1165,18 @@ Java_com_tutpro_baresip_Api_ua_1hangup(JNIEnv *env, jobject thiz,
|
|||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT jstring JNICALL
|
JNIEXPORT jstring JNICALL
|
||||||
Java_com_tutpro_baresip_Api_ua_1connect(JNIEnv *env, jobject thiz, jstring javaUA,
|
Java_com_tutpro_baresip_Api_ua_1connect(JNIEnv *env, jobject thiz, jstring javaUA, jstring javaURI, jint javaVidMode) {
|
||||||
jstring javaURI) {
|
|
||||||
struct call *call;
|
struct call *call;
|
||||||
struct ua *ua;
|
struct ua *ua;
|
||||||
int err;
|
int err;
|
||||||
const char *native_ua = (*env)->GetStringUTFChars(env, javaUA, 0);
|
const char *native_ua = (*env)->GetStringUTFChars(env, javaUA, 0);
|
||||||
const char *native_uri = (*env)->GetStringUTFChars(env, javaURI, 0);
|
const char *native_uri = (*env)->GetStringUTFChars(env, javaURI, 0);
|
||||||
char call_buf[32];
|
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);
|
ua = (struct ua *)strtoul(native_ua, NULL, 10);
|
||||||
re_thread_enter();
|
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();
|
re_thread_leave();
|
||||||
if (err) {
|
if (err) {
|
||||||
LOGW("connecting to %s failed with error %d\n", native_uri, 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
|
JNIEXPORT jstring JNICALL
|
||||||
Java_com_tutpro_baresip_Api_ua_1call_1alloc(JNIEnv *env, jobject thiz, jstring javaUA,
|
Java_com_tutpro_baresip_Api_ua_1call_1alloc(JNIEnv *env, jobject thiz, jstring javaUA, jstring javaXCall, jint javaVidMode) {
|
||||||
jstring javaXCall) {
|
|
||||||
struct call *xcall, *call = NULL;
|
struct call *xcall, *call = NULL;
|
||||||
struct ua *ua;
|
struct ua *ua;
|
||||||
int err;
|
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);
|
ua = (struct ua *)strtoul(native_ua, NULL, 10);
|
||||||
xcall = (struct call *)strtoul(native_xcall, NULL, 10);
|
xcall = (struct call *)strtoul(native_xcall, NULL, 10);
|
||||||
re_thread_enter();
|
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) {
|
if (err) {
|
||||||
LOGW("call allocation for ua %s failed with error %d\n", native_ua, err);
|
LOGW("call allocation for ua %s failed with error %d\n", native_ua, err);
|
||||||
call_buf[0] = '\0';
|
call_buf[0] = '\0';
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ object Api {
|
|||||||
val AF_UNSPEC = 0
|
val AF_UNSPEC = 0
|
||||||
val AF_INET = 2
|
val AF_INET = 2
|
||||||
val AF_INET6 = 10
|
val AF_INET6 = 10
|
||||||
|
val VIDMODE_OFF = 0
|
||||||
|
val VIDMODE_ON = 1
|
||||||
|
|
||||||
external fun audio_codecs(): String
|
external fun audio_codecs(): String
|
||||||
external fun uag_current_set(uap: String)
|
external fun uag_current_set(uap: String)
|
||||||
@@ -16,9 +18,9 @@ object Api {
|
|||||||
external fun ua_register(ua: String): Int
|
external fun ua_register(ua: String): Int
|
||||||
external fun ua_isregistered(ua: String): Boolean
|
external fun ua_isregistered(ua: String): Boolean
|
||||||
external fun ua_unregister(ua: String)
|
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_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_answer(uap: String, callp: String)
|
||||||
external fun ua_set_media_af(uap: String, af: Int)
|
external fun ua_set_media_af(uap: String, af: Int)
|
||||||
external fun account_debug(accp: String)
|
external fun account_debug(accp: String)
|
||||||
|
|||||||
@@ -1185,7 +1185,7 @@ class MainActivity : AppCompatActivity() {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if (ua != UserAgent.uas()[aorSpinner.selectedItemPosition]) spinToAor(ua.account.aor)
|
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 != "") {
|
if (callp != "") {
|
||||||
Log.d("Baresip", "Adding outgoing call ${ua.uap}/$callp/$uri")
|
Log.d("Baresip", "Adding outgoing call ${ua.uap}/$callp/$uri")
|
||||||
Call.calls().add(Call(callp, ua, uri, "out", status, Utils.dtmfWatcher(callp)))
|
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
|
// Currently transfer is implemented by first closing existing call and the making the new one
|
||||||
private fun transfer(ua: UserAgent, call: Call, uri: String) {
|
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 != "") {
|
if (newCallp != "") {
|
||||||
Log.d("Baresip", "Adding outgoing call ${ua.uap}/$newCallp/$uri")
|
Log.d("Baresip", "Adding outgoing call ${ua.uap}/$newCallp/$uri")
|
||||||
val newCall = Call(newCallp, ua, uri, "out", "transferring",
|
val newCall = Call(newCallp, ua, uri, "out", "transferring",
|
||||||
|
|||||||
Reference in New Issue
Block a user