diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index ca2c03d4056667c072fbf7c97f9135b0d9329dc5..7fccd4cdf194d6c4defebaae2edc30f122dd03b4 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -455,6 +455,22 @@ extern "C" jlong Java_org_linphone_core_LinphoneCoreImpl_getDefaultProxyConfig( return (jlong)config; } +extern "C" jlongArray Java_org_linphone_core_LinphoneCoreImpl_getProxyConfigList(JNIEnv* env, jobject thiz, jlong lc) { + const MSList* proxies = linphone_core_get_proxy_config_list((LinphoneCore*)lc); + int proxyCount = ms_list_size(proxies); + jlongArray jProxies = env->NewLongArray(proxyCount); + jlong *jInternalArray = env->GetLongArrayElements(jProxies, NULL); + + for (int i = 0; i < proxyCount; i++ ) { + jInternalArray[i] = (unsigned long) (proxies->data); + proxies = proxies->next; + } + + env->ReleaseLongArrayElements(jProxies, jInternalArray, 0); + + return jProxies; +} + extern "C" int Java_org_linphone_core_LinphoneCoreImpl_addProxyConfig( JNIEnv* env ,jobject thiz ,jobject jproxyCfg diff --git a/java/common/org/linphone/core/LinphoneCore.java b/java/common/org/linphone/core/LinphoneCore.java index a9629cce1df9a638508e338e487c08ca1681af9a..2905d67373c5e66667e79a092c5e9d01b932d99a 100644 --- a/java/common/org/linphone/core/LinphoneCore.java +++ b/java/common/org/linphone/core/LinphoneCore.java @@ -720,4 +720,6 @@ public interface LinphoneCore { void tunnelAddServerAndMirror(String host, int port, int udpMirrorPort, int roundTripDelay); boolean isTunnelAvailable(); + + LinphoneProxyConfig[] getProxyConfigList(); }