From 135fac65cf96ecb9325bcb4c74a3890ab0059885 Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Thu, 21 Jan 2010 17:31:28 +0100 Subject: [PATCH] first succesfull register --- LinphoneAuthInfo.java | 2 ++ LinphoneAuthInfoImpl.java | 13 +++++++++++++ LinphoneCore.java | 13 ++++++++++--- LinphoneCoreException.java | 1 + LinphoneCoreFactory.java | 9 +++++---- LinphoneCoreImpl.java | 28 +++++++++++++++++----------- LinphoneProxyConfig.java | 1 + LinphoneProxyConfigImpl.java | 33 +++++++++++++++++---------------- 8 files changed, 66 insertions(+), 34 deletions(-) create mode 100644 LinphoneAuthInfoImpl.java diff --git a/LinphoneAuthInfo.java b/LinphoneAuthInfo.java index 0b8865f42..2a5dbaf2d 100644 --- a/LinphoneAuthInfo.java +++ b/LinphoneAuthInfo.java @@ -21,3 +21,5 @@ package org.linphone.core; public interface LinphoneAuthInfo { } + + diff --git a/LinphoneAuthInfoImpl.java b/LinphoneAuthInfoImpl.java new file mode 100644 index 000000000..15a064ec9 --- /dev/null +++ b/LinphoneAuthInfoImpl.java @@ -0,0 +1,13 @@ +package org.linphone.core; + +class LinphoneAuthInfoImpl implements LinphoneAuthInfo { + protected final long nativePtr; + private native long newLinphoneAuthInfo(String username, String userid, String passwd, String ha1,String realm); + private native void delete(long ptr); + protected LinphoneAuthInfoImpl(String username,String password) { + nativePtr = newLinphoneAuthInfo(username,null,password,null,null); + } + protected void finalize() throws Throwable { + delete(nativePtr); + } +} diff --git a/LinphoneCore.java b/LinphoneCore.java index f10cf0df3..8dccff830 100644 --- a/LinphoneCore.java +++ b/LinphoneCore.java @@ -18,8 +18,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package org.linphone.core; -import java.io.File; -import java.net.URI; + public interface LinphoneCore { /* @@ -51,8 +50,16 @@ public interface LinphoneCore { } - public LinphoneProxyConfig createProxyConfig(URI identity,URI proxy,URI route); + /** + * @param identity sip uri sip:jehan@linphone.org + * @param proxy sip uri (sip:linphone.org) + * @param route optionnal sip usi (sip:linphone.org) + * @return + */ + public LinphoneProxyConfig createProxyConfig(String identity,String proxy,String route) throws LinphoneCoreException; + public void addtProxyConfig(LinphoneProxyConfig proxyCfg) throws LinphoneCoreException; + public void setDefaultProxyConfig(LinphoneProxyConfig proxyCfg); /** diff --git a/LinphoneCoreException.java b/LinphoneCoreException.java index 069e114a0..abec2943e 100644 --- a/LinphoneCoreException.java +++ b/LinphoneCoreException.java @@ -18,6 +18,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package org.linphone.core; +@SuppressWarnings("serial") public class LinphoneCoreException extends Exception { public LinphoneCoreException() { diff --git a/LinphoneCoreFactory.java b/LinphoneCoreFactory.java index 6a8c69493..265ba65dd 100644 --- a/LinphoneCoreFactory.java +++ b/LinphoneCoreFactory.java @@ -19,10 +19,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. package org.linphone.core; import java.io.File; +import java.io.IOException; public class LinphoneCoreFactory { static { - System.loadLibrary("liblinphone"); + System.loadLibrary("linphone"); } static LinphoneCoreFactory theLinphoneCoreFactory = new LinphoneCoreFactory(); @@ -31,11 +32,11 @@ public class LinphoneCoreFactory { return theLinphoneCoreFactory; } public LinphoneAuthInfo createAuthInfo(String username,String password) { - throw new RuntimeException("Not Implemented yet"); + return new LinphoneAuthInfoImpl(username,password) ; } - public LinphoneCore createLinphoneCore(LinphoneCoreListener listener, File userConfig,File factoryConfig,Object userdata) { - throw new RuntimeException("Not Implemented yet"); + public LinphoneCore createLinphoneCore(LinphoneCoreListener listener, File userConfig,File factoryConfig,Object userdata) throws IOException { + return new LinphoneCoreImpl(listener,userConfig,factoryConfig,userdata); } diff --git a/LinphoneCoreImpl.java b/LinphoneCoreImpl.java index 958a66b9a..f922cef08 100644 --- a/LinphoneCoreImpl.java +++ b/LinphoneCoreImpl.java @@ -20,35 +20,36 @@ package org.linphone.core; import java.io.File; import java.io.IOException; -import java.net.URI; -public class LinphoneCoreImpl implements LinphoneCore { + +class LinphoneCoreImpl implements LinphoneCore { private final LinphoneCoreListener mListener; private final long nativePtr; private native long newLinphoneCore(LinphoneCoreListener listener,String userConfig,String factoryConfig,Object userdata); private native void iterate(long nativePtr); + private native void setDefaultProxyConfig(long nativePtr,long proxyCfgNativePtr); + private native int addProxyConfig(long nativePtr,long proxyCfgNativePtr); + private native void addAuthInfo(long nativePtr,long authInfoNativePtr); LinphoneCoreImpl(LinphoneCoreListener listener, File userConfig,File factoryConfig,Object userdata) throws IOException { mListener=listener; nativePtr = newLinphoneCore(listener,userConfig.getCanonicalPath(),factoryConfig.getCanonicalPath(),userdata); } public void addAuthInfo(LinphoneAuthInfo info) { - // TODO Auto-generated method stub - + addAuthInfo(nativePtr,((LinphoneAuthInfoImpl)info).nativePtr); } - public LinphoneProxyConfig createProxyConfig(URI identity, URI proxy,URI route) { + public LinphoneProxyConfig createProxyConfig(String identity, String proxy,String route) throws LinphoneCoreException { return new LinphoneProxyConfigImpl(identity, proxy, route); } public LinphoneProxyConfig getDefaultProxyConfig() { - // TODO Auto-generated method stub - return null; + throw new RuntimeException("not implemenetd yet"); } public void invite(String url) { - // TODO Auto-generated method stub + throw new RuntimeException("not implemenetd yet"); } public void iterate() { @@ -56,8 +57,13 @@ public class LinphoneCoreImpl implements LinphoneCore { } public void setDefaultProxyConfig(LinphoneProxyConfig proxyCfg) { - // TODO Auto-generated method stub - + setDefaultProxyConfig(nativePtr,((LinphoneProxyConfigImpl)proxyCfg).nativePtr); } - + public void addtProxyConfig(LinphoneProxyConfig proxyCfg) throws LinphoneCoreException{ + if (addProxyConfig(nativePtr,((LinphoneProxyConfigImpl)proxyCfg).nativePtr) !=0) { + throw new LinphoneCoreException("bad proxy config"); + } + } + + } diff --git a/LinphoneProxyConfig.java b/LinphoneProxyConfig.java index fb8b68eb3..b4b5fd8b8 100644 --- a/LinphoneProxyConfig.java +++ b/LinphoneProxyConfig.java @@ -22,4 +22,5 @@ public interface LinphoneProxyConfig { void enableRegister(boolean value); + } diff --git a/LinphoneProxyConfigImpl.java b/LinphoneProxyConfigImpl.java index 84e470045..0fa1a85b7 100644 --- a/LinphoneProxyConfigImpl.java +++ b/LinphoneProxyConfigImpl.java @@ -18,37 +18,38 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package org.linphone.core; -import java.net.URI; -public class LinphoneProxyConfigImpl implements LinphoneProxyConfig { - final long nativePtr; - protected LinphoneProxyConfigImpl(URI identity,URI proxy,URI route) { - nativePtr = createAndAdd(); - edit(nativePtr); - setIdentity(nativePtr,identity.getScheme()+":"+identity.getHost()); - done(nativePtr); +class LinphoneProxyConfigImpl implements LinphoneProxyConfig { + + protected final long nativePtr; + protected LinphoneProxyConfigImpl(String identity,String proxy,String route) throws LinphoneCoreException { + nativePtr = newLinphoneProxyConfig(); + setIdentity(nativePtr,identity); + if (setProxy(nativePtr,proxy)!=0) { + throw new LinphoneCoreException("Bad proxy address ["+proxy+"]"); + } } protected void finalize() throws Throwable { - deleteNative(nativePtr); + delete(nativePtr); } - private native long createAndAdd(); - private native long deleteNative(long ptr); + 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 void setProxy(long ptr,String identity);*/ + private native int setProxy(long ptr,String proxy); private native void enableRegister(long ptr,boolean value); public void enableRegister(boolean value) { - edit(nativePtr); + //edit(nativePtr); enableRegister(nativePtr,value); - done(nativePtr); + //done(nativePtr); } }