diff --git a/callwidget.cpp b/callwidget.cpp
index 25b42e3b220ffb79fe906507384ec2be535ffbf2..9c4b56f3760acae0f79739d6f182c1aa4120959f 100644
--- a/callwidget.cpp
+++ b/callwidget.cpp
@@ -461,7 +461,7 @@ CallWidget::on_refuseButton_clicked()
 {
     auto convInfo = Utils::getSelectedConversation();
     if (!convInfo.uid.empty()) {
-        LRCInstance::getCurrentCallModel()->hangUp(convInfo.callId);
+        LRCInstance::getCurrentCallModel()->refuse(convInfo.callId);
         showConversationView();
     }
 }
@@ -469,7 +469,11 @@ CallWidget::on_refuseButton_clicked()
 void
 CallWidget::on_cancelButton_clicked()
 {
-    on_refuseButton_clicked();
+    auto convInfo = Utils::getSelectedConversation();
+    if (!convInfo.uid.empty()) {
+        LRCInstance::getCurrentCallModel()->hangUp(convInfo.callId);
+        showConversationView();
+    }
 }
 
 void