diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index fd7d939ab..c98390f3c 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -769,6 +769,18 @@ extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setPrimaryContact(JNIEnv env->ReleaseStringUTFChars(jusername, username); } +extern "C" jstring Java_org_linphone_core_LinphoneCoreImpl_getPrimaryContactUsername(JNIEnv* env, jobject thiz, jlong lc) { + LinphoneAddress* identity = linphone_core_get_primary_contact_parsed((LinphoneCore*)lc); + const char * username = linphone_address_get_username(identity); + return username ? env->NewStringUTF(username) : NULL; +} + +extern "C" jstring Java_org_linphone_core_LinphoneCoreImpl_getPrimaryContactDisplayName(JNIEnv* env, jobject thiz, jlong lc) { + LinphoneAddress* identity = linphone_core_get_primary_contact_parsed((LinphoneCore*)lc); + const char * displayname = linphone_address_get_display_name(identity); + return displayname ? env->NewStringUTF(displayname) : NULL; +} + 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 518137ca0..564cd1b45 100644 --- a/java/common/org/linphone/core/LinphoneCore.java +++ b/java/common/org/linphone/core/LinphoneCore.java @@ -1280,6 +1280,16 @@ public interface LinphoneCore { */ void setPrimaryContact(String displayName, String username); + /** + * Returns the username used if no LinphoneProxyConfig configured + */ + String getPrimaryContactUsername(); + + /** + * Returns the display name used if no LinphoneProxyConfig configured + */ + String getPrimaryContactDisplayName(); + /** * Enable/Disable the use of SIP INFO for DTMFs */ diff --git a/java/impl/org/linphone/core/LinphoneCoreImpl.java b/java/impl/org/linphone/core/LinphoneCoreImpl.java index c9257d8c1..874281134 100644 --- a/java/impl/org/linphone/core/LinphoneCoreImpl.java +++ b/java/impl/org/linphone/core/LinphoneCoreImpl.java @@ -138,6 +138,8 @@ class LinphoneCoreImpl implements LinphoneCore { 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); + private native String getPrimaryContactUsername(long nativePtr); + private native String getPrimaryContactDisplayName(long nativePtr); private native void setChatDatabasePath(long nativePtr, String path); private native long[] getChatRooms(long nativePtr); @@ -894,6 +896,14 @@ class LinphoneCoreImpl implements LinphoneCore { setPrimaryContact(nativePtr, displayName, username); } + public synchronized String getPrimaryContactUsername() { + return getPrimaryContactUsername(nativePtr); + } + + public synchronized String getPrimaryContactDisplayName() { + return getPrimaryContactDisplayName(nativePtr); + } + private native void setUseSipInfoForDtmfs(long ptr, boolean use); public synchronized void setUseSipInfoForDtmfs(boolean use) { setUseSipInfoForDtmfs(nativePtr, use);