- added native ua_mediaenc and cmd_exec functions

- added native handling of ua media encryption event
This commit is contained in:
Juha Heinanen
2018-05-08 14:18:42 +03:00
parent 3c0c732c06
commit f1533f1573

View File

@ -30,6 +30,16 @@ typedef struct update_context {
UpdateContext g_ctx;
static int vprintf_null(const char *p, size_t size, void *arg)
{
(void)p;
(void)size;
(void)arg;
return 0;
}
static struct re_printf pf_null = {vprintf_null, 0};
static void signal_handler(int sig)
{
static bool term = false;
@ -70,7 +80,7 @@ static void ua_event_handler(struct ua *ua, enum ua_event ev,
char ua_buf[256];
char call_buf[256];
LOGD("ua event (%s)\n", uag_event_str(ev));
LOGD("ua event (%s) %s\n", uag_event_str(ev), prm);
switch (ev) {
case UA_EVENT_REGISTERING:
@ -91,6 +101,9 @@ static void ua_event_handler(struct ua *ua, enum ua_event ev,
case UA_EVENT_CALL_INCOMING:
re_snprintf(event_buf, sizeof event_buf, "%s", "call incoming");
break;
case UA_EVENT_CALL_MENC:
re_snprintf(event_buf, sizeof event_buf, "%s", prm);
break;
case UA_EVENT_CALL_CLOSED:
re_snprintf(event_buf, sizeof event_buf, "%s", "call closed");
break;
@ -315,6 +328,19 @@ Java_com_tutpro_baresip_MainActivity_ua_1aor(JNIEnv *env, jobject thiz, jstring
return (*env)->NewStringUTF(env, "");
}
JNIEXPORT jstring JNICALL
Java_com_tutpro_baresip_MainActivity_ua_1mediaenc(JNIEnv *env, jobject thiz, jstring javaUA)
{
const char *native_ua = (*env)->GetStringUTFChars(env, javaUA, 0);
struct ua *ua = (struct ua *)strtoul(native_ua, NULL, 10);
struct account *acc = ua_account(ua);
char *mediaenc = account_mediaenc(acc);
if (mediaenc)
return (*env)->NewStringUTF(env, mediaenc);
else
return (*env)->NewStringUTF(env, "");
}
JNIEXPORT void JNICALL /* currently not in use */
Java_com_tutpro_baresip_MainActivity_ua_1current_1set(JNIEnv *env, jobject thiz,
jstring javaAoR)
@ -441,7 +467,10 @@ Java_com_tutpro_baresip_MainActivity_ua_1hangup(JNIEnv *env, jobject thiz,
const uint16_t native_code = code;
const char *native_reason = (*env)->GetStringUTFChars(env, reason, 0);
LOGD("hanging up call %s/%s\n", native_ua, native_call);
ua_hangup(ua, call, native_code, native_reason);
if (strlen(native_reason) == 0)
ua_hangup(ua, call, native_code, NULL);
else
ua_hangup(ua, call, native_code, native_reason);
(*env)->ReleaseStringUTFChars(env, javaUA, native_ua);
(*env)->ReleaseStringUTFChars(env, javaCall, native_call);
(*env)->ReleaseStringUTFChars(env, reason, native_reason);
@ -499,3 +528,11 @@ Java_com_tutpro_baresip_MainActivity_reload_1config(JNIEnv *env, jobject thiz) {
return err;
}
JNIEXPORT jint JNICALL
Java_com_tutpro_baresip_MainActivity_cmd_1exec(JNIEnv *env, jobject thiz, jstring javaCmd) {
const char *native_cmd = (*env)->GetStringUTFChars(env, javaCmd, 0);
LOGD("processing command '%s'\n", native_cmd);
int res = cmd_process_long(baresip_commands(), native_cmd, strlen(native_cmd), &pf_null, NULL);
(*env)->ReleaseStringUTFChars(env, javaCmd, native_cmd);
return res;
}