diff --git a/src/chat/basic-chat-room.cpp b/src/chat/basic-chat-room.cpp
index a83535d03..0fe854161 100644
--- a/src/chat/basic-chat-room.cpp
+++ b/src/chat/basic-chat-room.cpp
@@ -44,6 +44,10 @@ void BasicChatRoom::addParticipants (const list
&addresses, const CallS
lError() << "addParticipants() is not allowed on a BasicChatRoom";
}
+bool BasicChatRoom::canHandleParticipants () const {
+ return false;
+}
+
const string& BasicChatRoom::getId () const {
L_D(const BasicChatRoom);
lError() << "a BasicChatRoom does not have a conference id";
diff --git a/src/chat/basic-chat-room.h b/src/chat/basic-chat-room.h
index 3c696c67d..4f6ec7d50 100644
--- a/src/chat/basic-chat-room.h
+++ b/src/chat/basic-chat-room.h
@@ -41,6 +41,7 @@ public:
/* ConferenceInterface */
std::shared_ptr addParticipant (const Address &addr, const CallSessionParams *params, bool hasMedia);
void addParticipants (const std::list &addresses, const CallSessionParams *params, bool hasMedia);
+ bool canHandleParticipants () const;
const std::string& getId () const;
int getNbParticipants () const;
std::list> getParticipants () const;
diff --git a/src/chat/client-group-chat-room.cpp b/src/chat/client-group-chat-room.cpp
index 47ad6a2e5..2181a5b0e 100644
--- a/src/chat/client-group-chat-room.cpp
+++ b/src/chat/client-group-chat-room.cpp
@@ -54,6 +54,10 @@ void ClientGroupChatRoom::addParticipants (const list &addresses, const
// TODO
}
+bool ClientGroupChatRoom::canHandleParticipants () const {
+ return true;
+}
+
const string& ClientGroupChatRoom::getId () const {
return id;
}
diff --git a/src/chat/client-group-chat-room.h b/src/chat/client-group-chat-room.h
index b32d5951f..849af656e 100644
--- a/src/chat/client-group-chat-room.h
+++ b/src/chat/client-group-chat-room.h
@@ -42,6 +42,7 @@ public:
/* ConferenceInterface */
std::shared_ptr addParticipant (const Address &addr, const CallSessionParams *params, bool hasMedia);
void addParticipants (const std::list &addresses, const CallSessionParams *params, bool hasMedia);
+ bool canHandleParticipants () const;
const std::string& getId () const;
int getNbParticipants () const;
std::list> getParticipants () const;
diff --git a/src/chat/real-time-text-chat-room.cpp b/src/chat/real-time-text-chat-room.cpp
index 2f352f3d8..91b9fcf13 100644
--- a/src/chat/real-time-text-chat-room.cpp
+++ b/src/chat/real-time-text-chat-room.cpp
@@ -149,6 +149,10 @@ void RealTimeTextChatRoom::addParticipants (const list &addresses, cons
lError() << "addParticipants() is not allowed on a RealTimeTextChatRoom";
}
+bool RealTimeTextChatRoom::canHandleParticipants () const {
+ return false;
+}
+
const string& RealTimeTextChatRoom::getId () const {
L_D(const RealTimeTextChatRoom);
lError() << "a RealTimeTextChatRoom does not have a conference id";
diff --git a/src/chat/real-time-text-chat-room.h b/src/chat/real-time-text-chat-room.h
index 949691722..a75f08d67 100644
--- a/src/chat/real-time-text-chat-room.h
+++ b/src/chat/real-time-text-chat-room.h
@@ -45,6 +45,7 @@ public:
/* ConferenceInterface */
std::shared_ptr addParticipant (const Address &addr, const CallSessionParams *params, bool hasMedia);
void addParticipants (const std::list &addresses, const CallSessionParams *params, bool hasMedia);
+ bool canHandleParticipants () const;
const std::string& getId () const;
int getNbParticipants () const;
std::list> getParticipants () const;
diff --git a/src/conference/conference-interface.h b/src/conference/conference-interface.h
index 840675c8c..4cdcb7f32 100644
--- a/src/conference/conference-interface.h
+++ b/src/conference/conference-interface.h
@@ -36,6 +36,7 @@ public:
virtual std::shared_ptr addParticipant (const Address &addr, const CallSessionParams *params, bool hasMedia) = 0;
virtual void addParticipants (const std::list &addresses, const CallSessionParams *params, bool hasMedia) = 0;
+ virtual bool canHandleParticipants () const = 0;
virtual const std::string& getId () const = 0;
virtual int getNbParticipants () const = 0;
virtual std::list> getParticipants () const = 0;
diff --git a/src/conference/conference.cpp b/src/conference/conference.cpp
index 1d9e6666c..cca7d4cbf 100644
--- a/src/conference/conference.cpp
+++ b/src/conference/conference.cpp
@@ -49,6 +49,10 @@ void Conference::addParticipants (const list &addresses, const CallSess
// TODO
}
+bool Conference::canHandleParticipants () const {
+ return true;
+}
+
const string& Conference::getId () const {
return id;
}
diff --git a/src/conference/conference.h b/src/conference/conference.h
index 6f4886ff0..5c22f918f 100644
--- a/src/conference/conference.h
+++ b/src/conference/conference.h
@@ -52,6 +52,7 @@ public:
/* ConferenceInterface */
virtual std::shared_ptr addParticipant (const Address &addr, const CallSessionParams *params, bool hasMedia);
virtual void addParticipants (const std::list &addresses, const CallSessionParams *params, bool hasMedia);
+ virtual bool canHandleParticipants () const;
virtual const std::string& getId () const;
virtual int getNbParticipants () const;
virtual std::list> getParticipants () const;