From 1cfd80573168ed46153cd3eba854c268159323e9 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Thu, 15 Feb 2018 10:45:00 +0100 Subject: [PATCH] Terminate ClientGroupChatRoom when termination fails with reason "Not Found". --- src/chat/chat-room/client-group-chat-room.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/chat/chat-room/client-group-chat-room.cpp b/src/chat/chat-room/client-group-chat-room.cpp index 8064e8499..9a7ee7725 100644 --- a/src/chat/chat-room/client-group-chat-room.cpp +++ b/src/chat/chat-room/client-group-chat-room.cpp @@ -149,9 +149,14 @@ void ClientGroupChatRoomPrivate::onCallSessionStateChanged ( if (q->getState() == ChatRoom::State::CreationPending) setState(ChatRoom::State::CreationFailed); else if (q->getState() == ChatRoom::State::TerminationPending) { - // Go to state TerminationFailed and then back to Created since it has not been terminated - setState(ChatRoom::State::TerminationFailed); - setState(ChatRoom::State::Created); + if (session->getReason() == LinphoneReasonNotFound) { + // Somehow the chat room is no longer know on the server, so terminate it + q->onConferenceTerminated(q->getConferenceAddress()); + } else { + // Go to state TerminationFailed and then back to Created since it has not been terminated + setState(ChatRoom::State::TerminationFailed); + setState(ChatRoom::State::Created); + } } } }