diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc
index c3893e4962663eb82e5d1ff585bf896c1b143ce3..55041b17a88d3093b88be05e3c70bb62944c65d0 100644
--- a/coreapi/linphonecore_jni.cc
+++ b/coreapi/linphonecore_jni.cc
@@ -542,6 +542,22 @@ extern "C" void Java_org_linphone_core_LinphoneCoreImpl_delete(JNIEnv*  env
 	delete lcData;
 }
 
+extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setPrimaryContact(JNIEnv* env, jobject  thiz, jlong lc, jstring jdisplayname, jstring jusername) {
+	const char* displayname = env->GetStringUTFChars(jdisplayname, NULL);
+	const char* username = env->GetStringUTFChars(jusername, NULL);
+
+	LinphoneAddress *parsed = linphone_core_get_primary_contact_parsed((LinphoneCore*)lc);
+    if (parsed != NULL) {
+        linphone_address_set_display_name(parsed, displayname);
+        linphone_address_set_username(parsed, username);
+        char *contact = linphone_address_as_string(parsed);
+		linphone_core_set_primary_contact((LinphoneCore*)lc, contact);
+	}
+
+	env->ReleaseStringUTFChars(jdisplayname, displayname);
+	env->ReleaseStringUTFChars(jusername, username);
+}
+
 extern "C" void Java_org_linphone_core_LinphoneCoreImpl_clearProxyConfigs(JNIEnv* env, jobject thiz,jlong lc) {
 	linphone_core_clear_proxy_config((LinphoneCore*)lc);
 }
diff --git a/java/common/org/linphone/core/LinphoneCore.java b/java/common/org/linphone/core/LinphoneCore.java
index fb49d3cb16f74b8b2c43cf0b4eb968aec50f41b2..450091843fab58caed488d062f290f4ad1e2e47f 100644
--- a/java/common/org/linphone/core/LinphoneCore.java
+++ b/java/common/org/linphone/core/LinphoneCore.java
@@ -851,4 +851,9 @@ public interface LinphoneCore {
 	void setInCallTimeout(int timeout);
 	
 	void setMicrophoneGain(float gain);
+	
+	/**
+	 * Set username and display name to use if no LinphoneProxyConfig configured
+	 */
+	void setPrimaryContact(String displayName, String username);
 }
diff --git a/java/impl/org/linphone/core/LinphoneCoreImpl.java b/java/impl/org/linphone/core/LinphoneCoreImpl.java
index 320939da05fc85ef9d095f95bae1970be1b0a1db..5e6864559f08eb18950746d8c7059cf538a89dac 100644
--- a/java/impl/org/linphone/core/LinphoneCoreImpl.java
+++ b/java/impl/org/linphone/core/LinphoneCoreImpl.java
@@ -116,6 +116,7 @@ class LinphoneCoreImpl implements LinphoneCore {
 	private native void setVideoPortRange(long nativePtr, int minPort, int maxPort);
 	private native void setIncomingTimeout(long nativePtr, int timeout);
 	private native void setInCallTimeout(long nativePtr, int timeout);
+	private native void setPrimaryContact(long nativePtr, String displayName, String username);
 	
 	LinphoneCoreImpl(LinphoneCoreListener listener, File userConfig,File factoryConfig,Object  userdata) throws IOException {
 		mListener=listener;
@@ -793,4 +794,8 @@ class LinphoneCoreImpl implements LinphoneCore {
 	public void setMicrophoneGain(float gain) {
 		setMicrophoneGain(nativePtr, gain);
 	}
+	
+	public void setPrimaryContact(String displayName, String username) {
+		setPrimaryContact(nativePtr, displayName, username);
+	}
 }