2 LinphoneCoreFactoryImpl.java
3 Copyright (C) 2010 Belledonne Communications, Grenoble, France
5 This program is free software; you can redistribute it and/or
6 modify it under the terms of the GNU General Public License
7 as published by the Free Software Foundation; either version 2
8 of the License, or (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19 package org.linphone.core;
22 import java.io.IOException;
24 import org.linphone.mediastream.Version;
26 public class LinphoneCoreFactoryImpl extends LinphoneCoreFactory {
28 private static void loadOptionalLibrary(String s) {
30 System.loadLibrary(s);
31 } catch (Throwable e) {
32 Log.w("Unable to load optional library lib", s);
37 // FFMPEG (audio/video)
38 loadOptionalLibrary("avutil");
39 loadOptionalLibrary("swscale");
40 loadOptionalLibrary("avcore");
41 loadOptionalLibrary("avcodec");
43 // OPENSSL (cryptography)
44 // lin prefix avoids collision with libs in /system/lib
45 loadOptionalLibrary("lincrypto");
46 loadOptionalLibrary("linssl");
48 // Secure RTP and key negotiation
49 loadOptionalLibrary("srtp");
50 loadOptionalLibrary("zrtpcpp"); // GPLv3+
53 loadOptionalLibrary("tunnelclient");
55 // g729 A implementation
56 loadOptionalLibrary("bcg729");
59 System.loadLibrary("linphone");
61 Version.dumpCapabilities();
64 public LinphoneAuthInfo createAuthInfo(String username, String password,
66 return new LinphoneAuthInfoImpl(username,password,realm);
70 public LinphoneAddress createLinphoneAddress(String username,
71 String domain, String displayName) {
72 return new LinphoneAddressImpl(username,domain,displayName);
76 public LinphoneAddress createLinphoneAddress(String identity) {
77 return new LinphoneAddressImpl(identity);
81 public LinphoneCore createLinphoneCore(LinphoneCoreListener listener,
82 String userConfig, String factoryConfig, Object userdata)
83 throws LinphoneCoreException {
85 return new LinphoneCoreImpl(listener,new File(userConfig),new File(factoryConfig),userdata);
86 } catch (IOException e) {
87 throw new LinphoneCoreException("Cannot create LinphoneCore",e);
92 public LinphoneCore createLinphoneCore(LinphoneCoreListener listener) throws LinphoneCoreException {
94 return new LinphoneCoreImpl(listener);
95 } catch (IOException e) {
96 throw new LinphoneCoreException("Cannot create LinphoneCore",e);
101 public LinphoneProxyConfig createProxyConfig(String identity, String proxy,
102 String route, boolean enableRegister) throws LinphoneCoreException {
103 return new LinphoneProxyConfigImpl(identity,proxy,route,enableRegister);
107 public native void setDebugMode(boolean enable);
110 public void setLogHandler(LinphoneLogHandler handler) {
111 //not implemented on Android
116 public LinphoneFriend createLinphoneFriend(String friendUri) {
117 return new LinphoneFriendImpl(friendUri);
121 public LinphoneFriend createLinphoneFriend() {
122 return createLinphoneFriend(null);