diff --git a/LinphoneAddress.java b/LinphoneAddress.java index d7ad7c4b0..619bd4fb8 100644 --- a/LinphoneAddress.java +++ b/LinphoneAddress.java @@ -34,4 +34,9 @@ public interface LinphoneAddress { * @return null if not set */ public String getDomain(); + + /** + * @return an URI version of the address that can be used to place a call using {@link LinphoneCore#invite(String)} + */ + public String toUri(); } diff --git a/LinphoneAddressImpl.java b/LinphoneAddressImpl.java index 83176180e..fd80db86e 100644 --- a/LinphoneAddressImpl.java +++ b/LinphoneAddressImpl.java @@ -28,7 +28,7 @@ public class LinphoneAddressImpl implements LinphoneAddress { private native String getDisplayName(long ptr); private native String getUserName(long ptr); private native String getDomain(long ptr); - + private native String toUri(long ptr); protected LinphoneAddressImpl(String username,String domain,String displayName) { nativePtr = newLinphoneAddressImpl("sip:"+username+"@"+domain, displayName); @@ -51,11 +51,10 @@ public class LinphoneAddressImpl implements LinphoneAddress { } public String toString() { - String tmp=""; - if (getDisplayName()!=null) { - tmp="<"+getDisplayName()+">"; - } - return tmp+"sip:"+getUserName()+"@"+getDomain(); + return toUri(); + } + public String toUri() { + return toUri(nativePtr); } } diff --git a/LinphoneCoreFactory.java b/LinphoneCoreFactory.java index 265ba65dd..4cbded4f9 100644 --- a/LinphoneCoreFactory.java +++ b/LinphoneCoreFactory.java @@ -39,6 +39,9 @@ public class LinphoneCoreFactory { return new LinphoneCoreImpl(listener,userConfig,factoryConfig,userdata); } + public LinphoneAddress createLinphoneAddress(String username,String domain,String displayName) { + return new LinphoneAddressImpl(username,domain,displayName); + } } diff --git a/LinphoneProxyConfig.java b/LinphoneProxyConfig.java index 8e338e613..97c7d21a6 100644 --- a/LinphoneProxyConfig.java +++ b/LinphoneProxyConfig.java @@ -51,4 +51,15 @@ public interface LinphoneProxyConfig { * @return */ public String normalizePhoneNumber(String number); + /** + * usefull function to automatically add internationnal prefix to e164 phone numbers + * @param prefix + */ + public void setDialPrefix(String prefix); + + /** + * rget domain host name or ip + * @return may be null + */ + public String getDomain(); } diff --git a/LinphoneProxyConfigImpl.java b/LinphoneProxyConfigImpl.java index 7c65c7b28..a82418cdb 100644 --- a/LinphoneProxyConfigImpl.java +++ b/LinphoneProxyConfigImpl.java @@ -55,8 +55,12 @@ class LinphoneProxyConfigImpl implements LinphoneProxyConfig { private native void enableRegister(long ptr,boolean value); + private native void setDialPrefix(long ptr, String prefix); + private native String normalizePhoneNumber(long ptr,String number); + private native String getDomain(long ptr); + public void enableRegister(boolean value) { enableRegister(nativePtr,value); } @@ -81,4 +85,10 @@ class LinphoneProxyConfigImpl implements LinphoneProxyConfig { public String normalizePhoneNumber(String number) { return normalizePhoneNumber(nativePtr,number); } + public void setDialPrefix(String prefix) { + setDialPrefix(nativePtr, prefix); + } + public String getDomain() { + return getDomain(nativePtr); + } }