diff --git a/src/call.cpp b/src/call.cpp
index b75637c6ca1411fb9fed7d1019cd76acffffb62d..eca7f5ab36d0e5c1ce92c934732fbb10d3dadac7 100644
--- a/src/call.cpp
+++ b/src/call.cpp
@@ -152,6 +152,7 @@ Call::removeCall()
     setState(CallState::OVER);
     if (Recordable::isRecording())
         Recordable::stopRecording();
+    Manager::instance().checkAudio();
 }
 
 const std::string&
diff --git a/src/manager.cpp b/src/manager.cpp
index dcace10ef557ed00538ed4b17f94ef78da0f7fd1..945e240d9058e23fcef8e9216b8252ad4fb217bb 100644
--- a/src/manager.cpp
+++ b/src/manager.cpp
@@ -1028,7 +1028,6 @@ Manager::hangupCall(const std::string& callId)
 
     try {
         call->hangup(0);
-        checkAudio();
     } catch (const VoipLinkException &e) {
         JAMI_ERR("%s", e.what());
         return false;
@@ -1190,8 +1189,6 @@ Manager::refuseCall(const std::string& id)
 
     call->refuse();
 
-    checkAudio();
-
     pimpl_->removeWaitingCall(id);
 
     // Disconnect streams