diff --git a/src/api/call.h b/src/api/call.h
index d9f2cde1e8ce229f64ebd479ba4a46984ae7f3f8..94c9952683adaf033254eb77b74c9d5c4d57651f 100644
--- a/src/api/call.h
+++ b/src/api/call.h
@@ -134,6 +134,7 @@ struct Info
     bool isOutoging;
     bool audioMuted = false;
     bool videoMuted = false;
+    bool isAudioOnly = false;
 };
 
 static inline bool
diff --git a/src/newcallmodel.cpp b/src/newcallmodel.cpp
index 0d55690ccaddc24e1aec344a3bbeaea9221f137f..a6703d005c31974e37c8e5283b0ee08dc448a56e 100644
--- a/src/newcallmodel.cpp
+++ b/src/newcallmodel.cpp
@@ -370,7 +370,8 @@ NewCallModelPimpl::slotIncomingCall(const std::string& accountId, const std::str
 {
     if (linked.owner.id != accountId) return;
 
-    qDebug() << "NewCallModelPimpl::slotIncomingCall";
+    // do not use auto here (QDBusPendingReply<MapStringString>)
+    MapStringString callDetails = CallManager::instance().getCallDetails(callId.c_str());
 
     auto callInfo = std::make_shared<call::Info>();
     callInfo->id = callId;
@@ -378,6 +379,7 @@ NewCallModelPimpl::slotIncomingCall(const std::string& accountId, const std::str
     callInfo->isOutoging = false;
     callInfo->status =  call::Status::INCOMING_RINGING;
     callInfo->type =  call::Type::DIALOG;
+    callInfo->isAudioOnly = callDetails["AUDIO_ONLY"] == "true" ? true : false;
     calls.emplace(callId, std::move(callInfo));
 
     emit linked.newIncomingCall(fromId, callId);