From f91275deffac99a67ba5969b433fcaa6219b117f Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Fri, 5 Feb 2010 17:49:43 +0100 Subject: [PATCH] -phone view -settings --- LinphoneCore.java | 16 ++++++++++--- LinphoneCoreImpl.java | 23 +++++++++++++++--- LinphoneProxyConfig.java | 26 +++++++++++++++++++- LinphoneProxyConfigImpl.java | 46 +++++++++++++++++++++++++++--------- 4 files changed, 93 insertions(+), 18 deletions(-) diff --git a/LinphoneCore.java b/LinphoneCore.java index 8df865468..4e608452c 100644 --- a/LinphoneCore.java +++ b/LinphoneCore.java @@ -61,18 +61,28 @@ public interface LinphoneCore { * @param identity sip uri sip:jehan@linphone.org * @param proxy sip uri (sip:linphone.org) * @param route optionnal sip usi (sip:linphone.org) + * @param register should be initiated * @return */ - public LinphoneProxyConfig createProxyConfig(String identity,String proxy,String route) throws LinphoneCoreException; + public LinphoneProxyConfig createProxyConfig(String identity,String proxy,String route,boolean enableRegister) throws LinphoneCoreException; + /** + * clear all added proxy config + */ + public void clearProxyConfigs(); public void addtProxyConfig(LinphoneProxyConfig proxyCfg) throws LinphoneCoreException; public void setDefaultProxyConfig(LinphoneProxyConfig proxyCfg); /** - * @return null if no default proxyconfig + * @return null if no default proxy config */ - public LinphoneProxyConfig getDefaultProxyConfig(); + public LinphoneProxyConfig getDefaultProxyConfig() ; + + /** + * clear all the added auth info + */ + void clearAuthInfos(); void addAuthInfo(LinphoneAuthInfo info); diff --git a/LinphoneCoreImpl.java b/LinphoneCoreImpl.java index 444091ac8..2cc292911 100644 --- a/LinphoneCoreImpl.java +++ b/LinphoneCoreImpl.java @@ -28,8 +28,13 @@ class LinphoneCoreImpl implements LinphoneCore { private final long nativePtr; private native long newLinphoneCore(LinphoneCoreListener listener,String userConfig,String factoryConfig,Object userdata); private native void iterate(long nativePtr); + private native long getDefaultProxyConfig(long nativePtr); + private native void setDefaultProxyConfig(long nativePtr,long proxyCfgNativePtr); private native int addProxyConfig(long nativePtr,long proxyCfgNativePtr); + private native void clearAuthInfos(long nativePtr); + + private native void clearProxyConfigs(long nativePtr); private native void addAuthInfo(long nativePtr,long authInfoNativePtr); private native void invite(long nativePtr,String uri); LinphoneCoreImpl(LinphoneCoreListener listener, File userConfig,File factoryConfig,Object userdata) throws IOException { @@ -41,12 +46,17 @@ class LinphoneCoreImpl implements LinphoneCore { addAuthInfo(nativePtr,((LinphoneAuthInfoImpl)info).nativePtr); } - public LinphoneProxyConfig createProxyConfig(String identity, String proxy,String route) throws LinphoneCoreException { - return new LinphoneProxyConfigImpl(identity, proxy, route); + public LinphoneProxyConfig createProxyConfig(String identity, String proxy,String route,boolean enableRegister) throws LinphoneCoreException { + return new LinphoneProxyConfigImpl(identity, proxy, route,enableRegister); } public LinphoneProxyConfig getDefaultProxyConfig() { - throw new RuntimeException("not implemenetd yet"); + long lNativePtr = getDefaultProxyConfig(nativePtr); + if (lNativePtr!=0) { + return new LinphoneProxyConfigImpl(lNativePtr); + } else { + return null; + } } public void invite(String uri) { @@ -65,6 +75,13 @@ class LinphoneCoreImpl implements LinphoneCore { throw new LinphoneCoreException("bad proxy config"); } } + public void clearAuthInfos() { + clearAuthInfos(nativePtr); + + } + public void clearProxyConfigs() { + clearProxyConfigs(nativePtr); + } } diff --git a/LinphoneProxyConfig.java b/LinphoneProxyConfig.java index b4b5fd8b8..17085de82 100644 --- a/LinphoneProxyConfig.java +++ b/LinphoneProxyConfig.java @@ -20,7 +20,31 @@ package org.linphone.core; public interface LinphoneProxyConfig { - void enableRegister(boolean value); + /** + * Unregister proxy config a enable edition + */ + public void edit(); + /** + * Validate proxy config changes. Start registration in case + */ + public void done(); + /** + * sip user made by sip:username@domain + */ + public void setIdentity(String identity) throws LinphoneCoreException; + /** + * Set proxy uri, like sip:linphone.org:5060 + * @param proxyUri + * @throws LinphoneCoreException + */ + public void setProxy(String proxyUri) throws LinphoneCoreException; + /** + * Enable register for this proxy config. + * Register message is issued after call to {@link #done()} + * @param value + * @throws LinphoneCoreException + */ + public void enableRegister(boolean value) throws LinphoneCoreException; } diff --git a/LinphoneProxyConfigImpl.java b/LinphoneProxyConfigImpl.java index 0fa1a85b7..f1de9707b 100644 --- a/LinphoneProxyConfigImpl.java +++ b/LinphoneProxyConfigImpl.java @@ -18,28 +18,37 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package org.linphone.core; +import org.linphone.Linphone; + +import android.util.Log; + class LinphoneProxyConfigImpl implements LinphoneProxyConfig { protected final long nativePtr; - protected LinphoneProxyConfigImpl(String identity,String proxy,String route) throws LinphoneCoreException { + boolean ownPtr = false; + protected LinphoneProxyConfigImpl(String identity,String proxy,String route, boolean enableRegister) throws LinphoneCoreException { nativePtr = newLinphoneProxyConfig(); - setIdentity(nativePtr,identity); - if (setProxy(nativePtr,proxy)!=0) { - throw new LinphoneCoreException("Bad proxy address ["+proxy+"]"); - } + setIdentity(identity); + setProxy(proxy); + enableRegister(enableRegister); + ownPtr=true; + Log.w(Linphone.TAG, "route ["+route+"] not used yet"); + } + protected LinphoneProxyConfigImpl(long aNativePtr) { + nativePtr = aNativePtr; + ownPtr=false; } - protected void finalize() throws Throwable { - delete(nativePtr); + if (ownPtr) delete(nativePtr); } private native long newLinphoneProxyConfig(); private native void delete(long ptr); - //private native void edit(long ptr); - //private native void done(long ptr); + private native void edit(long ptr); + private native void done(long ptr); private native void setIdentity(long ptr,String identity); private native int setProxy(long ptr,String proxy); @@ -47,9 +56,24 @@ class LinphoneProxyConfigImpl implements LinphoneProxyConfig { private native void enableRegister(long ptr,boolean value); public void enableRegister(boolean value) { - //edit(nativePtr); enableRegister(nativePtr,value); - //done(nativePtr); } + public void done() { + done(nativePtr); + } + + public void edit() { + edit(nativePtr); + } + + public void setIdentity(String identity) throws LinphoneCoreException { + setIdentity(nativePtr,identity); + } + + public void setProxy(String proxyUri) throws LinphoneCoreException { + if (setProxy(nativePtr,proxyUri)!=0) { + throw new LinphoneCoreException("Bad proxy address ["+proxyUri+"]"); + } + } }