diff --git a/src/call.cpp b/src/call.cpp index 8f0ab0b0e24ecc21339efe4528b540f595a2dc52..55d390dafc598dad60a127c8cf4be57330afccc5 100644 --- a/src/call.cpp +++ b/src/call.cpp @@ -125,12 +125,7 @@ Call::Call(const std::shared_ptr<Account>& account, duration_start_ = clock::now(); else if (cnx_state == ConnectionState::DISCONNECTED && call_state == CallState::OVER) { if (auto jamiAccount = std::dynamic_pointer_cast<JamiAccount>(getAccount().lock())) { - auto duration = duration_start_ == time_point::min() - ? 0 - : std::chrono::duration_cast<std::chrono::milliseconds>( - clock::now() - duration_start_) - .count(); - jamiAccount->addCallHistoryMessage(getPeerNumber(), duration); + jamiAccount->addCallHistoryMessage(getPeerNumber(), getCallDuration().count()); monitor(); } diff --git a/src/call.h b/src/call.h index 9ecb37cb78203df64e8a10bd15cf7a93baa2e1d2..1410f13e310d8cc5ded25b58667183695bb5f910 100644 --- a/src/call.h +++ b/src/call.h @@ -301,6 +301,17 @@ public: return parent_ != nullptr; } + /** + * @return Call duration in milliseconds + */ + std::chrono::milliseconds getCallDuration() const + { + return duration_start_ == time_point::min() + ? std::chrono::milliseconds::zero() + : std::chrono::duration_cast<std::chrono::milliseconds>(clock::now() + - duration_start_); + } + public: // media management virtual bool toggleRecording(); diff --git a/src/sip/sipcall.cpp b/src/sip/sipcall.cpp index 2314d69e9f5db9742a11bd1d8826c23200cd10c7..06367b51c8ed660aaf7284000b23eb1282e9541f 100644 --- a/src/sip/sipcall.cpp +++ b/src/sip/sipcall.cpp @@ -2352,8 +2352,7 @@ SIPCall::monitor() const return; } JAMI_DBG("- Call %s with %s:", getCallId().c_str(), getPeerNumber().c_str()); - // TODO move in getCallDuration - JAMI_DBG("\t- Duration: %s", dht::print_duration(clock::now() - duration_start_).c_str()); + JAMI_DBG("\t- Duration: %s", dht::print_duration(getCallDuration()).c_str()); for (auto& mediaAttr : getMediaAttributeList()) JAMI_DBG("\t- Media: %s", mediaAttr.toString(true).c_str()); #ifdef ENABLE_VIDEO