From ebe61701d9fee4cb21788391b4106a9efc302323 Mon Sep 17 00:00:00 2001
From: trilene <trilene@runbox.com>
Date: Tue, 12 Jan 2021 15:16:59 -0500
Subject: [PATCH] Fix spurious call invite timeout

---
 src/CallManager.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/CallManager.cpp b/src/CallManager.cpp
index f725d49f8..0841a079d 100644
--- a/src/CallManager.cpp
+++ b/src/CallManager.cpp
@@ -45,8 +45,9 @@ CallManager::CallManager(QObject *parent)
                   nhlog::ui()->debug("WebRTC: call id: {} - sending offer", callid_);
                   emit newMessage(roomid_, CallInvite{callid_, sdp, 0, timeoutms_});
                   emit newMessage(roomid_, CallCandidates{callid_, candidates, 0});
-                  QTimer::singleShot(timeoutms_, this, [this]() {
-                          if (session_.state() == webrtc::State::OFFERSENT) {
+                  std::string callid(callid_);
+                  QTimer::singleShot(timeoutms_, this, [this, callid]() {
+                          if (session_.state() == webrtc::State::OFFERSENT && callid == callid_) {
                                   hangUp(CallHangUp::Reason::InviteTimeOut);
                                   emit ChatPage::instance()->showNotification(
                                     "The remote side failed to pick up.");
-- 
GitLab