call: switch to first call on hold when hanging up another

Refs #75423

Change-Id: Ifb5e09c4d1f414078352aa2134547659bec31fea
diff --git a/callwidget.cpp b/callwidget.cpp
index 6c4625d..398433b 100644
--- a/callwidget.cpp
+++ b/callwidget.cpp
@@ -261,6 +261,13 @@
         setActualCall(nullptr);
         ui->videoWidget->hide();
         displaySpinner(false);
+        auto onHoldCall = callModel_->getActiveCalls().first();
+        if (onHoldCall != nullptr) {
+            setActualCall(onHoldCall);
+            onHoldCall->performAction(Call::Action::HOLD);
+        }
+    } else if (call->state() == Call::State::HOLD) {
+        ui->videoWidget->hide();
     } else if (call->state() == Call::State::CURRENT) {
         displaySpinner(false);
         ui->videoWidget->show();