diff --git a/src/chat/chat-room/server-group-chat-room-stub.cpp b/src/chat/chat-room/server-group-chat-room-stub.cpp index cc145aaf5..cb16dfd7c 100644 --- a/src/chat/chat-room/server-group-chat-room-stub.cpp +++ b/src/chat/chat-room/server-group-chat-room-stub.cpp @@ -78,8 +78,17 @@ void ServerGroupChatRoomPrivate::onChatMessageReceived(const shared_ptr &core, SalCallOp *op) : -ChatRoom(*new ServerGroupChatRoomPrivate, core, ChatRoomId(IdentityAddress(op->get_to()), IdentityAddress(op->get_to()))), -LocalConference(core, IdentityAddress(op->get_to()), nullptr) {} + ChatRoom(*new ServerGroupChatRoomPrivate, core, ChatRoomId(IdentityAddress(op->get_to()), IdentityAddress(op->get_to()))), + LocalConference(core, IdentityAddress(op->get_to()), nullptr) {} + +ServerGroupChatRoom::ServerGroupChatRoom ( + const shared_ptr &core, + const IdentityAddress &peerAddress, + const string &subject, + list> &&participants, + unsigned int lastNotifyId +) : ChatRoom(*new ServerGroupChatRoomPrivate, core, ChatRoomId(peerAddress, peerAddress)), + LocalConference(core, peerAddress, nullptr) {} int ServerGroupChatRoom::getCapabilities () const { return 0; diff --git a/src/chat/chat-room/server-group-chat-room.h b/src/chat/chat-room/server-group-chat-room.h index 27479e6d1..8dec5ee67 100644 --- a/src/chat/chat-room/server-group-chat-room.h +++ b/src/chat/chat-room/server-group-chat-room.h @@ -39,6 +39,15 @@ public: // TODO: Make me private! ServerGroupChatRoom (const std::shared_ptr &core, SalCallOp *op); + // TODO: Same idea. + ServerGroupChatRoom ( + const std::shared_ptr &core, + const IdentityAddress &peerAddress, + const std::string &subject, + std::list> &&participants, + unsigned int lastNotifyId + ); + CapabilitiesMask getCapabilities () const override; bool hasBeenLeft () const override; diff --git a/src/db/main-db.cpp b/src/db/main-db.cpp index f1f65dcf6..f0b17331f 100644 --- a/src/db/main-db.cpp +++ b/src/db/main-db.cpp @@ -29,6 +29,7 @@ #include "chat/chat-message/chat-message-p.h" #include "chat/chat-room/chat-room-p.h" #include "chat/chat-room/client-group-chat-room.h" +#include "chat/chat-room/server-group-chat-room.h" #include "conference/participant-p.h" #include "content/content-type.h" #include "content/content.h" @@ -1873,15 +1874,24 @@ MainDb::MainDb (const shared_ptr &core) : AbstractDb(*new MainDbPrivate), continue; } - chatRoom = make_shared( - core, - chatRoomId.getPeerAddress(), - me, - subject, - move(participants), - lastNotifyId, - !!row.get(8, 0) - ); + if (!linphone_core_conference_server_enabled(core->getCCore())) + chatRoom = make_shared( + core, + chatRoomId.getPeerAddress(), + me, + subject, + move(participants), + lastNotifyId, + !!row.get(8, 0) + ); + else + chatRoom = make_shared( + core, + chatRoomId.getPeerAddress(), + subject, + move(participants), + lastNotifyId + ); } if (!chatRoom)