diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc
index 85bd102595b2d5c5b004199c10bc623e00f003d9..a66a07b6184a2cc05d6900057eb854fb37ce4aa1 100644
--- a/coreapi/linphonecore_jni.cc
+++ b/coreapi/linphonecore_jni.cc
@@ -703,6 +703,27 @@ extern "C" jboolean Java_org_linphone_core_LinphoneCoreImpl_isNetworkStateReacha
 		return (jboolean)linphone_core_is_network_reachable((LinphoneCore*)lc);
 }
 
+extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setUploadBandwidth(JNIEnv*  env
+		,jobject  thiz
+		,jlong lc
+		,jint bandwidth) {
+		 linphone_core_set_upload_bandwidth((LinphoneCore*)lc,bandwidth);
+}
+
+extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setDownloadBandwidth(JNIEnv*  env
+		,jobject  thiz
+		,jlong lc
+		,jint bandwidth) {
+		linphone_core_set_download_bandwidth((LinphoneCore*)lc,bandwidth);
+}
+
+extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setMicrophoneGain(JNIEnv*  env
+		,jobject  thiz
+		,jlong lc
+		,jfloat gain) {
+		linphone_core_set_microphone_gain_db((LinphoneCore*)lc,gain);
+}
+
 extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setPlaybackGain(	JNIEnv*  env
 		,jobject  thiz
 		,jlong lc
diff --git a/java/common/org/linphone/core/LinphoneCore.java b/java/common/org/linphone/core/LinphoneCore.java
index 49b15c369372cb633fcbd5cbba387ad02f904b1d..51b6d029ab420fec44fab5c048dfb1b74c7c055e 100644
--- a/java/common/org/linphone/core/LinphoneCore.java
+++ b/java/common/org/linphone/core/LinphoneCore.java
@@ -849,4 +849,10 @@ public interface LinphoneCore {
 	 * Once this time is elapsed (ringing included), the call is automatically hung up.
 	**/
 	void setInCallTimeout(int timeout);
+	
+	void setUploadBandwidth(int bandwidth);
+	
+	void setDownloadBandwidth(int bandwidth);
+	
+	void setMicrophoneGain(float gain);
 }
diff --git a/java/impl/org/linphone/core/LinphoneCoreImpl.java b/java/impl/org/linphone/core/LinphoneCoreImpl.java
index 138dc41f35453f50dca19640489c681bb52ac961..0a28af7d85d5262a5ee8d5c131aab4ef74b22add 100644
--- a/java/impl/org/linphone/core/LinphoneCoreImpl.java
+++ b/java/impl/org/linphone/core/LinphoneCoreImpl.java
@@ -788,4 +788,19 @@ class LinphoneCoreImpl implements LinphoneCore {
 	{
 		setInCallTimeout(nativePtr, timeout);
 	}
+	
+	private native void setUploadBandwidth(long ptr, int bandwidth);
+	public void setUploadBandwidth(int bandwidth) {
+		setUploadBandwidth(nativePtr, bandwidth);
+	}
+	
+	private native void setDownloadBandwidth(long ptr, int bandwidth);
+	public void setDownloadBandwidth(int bandwidth) {
+		setUploadBandwidth(nativePtr, bandwidth);
+	}
+	
+	private native void setMicrophoneGain(long ptr, float gain);
+	public void setMicrophoneGain(float gain) {
+		setUploadBandwidth(nativePtr, gain);
+	}
 }