diff --git a/compile.sh b/compile.sh
index 4b51eafb51b00c25cffcb46db89ad01491b93507..284c425b2649e57ea467d915c2c9730a92f7b2db 100755
--- a/compile.sh
+++ b/compile.sh
@@ -249,7 +249,7 @@ else
         echo "Bootstraping"
         pushd ../../../
         echo $PWD
-        ./configure.sh
+        ./configure.sh --with-opensl --without-dbus
         cd sflphone/daemon
         echo "Building"
         make $MAKEFLAGS
diff --git a/sflphone-android/jenkins-sflphone-android.sh b/jenkins-sflphone-android.sh
similarity index 86%
rename from sflphone-android/jenkins-sflphone-android.sh
rename to jenkins-sflphone-android.sh
index 2b695f3bf8c7bc6e296df809a28af0e8f4afca80..95bfaec415237837aa4732d693d5a7373db2c9b5 100755
--- a/sflphone-android/jenkins-sflphone-android.sh
+++ b/jenkins-sflphone-android.sh
@@ -35,7 +35,7 @@
 
 #
 # Make sure that:
-#     Download android_ndk_ 
+#     Download android_ndk_
 #              android_sdk_
 #     Install java runtime engine, ant
 #     Required dependencies
@@ -47,6 +47,7 @@ export ANDROID_SDK=$HOME/android-buildtools/sdk
 export ANDROID_HOME=$HOME/android-buildtools/sdk
 export GENYMOTION_HOME=$HOME/android-buildtools/genymotion
 export ANDROID_NDK_ROOT=$ANDROID_NDK
+export ANDROID_ABI=armeabi-v7a
 
 ANDROID_SDK_TOOLS=$ANDROID_SDK/tools
 
