diff --git a/src/callwidget.cpp b/src/callwidget.cpp
index 5689802d8a195bfc048ddd62d930400715732556..4161c2cfd5ebc52df9e619c86ba35cf40a533609 100644
--- a/src/callwidget.cpp
+++ b/src/callwidget.cpp
@@ -383,22 +383,26 @@ CallWidget::setupSmartListContextMenu(const QPoint& pos)
     menu.addAction(videoCallAction);
     connect(videoCallAction, &QAction::triggered,
         [this, convUid, conversation, convModel]() {
-            convModel->placeCall(convUid);
+            if (!ui->messageView->isVisible())
+                showChatView(LRCInstance::getCurrAccId(), conversation);
             ui->callingPhoto->setPixmap(QPixmap::fromImage(imageForConv(convUid)));
             if (convUid != LRCInstance::getCurrentConvUid()) {
                 selectConversation(conversation);
             }
+            convModel->placeCall(convUid);
         });
     // audio call
     auto audioCallAction = new QAction(tr("Start audio call"), this);
     menu.addAction(audioCallAction);
     connect(audioCallAction, &QAction::triggered,
         [this, convUid, conversation, convModel]() {
-            convModel->placeAudioOnlyCall(convUid);
+            if (!ui->messageView->isVisible())
+                showChatView(LRCInstance::getCurrAccId(), conversation);
             ui->callingPhoto->setPixmap(QPixmap::fromImage(imageForConv(convUid)));
             if (convUid != LRCInstance::getCurrentConvUid()) {
                 selectConversation(conversation);
             }
+            convModel->placeAudioOnlyCall(convUid);
         });
     // clear conversation
     auto clearConversationAction = new QAction(tr("Clear conversation"), this);