diff --git a/compile.sh b/compile.sh
index 26e2698ceb1a7f0292ac1961024d4594d3797418..7f6636eed137afdd799fb301211ffa3798dd33b3 100755
--- a/compile.sh
+++ b/compile.sh
@@ -96,7 +96,7 @@ ANDROID_PATH="`pwd`"
 if [ ! -z "$FETCH" ]
 then
     # 1/ libsflphone
-    TESTED_HASH=855de64eca93b7a153c8c5c01f1dbcef6b64ecdc
+    TESTED_HASH=f9b3354a49a29f10c466a4d856216c5d82525666
     if [ ! -d "sflphone" ]; then
         echo "Ring source not found, cloning"
         git clone git@gitlab.savoirfairelinux.com:sfl-ports/sflphone.git sflphone
diff --git a/sflphone-android/jni/jni_interface.i b/sflphone-android/jni/jni_interface.i
index e3b6ff855ce93664406bbc5f48e766ce29576665..6bb64faddfdf9dc486cb5cf802cde8a261380515 100644
--- a/sflphone-android/jni/jni_interface.i
+++ b/sflphone-android/jni/jni_interface.i
@@ -68,6 +68,7 @@ namespace std {
 %header %{
 
 #include <logger.h>
+#include <functional>
 
 %}
 
@@ -89,43 +90,46 @@ namespace std {
  */
 void init(ConfigurationCallback* conf_cb, Callback* call_cb) {
 
+    using namespace std::placeholders;
+    using std::bind;
+
+
     // Call event handlers
     sflph_call_ev_handlers callEvHandlers = {
-        Callback::callOnStateChange,
-        Callback::callOnTransferFail,
-        Callback::callOnTransferSuccess,
-        Callback::callOnRecordPlaybackStopped,
-        Callback::callOnVoiceMailNotify,
-        Callback::callOnIncomingMessage,
-        Callback::callOnIncomingCall,
-        Callback::callOnRecordPlaybackFilepath,
-        Callback::callOnConferenceCreated,
-        Callback::callOnConferenceChanged,
-        Callback::callOnUpdatePlaybackScale,
-        Callback::callOnConferenceRemove,
-        Callback::callOnNewCall,
-        Callback::callOnSipCallStateChange,
-        Callback::callOnRecordStateChange,
-        Callback::callOnSecureSdesOn,
-        Callback::callOnSecureSdesOff,
-        Callback::callOnSecureZrtpOn,
-        Callback::callOnSecureZrtpOff,
-        Callback::callOnShowSas,
-        Callback::callOnZrtpNotSuppOther,
-        Callback::callOnZrtpNegotiationFail,
-        Callback::callOnRtcpReceiveReport,
+        bind(&Callback::callOnStateChange, call_cb, _1, _2),
+        bind(&Callback::callOnTransferFail, call_cb),
+        bind(&Callback::callOnTransferSuccess, call_cb),
+        bind(&Callback::callOnRecordPlaybackStopped, call_cb, _1),
+        bind(&Callback::callOnVoiceMailNotify, call_cb, _1, _2),
+        bind(&Callback::callOnIncomingMessage, call_cb, _1, _2, _3),
+        bind(&Callback::callOnIncomingCall, call_cb, _1, _2, _3),
+        bind(&Callback::callOnRecordPlaybackFilepath, call_cb, _1, _2),
+        bind(&Callback::callOnConferenceCreated, call_cb, _1),
+        bind(&Callback::callOnConferenceChanged, call_cb, _1, _2),
+        bind(&Callback::callOnUpdatePlaybackScale, call_cb, _1, _2, _3),
+        bind(&Callback::callOnConferenceRemove, call_cb, _1),
+        bind(&Callback::callOnNewCall, call_cb, _1, _2, _3),
+        bind(&Callback::callOnSipCallStateChange, call_cb, _1, _2, _3),
+        bind(&Callback::callOnRecordStateChange, call_cb, _1, _2),
+        bind(&Callback::callOnSecureSdesOn, call_cb, _1),
+        bind(&Callback::callOnSecureSdesOff, call_cb, _1),
+        bind(&Callback::callOnSecureZrtpOn, call_cb, _1, _2),
+        bind(&Callback::callOnSecureZrtpOff, call_cb, _1),
+        bind(&Callback::callOnShowSas, call_cb, _1, _2, _3),
+        bind(&Callback::callOnZrtpNotSuppOther, call_cb, _1),
+        bind(&Callback::callOnZrtpNegotiationFail, call_cb, _1, _2, _3),
+        bind(&Callback::callOnRtcpReceiveReport, call_cb, _1, _2)
     };
 
     // Configuration event handlers
     sflph_config_ev_handlers configEvHandlers = {
-        ConfigurationCallback::configOnVolumeChange,
-        ConfigurationCallback::configOnAccountsChange,
-        ConfigurationCallback::configOnHistoryChange,
-        ConfigurationCallback::configOnStunStatusFail,
-        ConfigurationCallback::configOnRegistrationStateChange,
-        ConfigurationCallback::configOnSipRegistrationStateChange,
-        ConfigurationCallback::configOnError,
-        ConfigurationCallback::configGetHardwareAudioFormat,
+        bind(&ConfigurationCallback::configOnVolumeChange, conf_cb, _1, _2),
+        bind(&ConfigurationCallback::configOnAccountsChange, conf_cb),
+        bind(&ConfigurationCallback::configOnHistoryChange, conf_cb),
+        bind(&ConfigurationCallback::configOnStunStatusFail, conf_cb, _1),
+        bind(&ConfigurationCallback::configOnRegistrationStateChange, conf_cb, _1, _2),
+        bind(&ConfigurationCallback::configOnSipRegistrationStateChange, conf_cb, _1, _2, _3),
+        bind(&ConfigurationCallback::configOnError, conf_cb, _1)
     };
 
     // All event handlers