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();
 }