From 8968d51b6521dfc11d9f9107a8d4d923710143f3 Mon Sep 17 00:00:00 2001 From: trilene Date: Thu, 16 Jul 2020 13:31:38 -0400 Subject: [PATCH] Handle preemptive CallAnswer from fellow device --- src/CallManager.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/CallManager.cpp b/src/CallManager.cpp index 05e8afc3..dbcf55b9 100644 --- a/src/CallManager.cpp +++ b/src/CallManager.cpp @@ -207,7 +207,11 @@ CallManager::answerInvite(const CallInvite &invite) void CallManager::handleEvent(const RoomEvent &callCandidatesEvent) { + if (callCandidatesEvent.sender == utils::localUser().toStdString()) + return; + nhlog::ui()->debug("CallManager::incoming CallCandidates from {} with id {}", callCandidatesEvent.sender, callCandidatesEvent.content.call_id); + if (callid_ == callCandidatesEvent.content.call_id) { if (onActiveCall()) session_.acceptICECandidates(callCandidatesEvent.content.candidates); @@ -223,6 +227,14 @@ void CallManager::handleEvent(const RoomEvent &callAnswerEvent) { nhlog::ui()->debug("CallManager::incoming CallAnswer from {} with id {}", callAnswerEvent.sender, callAnswerEvent.content.call_id); + + if (!onActiveCall() && callAnswerEvent.sender == utils::localUser().toStdString() && + callid_ == callAnswerEvent.content.call_id) { + stopRingtone(); + MainWindow::instance()->hideOverlay(); + return; + } + if (onActiveCall() && callid_ == callAnswerEvent.content.call_id) { stopRingtone(); if (!session_.acceptAnswer(callAnswerEvent.content.sdp)) {