diff --git a/src/account.h b/src/account.h
index 027b429ca3ff18e9a4fc7934c08cf74d2668907f..4cdfff422443a154c048d7f901b1ca5595436376 100644
--- a/src/account.h
+++ b/src/account.h
@@ -156,7 +156,7 @@ class Account : public Serializable, public std::enable_shared_from_this<Account
         virtual uint64_t sendTextMessage(const std::string& to UNUSED,
                                      const std::map<std::string, std::string>& payloads UNUSED) { return 0; }
 
-        virtual std::vector<DRing::Message> getLastMessages(const uint64_t& base_timestamp) {
+        virtual std::vector<DRing::Message> getLastMessages(const uint64_t& /*base_timestamp*/) {
             return {};
         }
 
diff --git a/src/media/video/video_input.cpp b/src/media/video/video_input.cpp
index 5f88e69459d41b3c637a15d0d66fd1942b79590a..12043dad3032d48c4c81459487c0517718888e08 100644
--- a/src/media/video/video_input.cpp
+++ b/src/media/video/video_input.cpp
@@ -230,7 +230,7 @@ bool VideoInput::captureFrame()
 
         case MediaDecoder::Status::FrameFinished:
             publishFrame();
-
+            return true;
         // continue decoding
         case MediaDecoder::Status::Success:
         default:
diff --git a/src/ringdht/ringaccount.cpp b/src/ringdht/ringaccount.cpp
index 22dfc80d0af4645853d9a98a18164b525e632aaf..6843e6e5ee6ffba4f83073ce0a9f2dddb6cc32c2 100644
--- a/src/ringdht/ringaccount.cpp
+++ b/src/ringdht/ringaccount.cpp
@@ -278,10 +278,10 @@ RingAccount::RingAccount(const std::string& accountID, bool /* presenceEnabled *
     , idPath_(fileutils::get_data_dir()+DIR_SEPARATOR_STR+getAccountID())
     , cachePath_(fileutils::get_cache_dir()+DIR_SEPARATOR_STR+getAccountID())
     , dataPath_(cachePath_ + DIR_SEPARATOR_STR "values")
-    , dhtPeerConnector_ {new DhtPeerConnector {*this}}
     , proxyEnabled_(false)
     , proxyServer_("")
     , deviceKey_("")
+    , dhtPeerConnector_ {new DhtPeerConnector {*this}}
 {
     // Force the SFL turn server if none provided yet
     turnServer_ = DEFAULT_TURN_SERVER;
@@ -490,7 +490,7 @@ RingAccount::startOutgoingCall(const std::shared_ptr<SIPCall>& call, const std::
             });
             return false;
         });
-    }, [wCall](const std::shared_ptr<RingAccount>& sthis, bool ok){
+    }, [wCall](const std::shared_ptr<RingAccount>&, bool ok){
         if (not ok) {
             if (auto call = wCall.lock()) {
                 RING_WARN("[call:%s] no devices found", call->getCallId().c_str());
diff --git a/src/sip/sipcall.cpp b/src/sip/sipcall.cpp
index 20bb887f79c81cdeb25f97e1af32f0eaf3b75a84..3c7e6e0b444310c7876500da9e44d29bdb4c4a4a 100644
--- a/src/sip/sipcall.cpp
+++ b/src/sip/sipcall.cpp
@@ -82,7 +82,7 @@ static constexpr int ICE_VIDEO_RTCP_COMPID {3};
 const char* const SIPCall::LINK_TYPE = SIPAccount::ACCOUNT_TYPE;
 
 static void
-dtmfSend(SIPCall &call, char code, const std::string &dtmf)
+dtmfSend(SIPCall &call, char code, const std::string& /*dtmf*/)
 {
     int duration = Manager::instance().voipPreferences.getPulseLength();
     char dtmf_body[1000];
diff --git a/src/sip/sipvoiplink.cpp b/src/sip/sipvoiplink.cpp
index 31f114b93414b14fa94a19219ec5da3243a40ba5..61997d8605bae944e9c352272ab3119a53f601b8 100644
--- a/src/sip/sipvoiplink.cpp
+++ b/src/sip/sipvoiplink.cpp
@@ -274,15 +274,11 @@ transaction_request_cb(pjsip_rx_data *rdata)
     Manager::instance().hookPreference.runHook(rdata->msg_info.msg);
 
     bool hasVideo = false;
-    bool hasAudio = false;
     if (r_sdp) {
         auto pj_str_video = pj_str((char*) "video");
-        auto pj_str_audio = pj_str((char*) "audio");
         for (decltype(r_sdp->media_count) i=0 ; i < r_sdp->media_count; i++) {
             if (pj_strcmp(&r_sdp->media[i]->desc.media, &pj_str_video) == 0)
                 hasVideo = true;
-            else if (pj_strcmp(&r_sdp->media[i]->desc.media, &pj_str_audio) == 0)
-                hasAudio = true;
         }
     }
 
@@ -852,7 +848,8 @@ invite_session_state_changed_cb(pjsip_inv_session *inv, pjsip_event *ev)
                     if (inv->role != PJSIP_ROLE_UAC)
                         break;
                     // close call
-
+                    call->onClosed();
+                    break;
                 // The call terminates normally - BYE / CANCEL
                 case PJSIP_SC_OK:
                 case PJSIP_SC_REQUEST_TERMINATED: