diff --git a/src/conference/handlers/local-conference-event-handler.cpp b/src/conference/handlers/local-conference-event-handler.cpp index a866c8c5f..903fa0e1c 100644 --- a/src/conference/handlers/local-conference-event-handler.cpp +++ b/src/conference/handlers/local-conference-event-handler.cpp @@ -529,5 +529,14 @@ ChatRoomId LocalConferenceEventHandler::getChatRoomId () const { return d->chatRoomId; } +string LocalConferenceEventHandler::getNotifyForId (int notifyId) { + L_D(); + if (notifyId == 0) + return d->createNotifyFullState(static_cast(d->lastNotify)); // oneToOne ? + else if (notifyId < static_cast(d->lastNotify)) + return d->createNotifyMultipart(notifyId); + + return Utils::getEmptyConstRefObject(); +} LINPHONE_END_NAMESPACE diff --git a/src/conference/handlers/local-conference-event-handler.h b/src/conference/handlers/local-conference-event-handler.h index 9a004ac7f..7d954d892 100644 --- a/src/conference/handlers/local-conference-event-handler.h +++ b/src/conference/handlers/local-conference-event-handler.h @@ -38,6 +38,7 @@ class LocalConference; class LocalConferenceEventHandlerPrivate; class LocalConferenceEventHandler : public Object { +friend class LocalConferenceListEventHandler; public: LocalConferenceEventHandler (LocalConference *localConference, unsigned int notify = 0); @@ -53,7 +54,7 @@ public: void setChatRoomId (const ChatRoomId &chatRoomId); ChatRoomId getChatRoomId () const; - void getNotifyForId (int notifyId) const {}; + std::string getNotifyForId (int notifyId); private: L_DECLARE_PRIVATE(LocalConferenceEventHandler); diff --git a/src/conference/handlers/local-conference-list-event-handler.cpp b/src/conference/handlers/local-conference-list-event-handler.cpp index 2500054c2..26168f753 100644 --- a/src/conference/handlers/local-conference-list-event-handler.cpp +++ b/src/conference/handlers/local-conference-list-event-handler.cpp @@ -49,7 +49,10 @@ void LocalConferenceListEventHandler::subscribeReceived (const string &xmlBody) if (!handler) continue; - handler->getNotifyForId(notifyId); + string notifyBody = handler->getNotifyForId(notifyId); + if (notifyBody.empty()) + continue; + } } }