diff --git a/src/chat/chat-room.cpp b/src/chat/chat-room.cpp index ad33f152c..de3f5915b 100644 --- a/src/chat/chat-room.cpp +++ b/src/chat/chat-room.cpp @@ -404,7 +404,8 @@ LinphoneReason ChatRoomPrivate::messageReceived (SalOp *op, const SalMessage *sa content->setBody(salMsg->text ? salMsg->text : ""); msg->addContent(content); - msg->setToAddress( op->get_to() ? op->get_to() : linphone_core_get_identity(core)); + msg->setToAddress(op->get_to() ? op->get_to() : linphone_core_get_identity(core)); + msg->setFromAddress(peerAddress); msg->getPrivate()->setTime(salMsg->time); msg->getPrivate()->setState(ChatMessage::State::Delivered); msg->getPrivate()->setDirection(ChatMessage::Direction::Incoming); @@ -543,7 +544,11 @@ void ChatRoom::compose () { } shared_ptr ChatRoom::createFileTransferMessage (const LinphoneContent *initialContent) { + L_D(); shared_ptr chatMessage = createMessage(); + + chatMessage->setToAddress(d->peerAddress); + chatMessage->setFromAddress(linphone_core_get_identity(d->core)); chatMessage->getPrivate()->setDirection(ChatMessage::Direction::Outgoing); chatMessage->getPrivate()->setFileTransferInformation(linphone_content_copy(initialContent)); @@ -552,6 +557,7 @@ shared_ptr ChatRoom::createFileTransferMessage (const LinphoneConte } shared_ptr ChatRoom::createMessage (const string &message) { + L_D(); shared_ptr chatMessage = createMessage(); shared_ptr content = make_shared(); @@ -559,15 +565,15 @@ shared_ptr ChatRoom::createMessage (const string &message) { content->setBody(message); chatMessage->addContent(content); + chatMessage->setToAddress(d->peerAddress); + chatMessage->setFromAddress(linphone_core_get_identity(d->core)); + return chatMessage; } shared_ptr ChatRoom::createMessage () { - L_D(); shared_ptr chatMessage = make_shared(static_pointer_cast(shared_from_this())); chatMessage->getPrivate()->setTime(ms_time(0)); - chatMessage->setToAddress(d->peerAddress); - chatMessage->setFromAddress(linphone_core_get_identity(d->core)); return chatMessage; }