diff --git a/src/mainview/components/MediaHandlerPicker.qml b/src/mainview/components/MediaHandlerPicker.qml
index 6e002b68a1977a6f2bc2945431c750b6a26ef765..fec106108fe51848af86bc0b7cf91d315bf52376 100644
--- a/src/mainview/components/MediaHandlerPicker.qml
+++ b/src/mainview/components/MediaHandlerPicker.qml
@@ -21,14 +21,17 @@ import QtQuick.Controls 2.14
 import QtQuick.Layouts 1.14
 import QtQuick.Controls.Universal 2.14
 import net.jami.Models 1.0
+import net.jami.Adapters 1.0
 
 import "../../commoncomponents"
 
 Popup {
     id: root
     function toggleMediaHandlerSlot(mediaHandlerId, isLoaded) {
-        PluginModel.toggleCallMediaHandler(mediaHandlerId, !isLoaded)
-        mediahandlerPickerListView.model = PluginAdapter.getMediaHandlerSelectableModel()
+        var callId = UtilsAdapter.getCallId(callStackViewWindow.responsibleAccountId,
+                                            callStackViewWindow.responsibleConvUid)
+        PluginModel.toggleCallMediaHandler(mediaHandlerId, callId, !isLoaded)
+        mediahandlerPickerListView.model = PluginAdapter.getMediaHandlerSelectableModel(callId)
     }
 
     width: 350
@@ -93,7 +96,11 @@ Popup {
                     Layout.preferredWidth: mediahandlerPickerPopupRect.width
                     Layout.preferredHeight: 200
 
-                    model: PluginAdapter.getMediaHandlerSelectableModel()
+                    model: {
+                        var callId = UtilsAdapter.getCallId(callStackViewWindow.responsibleAccountId,
+                                                            callStackViewWindow.responsibleConvUid)
+                        return PluginAdapter.getMediaHandlerSelectableModel(callId)
+                        }
 
                     clip: true
 
@@ -235,7 +242,9 @@ Popup {
 
     onAboutToShow: {
         // Reset the model on each show.
-        mediahandlerPickerListView.model = PluginAdapter.getMediaHandlerSelectableModel()
+        var callId = UtilsAdapter.getCallId(callStackViewWindow.responsibleAccountId,
+                                            callStackViewWindow.responsibleConvUid)
+        mediahandlerPickerListView.model = PluginAdapter.getMediaHandlerSelectableModel(callId)
     }
 
     background: Rectangle {
diff --git a/src/mediahandleritemlistmodel.cpp b/src/mediahandleritemlistmodel.cpp
index 3c9d3a1578c13117ab170882a8ca67e0b014d5c9..2fae003bf34626dde824851c632dd379cd03a2fa 100644
--- a/src/mediahandleritemlistmodel.cpp
+++ b/src/mediahandleritemlistmodel.cpp
@@ -18,9 +18,11 @@
 
 #include "mediahandleritemlistmodel.h"
 
-MediaHandlerItemListModel::MediaHandlerItemListModel(QObject* parent)
+MediaHandlerItemListModel::MediaHandlerItemListModel(QObject* parent, const QString& callId)
     : QAbstractListModel(parent)
-{}
+{
+    callId_ = callId;
+}
 
 MediaHandlerItemListModel::~MediaHandlerItemListModel() {}
 
@@ -59,10 +61,11 @@ MediaHandlerItemListModel::data(const QModelIndex& index, int role) const
 
     auto details = LRCInstance::pluginModel().getCallMediaHandlerDetails(
         mediahandlerList.at(index.row()));
-    auto status = LRCInstance::pluginModel().getCallMediaHandlerStatus();
+    auto status = LRCInstance::pluginModel().getCallMediaHandlerStatus(callId_);
     bool loaded = false;
-    if (status["name"] == details.id)
-        loaded = true;
+    for (const auto& mediaHandler : status[callId_])
+        if (mediaHandler == details.id)
+            loaded = true;
     if (!details.pluginId.isEmpty()) {
         details.pluginId.remove(details.pluginId.size() - 5, 5);
     }
@@ -132,3 +135,15 @@ MediaHandlerItemListModel::reset()
     beginResetModel();
     endResetModel();
 }
+
+QString
+MediaHandlerItemListModel::callId()
+{
+    return callId_;
+}
+
+void
+MediaHandlerItemListModel::setCallId(QString callId)
+{
+    callId_ = callId;
+}
diff --git a/src/mediahandleritemlistmodel.h b/src/mediahandleritemlistmodel.h
index 11fe45b3b96af4d80f90a3bed6eeb3de7c613b9d..7f262361fa19dac8add84241af9610dd384d658a 100644
--- a/src/mediahandleritemlistmodel.h
+++ b/src/mediahandleritemlistmodel.h
@@ -38,7 +38,7 @@ public:
     };
     Q_ENUM(Role)
 
-    explicit MediaHandlerItemListModel(QObject* parent = 0);
+    explicit MediaHandlerItemListModel(QObject* parent = 0, const QString& callId = QString(""));
     ~MediaHandlerItemListModel();
 
     /*
@@ -59,4 +59,10 @@ public:
      * This function is to reset the model when there's new account added.
      */
     Q_INVOKABLE void reset();
+
+    QString callId();
+    void setCallId(QString callId);
+
+private:
+    QString callId_ = QString("");
 };
diff --git a/src/pluginadapter.cpp b/src/pluginadapter.cpp
index 57b5d8bec950bb632fb3463214eb50a2577e5d92..83aa1f1d5fdf01276ead50c50f66c8cb47c56a40 100644
--- a/src/pluginadapter.cpp
+++ b/src/pluginadapter.cpp
@@ -25,9 +25,9 @@ PluginAdapter::PluginAdapter(QObject* parent)
 {}
 
 QVariant
-PluginAdapter::getMediaHandlerSelectableModel()
+PluginAdapter::getMediaHandlerSelectableModel(const QString& callId)
 {
-    mediaHandlerListModel_.reset(new MediaHandlerItemListModel(this));
+    mediaHandlerListModel_.reset(new MediaHandlerItemListModel(this, callId));
     return QVariant::fromValue(mediaHandlerListModel_.get());
 }
 
diff --git a/src/pluginadapter.h b/src/pluginadapter.h
index 814fcbb4014013606e9e6bd656ae74d29dcc89be..13a1fd48a21cd2dd1e5fe12eab22daf094119680 100644
--- a/src/pluginadapter.h
+++ b/src/pluginadapter.h
@@ -38,7 +38,7 @@ public:
 protected:
     void safeInit() override {};
 
-    Q_INVOKABLE QVariant getMediaHandlerSelectableModel();
+    Q_INVOKABLE QVariant getMediaHandlerSelectableModel(const QString& callId = QString(""));
     Q_INVOKABLE QVariant getPluginSelectableModel();
     Q_INVOKABLE QVariant getPluginPreferencesModel(const QString& pluginId,
                                                    const QString& mediaHandlerName = "");
diff --git a/src/settingsview/components/PluginSettingsPage.qml b/src/settingsview/components/PluginSettingsPage.qml
index dbc5cb93b13812706b8e81965a7b0289d540e383..ba7cf74087c4cc84e40cda242d1ae6fbd0ff6c01 100644
--- a/src/settingsview/components/PluginSettingsPage.qml
+++ b/src/settingsview/components/PluginSettingsPage.qml
@@ -65,7 +65,6 @@ Rectangle {
 
                 pluginListSettingsView.visible = checked
                 if (!pluginListSettingsView.visible) {
-                    PluginModel.toggleCallMediaHandler("", true)
                     pluginListSettingsView.hidePreferences()
                 }
             }