diff --git a/.gitignore b/.gitignore
index 9efdbca5626a5d39b6551e574cb23fc6288ad2ba..f613ae8ee0fc634ac3fabb5346c25103c9fc040f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,11 +17,14 @@ local.properties
 
 
 SFLPhoneservice*
-CallManagerJNI.java
-Callback.java
-ConfigurationCallback.java
+CallManager.java
+CallManagerCallback.java
+ConfigurationManager.java
+ConfigurationManagerCallback.java
 ManagerImpl.java
 SWIGTYPE*
 StringMap.java
 StringVect.java
+IntVect.java
+
 
diff --git a/.gitignore~ b/.gitignore~
new file mode 100644
index 0000000000000000000000000000000000000000..9efdbca5626a5d39b6551e574cb23fc6288ad2ba
--- /dev/null
+++ b/.gitignore~
@@ -0,0 +1,27 @@
+/jni/libcutils
+/obj
+/libs
+/bin
+/gen
+*.swp
+tags
+TAGS.LST
+ID
+
+
+.classpath
+.project
+.settings/org.eclipse.jdt.core.prefs
+.settings/org.eclipse.jdt.ui.prefs
+local.properties
+
+
+SFLPhoneservice*
+CallManagerJNI.java
+Callback.java
+ConfigurationCallback.java
+ManagerImpl.java
+SWIGTYPE*
+StringMap.java
+StringVect.java
+
diff --git a/jni/Android.mk b/jni/Android.mk
index 833843220098b51c2fdbf09b2c03aa088b180461..203006f2d90045b74699252941dfb7f68739b8a1 100644
--- a/jni/Android.mk
+++ b/jni/Android.mk
@@ -1,2 +1,2083 @@
-include $(call all-subdir-makefiles)
+
+LOCAL_PATH:= $(call my-dir)
+LOCAL_CODECS_PATH = sflphone/daemon/src/audio/codecs
+LOCAL_AUDIO_PATH = sflphone/daemon/src/audio
+LOCAL_SRC_PATH = sflphone/daemon/src
+
+
+include $(CLEAR_VARS)
+# /!\ absolutely necessary when including submakefiles
+# and defining targets in the "same Android.mk"
+#include $(call all-subdir-makefiles)
+
+# FIXME
+VERSION="1.1.0"
+MY_PREFIX=/sdcard
+MY_DATADIR=/data/data
+TARGET_NAME=arm-unknown-linux-androideabi
+
+MY_PJPROJECT=pjproject-android
+MY_COMMONCPP=commoncpp2-1.8.1-android
+MY_CCRTP=ccrtp-1.8.0-android
+MY_LIBSAMPLE=libsamplerate-0.1.8
+MY_DBUSCPP=libdbus-c++-0.9.0-android
+MY_DBUS=libdbus-c++-0.9.0-android
+MY_SPEEX=speex
+MY_OPENSSL=openssl
+MY_LIBYAML=libyaml
+MY_LIBEXPAT=libexpat
+MY_JNI_WRAP := $(LOCAL_SRC_PATH)/client/android/callmanager_wrap.cpp
+
+include $(CLEAR_VARS)
+
+$(MY_JNI_WRAP): $(LOCAL_SRC_PATH)/client/android/jni_interface.i $(LOCAL_SRC_PATH)/client/android/sflphoneservice.c.template
+	@echo "in $(MY_JNI_WRAP) target"
+	./make-swig.sh
+
+LOCAL_SRC_FILES := \
+		$(LOCAL_SRC_PATH)/conference.cpp \
+		$(LOCAL_SRC_PATH)/voiplink.cpp \
+		$(LOCAL_SRC_PATH)/preferences.cpp \
+		$(LOCAL_SRC_PATH)/managerimpl.cpp \
+		$(LOCAL_SRC_PATH)/manager.cpp \
+		$(LOCAL_SRC_PATH)/eventthread.cpp \
+		$(LOCAL_SRC_PATH)/call.cpp \
+		$(LOCAL_SRC_PATH)/account.cpp \
+		$(LOCAL_SRC_PATH)/logger.cpp \
+		$(LOCAL_SRC_PATH)/numbercleaner.cpp \
+		$(LOCAL_SRC_PATH)/fileutils.cpp \
+		$(LOCAL_SRC_PATH)/audio/audioloop.cpp \
+		$(LOCAL_SRC_PATH)/audio/ringbuffer.cpp \
+		$(LOCAL_SRC_PATH)/audio/mainbuffer.cpp \
+		$(LOCAL_SRC_PATH)/audio/audiorecord.cpp \
+		$(LOCAL_SRC_PATH)/audio/audiorecorder.cpp \
+		$(LOCAL_SRC_PATH)/audio/recordable.cpp \
+		$(LOCAL_SRC_PATH)/audio/audiolayer.cpp \
+		$(LOCAL_SRC_PATH)/audio/samplerateconverter.cpp \
+		$(LOCAL_SRC_PATH)/audio/delaydetection.cpp \
+		$(LOCAL_SRC_PATH)/audio/gaincontrol.cpp \
+		$(LOCAL_SRC_PATH)/audio/dcblocker.cpp \
+		$(LOCAL_SRC_PATH)/audio/opensl/opensllayer.cpp \
+		$(LOCAL_SRC_PATH)/audio/sound/audiofile.cpp \
+		$(LOCAL_SRC_PATH)/audio/sound/tone.cpp \
+		$(LOCAL_SRC_PATH)/audio/sound/tonelist.cpp \
+		$(LOCAL_SRC_PATH)/audio/sound/dtmf.cpp \
+		$(LOCAL_SRC_PATH)/audio/sound/dtmfgenerator.cpp \
+		$(LOCAL_SRC_PATH)/audio/codecs/audiocodecfactory.cpp \
+		$(LOCAL_SRC_PATH)/audio/audiortp/audio_rtp_session.cpp \
+		$(LOCAL_SRC_PATH)/audio/audiortp/audio_symmetric_rtp_session.cpp \
+		$(LOCAL_SRC_PATH)/audio/audiortp/audio_rtp_record_handler.cpp \
+		$(LOCAL_SRC_PATH)/audio/audiortp/audio_rtp_factory.cpp \
+		$(LOCAL_SRC_PATH)/audio/audiortp/audio_srtp_session.cpp \
+		$(LOCAL_SRC_PATH)/config/sfl_config.cpp \
+		$(LOCAL_SRC_PATH)/config/yamlemitter.cpp \
+		$(LOCAL_SRC_PATH)/config/yamlparser.cpp \
+		$(LOCAL_SRC_PATH)/config/yamlnode.cpp \
+		$(LOCAL_SRC_PATH)/client/android/client.cpp \
+		$(LOCAL_SRC_PATH)/client/android/callmanager.cpp \
+    		$(LOCAL_SRC_PATH)/client/android/configurationmanager.cpp  \
+		$(LOCAL_SRC_PATH)/client/android/callmanager_wrap.cpp \
+		$(LOCAL_SRC_PATH)/history/historyitem.cpp \
+		$(LOCAL_SRC_PATH)/history/history.cpp \
+		$(LOCAL_SRC_PATH)/history/historynamecache.cpp \
+		$(LOCAL_SRC_PATH)/hooks/urlhook.cpp \
+		$(LOCAL_SRC_PATH)/im/instant_messaging.cpp \
+		$(LOCAL_SRC_PATH)/sip/sdp.cpp \
+		$(LOCAL_SRC_PATH)/sip/sipaccount.cpp \
+		$(LOCAL_SRC_PATH)/sip/sipcall.cpp \
+		$(LOCAL_SRC_PATH)/sip/sipvoiplink.cpp \
+		$(LOCAL_SRC_PATH)/sip/siptransport.cpp \
+		$(LOCAL_SRC_PATH)/sip/sip_utils.cpp \
+		$(LOCAL_SRC_PATH)/scoped_lock.cpp
+
+
+
+
+# FIXME
+LOCAL_C_INCLUDES += $(LOCAL_SRC_PATH)/.. \
+			$(LOCAL_SRC_PATH) \
+			$(LOCAL_SRC_PATH)/audio \
+			$(LOCAL_SRC_PATH)/audio/opensl \
+			$(LOCAL_SRC_PATH)/audio/sound \
+			$(LOCAL_SRC_PATH)/audio/codecs \
+			$(LOCAL_SRC_PATH)/audio/audiortp \
+			$(LOCAL_SRC_PATH)/config \
+			$(LOCAL_SRC_PATH)/client/android \
+			$(LOCAL_SRC_PATH)/history \
+			$(LOCAL_SRC_PATH)/hooks \
+			$(LOCAL_SRC_PATH)/im \
+			$(LOCAL_SRC_PATH)/sip \
+			$(APP_PROJECT_PATH)/jni/$(MY_SPEEX)/include \
+			$(APP_PROJECT_PATH)/jni/$(MY_COMMONCPP)/inc \
+			$(APP_PROJECT_PATH)/jni/$(MY_LIBYAML)/inc \
+			$(APP_PROJECT_PATH)/jni/$(MY_CCRTP)/src \
+			$(APP_PROJECT_PATH)/jni/$(MY_DBUSCPP)/include \
+			$(APP_PROJECT_PATH)/jni/$(MY_DBUS)/include \
+			$(APP_PROJECT_PATH)/jni/$(MY_LIBSAMPLE)/src \
+			$(APP_PROJECT_PATH)/jni/$(MY_OPENSSL)/include \
+			$(APP_PROJECT_PATH)/jni/$(MY_PJPROJECT)/pjsip/include \
+			$(APP_PROJECT_PATH)/jni/$(MY_PJPROJECT)/pjlib/include \
+			$(APP_PROJECT_PATH)/jni/$(MY_PJPROJECT)/pjlib-util/include \
+			$(APP_PROJECT_PATH)/jni/$(MY_PJPROJECT)/pjmedia/include \
+			$(APP_PROJECT_PATH)/jni/$(MY_PJPROJECT)/pjnath/include \
+			$(APP_PROJECT_PATH)/jni/$(MY_LIBEXPAT) \
+			$(APP_PROJECT_PATH)/jni/$(MY_SPEEX)/include
+
+LOCAL_MODULE := libsflphone
+
+LOCAL_CPPFLAGS += $(NETWORKMANAGER) \
+				  -DCCPP_PREFIX \
+				  -DCODECS_DIR=\"/usr/lib/sflphone/audio/codec\" \
+				  -DPREFIX=\"$(MY_PREFIX)\" \
+				  -DPROGSHAREDIR=\"${MY_DATADIR}/sflphone\" \
+				  -DHAVE_CONFIG_H \
+				  -w \
+				  -std=gnu++0x -frtti -fexceptions -fpermissive \
+				  -DAPP_NAME=\"sflphone\" \
+				  -DSWIG_JAVA_ATTACH_CURRENT_THREAD_AS_DAEMON \
+				  -DDEBUG_DIRECTOR_OWNED
+
+#-L$(APP_PROJECT_PATH)/obj/local/armeabi \
+
+LOCAL_LDLIBS  += -L$(APP_PROJECT_PATH)/obj/local/armeabi \
+		 -L$(APP_PROJECT_PATH)/jni/$(MY_PJPROJECT)/pjsip/lib \
+		 -L$(APP_PROJECT_PATH)/jni/$(MY_PJPROJECT)/pjlib/lib \
+		 -L$(APP_PROJECT_PATH)/jni/$(MY_PJPROJECT)/pjlib-util/lib \
+		 -L$(APP_PROJECT_PATH)/jni/$(MY_PJPROJECT)/pjmedia/lib \
+		 -L$(APP_PROJECT_PATH)/jni/$(MY_PJPROJECT)/pjnath/lib \
+		 -lpjsua-$(TARGET_NAME) \
+		 -lpjsip-ua-$(TARGET_NAME) \
+		 -lpjsip-simple-$(TARGET_NAME) \
+		 -lpjsip-$(TARGET_NAME) \
+		 -lpjmedia-codec-$(TARGET_NAME) \
+		 -lpjmedia-$(TARGET_NAME) \
+		 -lpjnath-$(TARGET_NAME) \
+		 -lpjlib-util-$(TARGET_NAME) \
+		 -lpj-$(TARGET_NAME) \
+		 -lccgnu2 \
+		 -lccrtp1 \
+		 -lsamplerate \
+		 -lspeex \
+		 -lspeexresampler \
+		 -lsamplerate \
+		 -lccrtp1 \
+		 -lyaml \
+		 -ldbus-c++-1 \
+		 -ldbus \
+		 -lexpat \
+		 -lcrypto \
+		 -lssl \
+		 -lz \
+		 -lcodec_ulaw \
+		 -lcodec_alaw \
+		 -llog \
+		 -lOpenSLES \
+		 -lgnustl_shared
+
+# LOCAL_STATIC_LIBRARIES (NDK documentation)
+#   The list of static libraries modules (built with BUILD_STATIC_LIBRARY)
+#   that should be linked to this module. This only makes sense in
+#   shared library modules.
+LOCAL_STATIC_LIBRARIES += libpjsua-$(TARGET_NAME) \
+						  libpjsip-ua-$(TARGET_NAME) \
+						  libpjsip-simple-$(TARGET_NAME) \
+						  libpjsip-$(TARGET_NAME) \
+						  libpjmedia-codec-$(TARGET_NAME) \
+						  libpjmedia-$(TARGET_NAME) \
+						  libpjnath-$(TARGET_NAME) \
+						  libpjlib-util-$(TARGET_NAME) \
+						  libpj-$(TARGET_NAME) \
+						  libspeex \
+						  libdbus-c++-1 \
+						  libdbus \
+
+
+LOCAL_SHARED_LIBRARIES += libccgnu2 \
+						  libccrtp1 \
+						  libexpat_shared \
+						  libsamplerate \
+						  libcodec_ulaw \
+						  libcodec_alaw \
+						  libspeexresampler \
+						  libyaml
+
+include $(BUILD_SHARED_LIBRARY)
+
+
+##### audio #########
+
+include $(CLEAR_VARS)
+
+
+# FIXME
+MY_COMMONCPP=commoncpp2-1.8.1-android
+MY_LIBSAMPLE=libsamplerate-0.1.8
+MY_DBUS=libdbus-c++-0.9.0-android
+
+
+
+
+LOCAL_SRC_FILES := audioloop.cpp \
+		ringbuffer.cpp \
+		mainbuffer.cpp \
+		audiorecord.cpp \
+		audiorecorder.cpp \
+		recordable.cpp \
+		audiolayer.cpp \
+		samplerateconverter.cpp \
+		delaydetection.cpp \
+		gaincontrol.cpp \
+		dcblocker.cpp
+
+LOCAL_C_INCLUDES += $(LOCAL_AUDIO_PATH)/.. \
+			$(LOCAL_AUDIO_PATH)/../.. \
+			$(APP_PROJECT_PATH)/jni/$(MY_COMMONCPP)/inc \
+			$(APP_PROJECT_PATH)/jni/$(MY_DBUS)/include \
+			$(APP_PROJECT_PATH)/jni/$(MY_LIBSAMPLE)/src
+
+LOCAL_MODULE := libaudio
+
+LOCAL_CPPFLAGS += $(NETWORKMANAGER) \
+				  -DCCPP_PREFIX \
+				  -DPREFIX=\"$(MY_PREFIX)\" \
+				  -DPROGSHAREDIR=\"${MY_DATADIR}/sflphone\" \
+				  -DHAVE_CONFIG_H \
+				  -std=gnu++0x -frtti -fpermissive -fexceptions \
+				  -DAPP_NAME=\"audio\"
+
+include $(BUILD_STATIC_LIBRARY)
+
+MY_PJPROJECT=pjproject-android/android
+MY_COMMONCPP=commoncpp2-1.8.1-android
+MY_CCRTP=ccrtp-1.8.0-android
+MY_DBUS=libdbus-c++-0.9.0-android
+MY_SPEEX=speex
+MY_OPENSSL=openssl
+MY_LIBSAMPLE=libsamplerate-0.1.8
+
+########### audiortp ##############
+
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := audio_rtp_session.cpp \
+			audio_symmetric_rtp_session.cpp \
+			audio_rtp_record_handler.cpp \
+			audio_rtp_factory.cpp \
+			audio_srtp_session.cpp
+
+# FIXME
+LOCAL_C_INCLUDES += 	$(LOCAL_PATH) \
+			$(LOCAL_AUDIO_PATH)/audiortp \
+			$(APP_PROJECT_PATH)/jni/$(MY_SPEEX)/include \
+			$(APP_PROJECT_PATH)/jni/$(MY_COMMONCPP)/inc \
+			$(APP_PROJECT_PATH)/jni/$(MY_CCRTP)/src \
+			$(APP_PROJECT_PATH)/jni/$(MY_LIBSAMPLE)/src \
+			$(APP_PROJECT_PATH)/jni/$(MY_DBUS)/include \
+			$(APP_PROJECT_PATH)/jni/$(MY_OPENSSL)/include \
+			$(APP_PROJECT_PATH)/jni/$(MY_PJPROJECT)/pjsip/include \
+			$(APP_PROJECT_PATH)/jni/$(MY_PJPROJECT)/pjlib/include \
+			$(APP_PROJECT_PATH)/jni/$(MY_PJPROJECT)/pjlib-util/include \
+			$(APP_PROJECT_PATH)/jni/$(MY_PJPROJECT)/pjmedia/include
+
+LOCAL_MODULE := librtp
+
+LOCAL_CPPFLAGS += $(NETWORKMANAGER) \
+				  -DCCPP_PREFIX \
+				  -DPREFIX=\"$(MY_PREFIX)\" \
+				  -DPROGSHAREDIR=\"${MY_DATADIR}/sflphone\" \
+				  -DHAVE_CONFIG_H \
+				  -std=gnu++0x -frtti -fpermissive \
+				  -DAPP_NAME=\"audiortp\"
+
+LOCAL_SHARED_LIBRARIES += libccrtp1 libccgnu2
+
+include $(BUILD_STATIC_LIBRARY)
+
+
+MY_COMMONCPP=commoncpp2-1.8.1-android
+MY_CCRTP=ccrtp-1.8.0-android
+
+############# ulaw ###############
+
+include $(CLEAR_VARS)
+
+LOCAL_CODECS_PATH = sflphone/daemon/src/audio/codecs
+
+LOCAL_SRC_FILES := $(LOCAL_CODECS_PATH)/ulaw.cpp \
+		$(LOCAL_CODECS_PATH)/audiocodec.cpp
+
+# FIXME
+LOCAL_C_INCLUDES += $(LOCAL_CODECS_PATH)/.. \
+			$(LOCAL_CODECS_PATH)/../.. \
+			$(APP_PROJECT_PATH)/jni/$(MY_CCRTP)/src \
+			$(APP_PROJECT_PATH)/jni/$(MY_COMMONCPP)/inc 
+
+LOCAL_MODULE := libcodec_ulaw
+
+LOCAL_CPPFLAGS += $(NETWORKMANAGER) \
+				  -DCCPP_PREFIX \
+				  -DPREFIX=\"$(MY_PREFIX)\" \
+				  -DPROGSHAREDIR=\"${MY_DATADIR}/sflphone\" \
+				  -std=gnu++0x -frtti -fpermissive -fexceptions \
+				  -DAPP_NAME=\"codec_ulaw\"
+
+include $(BUILD_SHARED_LIBRARY)
+
+
+
+############# alaw ###############
+
+include $(CLEAR_VARS)
+
+
+
+LOCAL_SRC_FILES := $(LOCAL_CODECS_PATH)/alaw.cpp \
+		$(LOCAL_CODECS_PATH)/audiocodec.cpp
+
+LOCAL_C_INCLUDES += $(LOCAL_CODECS_PATH)/.. \
+			$(LOCAL_CODECS_PATH)/../.. \
+			$(APP_PROJECT_PATH)/jni/$(MY_CCRTP)/src \
+			$(APP_PROJECT_PATH)/jni/$(MY_COMMONCPP)/inc \
+
+LOCAL_MODULE := libcodec_alaw
+LOCAL_CPPFLAGS += $(NETWORKMANAGER) \
+				  -DCCPP_PREFIX \
+				  -DPREFIX=\"$(MY_PREFIX)\" \
+				  -DPROGSHAREDIR=\"${MY_DATADIR}/sflphone\" \
+				  -std=gnu++0x -frtti -fpermissive -fexceptions \
+				  -DAPP_NAME=\"codec_alaw\"
+
+LOCAL_LDFLAGS += -Wl,--export-dynamic
+
+include $(BUILD_SHARED_LIBRARY)
+
+
+############# g722 ###############
+
+include $(CLEAR_VARS)
+
+
+
+LOCAL_SRC_FILES := $(LOCAL_CODECS_PATH)/g722.cpp \
+		$(LOCAL_CODECS_PATH)/audiocodec.cpp
+
+LOCAL_C_INCLUDES += $(LOCAL_CODECS_PATH)/.. \
+			$(LOCAL_CODECS_PATH)/../.. \
+			$(LOCAL_CODECS_PATH)/../../.. \
+			$(APP_PROJECT_PATH)/jni/$(MY_CCRTP)/src \
+			$(APP_PROJECT_PATH)/jni/$(MY_COMMONCPP)/inc 
+
+LOCAL_MODULE := libcodec_g722
+LOCAL_CPPFLAGS += $(NETWORKMANAGER) \
+				  -DCCPP_PREFIX \
+				  -DCODECS_DIR=\"/usr/lib/sflphone/audio/codec\" \
+				  -DPREFIX=\"$(MY_PREFIX)\" \
+				  -DPROGSHAREDIR=\"${MY_DATADIR}/sflphone\" \
+				  -DHAVE_COFIG_H \
+				  -std=gnu++0x -frtti -fpermissive -fexceptions \
+				  -DAPP_NAME=\"codecfactory\"
+
+include $(BUILD_SHARED_LIBRARY)
+
+
+
+############# opus ###############
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := opus.cpp \
+		audiocodec.cpp
+
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. \
+			$(LOCAL_PATH)/../.. \
+			$(LOCAL_PATH)/../../.. \
+			$(APP_PROJECT_PATH)/jni/$(MY_CCRTP)/src \
+			$(APP_PROJECT_PATH)/jni/$(MY_COMMONCPP)/inc 
+
+LOCAL_MODULE := libcodec_opus
+LOCAL_CPPFLAGS += $(NETWORKMANAGER) \
+				  -DCCPP_PREFIX \
+				  -DCODECS_DIR=\"/usr/lib/sflphone/audio/codec\" \
+				  -DPREFIX=\"$(MY_PREFIX)\" \
+				  -DPROGSHAREDIR=\"${MY_DATADIR}/sflphone\" \
+				  -DHAVE_COFIG_H \
+				  -std=gnu++0x -frtti -fpermissive -fexceptions \
+				  -DAPP_NAME=\"codecfactory\"
+
+include $(BUILD_SHARED_LIBRARY)
+
+############# speex #################
+
+#
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+include $(CLEAR_VARS)
+
+LOCAL_ARM_MODE := arm
+
+LOCAL_SPEEX_PATH = speex
+
+LOCAL_SRC_FILES := \
+	$(LOCAL_SPEEX_PATH)/libspeex/mdf.c \
+	$(LOCAL_SPEEX_PATH)/libspeex/preprocess.c \
+	$(LOCAL_SPEEX_PATH)/libspeex/filterbank.c \
+	$(LOCAL_SPEEX_PATH)/libspeex/fftwrap.c \
+	$(LOCAL_SPEEX_PATH)/libspeex/smallft.c
+
+LOCAL_MODULE:= libspeex
+
+
+
+LOCAL_CFLAGS+= -DEXPORT= -DFLOATING_POINT -DUSE_SMALLFT -DVAR_ARRAYS
+LOCAL_CFLAGS+= -O3 -fstrict-aliasing -fprefetch-loop-arrays 
+
+LOCAL_C_INCLUDES += \
+	$(LOCAL_SPEEX_PATH)/include
+
+include $(BUILD_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+
+LOCAL_ARM_MODE := arm
+
+LOCAL_SRC_FILES := \
+	$(LOCAL_SPEEX_PATH)/libspeex/resample.c
+
+LOCAL_MODULE:= libspeexresampler
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_CFLAGS += -DEXPORT= -DFIXED_POINT -DRESAMPLE_FORCE_FULL_SINC_TABLE
+LOCAL_CFLAGS += -O3 -fstrict-aliasing -fprefetch-loop-arrays
+
+ifeq ($(ARCH_ARM_HAVE_NEON),true)
+LOCAL_CFLAGS += -D_USE_NEON
+endif
+
+LOCAL_C_INCLUDES += \
+	$(LOCAL_SPEEX_PATH)/include
+
+include $(BUILD_SHARED_LIBRARY)
+
+
+############# speex_nb ###############
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := speexcodec_nb.cpp \
+		audiocodec.cpp
+
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. \
+			$(LOCAL_PATH)/../.. \
+			$(LOCAL_PATH)/../../.. \
+			$(APP_PROJECT_PATH)/jni/$(MY_CCRTP)/src \
+			$(APP_PROJECT_PATH)/jni/$(MY_COMMONCPP)/inc 
+
+LOCAL_MODULE := libcodec_speex_nb
+LOCAL_CPPFLAGS += $(NETWORKMANAGER) \
+				  -DCCPP_PREFIX \
+				  -DCODECS_DIR=\"/usr/lib/sflphone/audio/codec\" \
+				  -DPREFIX=\"$(MY_PREFIX)\" \
+				  -DPROGSHAREDIR=\"${MY_DATADIR}/sflphone\" \
+				  -DHAVE_COFIG_H \
+				  -std=gnu++0x -frtti -fpermissive -fexceptions \
+				  -DAPP_NAME=\"codecfactory\"
+
+include $(BUILD_SHARED_LIBRARY)
+
+
+
+############# speex_ub ###############
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := speexcodec_ub.cpp \
+		audiocodec.cpp
+
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. \
+			$(LOCAL_PATH)/../.. \
+			$(LOCAL_PATH)/../../.. \
+			$(APP_PROJECT_PATH)/jni/$(MY_CCRTP)/src \
+			$(APP_PROJECT_PATH)/jni/$(MY_COMMONCPP)/inc 
+
+LOCAL_MODULE := libcodec_speex_ub
+LOCAL_CPPFLAGS += $(NETWORKMANAGER) \
+				  -DCCPP_PREFIX \
+				  -DCODECS_DIR=\"/usr/lib/sflphone/audio/codec\" \
+				  -DPREFIX=\"$(MY_PREFIX)\" \
+				  -DPROGSHAREDIR=\"${MY_DATADIR}/sflphone\" \
+				  -DHAVE_COFIG_H \
+				  -std=gnu++0x -frtti -fpermissive -fexceptions \
+				  -DAPP_NAME=\"codecfactory\"
+
+include $(BUILD_SHARED_LIBRARY)
+
+############# speex_wb ###############
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := speexcodec_wb.cpp \
+		audiocodec.cpp
+
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. \
+			$(LOCAL_PATH)/../.. \
+			$(LOCAL_PATH)/../../.. \
+			$(APP_PROJECT_PATH)/jni/$(MY_CCRTP)/src \
+			$(APP_PROJECT_PATH)/jni/$(MY_COMMONCPP)/inc 
+
+LOCAL_MODULE := libcodec_speex_wb
+LOCAL_CPPFLAGS += $(NETWORKMANAGER) \
+				  -DCCPP_PREFIX \
+				  -DCODECS_DIR=\"/usr/lib/sflphone/audio/codec\" \
+				  -DPREFIX=\"$(MY_PREFIX)\" \
+				  -DPROGSHAREDIR=\"${MY_DATADIR}/sflphone\" \
+				  -DHAVE_COFIG_H \
+				  -std=gnu++0x -frtti -fpermissive -fexceptions \
+				  -DAPP_NAME=\"codecfactory\"
+
+include $(BUILD_SHARED_LIBRARY)
+
+
+########### opensl  #############
+
+
+# FIXME
+MY_COMMONCPP=commoncpp2-1.8.1-android
+MY_CCRTP=ccrtp-1.8.0-android
+MY_LIBSAMPLE=libsamplerate-0.1.8
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := opensllayer.cpp
+
+# FIXME
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. \
+			$(LOCAL_PATH)/../.. \
+			$(APP_PROJECT_PATH)/jni/$(MY_COMMONCPP)/inc \
+			$(APP_PROJECT_PATH)/jni/$(MY_CCRTP)/src \
+			$(APP_PROJECT_PATH)/jni/$(MY_LIBSAMPLE)/src
+
+
+
+LOCAL_MODULE := libopensl
+LOCAL_CPPFLAGS += $(NETWORKMANAGER) \
+				  -DCCPP_PREFIX \
+				  -DPREFIX=\"$(MY_PREFIX)\" \
+				  -DPROGSHAREDIR=\"${MY_DATADIR}/sflphone\" \
+				  -DHAVE_CONFIG_H \
+				  -std=gnu++0x -frtti -fpermissive \
+				  -DAPP_NAME=\"openSL\"
+
+LOCAL_SHARED_LIBRARIES += libOpenSLES
+
+include $(BUILD_STATIC_LIBRARY)
+
+
+
+#############  sound  #################
+
+include $(CLEAR_VARS)
+
+# FIXME
+MY_COMMONCPP=commoncpp2-1.8.1-android
+MY_CCRTP=ccrtp-1.8.0-android
+MY_LIBSAMPLE=libsamplerate-0.1.8
+
+LOCAL_SOUND_PATH = sflphone/daemon/src/audio/sound
+
+LOCAL_SRC_FILES := $(LOCAL_SOUND_PATH)/audiofile.cpp \
+		$(LOCAL_SOUND_PATH)/tone.cpp \
+		$(LOCAL_SOUND_PATH)/tonelist.cpp \
+		$(LOCAL_SOUND_PATH)/dtmf.cpp \
+		$(LOCAL_SOUND_PATH)/dtmfgenerator.cpp
+
+# FIXME
+LOCAL_C_INCLUDES += $(LOCAL_SOUND_PATH)/.. \
+					$(LOCAL_SOUND_PATH)/../.. \
+					$(APP_PROJECT_PATH)/jni/$(MY_COMMONCPP)/inc \
+					$(APP_PROJECT_PATH)/jni/$(MY_CCRTP)/src \
+					$(APP_PROJECT_PATH)/jni/$(MY_LIBSAMPLE)/src \
+
+LOCAL_MODULE := libsound
+
+LOCAL_CPPFLAGS += $(NETWORKMANAGER) \
+				  -DCCPP_PREFIX \
+				  -DPREFIX=\"$(MY_PREFIX)\" \
+				  -DPROGSHAREDIR=\"${MY_DATADIR}/sflphone\" \
+				  -DHAVE_CONFIG_H \
+				  -std=gnu++0x -frtti -fpermissive -fexceptions \
+				  -DAPP_NAME=\"sound\"
+
+include $(BUILD_STATIC_LIBRARY)
+
+
+###########  video ##############
+
+# FIXME
+MY_PREFIX=/sdcard
+MY_DATADIR=
+MY_PJPROJECT="pjproject-android"
+MY_PJDIR=
+MY_COMMONCPP=commoncpp2-1.8.1-android
+MY_CCRTP=ccrtp-1.8.0-android
+MY_LIBSAMPLE=libsamplerate-0.1.8
+
+# FIXME
+ifneq ($(SFL_VIDEO),)
+video_SOURCES += video_controls.cpp
+video_controls-glue.h: video_controls-introspec.xml Makefile.am
+	dbusxx-xml2cpp $< --adaptor=$@
+endif
+
+ifneq ($(USE_NETWORKMANAGER),)
+network_SOURCES += networkmanager.cpp
+NETWORKMANAGER = -DUSE_NETWORKMANAGER
+endif
+
+include $(CLEAR_VARS)
+
+# FIXME
+# Rule to generate the binding headers
+%-glue.h: %-introspec.xml Android.mk
+	dbusxx-xml2cpp $< --adaptor=$@
+
+LOCAL_SRC_FILES := $(video_SOURCES) $(network_SOURCES) \
+	android/callmanager.cpp \
+    android/configurationmanager.cpp  \
+    android/instance.cpp  \
+#    dbusmanager.cpp \
+#    callmanager-glue.h              \
+#    configurationmanager-glue.h     \
+    android/instance-glue.h
+
+# FIXME
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. \
+					$(LOCAL_PATH)/../.. \
+					$(LOCAL_PATH)/../sip \
+					$(LOCAL_PATH)/../config \
+					$(LOCAL_PATH)/../history \
+					$(APP_PROJECT_PATH)/jni/$(MY_COMMONCPP)/inc \
+					$(APP_PROJECT_PATH)/jni/$(MY_CCRTP)/src \
+					$(APP_PROJECT_PATH)/jni/$(MY_LIBSAMPLE)/src \
+					$(APP_PROJECT_PATH)/jni/$(MY_PJPROJECT)/third_party/speex/include \
+					$(APP_PROJECT_PATH)/jni/$(MY_PJPROJECT)/third_party/build/speex \
+					$(APP_PROJECT_PATH)/jni/$(MY_PJPROJECT)/pjsip/include \
+					$(APP_PROJECT_PATH)/jni/$(MY_PJPROJECT)/pjlib/include \
+					$(APP_PROJECT_PATH)/jni/$(MY_PJPROJECT)/pjlib-util/include \
+					$(APP_PROJECT_PATH)/jni/$(MY_PJPROJECT)/pjmedia/include \
+					$(APP_PROJECT_PATH)/jni/$(MY_PJPROJECT)/pjnath/include \
+
+#LOCAL_CPP_EXTENSION := .cpp .h
+
+LOCAL_MODULE := libdbus-glue
+LOCAL_CPPFLAGS += $(NETWORKMANAGER) \
+				  -DPREFIX=\"$(MY_PREFIX)\" \
+				  -DPROGSHAREDIR=\"${MY_DATADIR}/sflphone\" \
+				  -DHAVE_CONFIG_H \
+				  -std=gnu++0x -frtti -fpermissive \
+				  -DAPP_NAME=\"dbus-glue\"
+
+LOCAL_SHARED_LIBRARIES += libdbus-c++-1
+
+include $(BUILD_STATIC_LIBRARY)
+
+
+
+
+################ history ####################
+
+
+MY_COMMONCPP=commoncpp2-1.8.1-android
+MY_LIBSAMPLE=libsamplerate-0.1.8
+MY_DBUS=libdbus-c++-0.9.0-android
+
+
+include $(CLEAR_VARS)
+
+LOCAL_HISTORY_PATH = sflphone/daemon/src/history
+
+LOCAL_SRC_FILES := $(LOCAL_HISTORY_PATH)/historyitem.cpp \
+		$(LOCAL_HISTORY_PATH)/history.cpp \
+		$(LOCAL_HISTORY_PATH)/historynamecache.cpp
+
+LOCAL_C_INCLUDES += 	$(APP_PROJECT_PATH)/jni/$(MY_COMMONCPP)/inc \
+			$(APP_PROJECT_PATH)/jni/$(MY_DBUS)/include \
+			$(APP_PROJECT_PATH)/jni/$(MY_LIBSAMPLE)/src
+
+LOCAL_MODULE := libhistory
+
+LOCAL_CPPFLAGS += $(NETWORKMANAGER) \
+				  -DCCPP_PREFIX \
+				  -DPREFIX=\"$(MY_PREFIX)\" \
+				  -DPROGSHAREDIR=\"${MY_DATADIR}/sflphone\" \
+				  -DHAVE_CONFIG_H \
+				  -std=gnu++0x -frtti -fpermissive -fexceptions \
+				  -DAPP_NAME=\"history\"
+
+
+include $(BUILD_STATIC_LIBRARY)
+
+
+################ hooks ####################
+
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := sflphone/daemon/src/hooks/urlhook.cpp
+
+LOCAL_MODULE := libhooks
+LOCAL_CPPFLAGS += $(NETWORKMANAGER) \
+				  -DCCPP_PREFIX \
+				  -DPREFIX=\"$(MY_PREFIX)\" \
+				  -DPROGSHAREDIR=\"${MY_DATADIR}/sflphone\" \
+				  -DHAVE_CONFIG_H \
+				  -std=gnu++0x -frtti -fpermissive -fexceptions \
+				  -DAPP_NAME=\"hooks\"
+
+
+include $(BUILD_STATIC_LIBRARY)
+
+
+################ im ####################
+
+MY_PJPROJECT="pjproject-android/android"
+MY_EXPAT="libexpat"
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := sflphone/daemon/src/im/instant_messaging.cpp
+
+# FIXME
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/include-all
+
+
+LOCAL_MODULE := libim
+
+include $(BUILD_STATIC_LIBRARY)
+
+################ sip ####################
+
+include $(CLEAR_VARS)
+
+# FIXME
+MY_PREFIX=/sdcard
+MY_DATADIR=
+MY_PJPROJECT="pjproject-android"
+MY_PJDIR=
+MY_COMMONCPP=commoncpp2-1.8.1-android
+MY_CCRTP=ccrtp-1.8.0-android
+MY_LIBSAMPLE=libsamplerate-0.1.8
+MY_YAML=libyaml
+
+# FIXME
+ifneq ($(BUILD_SDES),)
+libsiplink_la_SOURCES += sdes_negotiator.cpp \
+						 pattern.cpp
+
+libsiplink_la_CXXFLAGS = \
+		@PCRE_LIBS@
+endif
+
+include $(CLEAR_VARS)
+
+LOCAL_SIP_PATH = sflphone/daemon/src/sip
+
+LOCAL_SRC_FILES := \
+		$(LOCAL_SIP_PATH)/sdp.cpp \
+		$(LOCAL_SIP_PATH)/sipaccount.cpp \
+		$(LOCAL_SIP_PATH)/sipcall.cpp \
+		$(LOCAL_SIP_PATH)/sipvoiplink.cpp \
+		$(LOCAL_SIP_PATH)/siptransport.cpp \
+		$(LOCAL_SIP_PATH)/sip_utils.cpp
+
+# FIXME
+LOCAL_C_INCLUDES += 	$(LOCAL_PATH) \	$(APP_PROJECT_PATH)/jni/$(MY_PJPROJECT)/third_party/build/speex \
+			$(APP_PROJECT_PATH)/jni/$(MY_PJPROJECT)/third_party/speex/include \
+			$(APP_PROJECT_PATH)/jni/$(MY_PJPROJECT)/pjmedia/include \
+			$(APP_PROJECT_PATH)/jni/$(MY_PJPROJECT)/pjlib/include \
+			$(APP_PROJECT_PATH)/jni/$(MY_PJPROJECT)/pjsip/include \
+			$(APP_PROJECT_PATH)/jni/$(MY_PJPROJECT)/pjlib-util/include \
+			$(APP_PROJECT_PATH)/jni/$(MY_PJPROJECT)/pjnath/include \
+			$(APP_PROJECT_PATH)/jni/$(MY_COMMONCPP)/inc \
+			$(APP_PROJECT_PATH)/jni/$(MY_LIBSAMPLE)/src \
+			$(APP_PROJECT_PATH)/jni/$(MY_CCRTP)/src \
+			$(APP_PROJECT_PATH)/jni/$(MY_YAML)/inc \
+			$(LOCAL_PATH)/../../libs/iax2 
+
+#LOCAL_CPP_EXTENSION := .cpp .h
+
+LOCAL_MODULE := libsiplink
+LOCAL_CPPFLAGS += $(NETWORKMANAGER) \
+				  -DPREFIX=\"$(MY_PREFIX)\" \
+				  -DPROGSHAREDIR=\"${MY_DATADIR}/sflphone\" \
+				  -DHAVE_CONFIG_H \
+				  -std=gnu++0x -frtti -fpermissive \
+				  -DAPP_NAME=\"sip\"
+
+LOCAL_SHARED_LIBRARIES += libdbus-c++-1
+
+include $(BUILD_STATIC_LIBRARY)
+
+
+################ sdes ####################
+
+
+# FIXME
+MY_PREFIX=/sdcard
+MY_DATADIR=
+MY_PJPROJECT="pjproject-android"
+MY_PJDIR=
+MY_COMMONCPP=commoncpp2-1.8.1-android
+MY_CCRTP=ccrtp-1.8.0-android
+MY_LIBSAMPLE=libsamplerate-0.1.8
+MY_YAML=libyaml
+
+# FIXME
+ifneq ($(BUILD_SDES),)
+libsiplink_la_SOURCES += sdes_negotiator.cpp \
+						 pattern.cpp
+
+libsiplink_la_CXXFLAGS = \
+		@PCRE_LIBS@
+endif
+
+
+################# common cpp ####################
+
+include $(CLEAR_VARS)
+
+LT_VERSION = "0:1"
+LT_RELEASE = "1.8"
+SHARED_FLAGS = "-no-undefined"
+
+LOCAL_COMMONCPP_PATH = commoncpp2-1.8.1-android/src
+
+LOCAL_CPPFLAGS   += -std=gnu++0x -Wno-psabi -frtti -pthread -fexceptions
+LOCAL_MODULE     := libccgnu2
+LOCAL_LDLIBS     := -L$(SYSROOT)/usr/lib
+
+LOCAL_C_INCLUDES += $(LOCAL_COMMONCPP_PATH)/.. \
+			$(LOCAL_COMMONCPP_PATH)/../inc
+		
+
+LOCAL_SRC_FILES  := $(LOCAL_COMMONCPP_PATH)/thread.cpp \
+		$(LOCAL_COMMONCPP_PATH)/mutex.cpp \
+		$(LOCAL_COMMONCPP_PATH)/semaphore.cpp \
+		$(LOCAL_COMMONCPP_PATH)/threadkey.cpp \
+		$(LOCAL_COMMONCPP_PATH)/friends.cpp \
+		$(LOCAL_COMMONCPP_PATH)/event.cpp \
+		$(LOCAL_COMMONCPP_PATH)/slog.cpp \
+		$(LOCAL_COMMONCPP_PATH)/dir.cpp \
+		$(LOCAL_COMMONCPP_PATH)/file.cpp \
+		$(LOCAL_COMMONCPP_PATH)/inaddr.cpp \
+		$(LOCAL_COMMONCPP_PATH)/peer.cpp \
+		$(LOCAL_COMMONCPP_PATH)/timer.cpp \
+		$(LOCAL_COMMONCPP_PATH)/socket.cpp \
+		$(LOCAL_COMMONCPP_PATH)/strchar.cpp \
+		$(LOCAL_COMMONCPP_PATH)/simplesocket.cpp \
+		$(LOCAL_COMMONCPP_PATH)/mempager.cpp \
+		$(LOCAL_COMMONCPP_PATH)/keydata.cpp \
+		$(LOCAL_COMMONCPP_PATH)/dso.cpp \
+		$(LOCAL_COMMONCPP_PATH)/exception.cpp \
+		$(LOCAL_COMMONCPP_PATH)/missing.cpp \
+		$(LOCAL_COMMONCPP_PATH)/process.cpp \
+		$(LOCAL_COMMONCPP_PATH)/string.cpp \
+		$(LOCAL_COMMONCPP_PATH)/in6addr.cpp \
+		$(LOCAL_COMMONCPP_PATH)/buffer.cpp \
+		$(LOCAL_COMMONCPP_PATH)/lockfile.cpp \
+		$(LOCAL_COMMONCPP_PATH)/nat.cpp \
+		$(LOCAL_COMMONCPP_PATH)/runlist.cpp \
+		$(LOCAL_COMMONCPP_PATH)/assoc.cpp \
+		$(LOCAL_COMMONCPP_PATH)/pointer.cpp \
+		$(LOCAL_COMMONCPP_PATH)/linked.cpp \
+		$(LOCAL_COMMONCPP_PATH)/map.cpp \
+		$(LOCAL_COMMONCPP_PATH)/cidr.cpp
+
+#LOCAL_LDFLAGS    := -version-info $(LT_VERSION) -release $(LT_RELEASE) $(SHARED_FLAGS)
+
+include $(BUILD_SHARED_LIBRARY)
+
+
+########## libsamplerate ###################
+
+
+# We need to build this for both the device (as a shared library)
+# and the host (as a static library for tools to use).
+
+common_SRC_FILES := libsamplerate-0.1.8/src/samplerate.c \
+                    libsamplerate-0.1.8/src/src_sinc.c \
+			libsamplerate-0.1.8/src/src_zoh.c \
+			libsamplerate-0.1.8/src/src_linear.c
+
+# For the device
+# =====================================================
+
+# Device shared library
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := $(common_SRC_FILES)
+LOCAL_CFLAGS += -Werror -g
+LOCAL_LDFLAGS := 
+LOCAL_C_INCLUDES += libsamplerate-0.1.8/
+
+LOCAL_MODULE:= libsamplerate
+
+include $(BUILD_SHARED_LIBRARY)
+
+
+
+################# libexpat ####################
+
+include $(CLEAR_VARS)
+
+# We need to build this for both the device (as a shared library)
+# and the host (as a static library for tools to use).
+
+common_SRC_FILES :=  \
+	libexpat/xmlparse.c \
+	libexpat/xmlrole.c \
+	libexpat/xmltok.c
+
+common_CFLAGS := -Wall -Wmissing-prototypes -Wstrict-prototypes -fexceptions -DHAVE_EXPAT_CONFIG_H
+
+common_COPY_HEADERS_TO := libexpat
+common_COPY_HEADERS := libexpat/ \
+	libexpat/lib/expat.h \
+	libexpat/lib/expat_external.h
+
+# For the device
+# =====================================================
+
+# Device static library
+include $(CLEAR_VARS)
+
+ifeq ($(TARGET_ARCH),arm)
+LOCAL_NDK_VERSION := 4
+LOCAL_SDK_VERSION := 8
+endif
+
+LOCAL_SRC_FILES := $(common_SRC_FILES)
+LOCAL_CFLAGS += $(common_CFLAGS)
+LOCAL_C_INCLUDES += libexpat
+
+LOCAL_MODULE:= libexpat_static
+LOCAL_MODULE_FILENAME := libexpat
+LOCAL_MODULE_TAGS := optional
+
+include $(BUILD_STATIC_LIBRARY)
+
+# Device shared library
+include $(CLEAR_VARS)
+
+ifeq ($(TARGET_ARCH),arm)
+LOCAL_NDK_VERSION := 4
+LOCAL_SDK_VERSION := 8
+endif
+
+LOCAL_SRC_FILES := $(common_SRC_FILES)
+LOCAL_CFLAGS += $(common_CFLAGS)
+LOCAL_C_INCLUDES += libexpat
+
+LOCAL_MODULE:= libexpat_shared
+LOCAL_MODULE_FILENAME := libexpat
+LOCAL_MODULE_TAGS := optional
+LOCAL_COPY_HEADERS_TO := $(common_COPY_HEADERS_TO)
+LOCAL_COPY_HEADERS := $(common_COPY_HEADERS)
+
+include $(BUILD_SHARED_LIBRARY)
+
+
+
+
+########### ccrtp1 ####################
+
+
+include $(CLEAR_VARS)
+
+LOCAL_CCRTP1_PATH = ccrtp-1.8.0-android/src
+
+LT_VERSION = 
+LT_RELEASE = 
+SHARED_FLAGS = "-no-undefined"
+SRTP_OPENSSL =
+SRTP_GCRYPT =
+
+#LOCAL_CPPFLAGS   += -Wno-psabi -frtti -pthread -fexceptions
+LOCAL_CPPFLAGS   += -std=gnu++0x -fexceptions
+LOCAL_C_INCLUDES +=  $(LOCAL_CCRTP1_PATH) \
+			$(LOCAL_CCRTP1_PATH)/../../commoncpp2-1.8.1-android/inc \
+		    	$(LOCAL_CCRTP1_PATH)/../../openssl/include
+LOCAL_MODULE     := libccrtp1
+LOCAL_SHARED_LIBRARIES += libccgnu2 \
+						  libssl_shared
+LOCAL_LDLIBS     := -L$(SYSROOT)/usr/lib \
+                    -L$(APP_PROJECT_PATH)/obj/local/armeabi \
+                    -lccgnu2 \
+		    -lssl \
+		    -lcrypto
+LOCAL_CPP_EXTENSION := .cxx .cpp
+
+SRTP_SRC_O = 	$(LOCAL_CCRTP1_PATH)/ccrtp/crypto/openssl/hmac.cpp \
+		$(LOCAL_CCRTP1_PATH)/ccrtp/crypto/openssl/AesSrtp.cxx \
+		$(LOCAL_CCRTP1_PATH)/ccrtp/crypto/openssl/InitializeOpenSSL.cxx
+
+ifneq ($(SRTP_GCRYPT),)
+SRTP_SRC_G =    $(LOCAL_CCRTP1_PATH)/ccrtp/crypto/gcrypt/gcrypthmac.cxx \
+		$(LOCAL_CCRTP1_PATH)/ccrtp/crypto/gcrypt/gcryptAesSrtp.cxx \
+		$(LOCAL_CCRTP1_PATH)/ccrtp/crypto/gcrypt/InitializeGcrypt.cxx
+endif
+
+SKEIN_SRCS = $(LOCAL_CCRTP1_PATH)/ccrtp/crypto/macSkein.cpp \
+        $(LOCAL_CCRTP1_PATH)/ccrtp/crypto/skein.c \
+        $(LOCAL_CCRTP1_PATH)/ccrtp/crypto/skein_block.c \
+        $(LOCAL_CCRTP1_PATH)/ccrtp/crypto/skeinApi.c
+
+LOCAL_SRC_FILES  := $(LOCAL_CCRTP1_PATH)/rtppkt.cpp \
+			$(LOCAL_CCRTP1_PATH)/rtcppkt.cpp \
+			$(LOCAL_CCRTP1_PATH)/source.cpp \
+			$(LOCAL_CCRTP1_PATH)/data.cpp \
+			$(LOCAL_CCRTP1_PATH)/incqueue.cpp \
+			$(LOCAL_CCRTP1_PATH)/outqueue.cpp \
+			$(LOCAL_CCRTP1_PATH)/queue.cpp \
+			$(LOCAL_CCRTP1_PATH)/control.cpp \
+			$(LOCAL_CCRTP1_PATH)/members.cpp \
+			$(LOCAL_CCRTP1_PATH)/socket.cpp \
+			$(LOCAL_CCRTP1_PATH)/duplex.cpp $(LOCAL_CCRTP1_PATH)/pool.cpp \
+			$(LOCAL_CCRTP1_PATH)/CryptoContext.cxx $(SRTP_SRC_G) $(SRTP_SRC_O) $(SKEIN_SRCS)
+
+
+#LOCAL_LDFLAGS    := -version-info $(LT_VERSION) -release $(LT_RELEASE) $(SHARED_FLAGS)
+
+include $(BUILD_SHARED_LIBRARY)
+
+
+############### libyaml ##################
+
+include $(CLEAR_VARS)
+
+LOCAL_CFLAGS := -DYAML_VERSION_STRING=\"0.1.4\" \
+				-DYAML_VERSION_MAJOR=0 \
+				-DYAML_VERSION_MINOR=1 \
+				-DYAML_VERSION_PATCH=4
+LOCAL_MODULE     := libyaml
+LOCAL_LDLIBS     := -L$(SYSROOT)/usr/lib
+LOCAL_SRC_FILES  := libyaml/api.c libyaml/reader.c libyaml/scanner.c \
+                    libyaml/parser.c libyaml/loader.c libyaml/writer.c libyaml/emitter.c libyaml/dumper.c
+LOCAL_C_INCLUDES += libyaml/inc
+
+include $(BUILD_SHARED_LIBRARY)
+
+############### libdbus-c++ ##################
+
+include $(CLEAR_VARS)
+
+LOCAL_DBUSCPP_PATH = libdbus-c++-0.9.0-android/src
+
+LOCAL_SRC_FILES := $(LOCAL_DBUSCPP_PATH)/connection.cpp    \
+	$(LOCAL_DBUSCPP_PATH)/debug.cpp    \
+	$(LOCAL_DBUSCPP_PATH)/dispatcher.cpp    \
+	$(LOCAL_DBUSCPP_PATH)/error.cpp    \
+	$(LOCAL_DBUSCPP_PATH)/eventloop.cpp    \
+	$(LOCAL_DBUSCPP_PATH)/eventloop-integration.cpp    \
+	$(LOCAL_DBUSCPP_PATH)/interface.cpp    \
+	$(LOCAL_DBUSCPP_PATH)/introspection.cpp    \
+	$(LOCAL_DBUSCPP_PATH)/message.cpp    \
+	$(LOCAL_DBUSCPP_PATH)/object.cpp    \
+	$(LOCAL_DBUSCPP_PATH)/pendingcall.cpp    \
+	$(LOCAL_DBUSCPP_PATH)/pipe.cpp    \
+	$(LOCAL_DBUSCPP_PATH)/property.cpp    \
+	$(LOCAL_DBUSCPP_PATH)/server.cpp    \
+	$(LOCAL_DBUSCPP_PATH)/types.cpp
+
+LOCAL_C_INCLUDES += $(LOCAL_DBUSCPP_PATH)/../include \
+                    $(LOCAL_DBUSCPP_PATH)/../../dbus
+
+LOCAL_EXPORT_C_INCLUDES += $(LOCAL_DBUSCPP_PATH)/include
+
+LOCAL_MODULE := libdbus-c++-1
+LOCAL_CFLAGS += -Wno-unused-parameter -fexceptions -frtti
+LOCAL_SHARED_LIBRARIES += libdbus
+
+include $(BUILD_SHARED_LIBRARY)
+
+
+################# dbus-daemon ########################
+
+
+include $(CLEAR_VARS)
+
+LOCAL_DBUS_PATH = dbus/bus
+
+# FIXME
+LOCAL_C_INCLUDES:= \
+	$(call include-path-for, dbus) \
+	$(call include-path-for, dbus)/dbus \
+	$(LOCAL_DBUS_PATH)/.. \
+	$(LOCAL_DBUS_PATH)/../../libexpat
+
+LOCAL_CFLAGS:=-O3
+LOCAL_CFLAGS+=-DDBUS_COMPILATION
+#LOCAL_CFLAGS+=-DDBUS_MACHINE_UUID_FILE=\"/system/etc/machine-id\"
+LOCAL_CFLAGS+=-DDBUS_DAEMON_NAME=\"dbus-daemon\"
+LOCAL_CFLAGS+=-DDBUS_SYSTEM_CONFIG_FILE=\"/system/etc/dbus.conf\"
+LOCAL_CFLAGS+=-DDBUS_SESSION_CONFIG_FILE=\"/system/etc/session.conf\"
+
+# We get warning in the _DBUS_ASSERT_ERROR_IS_SET macro.  Suppress
+# this warning so that we can compile with Werror.  The warning
+# is also ignored in dbus-1.4.6.
+LOCAL_CFLAGS+=-Wno-address
+
+LOCAL_LDFLAGS += -L$(APP_PROJECT_PATH)/obj/local/armeabi -lexpat
+
+LOCAL_SRC_FILES:= \
+	$(LOCAL_DBUS_PATH)activation.c \
+	$(LOCAL_DBUS_PATH)bus.c \
+	$(LOCAL_DBUS_PATH)config-loader-expat.c \
+	$(LOCAL_DBUS_PATH)config-parser.c \
+    	$(LOCAL_DBUS_PATH)config-parser-common.c \
+	$(LOCAL_DBUS_PATH)connection.c \
+	$(LOCAL_DBUS_PATH)desktop-file.c \
+	$(LOCAL_DBUS_PATH)dir-watch-default.c \
+	$(LOCAL_DBUS_PATH)dispatch.c \
+	$(LOCAL_DBUS_PATH)driver.c \
+	$(LOCAL_DBUS_PATH)expirelist.c \
+	$(LOCAL_DBUS_PATH)main.c \
+	$(LOCAL_DBUS_PATH)policy.c \
+	$(LOCAL_DBUS_PATH)selinux.c \
+	$(LOCAL_DBUS_PATH)services.c \
+	$(LOCAL_DBUS_PATH)signals.c \
+	$(LOCAL_DBUS_PATH)utils.c
+
+LOCAL_SHARED_LIBRARIES := \
+	libexpat_shared \
+	libdbus
+
+LOCAL_MODULE:=dbus-daemon
+
+include $(BUILD_EXECUTABLE)
+
+
+# common
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := dbus/tools/dbus-print-message.c
+LOCAL_C_INCLUDES += $(call include-path-for, dbus) \
+                    dbus/tools/..
+
+LOCAL_SHARED_LIBRARIES += libdbus
+LOCAL_CFLAGS += \
+	-DDBUS_COMPILATION \
+	-DDBUS_MACHINE_UUID_FILE=\"/etc/machine-id\"
+LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
+LOCAL_MODULE_TAGS := eng
+LOCAL_MODULE := libdbus-tools-common
+include $(BUILD_STATIC_LIBRARY)
+
+# dbus-monitor
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := dbus/tools/dbus-monitor.c
+LOCAL_C_INCLUDES += $(call include-path-for, dbus) \
+                    dbus/tools//..
+
+LOCAL_SHARED_LIBRARIES += libdbus
+LOCAL_STATIC_LIBRARIES += libdbus-tools-common
+LOCAL_CFLAGS += \
+	-DDBUS_COMPILATION \
+	-DDBUS_MACHINE_UUID_FILE=\"/etc/machine-id\"
+LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
+LOCAL_MODULE_TAGS := eng
+LOCAL_MODULE := dbus-monitor
+include $(BUILD_EXECUTABLE)
+
+# dbus-send
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := dbus/tools/dbus-send.c
+LOCAL_C_INCLUDES += $(call include-path-for, dbus) \
+                    dbus/tools//..
+LOCAL_SHARED_LIBRARIES += libdbus
+
+LOCAL_STATIC_LIBRARIES += libdbus-tools-common
+LOCAL_CFLAGS += \
+	-DDBUS_COMPILATION \
+	-DDBUS_MACHINE_UUID_FILE=\"/etc/machine-id\"
+LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
+LOCAL_MODULE_TAGS := eng
+LOCAL_MODULE := dbus-send
+include $(BUILD_EXECUTABLE)
+
+# Set to true to write libdbus logs to logcat instead of stderr
+# See also config.h to turn on verbose logs
+LOG_TO_ANDROID_LOGCAT := false
+
+###################### dbus ########################
+include $(CLEAR_VARS)
+
+LOCAL_DBUS_PATH = dbus/dbus
+
+LOCAL_SRC_FILES:= \
+	$(LOCAL_DBUS_PATH)/dbus-address.c \
+	$(LOCAL_DBUS_PATH)/dbus-auth.c \
+	$(LOCAL_DBUS_PATH)/dbus-bus.c \
+	$(LOCAL_DBUS_PATH)/dbus-connection.c \
+	$(LOCAL_DBUS_PATH)/dbus-credentials.c \
+	$(LOCAL_DBUS_PATH)/dbus-dataslot.c \
+	$(LOCAL_DBUS_PATH)/dbus-errors.c \
+	$(LOCAL_DBUS_PATH)/dbus-file.c \
+	$(LOCAL_DBUS_PATH)/dbus-file-unix.c \
+	$(LOCAL_DBUS_PATH)/dbus-hash.c \
+	$(LOCAL_DBUS_PATH)/dbus-internals.c \
+	$(LOCAL_DBUS_PATH)/dbus-keyring.c \
+	$(LOCAL_DBUS_PATH)/dbus-list.c \
+	$(LOCAL_DBUS_PATH)/dbus-mainloop.c \
+	$(LOCAL_DBUS_PATH)/dbus-marshal-basic.c \
+	$(LOCAL_DBUS_PATH)/dbus-marshal-byteswap.c \
+	$(LOCAL_DBUS_PATH)/dbus-marshal-header.c \
+	$(LOCAL_DBUS_PATH)/dbus-marshal-recursive.c \
+	$(LOCAL_DBUS_PATH)/dbus-marshal-validate.c \
+	$(LOCAL_DBUS_PATH)/dbus-mempool.c \
+	$(LOCAL_DBUS_PATH)/dbus-memory.c \
+	$(LOCAL_DBUS_PATH)/dbus-message.c \
+	$(LOCAL_DBUS_PATH)/dbus-nonce.c \
+	$(LOCAL_DBUS_PATH)/dbus-pending-call.c \
+	$(LOCAL_DBUS_PATH)/dbus-pipe.c \
+	$(LOCAL_DBUS_PATH)/dbus-pipe-unix.c \
+	$(LOCAL_DBUS_PATH)/dbus-resources.c \
+	$(LOCAL_DBUS_PATH)/dbus-server.c \
+	$(LOCAL_DBUS_PATH)/dbus-server-socket.c \
+	$(LOCAL_DBUS_PATH)/dbus-server-unix.c \
+	$(LOCAL_DBUS_PATH)/dbus-sha.c \
+	$(LOCAL_DBUS_PATH)/dbus-shell.c \
+	$(LOCAL_DBUS_PATH)/dbus-signature.c \
+	$(LOCAL_DBUS_PATH)/dbus-spawn.c \
+	$(LOCAL_DBUS_PATH)/dbus-string.c \
+	$(LOCAL_DBUS_PATH)/dbus-string-util.c \
+	$(LOCAL_DBUS_PATH)/dbus-sysdeps.c \
+	$(LOCAL_DBUS_PATH)/dbus-sysdeps-pthread.c \
+	$(LOCAL_DBUS_PATH)/dbus-sysdeps-unix.c \
+	$(LOCAL_DBUS_PATH)/dbus-sysdeps-util-unix.c \
+	$(LOCAL_DBUS_PATH)/dbus-timeout.c \
+	$(LOCAL_DBUS_PATH)/dbus-threads.c \
+	$(LOCAL_DBUS_PATH)/dbus-transport.c \
+	$(LOCAL_DBUS_PATH)/dbus-transport-socket.c \
+	$(LOCAL_DBUS_PATH)/dbus-transport-unix.c \
+	$(LOCAL_DBUS_PATH)/dbus-object-tree.c \
+	$(LOCAL_DBUS_PATH)/dbus-userdb.c \
+	$(LOCAL_DBUS_PATH)/dbus-userdb-util.c \
+	$(LOCAL_DBUS_PATH)/dbus-watch.c \
+	$(LOCAL_DBUS_PATH)/sd-daemon.c \
+
+# FIXME
+LOCAL_C_INCLUDES+= \
+	$(LOCAL_DBUS_PATH)/.. \
+	$(call include-path-for, dbus)
+
+LOCAL_MODULE:=libdbus
+
+# FIXME
+LOCAL_CFLAGS+= \
+	-DDBUS_COMPILATION \
+	-UANDROID_MANAGED_SOCKET \
+    	-UANDROID_ATOMIC \
+	-DDBUS_MACHINE_UUID_FILE=\"/etc/machine-id\" \
+	-DDBUS_SYSTEM_CONFIG_FILE=\"/system/etc/dbus.conf\" \
+	-DDBUS_SESSION_CONFIG_FILE=\"/system/etc/session.conf\" \
+
+ifeq ($(LOG_TO_ANDROID_LOGCAT),true)
+LOCAL_CFLAGS+= -DDBUS_ANDROID_LOG
+LOCAL_STATIC_LIBRARIES+= libcutils
+endif
+
+include $(BUILD_SHARED_LIBRARY)
+
+
+############### openssl-apps ###################
+include $(CLEAR_VARS)
+# Copyright 2006 The Android Open Source Project
+
+LOCAL_APP_OPENSSL = openssl/apps
+
+local_src_files:= $(LOCAL_APP_OPENSSL)/app_rand.c \
+	$(LOCAL_APP_OPENSSL)/apps.c \
+	$(LOCAL_APP_OPENSSL)/asn1pars.c \
+	$(LOCAL_APP_OPENSSL)/ca.c \
+	$(LOCAL_APP_OPENSSL)/ciphers.c \
+	$(LOCAL_APP_OPENSSL)/crl.c \
+	$(LOCAL_APP_OPENSSL)/crl2p7.c \
+	$(LOCAL_APP_OPENSSL)/dgst.c \
+	$(LOCAL_APP_OPENSSL)/dh.c \
+	$(LOCAL_APP_OPENSSL)/dhparam.c \
+	$(LOCAL_APP_OPENSSL)/dsa.c \
+	$(LOCAL_APP_OPENSSL)/dsaparam.c \
+	$(LOCAL_APP_OPENSSL)/ecparam.c \
+	$(LOCAL_APP_OPENSSL)/ec.c \
+	$(LOCAL_APP_OPENSSL)/enc.c \
+	$(LOCAL_APP_OPENSSL)/engine.c \
+	$(LOCAL_APP_OPENSSL)/errstr.c \
+	$(LOCAL_APP_OPENSSL)/gendh.c \
+	$(LOCAL_APP_OPENSSL)/gendsa.c \
+	$(LOCAL_APP_OPENSSL)/genpkey.c \
+	$(LOCAL_APP_OPENSSL)/genrsa.c \
+	$(LOCAL_APP_OPENSSL)/nseq.c \
+	$(LOCAL_APP_OPENSSL)/ocsp.c \
+	$(LOCAL_APP_OPENSSL)/openssl.c \
+	$(LOCAL_APP_OPENSSL)/passwd.c \
+	$(LOCAL_APP_OPENSSL)/pkcs12.c \
+	$(LOCAL_APP_OPENSSL)/pkcs7.c \
+	$(LOCAL_APP_OPENSSL)/pkcs8.c \
+	$(LOCAL_APP_OPENSSL)/pkey.c \
+	$(LOCAL_APP_OPENSSL)/pkeyparam.c \
+	$(LOCAL_APP_OPENSSL)/pkeyutl.c \
+	$(LOCAL_APP_OPENSSL)/prime.c \
+	$(LOCAL_APP_OPENSSL)/rand.c \
+	$(LOCAL_APP_OPENSSL)/req.c \
+	$(LOCAL_APP_OPENSSL)/rsa.c \
+	$(LOCAL_APP_OPENSSL)/rsautl.c \
+	$(LOCAL_APP_OPENSSL)/s_cb.c \
+	$(LOCAL_APP_OPENSSL)/s_client.c \
+	$(LOCAL_APP_OPENSSL)/s_server.c \
+	$(LOCAL_APP_OPENSSL)/s_socket.c \
+	$(LOCAL_APP_OPENSSL)/s_time.c \
+	$(LOCAL_APP_OPENSSL)/sess_id.c \
+	$(LOCAL_APP_OPENSSL)/smime.c \
+	$(LOCAL_APP_OPENSSL)/speed.c \
+	$(LOCAL_APP_OPENSSL)/spkac.c \
+	$(LOCAL_APP_OPENSSL)/verify.c \
+	$(LOCAL_APP_OPENSSL)/version.c \
+	$(LOCAL_APP_OPENSSL)/x509.c
+
+local_shared_libraries := \
+	libssl \
+	libcrypto
+
+local_c_includes := \
+        $(LOCAL_APP_OPENSSL)/.. \
+        $(LOCAL_APP_OPENSSL)/../include \
+	external/openssl \
+	external/openssl/include
+
+local_cflags := -DMONOLITH
+
+# These flags omit whole features from the commandline "openssl".
+# However, portions of these features are actually turned on.
+local_cflags += -DOPENSSL_NO_DTLS1
+
+include $(CLEAR_VARS)
+LOCAL_MODULE:= openssl
+LOCAL_MODULE_TAGS := optional
+LOCAL_SRC_FILES := $(local_src_files)
+LOCAL_SHARED_LIBRARIES := $(local_shared_libraries)
+LOCAL_C_INCLUDES := $(local_c_includes)
+LOCAL_CFLAGS := $(local_cflags)
+include $(LOCAL_APP_OPENSSL)/../android-config.mk
+include $(BUILD_EXECUTABLE)
+
+#include $(CLEAR_VARS)
+#LOCAL_MODULE:= openssl
+#LOCAL_MODULE_TAGS := optional
+#LOCAL_SRC_FILES := $(local_src_files)
+#LOCAL_SHARED_LIBRARIES := $(local_shared_libraries)
+#LOCAL_C_INCLUDES := $(local_c_includes)
+#LOCAL_CFLAGS := $(local_cflags)
+#include $(LOCAL_PATH)/../android-config.mk
+#include $(BUILD_HOST_EXECUTABLE)
+
+
+
+############ openssl-crypto ###################
+
+include $(CLEAR_VARS)
+
+LOCAL_CRYPTO_OPENSSL = openssl/crypto
+
+arm_cflags := -DOPENSSL_BN_ASM_MONT -DAES_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM
+arm_src_files := \
+    $(LOCAL_CRYPTO_OPENSSL)/aes/asm/aes-armv4.s \
+    $(LOCAL_CRYPTO_OPENSSL)/bn/asm/armv4-mont.s \
+    $(LOCAL_CRYPTO_OPENSSL)/sha/asm/sha1-armv4-large.s \
+    $(LOCAL_CRYPTO_OPENSSL)/sha/asm/sha256-armv4.s \
+    $(LOCAL_CRYPTO_OPENSSL)/sha/asm/sha512-armv4.s
+non_arm_src_files := $(LOCAL_CRYPTO_OPENSSL)/aes/aes_core.c
+
+local_src_files := \
+	$(LOCAL_CRYPTO_OPENSSL)/cryptlib.c \
+	$(LOCAL_CRYPTO_OPENSSL)/mem.c \
+	$(LOCAL_CRYPTO_OPENSSL)/mem_clr.c \
+	$(LOCAL_CRYPTO_OPENSSL)/mem_dbg.c \
+	$(LOCAL_CRYPTO_OPENSSL)/cversion.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ex_data.c \
+	$(LOCAL_CRYPTO_OPENSSL)/cpt_err.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ebcdic.c \
+	$(LOCAL_CRYPTO_OPENSSL)/uid.c \
+	$(LOCAL_CRYPTO_OPENSSL)/o_time.c \
+	$(LOCAL_CRYPTO_OPENSSL)/o_str.c \
+	$(LOCAL_CRYPTO_OPENSSL)/o_dir.c \
+	$(LOCAL_CRYPTO_OPENSSL)/aes/aes_cbc.c \
+	$(LOCAL_CRYPTO_OPENSSL)/aes/aes_cfb.c \
+	$(LOCAL_CRYPTO_OPENSSL)/aes/aes_ctr.c \
+	$(LOCAL_CRYPTO_OPENSSL)/aes/aes_ecb.c \
+	$(LOCAL_CRYPTO_OPENSSL)/aes/aes_misc.c \
+	$(LOCAL_CRYPTO_OPENSSL)/aes/aes_ofb.c \
+	$(LOCAL_CRYPTO_OPENSSL)/aes/aes_wrap.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/a_bitstr.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/a_bool.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/a_bytes.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/a_d2i_fp.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/a_digest.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/a_dup.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/a_enum.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/a_gentm.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/a_i2d_fp.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/a_int.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/a_mbstr.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/a_object.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/a_octet.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/a_print.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/a_set.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/a_sign.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/a_strex.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/a_strnid.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/a_time.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/a_type.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/a_utctm.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/a_utf8.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/a_verify.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/ameth_lib.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/asn1_err.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/asn1_gen.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/asn1_lib.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/asn1_par.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/asn_mime.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/asn_moid.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/asn_pack.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/bio_asn1.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/bio_ndef.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/d2i_pr.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/d2i_pu.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/evp_asn1.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/f_enum.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/f_int.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/f_string.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/i2d_pr.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/i2d_pu.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/n_pkey.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/nsseq.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/p5_pbe.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/p5_pbev2.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/p8_pkey.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/t_bitst.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/t_crl.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/t_pkey.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/t_req.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/t_spki.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/t_x509.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/t_x509a.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/tasn_dec.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/tasn_enc.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/tasn_fre.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/tasn_new.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/tasn_prn.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/tasn_typ.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/tasn_utl.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/x_algor.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/x_attrib.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/x_bignum.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/x_crl.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/x_exten.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/x_info.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/x_long.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/x_name.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/x_nx509.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/x_pkey.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/x_pubkey.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/x_req.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/x_sig.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/x_spki.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/x_val.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/x_x509.c \
+	$(LOCAL_CRYPTO_OPENSSL)/asn1/x_x509a.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bf/bf_cfb64.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bf/bf_ecb.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bf/bf_enc.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bf/bf_ofb64.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bf/bf_skey.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bio/b_dump.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bio/b_print.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bio/b_sock.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bio/bf_buff.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bio/bf_nbio.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bio/bf_null.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bio/bio_cb.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bio/bio_err.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bio/bio_lib.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bio/bss_acpt.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bio/bss_bio.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bio/bss_conn.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bio/bss_dgram.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bio/bss_fd.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bio/bss_file.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bio/bss_log.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bio/bss_mem.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bio/bss_null.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bio/bss_sock.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bn/bn_add.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bn/bn_asm.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bn/bn_blind.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bn/bn_const.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bn/bn_ctx.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bn/bn_div.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bn/bn_err.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bn/bn_exp.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bn/bn_exp2.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bn/bn_gcd.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bn/bn_gf2m.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bn/bn_kron.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bn/bn_lib.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bn/bn_mod.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bn/bn_mont.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bn/bn_mpi.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bn/bn_mul.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bn/bn_nist.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bn/bn_prime.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bn/bn_print.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bn/bn_rand.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bn/bn_recp.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bn/bn_shift.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bn/bn_sqr.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bn/bn_sqrt.c \
+	$(LOCAL_CRYPTO_OPENSSL)/bn/bn_word.c \
+	$(LOCAL_CRYPTO_OPENSSL)/buffer/buf_err.c \
+	$(LOCAL_CRYPTO_OPENSSL)/buffer/buffer.c \
+	$(LOCAL_CRYPTO_OPENSSL)/comp/c_rle.c \
+	$(LOCAL_CRYPTO_OPENSSL)/comp/c_zlib.c \
+	$(LOCAL_CRYPTO_OPENSSL)/comp/comp_err.c \
+	$(LOCAL_CRYPTO_OPENSSL)/comp/comp_lib.c \
+	$(LOCAL_CRYPTO_OPENSSL)/conf/conf_api.c \
+	$(LOCAL_CRYPTO_OPENSSL)/conf/conf_def.c \
+	$(LOCAL_CRYPTO_OPENSSL)/conf/conf_err.c \
+	$(LOCAL_CRYPTO_OPENSSL)/conf/conf_lib.c \
+	$(LOCAL_CRYPTO_OPENSSL)/conf/conf_mall.c \
+	$(LOCAL_CRYPTO_OPENSSL)/conf/conf_mod.c \
+	$(LOCAL_CRYPTO_OPENSSL)/conf/conf_sap.c \
+	$(LOCAL_CRYPTO_OPENSSL)/des/cbc_cksm.c \
+	$(LOCAL_CRYPTO_OPENSSL)/des/cbc_enc.c \
+	$(LOCAL_CRYPTO_OPENSSL)/des/cfb64ede.c \
+	$(LOCAL_CRYPTO_OPENSSL)/des/cfb64enc.c \
+	$(LOCAL_CRYPTO_OPENSSL)/des/cfb_enc.c \
+	$(LOCAL_CRYPTO_OPENSSL)/des/des_enc.c \
+	$(LOCAL_CRYPTO_OPENSSL)/des/des_old.c \
+	$(LOCAL_CRYPTO_OPENSSL)/des/des_old2.c \
+	$(LOCAL_CRYPTO_OPENSSL)/des/ecb3_enc.c \
+	$(LOCAL_CRYPTO_OPENSSL)/des/ecb_enc.c \
+	$(LOCAL_CRYPTO_OPENSSL)/des/ede_cbcm_enc.c \
+	$(LOCAL_CRYPTO_OPENSSL)/des/enc_read.c \
+	$(LOCAL_CRYPTO_OPENSSL)/des/enc_writ.c \
+	$(LOCAL_CRYPTO_OPENSSL)/des/fcrypt.c \
+	$(LOCAL_CRYPTO_OPENSSL)/des/fcrypt_b.c \
+	$(LOCAL_CRYPTO_OPENSSL)/des/ofb64ede.c \
+	$(LOCAL_CRYPTO_OPENSSL)/des/ofb64enc.c \
+	$(LOCAL_CRYPTO_OPENSSL)/des/ofb_enc.c \
+	$(LOCAL_CRYPTO_OPENSSL)/des/pcbc_enc.c \
+	$(LOCAL_CRYPTO_OPENSSL)/des/qud_cksm.c \
+	$(LOCAL_CRYPTO_OPENSSL)/des/rand_key.c \
+	$(LOCAL_CRYPTO_OPENSSL)/des/read2pwd.c \
+	$(LOCAL_CRYPTO_OPENSSL)/des/rpc_enc.c \
+	$(LOCAL_CRYPTO_OPENSSL)/des/set_key.c \
+	$(LOCAL_CRYPTO_OPENSSL)/des/str2key.c \
+	$(LOCAL_CRYPTO_OPENSSL)/des/xcbc_enc.c \
+	$(LOCAL_CRYPTO_OPENSSL)/dh/dh_ameth.c \
+	$(LOCAL_CRYPTO_OPENSSL)/dh/dh_asn1.c \
+	$(LOCAL_CRYPTO_OPENSSL)/dh/dh_check.c \
+	$(LOCAL_CRYPTO_OPENSSL)/dh/dh_depr.c \
+	$(LOCAL_CRYPTO_OPENSSL)/dh/dh_err.c \
+	$(LOCAL_CRYPTO_OPENSSL)/dh/dh_gen.c \
+	$(LOCAL_CRYPTO_OPENSSL)/dh/dh_key.c \
+	$(LOCAL_CRYPTO_OPENSSL)/dh/dh_lib.c \
+	$(LOCAL_CRYPTO_OPENSSL)/dh/dh_pmeth.c \
+	$(LOCAL_CRYPTO_OPENSSL)/dsa/dsa_ameth.c \
+	$(LOCAL_CRYPTO_OPENSSL)/dsa/dsa_asn1.c \
+	$(LOCAL_CRYPTO_OPENSSL)/dsa/dsa_depr.c \
+	$(LOCAL_CRYPTO_OPENSSL)/dsa/dsa_err.c \
+	$(LOCAL_CRYPTO_OPENSSL)/dsa/dsa_gen.c \
+	$(LOCAL_CRYPTO_OPENSSL)/dsa/dsa_key.c \
+	$(LOCAL_CRYPTO_OPENSSL)/dsa/dsa_lib.c \
+	$(LOCAL_CRYPTO_OPENSSL)/dsa/dsa_ossl.c \
+	$(LOCAL_CRYPTO_OPENSSL)/dsa/dsa_pmeth.c \
+	$(LOCAL_CRYPTO_OPENSSL)/dsa/dsa_prn.c \
+	$(LOCAL_CRYPTO_OPENSSL)/dsa/dsa_sign.c \
+	$(LOCAL_CRYPTO_OPENSSL)/dsa/dsa_vrf.c \
+	$(LOCAL_CRYPTO_OPENSSL)/dso/dso_dl.c \
+	$(LOCAL_CRYPTO_OPENSSL)/dso/dso_dlfcn.c \
+	$(LOCAL_CRYPTO_OPENSSL)/dso/dso_err.c \
+	$(LOCAL_CRYPTO_OPENSSL)/dso/dso_lib.c \
+	$(LOCAL_CRYPTO_OPENSSL)/dso/dso_null.c \
+	$(LOCAL_CRYPTO_OPENSSL)/dso/dso_openssl.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ec/ec2_mult.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ec/ec2_smpl.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ec/ec_ameth.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ec/ec_asn1.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ec/ec_check.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ec/ec_curve.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ec/ec_cvt.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ec/ec_err.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ec/ec_key.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ec/ec_lib.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ec/ec_mult.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ec/ec_pmeth.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ec/ec_print.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ec/eck_prn.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ec/ecp_mont.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ec/ecp_nist.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ec/ecp_smpl.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ecdh/ech_err.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ecdh/ech_key.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ecdh/ech_lib.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ecdh/ech_ossl.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ecdsa/ecs_asn1.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ecdsa/ecs_err.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ecdsa/ecs_lib.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ecdsa/ecs_ossl.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ecdsa/ecs_sign.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ecdsa/ecs_vrf.c \
+	$(LOCAL_CRYPTO_OPENSSL)/err/err.c \
+	$(LOCAL_CRYPTO_OPENSSL)/err/err_all.c \
+	$(LOCAL_CRYPTO_OPENSSL)/err/err_prn.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/bio_b64.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/bio_enc.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/bio_md.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/bio_ok.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/c_all.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/c_allc.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/c_alld.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/digest.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/e_aes.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/e_bf.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/e_des.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/e_des3.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/e_null.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/e_old.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/e_rc2.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/e_rc4.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/e_rc5.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/e_xcbc_d.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/encode.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/evp_acnf.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/evp_enc.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/evp_err.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/evp_key.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/evp_lib.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/evp_pbe.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/evp_pkey.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/m_dss.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/m_dss1.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/m_ecdsa.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/m_md4.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/m_md5.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/m_mdc2.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/m_null.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/m_ripemd.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/m_sha1.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/m_sigver.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/m_wp.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/names.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/p5_crpt.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/p5_crpt2.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/p_dec.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/p_enc.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/p_lib.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/p_open.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/p_seal.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/p_sign.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/p_verify.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/pmeth_fn.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/pmeth_gn.c \
+	$(LOCAL_CRYPTO_OPENSSL)/evp/pmeth_lib.c \
+	$(LOCAL_CRYPTO_OPENSSL)/hmac/hm_ameth.c \
+	$(LOCAL_CRYPTO_OPENSSL)/hmac/hm_pmeth.c \
+	$(LOCAL_CRYPTO_OPENSSL)/hmac/hmac.c \
+	$(LOCAL_CRYPTO_OPENSSL)/krb5/krb5_asn.c \
+	$(LOCAL_CRYPTO_OPENSSL)/lhash/lh_stats.c \
+	$(LOCAL_CRYPTO_OPENSSL)/lhash/lhash.c \
+	$(LOCAL_CRYPTO_OPENSSL)/md4/md4_dgst.c \
+	$(LOCAL_CRYPTO_OPENSSL)/md4/md4_one.c \
+	$(LOCAL_CRYPTO_OPENSSL)/md5/md5_dgst.c \
+	$(LOCAL_CRYPTO_OPENSSL)/md5/md5_one.c \
+	$(LOCAL_CRYPTO_OPENSSL)/modes/cbc128.c \
+	$(LOCAL_CRYPTO_OPENSSL)/modes/cfb128.c \
+	$(LOCAL_CRYPTO_OPENSSL)/modes/ctr128.c \
+	$(LOCAL_CRYPTO_OPENSSL)/modes/ofb128.c \
+	$(LOCAL_CRYPTO_OPENSSL)/objects/o_names.c \
+	$(LOCAL_CRYPTO_OPENSSL)/objects/obj_dat.c \
+	$(LOCAL_CRYPTO_OPENSSL)/objects/obj_err.c \
+	$(LOCAL_CRYPTO_OPENSSL)/objects/obj_lib.c \
+	$(LOCAL_CRYPTO_OPENSSL)/objects/obj_xref.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ocsp/ocsp_asn.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ocsp/ocsp_cl.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ocsp/ocsp_err.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ocsp/ocsp_ext.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ocsp/ocsp_ht.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ocsp/ocsp_lib.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ocsp/ocsp_prn.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ocsp/ocsp_srv.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ocsp/ocsp_vfy.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pem/pem_all.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pem/pem_err.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pem/pem_info.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pem/pem_lib.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pem/pem_oth.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pem/pem_pk8.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pem/pem_pkey.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pem/pem_seal.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pem/pem_sign.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pem/pem_x509.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pem/pem_xaux.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pem/pvkfmt.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pkcs12/p12_add.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pkcs12/p12_asn.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pkcs12/p12_attr.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pkcs12/p12_crpt.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pkcs12/p12_crt.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pkcs12/p12_decr.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pkcs12/p12_init.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pkcs12/p12_key.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pkcs12/p12_kiss.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pkcs12/p12_mutl.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pkcs12/p12_npas.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pkcs12/p12_p8d.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pkcs12/p12_p8e.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pkcs12/p12_utl.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pkcs12/pk12err.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pkcs7/pk7_asn1.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pkcs7/pk7_attr.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pkcs7/pk7_doit.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pkcs7/pk7_lib.c	\
+	$(LOCAL_CRYPTO_OPENSSL)/pkcs7/pk7_mime.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pkcs7/pk7_smime.c \
+	$(LOCAL_CRYPTO_OPENSSL)/pkcs7/pkcs7err.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rand/md_rand.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rand/rand_egd.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rand/rand_err.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rand/rand_lib.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rand/rand_unix.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rand/randfile.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rc2/rc2_cbc.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rc2/rc2_ecb.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rc2/rc2_skey.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rc2/rc2cfb64.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rc2/rc2ofb64.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rc4/rc4_enc.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rc4/rc4_skey.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ripemd/rmd_dgst.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ripemd/rmd_one.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rsa/rsa_ameth.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rsa/rsa_asn1.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rsa/rsa_chk.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rsa/rsa_eay.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rsa/rsa_err.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rsa/rsa_gen.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rsa/rsa_lib.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rsa/rsa_none.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rsa/rsa_null.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rsa/rsa_oaep.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rsa/rsa_pk1.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rsa/rsa_pmeth.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rsa/rsa_prn.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rsa/rsa_pss.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rsa/rsa_saos.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rsa/rsa_sign.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rsa/rsa_ssl.c \
+	$(LOCAL_CRYPTO_OPENSSL)/rsa/rsa_x931.c \
+	$(LOCAL_CRYPTO_OPENSSL)/sha/sha1_one.c \
+	$(LOCAL_CRYPTO_OPENSSL)/sha/sha1dgst.c \
+	$(LOCAL_CRYPTO_OPENSSL)/sha/sha256.c \
+	$(LOCAL_CRYPTO_OPENSSL)/sha/sha512.c \
+	$(LOCAL_CRYPTO_OPENSSL)/sha/sha_dgst.c \
+	$(LOCAL_CRYPTO_OPENSSL)/stack/stack.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ts/ts_err.c \
+	$(LOCAL_CRYPTO_OPENSSL)/txt_db/txt_db.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ui/ui_compat.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ui/ui_err.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ui/ui_lib.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ui/ui_openssl.c \
+	$(LOCAL_CRYPTO_OPENSSL)/ui/ui_util.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509/by_dir.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509/by_file.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509/x509_att.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509/x509_cmp.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509/x509_d2.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509/x509_def.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509/x509_err.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509/x509_ext.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509/x509_lu.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509/x509_obj.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509/x509_r2x.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509/x509_req.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509/x509_set.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509/x509_trs.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509/x509_txt.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509/x509_v3.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509/x509_vfy.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509/x509_vpm.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509/x509cset.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509/x509name.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509/x509rset.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509/x509spki.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509/x509type.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509/x_all.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/pcy_cache.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/pcy_data.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/pcy_lib.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/pcy_map.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/pcy_node.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/pcy_tree.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/v3_akey.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/v3_akeya.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/v3_alt.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/v3_bcons.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/v3_bitst.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/v3_conf.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/v3_cpols.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/v3_crld.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/v3_enum.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/v3_extku.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/v3_genn.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/v3_ia5.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/v3_info.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/v3_int.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/v3_lib.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/v3_ncons.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/v3_ocsp.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/v3_pci.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/v3_pcia.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/v3_pcons.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/v3_pku.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/v3_pmaps.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/v3_prn.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/v3_purp.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/v3_skey.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/v3_sxnet.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/v3_utl.c \
+	$(LOCAL_CRYPTO_OPENSSL)/x509v3/v3err.c
+
+local_c_includes := $(LOCAL_CRYPTO_OPENSSL)/.. \
+$(LOCAL_CRYPTO_OPENSSL) \
+        $(LOCAL_CRYPTO_OPENSSL)/asn1 \
+	$(LOCAL_CRYPTO_OPENSSL)/evp \
+	$(LOCAL_CRYPTO_OPENSSL)/../include \
+	$(LOCAL_CRYPTO_OPENSSL)/../include/openssl \
+	external/openssl \
+	external/openssl/crypto/asn1 \
+	external/openssl/crypto/evp \
+	external/openssl/include \
+	external/openssl/include/openssl \
+	external/zlib
+
+local_c_flags := -DNO_WINDOWS_BRAINDEATH
+
+#######################################
+# target static library
+include $(CLEAR_VARS)
+include $(LOCAL_CRYPTO_OPENSSL)/../android-config.mk
+
+ifneq ($(TARGET_ARCH),x86)
+LOCAL_NDK_VERSION := 5
+LOCAL_SDK_VERSION := 9
+endif
+
+LOCAL_SRC_FILES += $(local_src_files)
+LOCAL_CFLAGS += $(local_c_flags)
+LOCAL_C_INCLUDES += $(local_c_includes)
+ifeq ($(TARGET_ARCH),arm)
+	LOCAL_SRC_FILES += $(arm_src_files)
+	LOCAL_CFLAGS += $(arm_cflags)
+else
+	LOCAL_SRC_FILES += $(non_arm_src_files)
+endif
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE:= libcrypto_static
+include $(BUILD_STATIC_LIBRARY)
+
+#######################################
+# target shared library
+include $(CLEAR_VARS)
+include $(LOCAL_CRYPTO_OPENSSL)/../android-config.mk
+
+ifneq ($(TARGET_ARCH),x86)
+LOCAL_NDK_VERSION := 5
+LOCAL_SDK_VERSION := 9
+# Use the NDK prebuilt libz and libdl.
+LOCAL_LDFLAGS += -lz -ldl
+else
+LOCAL_SHARED_LIBRARIES += libz libdl
+endif
+
+LOCAL_SRC_FILES += $(local_src_files)
+LOCAL_CFLAGS += $(local_c_flags)
+LOCAL_C_INCLUDES += $(local_c_includes)
+ifeq ($(TARGET_ARCH),arm)
+	LOCAL_SRC_FILES += $(arm_src_files)
+	LOCAL_CFLAGS += $(arm_cflags)
+else
+	LOCAL_SRC_FILES += $(non_arm_src_files)
+endif
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE:= libcrypto
+include $(BUILD_SHARED_LIBRARY)
+
+#######################################
+# host shared library
+#include $(CLEAR_VARS)
+#include $(LOCAL_PATH)/../android-config.mk
+#LOCAL_SRC_FILES += $(local_src_files)
+#LOCAL_CFLAGS += $(local_c_flags) -DPURIFY
+#LOCAL_C_INCLUDES += $(local_c_includes)
+#LOCAL_SRC_FILES += $(non_arm_src_files)
+#LOCAL_STATIC_LIBRARIES += libz
+#LOCAL_LDLIBS += -ldl
+#LOCAL_MODULE_TAGS := optional
+#LOCAL_MODULE:= libcrypto
+#include $(BUILD_HOST_SHARED_LIBRARY)
+
+########################################
+# host static library, which is used by some SDK tools.
+#
+#include $(CLEAR_VARS)
+#include $(LOCAL_PATH)/../android-config.mk
+#LOCAL_SRC_FILES += $(local_src_files)
+#LOCAL_CFLAGS += $(local_c_flags) -DPURIFY
+#LOCAL_C_INCLUDES += $(local_c_includes)
+#LOCAL_SRC_FILES += $(non_arm_src_files)
+#LOCAL_STATIC_LIBRARIES += libz
+#LOCAL_LDLIBS += -ldl
+#LOCAL_MODULE_TAGS := optional
+#LOCAL_MODULE:= libcrypto_static
+#include $(BUILD_HOST_STATIC_LIBRARY)
+
+
+
+
+############# libssl ##################
+
+include $(CLEAR_VARS)
+LOCAL_SSL_PATH = openssl/ssl
+
+local_c_includes := \
+	$(LOCAL_SSL_PATH)/..\
+	$(LOCAL_SSL_PATH)/../include \
+	$(LOCAL_SSL_PATH)/../crypto \
+	external/openssl \
+	external/openssl/include \
+	external/openssl/crypto
+
+local_src_files:= \
+	$(LOCAL_SSL_PATH)/s2_meth.c \
+	$(LOCAL_SSL_PATH)/s2_srvr.c \
+	$(LOCAL_SSL_PATH)/s2_clnt.c \
+	$(LOCAL_SSL_PATH)/s2_lib.c \
+	$(LOCAL_SSL_PATH)/s2_enc.c \
+	$(LOCAL_SSL_PATH)/s2_pkt.c \
+	$(LOCAL_SSL_PATH)/s3_meth.c \
+	$(LOCAL_SSL_PATH)/s3_srvr.c \
+	$(LOCAL_SSL_PATH)/s3_clnt.c \
+	$(LOCAL_SSL_PATH)/s3_lib.c \
+	$(LOCAL_SSL_PATH)/s3_enc.c \
+	$(LOCAL_SSL_PATH)/s3_pkt.c \
+	$(LOCAL_SSL_PATH)/s3_both.c \
+	$(LOCAL_SSL_PATH)/s23_meth.c \
+	$(LOCAL_SSL_PATH)/s23_srvr.c \
+	$(LOCAL_SSL_PATH)/s23_clnt.c \
+	$(LOCAL_SSL_PATH)/s23_lib.c \
+	$(LOCAL_SSL_PATH)/s23_pkt.c \
+	$(LOCAL_SSL_PATH)/t1_meth.c \
+	$(LOCAL_SSL_PATH)/t1_srvr.c \
+	$(LOCAL_SSL_PATH)/t1_clnt.c \
+	$(LOCAL_SSL_PATH)/t1_lib.c \
+	$(LOCAL_SSL_PATH)/t1_enc.c \
+	$(LOCAL_SSL_PATH)/t1_reneg.c \
+	$(LOCAL_SSL_PATH)/ssl_lib.c \
+	$(LOCAL_SSL_PATH)/ssl_err2.c \
+	$(LOCAL_SSL_PATH)/ssl_cert.c \
+	$(LOCAL_SSL_PATH)/ssl_sess.c \
+	$(LOCAL_SSL_PATH)/ssl_ciph.c \
+	$(LOCAL_SSL_PATH)/ssl_stat.c \
+	$(LOCAL_SSL_PATH)/ssl_rsa.c \
+	$(LOCAL_SSL_PATH)/ssl_asn1.c \
+	$(LOCAL_SSL_PATH)/ssl_txt.c \
+	$(LOCAL_SSL_PATH)/ssl_algs.c \
+	$(LOCAL_SSL_PATH)/bio_ssl.c \
+	$(LOCAL_SSL_PATH)/ssl_err.c \
+	$(LOCAL_SSL_PATH)/kssl.c
+
+#######################################
+# target static library
+include $(CLEAR_VARS)
+include $(LOCAL_SSL_PATH)/../android-config.mk
+
+ifneq ($(TARGET_ARCH),x86)
+LOCAL_NDK_VERSION := 5
+LOCAL_SDK_VERSION := 9
+endif
+LOCAL_SRC_FILES += $(local_src_files)
+LOCAL_C_INCLUDES += $(local_c_includes)
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE:= libssl_static
+include $(BUILD_STATIC_LIBRARY)
+
+#######################################
+# target shared library
+include $(CLEAR_VARS)
+include $(LOCAL_SSL_PATH)/../android-config.mk
+
+ifneq ($(TARGET_ARCH),x86)
+LOCAL_NDK_VERSION := 5
+LOCAL_SDK_VERSION := 9
+endif
+LOCAL_SRC_FILES += $(local_src_files)
+LOCAL_C_INCLUDES += $(local_c_includes)
+LOCAL_SHARED_LIBRARIES += libcrypto
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE:= libssl_shared
+LOCAL_MODULE_FILENAME := libssl
+include $(BUILD_SHARED_LIBRARY)
+
+#######################################
+# host shared library
+include $(CLEAR_VARS)
+include $(LOCAL_SSL_PATH)/../android-config.mk
+LOCAL_SRC_FILES += $(local_src_files)
+LOCAL_C_INCLUDES += $(local_c_includes)
+LOCAL_SHARED_LIBRARIES += libcrypto
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE:= libssl
+include $(BUILD_HOST_SHARED_LIBRARY)
+
+#######################################
+# ssltest
+include $(CLEAR_VARS)
+include $(LOCAL_SSL_PATH)/../android-config.mk
+LOCAL_SRC_FILES:= ssltest.c
+LOCAL_C_INCLUDES += $(local_c_includes)
+LOCAL_SHARED_LIBRARIES := libssl libcrypto
+LOCAL_MODULE:= ssltest
+LOCAL_MODULE_TAGS := optional
+include $(BUILD_EXECUTABLE)
+
+
 
diff --git a/jni/Application.mk b/jni/Application.mk
index cfd4c5ec93dcb7454558e3e0a84ce422af224d9b..70bf41c7f12af2af440cd81e0a8bb6db8a606554 100644
--- a/jni/Application.mk
+++ b/jni/Application.mk
@@ -1,24 +1,21 @@
 APP_OPTIM := debug
 
 APP_MODULES := libccgnu2
-APP_MODULES += libyaml
-APP_MODULES += libsamplerate
 
+APP_MODULES += libsamplerate
 
 APP_MODULES += libexpat_static
 APP_MODULES += libexpat_shared
 APP_MODULES += libccrtp1
 #APP_MODULES += libcutils-static
 #APP_MODULES += libcutils-shared
-APP_MODULES += libdbus
-APP_MODULES += libdbus-tools-common
-APP_MODULES += dbus-daemon
-APP_MODULES += dbus-monitor
-APP_MODULES += dbus-send
-APP_MODULES += libdbus
-APP_MODULES += libdbus-tools-common
-
-APP_MODULES += libdbus-c++-1
+#APP_MODULES += libdbus
+#APP_MODULES += libdbus-tools-common
+#APP_MODULES += dbus-daemon
+#APP_MODULES += dbus-monitor
+#APP_MODULES += dbus-send
+
+#APP_MODULES += libdbus-c++-1
 # APP_MODULES += libdbus-glue
 # APP_MODULES += libsiplink
 # APP_MODULES += libconfig
@@ -38,7 +35,7 @@ APP_MODULES += libcodec_g722
 #APP_MODULES += libcodec_speex_nb
 #APP_MODULES += libcodec_speex_ub
 #APP_MODULES += libcodec_speex_wb
-APP_MODULES += libcodecfactory
+#APP_MODULES += libcodecfactory
 # APP_MODULES += librtp
 # APP_MODULES += libaudio
 # APP_MODULES += libhistory
diff --git a/jni/sflphone b/jni/sflphone
index e9c5bd7b07791d7fe52fe627f80108eefb3baaee..a772e58db1efdbd5e38085d17c592c5b22e9276c 160000
--- a/jni/sflphone
+++ b/jni/sflphone
@@ -1 +1 @@
-Subproject commit e9c5bd7b07791d7fe52fe627f80108eefb3baaee
+Subproject commit a772e58db1efdbd5e38085d17c592c5b22e9276c
diff --git a/make-glue.sh b/make-glue.sh
index 421131f35375a6abf189e311bdb5c2fe3a3c3dfe..2750d03984fb3c2756aed1caa9d97f2777c6c559 100755
--- a/make-glue.sh
+++ b/make-glue.sh
@@ -3,14 +3,14 @@ SRCDIR=jni/sflphone/daemon/src
 
 # Fix a problem with dbusxx generating *const introspect() instead of introspect()
 echo "Generating callmanager glue..."
-dbusxx-xml2cpp $SRCDIR/dbus/callmanager-introspec.xml --adaptor=$SRCDIR/dbus/callmanager-glue-tmp.h
-sed -e 's/const introspect()/introspect()/' <$SRCDIR/dbus/callmanager-glue-tmp.h >$SRCDIR/dbus/callmanager-glue.h
-rm $SRCDIR/dbus/callmanager-glue-tmp.h
+dbusxx-xml2cpp $SRCDIR/client/callmanager-introspec.xml --adaptor=$SRCDIR/client/android/callmanager-glue-tmp.h
+sed -e 's/const introspect()/introspect()/' <$SRCDIR/client/android/callmanager-glue-tmp.h >$SRCDIR/client/android/callmanager-glue.h
+rm $SRCDIR/client/android/callmanager-glue-tmp.h
 
 echo "Generating configurationmanager glue..."
-dbusxx-xml2cpp $SRCDIR/dbus/configurationmanager-introspec.xml --adaptor=$SRCDIR/dbus/configurationmanager-glue-tmp.h
-sed -e 's/const introspect()/introspect()/' <$SRCDIR/dbus/configurationmanager-glue-tmp.h >$SRCDIR/dbus/configurationmanager-glue.h
-rm $SRCDIR/dbus/configurationmanager-glue-tmp.h
+dbusxx-xml2cpp $SRCDIR/client/configurationmanager-introspec.xml --adaptor=$SRCDIR/client/android/configurationmanager-glue-tmp.h
+sed -e 's/const introspect()/introspect()/' <$SRCDIR/client/android/configurationmanager-glue-tmp.h >$SRCDIR/client/android/configurationmanager-glue.h
+rm $SRCDIR/client/android/configurationmanager-glue-tmp.h
 
 #echo "Generating contactmanager glue..."
 #dbusxx-xml2cpp $SRCDIR/dbus/contactmanager-introspec.xml --adaptor=$SRCDIR/dbus/contactmanager-glue-tmp.h
@@ -18,6 +18,6 @@ rm $SRCDIR/dbus/configurationmanager-glue-tmp.h
 #rm $SRCDIR/dbus/contactmanager-glue-tmp.h
 
 echo "Generating instance glue..."
-dbusxx-xml2cpp $SRCDIR/dbus/instance-introspec.xml --adaptor=$SRCDIR/dbus/instance-glue-tmp.h 
-sed -e 's/const introspect()/introspect()/' <$SRCDIR/dbus/instance-glue-tmp.h >$SRCDIR/dbus/instance-glue.h
-rm $SRCDIR/dbus/instance-glue-tmp.h
\ No newline at end of file
+dbusxx-xml2cpp $SRCDIR/client/instance-introspec.xml --adaptor=$SRCDIR/client/android/instance-glue-tmp.h 
+sed -e 's/const introspect()/introspect()/' <$SRCDIR/client/android/instance-glue-tmp.h >$SRCDIR/client/android/instance-glue.h
+rm $SRCDIR/client/android/instance-glue-tmp.h
\ No newline at end of file
diff --git a/make-swig.sh b/make-swig.sh
index bb86eb89de170e5aca19b0446c9ac69c7630a324..54ea4a3f1b5dfccd40d4ecf34333837ba275321c 100755
--- a/make-swig.sh
+++ b/make-swig.sh
@@ -38,7 +38,7 @@
 #         ManagerImpl.java
 
 SRCDIR=jni/sflphone/daemon/src
-NATIVE=nativesrc
+NATIVE=client/android
 NATIVEDIR=$SRCDIR/$NATIVE
 PACKAGE=com.savoirfairelinux.sflphone.service
 PACKAGEDIR=src/com/savoirfairelinux/sflphone/service
@@ -88,25 +88,25 @@ fi
 
 # FIXME
 echo "Generating callmanager_wrap.cpp..."
-mkdir -p $NATIVEDIR
+
 swig -v -c++ -java \
 -package $PACKAGE \
 -outdir $PACKAGEDIR \
--o $SRCDIR/dbus/callmanager_wrap.cpp $SRCDIR/dbus/jni_interface.i
+-o $SRCDIR/client/android/callmanager_wrap.cpp $SRCDIR/client/android/jni_interface.i
 
 pushd $SRCDIR
 echo "in $PWD"
 
 echo "Generating sflphoneservice_loader.c..."
-python JavaJNI2CJNI_Load.py \
+python client/android/JavaJNI2CJNI_Load.py \
 -i $ROOT/$PACKAGEDIR/SFLPhoneserviceJNI.java \
 -o $NATIVE/sflphoneservice_loader.c \
--t sflphoneservice.c.template \
+-t client/android/sflphoneservice.c.template \
 -m SFLPhoneservice \
 -p $PACKAGE
 
 echo "Appending callmanager_wrap.cpp..."
-cat $NATIVE/sflphoneservice_loader.c >> dbus/callmanager_wrap.cpp
+cat $NATIVE/sflphoneservice_loader.c >> client/android/callmanager_wrap.cpp
 
 
 #if [ "" != "$(find -iname sflphoneservice_loader.c)" ]; then
diff --git a/src/com/savoirfairelinux/sflphone/service/Callback.java b/src/com/savoirfairelinux/sflphone/service/Callback.java
new file mode 100644
index 0000000000000000000000000000000000000000..e00dff30037a3f4e10df12ac3647dc80eee52471
--- /dev/null
+++ b/src/com/savoirfairelinux/sflphone/service/Callback.java
@@ -0,0 +1,94 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 2.0.8
+ *
+ * Do not make changes to this file unless you know what you are doing--modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+
+package com.savoirfairelinux.sflphone.service;
+
+public class Callback {
+  private long swigCPtr;
+  protected boolean swigCMemOwn;
+
+  protected Callback(long cPtr, boolean cMemoryOwn) {
+    swigCMemOwn = cMemoryOwn;
+    swigCPtr = cPtr;
+  }
+
+  protected static long getCPtr(Callback obj) {
+    return (obj == null) ? 0 : obj.swigCPtr;
+  }
+
+  protected void finalize() {
+    delete();
+  }
+
+  public synchronized void delete() {
+    if (swigCPtr != 0) {
+      if (swigCMemOwn) {
+        swigCMemOwn = false;
+        SFLPhoneserviceJNI.delete_Callback(swigCPtr);
+      }
+      swigCPtr = 0;
+    }
+  }
+
+  protected void swigDirectorDisconnect() {
+    swigCMemOwn = false;
+    delete();
+  }
+
+  public void swigReleaseOwnership() {
+    swigCMemOwn = false;
+    SFLPhoneserviceJNI.Callback_change_ownership(this, swigCPtr, false);
+  }
+
+  public void swigTakeOwnership() {
+    swigCMemOwn = true;
+    SFLPhoneserviceJNI.Callback_change_ownership(this, swigCPtr, true);
+  }
+
+  public void on_new_call_created(String arg1, String arg2, String arg3) {
+    if (getClass() == Callback.class) SFLPhoneserviceJNI.Callback_on_new_call_created(swigCPtr, this, arg1, arg2, arg3); else SFLPhoneserviceJNI.Callback_on_new_call_createdSwigExplicitCallback(swigCPtr, this, arg1, arg2, arg3);
+  }
+
+  public void on_call_state_changed(String arg1, String arg2) {
+    if (getClass() == Callback.class) SFLPhoneserviceJNI.Callback_on_call_state_changed(swigCPtr, this, arg1, arg2); else SFLPhoneserviceJNI.Callback_on_call_state_changedSwigExplicitCallback(swigCPtr, this, arg1, arg2);
+  }
+
+  public void on_incoming_call(String arg1, String arg2, String arg3) {
+    if (getClass() == Callback.class) SFLPhoneserviceJNI.Callback_on_incoming_call(swigCPtr, this, arg1, arg2, arg3); else SFLPhoneserviceJNI.Callback_on_incoming_callSwigExplicitCallback(swigCPtr, this, arg1, arg2, arg3);
+  }
+
+  public void on_transfer_state_changed(String arg1) {
+    if (getClass() == Callback.class) SFLPhoneserviceJNI.Callback_on_transfer_state_changed(swigCPtr, this, arg1); else SFLPhoneserviceJNI.Callback_on_transfer_state_changedSwigExplicitCallback(swigCPtr, this, arg1);
+  }
+
+  public void on_conference_created(String arg1) {
+    if (getClass() == Callback.class) SFLPhoneserviceJNI.Callback_on_conference_created(swigCPtr, this, arg1); else SFLPhoneserviceJNI.Callback_on_conference_createdSwigExplicitCallback(swigCPtr, this, arg1);
+  }
+
+  public void on_conference_removed(String arg1) {
+    if (getClass() == Callback.class) SFLPhoneserviceJNI.Callback_on_conference_removed(swigCPtr, this, arg1); else SFLPhoneserviceJNI.Callback_on_conference_removedSwigExplicitCallback(swigCPtr, this, arg1);
+  }
+
+  public void on_conference_state_changed(String arg1, String arg2) {
+    if (getClass() == Callback.class) SFLPhoneserviceJNI.Callback_on_conference_state_changed(swigCPtr, this, arg1, arg2); else SFLPhoneserviceJNI.Callback_on_conference_state_changedSwigExplicitCallback(swigCPtr, this, arg1, arg2);
+  }
+
+  public void on_incoming_message(String ID, String from, String msg) {
+    if (getClass() == Callback.class) SFLPhoneserviceJNI.Callback_on_incoming_message(swigCPtr, this, ID, from, msg); else SFLPhoneserviceJNI.Callback_on_incoming_messageSwigExplicitCallback(swigCPtr, this, ID, from, msg);
+  }
+
+  public void on_record_playback_filepath(String id, String filename) {
+    if (getClass() == Callback.class) SFLPhoneserviceJNI.Callback_on_record_playback_filepath(swigCPtr, this, id, filename); else SFLPhoneserviceJNI.Callback_on_record_playback_filepathSwigExplicitCallback(swigCPtr, this, id, filename);
+  }
+
+  public Callback() {
+    this(SFLPhoneserviceJNI.new_Callback(), true);
+    SFLPhoneserviceJNI.Callback_director_connect(this, swigCPtr, swigCMemOwn, true);
+  }
+
+}
diff --git a/src/com/savoirfairelinux/sflphone/service/ConfigurationCallback.java b/src/com/savoirfairelinux/sflphone/service/ConfigurationCallback.java
new file mode 100644
index 0000000000000000000000000000000000000000..96e8f8f472014897e8441956fa83ff2aacd3b5da
--- /dev/null
+++ b/src/com/savoirfairelinux/sflphone/service/ConfigurationCallback.java
@@ -0,0 +1,70 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 2.0.8
+ *
+ * Do not make changes to this file unless you know what you are doing--modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+
+package com.savoirfairelinux.sflphone.service;
+
+public class ConfigurationCallback {
+  private long swigCPtr;
+  protected boolean swigCMemOwn;
+
+  protected ConfigurationCallback(long cPtr, boolean cMemoryOwn) {
+    swigCMemOwn = cMemoryOwn;
+    swigCPtr = cPtr;
+  }
+
+  protected static long getCPtr(ConfigurationCallback obj) {
+    return (obj == null) ? 0 : obj.swigCPtr;
+  }
+
+  protected void finalize() {
+    delete();
+  }
+
+  public synchronized void delete() {
+    if (swigCPtr != 0) {
+      if (swigCMemOwn) {
+        swigCMemOwn = false;
+        SFLPhoneserviceJNI.delete_ConfigurationCallback(swigCPtr);
+      }
+      swigCPtr = 0;
+    }
+  }
+
+  protected void swigDirectorDisconnect() {
+    swigCMemOwn = false;
+    delete();
+  }
+
+  public void swigReleaseOwnership() {
+    swigCMemOwn = false;
+    SFLPhoneserviceJNI.ConfigurationCallback_change_ownership(this, swigCPtr, false);
+  }
+
+  public void swigTakeOwnership() {
+    swigCMemOwn = true;
+    SFLPhoneserviceJNI.ConfigurationCallback_change_ownership(this, swigCPtr, true);
+  }
+
+  public void on_accounts_changed() {
+    if (getClass() == ConfigurationCallback.class) SFLPhoneserviceJNI.ConfigurationCallback_on_accounts_changed(swigCPtr, this); else SFLPhoneserviceJNI.ConfigurationCallback_on_accounts_changedSwigExplicitConfigurationCallback(swigCPtr, this);
+  }
+
+  public void on_account_state_changed(String accoundID, int state) {
+    if (getClass() == ConfigurationCallback.class) SFLPhoneserviceJNI.ConfigurationCallback_on_account_state_changed(swigCPtr, this, accoundID, state); else SFLPhoneserviceJNI.ConfigurationCallback_on_account_state_changedSwigExplicitConfigurationCallback(swigCPtr, this, accoundID, state);
+  }
+
+  public void on_account_state_changed_with_code(String accoundID, String state, int code) {
+    if (getClass() == ConfigurationCallback.class) SFLPhoneserviceJNI.ConfigurationCallback_on_account_state_changed_with_code(swigCPtr, this, accoundID, state, code); else SFLPhoneserviceJNI.ConfigurationCallback_on_account_state_changed_with_codeSwigExplicitConfigurationCallback(swigCPtr, this, accoundID, state, code);
+  }
+
+  public ConfigurationCallback() {
+    this(SFLPhoneserviceJNI.new_ConfigurationCallback(), true);
+    SFLPhoneserviceJNI.ConfigurationCallback_director_connect(this, swigCPtr, swigCMemOwn, true);
+  }
+
+}
diff --git a/src/com/savoirfairelinux/sflphone/service/ConfigurationManagerJNI.java b/src/com/savoirfairelinux/sflphone/service/ConfigurationManagerJNI.java
deleted file mode 100644
index 78fee6d50319b148175b50f1947617048ac1da95..0000000000000000000000000000000000000000
--- a/src/com/savoirfairelinux/sflphone/service/ConfigurationManagerJNI.java
+++ /dev/null
@@ -1,254 +0,0 @@
-/* ----------------------------------------------------------------------------
- * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.8
- *
- * Do not make changes to this file unless you know what you are doing--modify
- * the SWIG interface file instead.
- * ----------------------------------------------------------------------------- */
-
-package com.savoirfairelinux.sflphone.service;
-
-public class ConfigurationManagerJNI {
-  private long swigCPtr;
-  protected boolean swigCMemOwn;
-
-  protected ConfigurationManagerJNI(long cPtr, boolean cMemoryOwn) {
-    swigCMemOwn = cMemoryOwn;
-    swigCPtr = cPtr;
-  }
-
-  protected static long getCPtr(ConfigurationManagerJNI obj) {
-    return (obj == null) ? 0 : obj.swigCPtr;
-  }
-
-  protected void finalize() {
-    delete();
-  }
-
-  public synchronized void delete() {
-    if (swigCPtr != 0) {
-      if (swigCMemOwn) {
-        swigCMemOwn = false;
-        SFLPhoneserviceJNI.delete_ConfigurationManagerJNI(swigCPtr);
-      }
-      swigCPtr = 0;
-    }
-  }
-
-  public StringMap getIp2IpDetails() {
-    return new StringMap(SFLPhoneserviceJNI.ConfigurationManagerJNI_getIp2IpDetails(swigCPtr, this), true);
-  }
-
-  public StringMap getAccountDetails(String accountID) {
-    return new StringMap(SFLPhoneserviceJNI.ConfigurationManagerJNI_getAccountDetails(swigCPtr, this, accountID), true);
-  }
-
-  public StringMap getTlsSettingsDefault() {
-    return new StringMap(SFLPhoneserviceJNI.ConfigurationManagerJNI_getTlsSettingsDefault(swigCPtr, this), true);
-  }
-
-  public StringMap getTlsSettings() {
-    return new StringMap(SFLPhoneserviceJNI.ConfigurationManagerJNI_getTlsSettings(swigCPtr, this), true);
-  }
-
-  public void setTlsSettings(StringMap details) {
-    SFLPhoneserviceJNI.ConfigurationManagerJNI_setTlsSettings(swigCPtr, this, StringMap.getCPtr(details), details);
-  }
-
-  public void setAccountDetails(String accountID, StringMap details) {
-    SFLPhoneserviceJNI.ConfigurationManagerJNI_setAccountDetails(swigCPtr, this, accountID, StringMap.getCPtr(details), details);
-  }
-
-  public void sendRegister(String accountID, boolean enable) {
-    SFLPhoneserviceJNI.ConfigurationManagerJNI_sendRegister(swigCPtr, this, accountID, enable);
-  }
-
-  public void registerAllAccounts() {
-    SFLPhoneserviceJNI.ConfigurationManagerJNI_registerAllAccounts(swigCPtr, this);
-  }
-
-  public StringMap getAccountTemplate() {
-    return new StringMap(SFLPhoneserviceJNI.ConfigurationManagerJNI_getAccountTemplate(swigCPtr, this), true);
-  }
-
-  public String addAccount(StringMap details) {
-    return SFLPhoneserviceJNI.ConfigurationManagerJNI_addAccount(swigCPtr, this, StringMap.getCPtr(details), details);
-  }
-
-  public void removeAccount(String accoundID) {
-    SFLPhoneserviceJNI.ConfigurationManagerJNI_removeAccount(swigCPtr, this, accoundID);
-  }
-
-  public StringVect getAccountList() {
-    return new StringVect(SFLPhoneserviceJNI.ConfigurationManagerJNI_getAccountList(swigCPtr, this), true);
-  }
-
-  public StringVect getSupportedTlsMethod() {
-    return new StringVect(SFLPhoneserviceJNI.ConfigurationManagerJNI_getSupportedTlsMethod(swigCPtr, this), true);
-  }
-
-  public StringVect getAudioCodecDetails(int payload) {
-    return new StringVect(SFLPhoneserviceJNI.ConfigurationManagerJNI_getAudioCodecDetails(swigCPtr, this, payload), true);
-  }
-
-  public IntVect getActiveAudioCodecList(String accountID) {
-    return new IntVect(SFLPhoneserviceJNI.ConfigurationManagerJNI_getActiveAudioCodecList(swigCPtr, this, accountID), true);
-  }
-
-  public void setActiveAudioCodecList(StringVect list, String accountID) {
-    SFLPhoneserviceJNI.ConfigurationManagerJNI_setActiveAudioCodecList(swigCPtr, this, StringVect.getCPtr(list), list, accountID);
-  }
-
-  public StringVect getAudioPluginList() {
-    return new StringVect(SFLPhoneserviceJNI.ConfigurationManagerJNI_getAudioPluginList(swigCPtr, this), true);
-  }
-
-  public void setAudioPlugin(String audioPlugin) {
-    SFLPhoneserviceJNI.ConfigurationManagerJNI_setAudioPlugin(swigCPtr, this, audioPlugin);
-  }
-
-  public StringVect getAudioOutputDeviceList() {
-    return new StringVect(SFLPhoneserviceJNI.ConfigurationManagerJNI_getAudioOutputDeviceList(swigCPtr, this), true);
-  }
-
-  public StringVect getAudioInputDeviceList() {
-    return new StringVect(SFLPhoneserviceJNI.ConfigurationManagerJNI_getAudioInputDeviceList(swigCPtr, this), true);
-  }
-
-  public void setAudioOutputDevice(int index) {
-    SFLPhoneserviceJNI.ConfigurationManagerJNI_setAudioOutputDevice(swigCPtr, this, index);
-  }
-
-  public void setAudioInputDevice(int index) {
-    SFLPhoneserviceJNI.ConfigurationManagerJNI_setAudioInputDevice(swigCPtr, this, index);
-  }
-
-  public void setAudioRingtoneDevice(int index) {
-    SFLPhoneserviceJNI.ConfigurationManagerJNI_setAudioRingtoneDevice(swigCPtr, this, index);
-  }
-
-  public StringVect getCurrentAudioDevicesIndex() {
-    return new StringVect(SFLPhoneserviceJNI.ConfigurationManagerJNI_getCurrentAudioDevicesIndex(swigCPtr, this), true);
-  }
-
-  public int getAudioDeviceIndex(String name) {
-    return SFLPhoneserviceJNI.ConfigurationManagerJNI_getAudioDeviceIndex(swigCPtr, this, name);
-  }
-
-  public String getCurrentAudioOutputPlugin() {
-    return SFLPhoneserviceJNI.ConfigurationManagerJNI_getCurrentAudioOutputPlugin(swigCPtr, this);
-  }
-
-  public String getNoiseSuppressState() {
-    return SFLPhoneserviceJNI.ConfigurationManagerJNI_getNoiseSuppressState(swigCPtr, this);
-  }
-
-  public void setNoiseSuppressState(String state) {
-    SFLPhoneserviceJNI.ConfigurationManagerJNI_setNoiseSuppressState(swigCPtr, this, state);
-  }
-
-  public String getEchoCancelState() {
-    return SFLPhoneserviceJNI.ConfigurationManagerJNI_getEchoCancelState(swigCPtr, this);
-  }
-
-  public StringMap getRingtoneList() {
-    return new StringMap(SFLPhoneserviceJNI.ConfigurationManagerJNI_getRingtoneList(swigCPtr, this), true);
-  }
-
-  public void setEchoCancelState(String state) {
-    SFLPhoneserviceJNI.ConfigurationManagerJNI_setEchoCancelState(swigCPtr, this, state);
-  }
-
-  public int isIax2Enabled() {
-    return SFLPhoneserviceJNI.ConfigurationManagerJNI_isIax2Enabled(swigCPtr, this);
-  }
-
-  public String getRecordPath() {
-    return SFLPhoneserviceJNI.ConfigurationManagerJNI_getRecordPath(swigCPtr, this);
-  }
-
-  public void setRecordPath(String recPath) {
-    SFLPhoneserviceJNI.ConfigurationManagerJNI_setRecordPath(swigCPtr, this, recPath);
-  }
-
-  public boolean getIsAlwaysRecording() {
-    return SFLPhoneserviceJNI.ConfigurationManagerJNI_getIsAlwaysRecording(swigCPtr, this);
-  }
-
-  public void setIsAlwaysRecording(boolean rec) {
-    SFLPhoneserviceJNI.ConfigurationManagerJNI_setIsAlwaysRecording(swigCPtr, this, rec);
-  }
-
-  public void setRecordingCall(String id) {
-    SFLPhoneserviceJNI.ConfigurationManagerJNI_setRecordingCall(swigCPtr, this, id);
-  }
-
-  public int getHistoryLimit() {
-    return SFLPhoneserviceJNI.ConfigurationManagerJNI_getHistoryLimit(swigCPtr, this);
-  }
-
-  public void clearHistory() {
-    SFLPhoneserviceJNI.ConfigurationManagerJNI_clearHistory(swigCPtr, this);
-  }
-
-  public void setHistoryLimit(int days) {
-    SFLPhoneserviceJNI.ConfigurationManagerJNI_setHistoryLimit(swigCPtr, this, days);
-  }
-
-  public void setAudioManager(String api) {
-    SFLPhoneserviceJNI.ConfigurationManagerJNI_setAudioManager(swigCPtr, this, api);
-  }
-
-  public String getAudioManager() {
-    return SFLPhoneserviceJNI.ConfigurationManagerJNI_getAudioManager(swigCPtr, this);
-  }
-
-  public StringMap getHookSettings() {
-    return new StringMap(SFLPhoneserviceJNI.ConfigurationManagerJNI_getHookSettings(swigCPtr, this), true);
-  }
-
-  public void setHookSettings(StringMap settings) {
-    SFLPhoneserviceJNI.ConfigurationManagerJNI_setHookSettings(swigCPtr, this, StringMap.getCPtr(settings), settings);
-  }
-
-  public void setAccountsOrder(String order) {
-    SFLPhoneserviceJNI.ConfigurationManagerJNI_setAccountsOrder(swigCPtr, this, order);
-  }
-
-  public VectMap getHistory() {
-    return new VectMap(SFLPhoneserviceJNI.ConfigurationManagerJNI_getHistory(swigCPtr, this), true);
-  }
-
-  public String getAddrFromInterfaceName(String arg0) {
-    return SFLPhoneserviceJNI.ConfigurationManagerJNI_getAddrFromInterfaceName(swigCPtr, this, arg0);
-  }
-
-  public StringVect getAllIpInterface() {
-    return new StringVect(SFLPhoneserviceJNI.ConfigurationManagerJNI_getAllIpInterface(swigCPtr, this), true);
-  }
-
-  public StringVect getAllIpInterfaceByName() {
-    return new StringVect(SFLPhoneserviceJNI.ConfigurationManagerJNI_getAllIpInterfaceByName(swigCPtr, this), true);
-  }
-
-  public StringMap getShortcuts() {
-    return new StringMap(SFLPhoneserviceJNI.ConfigurationManagerJNI_getShortcuts(swigCPtr, this), true);
-  }
-
-  public void setShortcuts(StringMap shortcutsMap) {
-    SFLPhoneserviceJNI.ConfigurationManagerJNI_setShortcuts(swigCPtr, this, StringMap.getCPtr(shortcutsMap), shortcutsMap);
-  }
-
-  public VectMap getCredentials(String accountID) {
-    return new VectMap(SFLPhoneserviceJNI.ConfigurationManagerJNI_getCredentials(swigCPtr, this, accountID), true);
-  }
-
-  public void setCredentials(String accountID, VectMap details) {
-    SFLPhoneserviceJNI.ConfigurationManagerJNI_setCredentials(swigCPtr, this, accountID, VectMap.getCPtr(details), details);
-  }
-
-  public ConfigurationManagerJNI() {
-    this(SFLPhoneserviceJNI.new_ConfigurationManagerJNI(), true);
-  }
-
-}
diff --git a/src/com/savoirfairelinux/sflphone/service/SipService.java b/src/com/savoirfairelinux/sflphone/service/SipService.java
index 21d73b2368f9fd5f3fd906aa0e99a17336356533..37834bcaaeaf722eea1cf431980d1aa4d77d1a0b 100644
--- a/src/com/savoirfairelinux/sflphone/service/SipService.java
+++ b/src/com/savoirfairelinux/sflphone/service/SipService.java
@@ -71,9 +71,9 @@ public class SipService extends Service {
     private SFLphoneApplication sflphoneApp;
     private SipServiceExecutor mExecutor;
     private static HandlerThread executorThread;
-    private CallManagerJNI callManagerJNI;
+    private CallManager callManagerJNI;
     private CallManagerCallBack callManagerCallBack;
-    private ConfigurationManagerJNI configurationManagerJNI;
+    private ConfigurationManager configurationManagerJNI;
     private ConfigurationManagerCallback configurationManagerCallback;
     private ManagerImpl managerImpl;
     private boolean isPjSipStackStarted = false;
@@ -246,11 +246,11 @@ public class SipService extends Service {
         /* set static AppPath before calling manager.init */
         managerImpl.setPath(sflphoneApp.getAppPath());
 
-        callManagerJNI = new CallManagerJNI();
+        callManagerJNI = new CallManager();
         callManagerCallBack = new CallManagerCallBack(this);
         SFLPhoneservice.setCallbackObject(callManagerCallBack);
 
-        configurationManagerJNI = new ConfigurationManagerJNI();
+        configurationManagerJNI = new ConfigurationManager();
         configurationManagerCallback = new ConfigurationManagerCallback(this);
         SFLPhoneservice.setConfigurationCallbackObject(configurationManagerCallback);
 
@@ -875,7 +875,8 @@ public class SipService extends Service {
                 @Override
                 protected String doRun() throws SameThreadException {
                     Log.i(TAG, "SipService.getRecordPath() thread running...");
-                    return configurationManagerJNI.getRecordPath();
+//                    return configurationManager.getRecordPath();
+                    return "";
                 }
             }
 
@@ -895,7 +896,7 @@ public class SipService extends Service {
                 @Override
                 protected void doRun() throws SameThreadException, RemoteException {
                     Log.i(TAG, "SipService.setRecordingCall() thread running...");
-                    callManagerJNI.setRecordingCall(id);
+                    callManagerJNI.toggleRecordingCall(id);
                 }
             });
 
@@ -950,7 +951,7 @@ public class SipService extends Service {
                 @Override
                 protected void doRun() throws SameThreadException, RemoteException {
                     Log.i(TAG, "SipService.setRecordingCall() thread running...");
-                    configurationManagerJNI.setRecordPath(path);
+//                    configurationManagerJNI.setRecordPath(path);
                 }
             });
         }