diff --git a/src/components/sip-addresses/SipAddressesModel.cpp b/src/components/sip-addresses/SipAddressesModel.cpp index 007de15c7..85fde745e 100644 --- a/src/components/sip-addresses/SipAddressesModel.cpp +++ b/src/components/sip-addresses/SipAddressesModel.cpp @@ -287,8 +287,8 @@ void SipAddressesModel::handleSipAddressRemoved (ContactModel *contact, const QS } void SipAddressesModel::handleMessageReceived (const shared_ptr &message) { - const QString sipAddress = Utils::coreStringToAppString(message->getFromAddress()->asStringUriOnly()); - addOrUpdateSipAddress(sipAddress, message); + const QString peerAddress(Utils::coreStringToAppString(message->getChatRoom()->getPeerAddress()->asStringUriOnly())); + addOrUpdateSipAddress(peerAddress, message); } void SipAddressesModel::handleCallStateChanged ( @@ -454,9 +454,10 @@ void SipAddressesModel::addOrUpdateSipAddress (SipAddressEntry &sipAddressEntry, } void SipAddressesModel::addOrUpdateSipAddress (SipAddressEntry &sipAddressEntry, const shared_ptr &message) { - int count = message->getChatRoom()->getUnreadMessagesCount(); + shared_ptr chatRoom(message->getChatRoom()); + int count = chatRoom->getUnreadMessagesCount(); - QString localAddress(Utils::coreStringToAppString(message->getLocalAddress()->asStringUriOnly())); + QString localAddress(Utils::coreStringToAppString(chatRoom->getLocalAddress()->asStringUriOnly())); ConferenceEntry &conferenceEntry = sipAddressEntry.localAddressToConferenceEntry[localAddress]; conferenceEntry.timestamp = QDateTime::fromMSecsSinceEpoch(message->getTime() * 1000); conferenceEntry.unreadMessageCount = count;