@@ -68,7 +69,7 @@ ANDROID_TEST_PACKAGE=org.sflphone.tests
 ANDROID_TEST_RUNNNER=android.test.InstrumentationTestRunner
 
 print_help() {
-    echo "Init sflphone-android test server, run test suite 
+    echo "Init sflphone-android test server, run test suite
     Options:
         -h     Print this help message
         -i     Init test server environment (should be run only once)
@@ -103,7 +104,7 @@ launch_emulator() {
 
     echo "Waiting for device ..."
     adb wait-for-device
-    
+
 #    adb push launch-sflphone.sh /data/data
 #    adb shell sh /data/data/launch-sflphone.sh
 }
@@ -122,36 +123,10 @@ build_sflphone_android() {
     echo "----------------- Cleaning git tree"
     git checkout master
     git pull
-    # get rid of any local modifications to git submodule
-    git submodule update
-    pushd jni/sflphone
-    git checkout master
-    git pull
-
-    echo "----------------- Daemon setup"
-    cd daemon/libs
-    ./compile_pjsip.sh -a
-    cd ..
-    ./autogen.sh
-    ./configure-android.sh
-    popd
-    
+    cd sflphone-android
     ./make-swig.sh
-
-	cd jni/
-    echo "----------------- Build JNI related libraries"
-    # ndk-build clean
-    $ANDROID_NDK/ndk-build -j4
-	cd ..
-
-    echo "----------------- Build Java application"
-    ant update project -p .
-    ant clean
-    ant debug
-
-    # echo "Upload sflphone on the virtual device"
-    #adb install -r $ANDROID_SFLPHONE_BIN
-    # ./adb-push-sflphone.sh
+    cd ..
+    ./compile
 }
 
 build_sflphone_test_suite() {
diff --git a/sflphone-android/Tests/Tests.iml b/sflphone-android/Tests/Tests.iml
index a11a481e8234c674fbea018fa4ced1839e432d76..0e0c352e7bc30e636b5ff8b744c6a7fd29e18676 100644
--- a/sflphone-android/Tests/Tests.iml
+++ b/sflphone-android/Tests/Tests.iml
@@ -11,7 +11,7 @@
       <sourceFolder url="file://$MODULE_DIR$/gen" isTestSource="true" generated="true" />
       <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="true" />
     </content>
-    <orderEntry type="inheritedJdk" />
+    <orderEntry type="jdk" jdkName="Android API 19 Platform" jdkType="Android SDK" />
     <orderEntry type="sourceFolder" forTests="false" />
     <orderEntry type="library" name="libs" level="project" />
     <orderEntry type="module" module-name="sflphone-android" />
diff --git a/sflphone-android/jni/callmanager.i b/sflphone-android/jni/callmanager.i
index 15e5df5455f282bc6e6055102f81060e20790340..029c9f431deb966eaf4e65c0d66c81dd4922a888 100644
--- a/sflphone-android/jni/callmanager.i
+++ b/sflphone-android/jni/callmanager.i
@@ -63,7 +63,7 @@ public:
 
 %}
 
-%feature("director") CallManagerCallback;
+%feature("director") Callback;
 
 bool sflph_call_place(const std::string& account_id, const std::string& call_id, const std::string& to);
 bool sflph_call_refuse(const std::string& call_id);
diff --git a/sflphone-android/jni/configurationmanager.i b/sflphone-android/jni/configurationmanager.i
index f1fbbbd29c411c0c845176265c47d423aae401c7..97e390ef1e0f200aacc205d11ce2bd3df8c304cf 100644
--- a/sflphone-android/jni/configurationmanager.i
+++ b/sflphone-android/jni/configurationmanager.i
@@ -117,13 +117,13 @@ bool sflph_config_check_hostname_certificate(const std::string& host, const std:
 class ConfigurationCallback {
 public:
     virtual ~ConfigurationCallback();
-    void configOnVolumeChange(const std::string& device, int value);
-    void configOnAccountsChange(void);
-    void configOnHistoryChange(void);
-    void configOnStunStatusFail(const std::string& account_id);
-    void configOnRegistrationStateChange(const std::string& account_id, int state);
-    void configOnSipRegistrationStateChange(const std::string& account_id, const std::string& state, int code);
-    void configOnError(int alert);
-    std::vector<int32_t> configGetHardwareAudioFormat(void);
+    virtual void configOnVolumeChange(const std::string& device, int value);
+    virtual void configOnAccountsChange(void);
+    virtual void configOnHistoryChange(void);
+    virtual void configOnStunStatusFail(const std::string& account_id);
+    virtual void configOnRegistrationStateChange(const std::string& account_id, int state);
+    virtual void configOnSipRegistrationStateChange(const std::string& account_id, const std::string& state, int code);
+    virtual void configOnError(int alert);
+    virtual std::vector<int32_t> configGetHardwareAudioFormat(void);
 };
 
diff --git a/sflphone-android/jni/managerimpl.i b/sflphone-android/jni/managerimpl.i
index 51ce447f24dc8a1c2d52a1e25ca097ab4bcf76ee..bcce621850089120b81ab6cbab46ede87ddcd981 100644
--- a/sflphone-android/jni/managerimpl.i
+++ b/sflphone-android/jni/managerimpl.i
@@ -33,14 +33,6 @@
 #include "sflphone.h"
 %}
 
-/**
- * Initializes libsflphone.
- *
- * @param ev_handlers Event handlers
- * @param flags       Flags to customize this initialization
- * @returns           0 if successful or a negative error code
- */
-int sflph_init(struct sflph_ev_handlers* ev_handlers, int flags);
 
 /**
  * Finalizes libsflphone, freeing any resource allocated by the library.
diff --git a/sflphone-android/sflphone-android.iml b/sflphone-android/sflphone-android.iml
index e0ae82e4d227736780a0acc9870beffb19856ce8..ec0b651a6eb3ae449eee8a3a11061d10c5518aa2 100644
--- a/sflphone-android/sflphone-android.iml
+++ b/sflphone-android/sflphone-android.iml
@@ -11,10 +11,9 @@
       <sourceFolder url="file://$MODULE_DIR$/gen" isTestSource="false" generated="true" />
       <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
     </content>
-    <orderEntry type="inheritedJdk" />
+    <orderEntry type="jdk" jdkName="Android API 19 Platform" jdkType="Android SDK" />
     <orderEntry type="sourceFolder" forTests="false" />
     <orderEntry type="library" name="libs" level="project" />
-    <orderEntry type="module" module-name="sflphone-android" />
   </component>
 </module>
 
diff --git a/sflphone-android/src/org/sflphone/service/CallManagerCallBack.java b/sflphone-android/src/org/sflphone/service/CallManagerCallBack.java
index f3c06eb04a20610c5b8f4b6bc6817a782d34d954..c8b8502b9d944334e3c5d3d1d286712c2df1bd5b 100644
--- a/sflphone-android/src/org/sflphone/service/CallManagerCallBack.java
+++ b/sflphone-android/src/org/sflphone/service/CallManagerCallBack.java
@@ -34,6 +34,7 @@ public class CallManagerCallBack extends Callback {
 
 
     public CallManagerCallBack(SipService context) {
+        super();
         mService = context;
     }
 
diff --git a/sflphone-android/src/org/sflphone/service/ConfigurationManagerCallback.java b/sflphone-android/src/org/sflphone/service/ConfigurationManagerCallback.java
index 9a3eabc562b1d9fb64f92b9d159ea1223dcac271..3017ffe2f3b160dedaddfb1351b57166f37e11b8 100644
--- a/sflphone-android/src/org/sflphone/service/ConfigurationManagerCallback.java
+++ b/sflphone-android/src/org/sflphone/service/ConfigurationManagerCallback.java
@@ -34,6 +34,7 @@ public class ConfigurationManagerCallback extends ConfigurationCallback {
     static public final String ACCOUNT_STATE_CHANGED = "account-state-changed";
 
     public ConfigurationManagerCallback(SipService context) {
+        super();
         mService = context;
     }
 
@@ -89,14 +90,13 @@ public class ConfigurationManagerCallback extends ConfigurationCallback {
             strState = "NUMBER_OF_STATES";
             break;
         }
-        
 
         sendAccountStateChangedMessage(accoundID, strState, 0);
     }
 
     @Override
     public void configOnSipRegistrationStateChange(String account_id, String state, int code) {
-        Log.d(TAG, "configOnSipRegistrationStateChange : (" + account_id);
+
     }
 
     @Override
@@ -105,7 +105,6 @@ public class ConfigurationManagerCallback extends ConfigurationCallback {
     }
 
     private void sendAccountStateChangedMessage(String accoundID, String state, int code) {
-        Log.i(TAG, "sendAccountStateChangedMessage");
         Intent intent = new Intent(ACCOUNT_STATE_CHANGED);
         intent.putExtra("Account", accoundID);
         intent.putExtra("state", state);
diff --git a/sflphone-android/src/org/sflphone/service/SipService.java b/sflphone-android/src/org/sflphone/service/SipService.java
index 831b963c3ac8780b617091f47a557847eec77e8e..60b43eeea86e032fb8a1319742e40c930870361a 100644
--- a/sflphone-android/src/org/sflphone/service/SipService.java
+++ b/sflphone-android/src/org/sflphone/service/SipService.java
@@ -50,8 +50,6 @@ public class SipService extends Service {
     private SipServiceExecutor mExecutor;
     private static HandlerThread executorThread;
 
-
-
     private Handler handler = new Handler();
     private static int POLLING_TIMEOUT = 500;
     private Runnable pollEvents = new Runnable() {
@@ -61,8 +59,6 @@ public class SipService extends Service {
             handler.postDelayed(this, POLLING_TIMEOUT);
         }
     };
-    private CallManagerCallBack callManagerCallBack;
-    private ConfigurationManagerCallback configurationManagerCallback;
     private boolean isPjSipStackStarted = false;
 
     protected SipNotifications mNotificationManager;
@@ -70,8 +66,8 @@ public class SipService extends Service {
     protected MediaManager mMediaManager;
 
     private HashMap<String, Conference> mConferences = new HashMap<String, Conference>();
-    private ConfigurationCallback conf;
-    private CallManagerCallBack call;
+    private ConfigurationManagerCallback configurationCallback;
+    private CallManagerCallBack callManagerCallBack;
 
     public HashMap<String, Conference> getConferences() {
         return mConferences;
@@ -257,9 +253,9 @@ public class SipService extends Service {
             isPjSipStackStarted = false;
         }
 
-        conf = new ConfigurationCallback();
-        call = new CallManagerCallBack(this);
-        SFLPhoneservice.init(conf, call);
+        configurationCallback = new ConfigurationManagerCallback(this);
+        callManagerCallBack = new CallManagerCallBack(this);
+        SFLPhoneservice.init(configurationCallback, callManagerCallBack);
         handler.postDelayed(pollEvents, POLLING_TIMEOUT);
         Log.i(TAG, "PjSIPStack started");
     }