diff --git a/linphone-desktop/src/components/call/CallModel.cpp b/linphone-desktop/src/components/call/CallModel.cpp index 15621f0a1..011e07c8e 100644 --- a/linphone-desktop/src/components/call/CallModel.cpp +++ b/linphone-desktop/src/components/call/CallModel.cpp @@ -51,7 +51,7 @@ CallModel::CallModel (shared_ptr call) { timer->setSingleShot(true); timer->setObjectName(AUTO_ANSWER_OBJECT_NAME); - QObject::connect(timer, &QTimer::timeout, this, &CallModel::accept); + QObject::connect(timer, &QTimer::timeout, this, &CallModel::acceptWithAutoAnswerDelay); timer->start(); } } @@ -298,6 +298,19 @@ CallModel::CallStatus CallModel::getStatus () const { // ----------------------------------------------------------------------------- +void CallModel::acceptWithAutoAnswerDelay () { + // Use auto-answer if activated and it's the only call. + CoreManager *coreManager = CoreManager::getInstance(); + if (coreManager->getSettingsModel()->getAutoAnswerStatus() && coreManager->getCore()->getCallsNb() == 1) + accept(); +} + +// ----------------------------------------------------------------------------- + +QString CallModel::getCallError () const { + return mCallError; +} + void CallModel::setCallErrorFromReason (linphone::Reason reason) { switch (reason) { case linphone::ReasonDeclined: @@ -322,10 +335,6 @@ void CallModel::setCallErrorFromReason (linphone::Reason reason) { emit callErrorChanged(mCallError); } -QString CallModel::getCallError () const { - return mCallError; -} - // ----------------------------------------------------------------------------- int CallModel::getDuration () const { diff --git a/linphone-desktop/src/components/call/CallModel.hpp b/linphone-desktop/src/components/call/CallModel.hpp index 5917f7c28..ccd325024 100644 --- a/linphone-desktop/src/components/call/CallModel.hpp +++ b/linphone-desktop/src/components/call/CallModel.hpp @@ -110,8 +110,10 @@ private: return mCall->getDir() == linphone::CallDirOutgoing; } - void setCallErrorFromReason (linphone::Reason reason); + void acceptWithAutoAnswerDelay (); + QString getCallError () const; + void setCallErrorFromReason (linphone::Reason reason); int getDuration () const; float getQuality () const;