From c9232ce7deaa44962b7cccf9db44cc91c2f76f0f Mon Sep 17 00:00:00 2001 From: Alexandre Savard <alexandre.savard@savoirfairelinux.net> Date: Mon, 24 Aug 2009 10:32:17 -0400 Subject: [PATCH] [#2006] Add joinParticipant (conference) method in ManagerImpl --- sflphone-common/src/dbus/callmanager.cpp | 2 +- sflphone-common/src/managerimpl.cpp | 42 ++++++++++++++++++++---- sflphone-common/src/managerimpl.h | 4 ++- 3 files changed, 40 insertions(+), 8 deletions(-) diff --git a/sflphone-common/src/dbus/callmanager.cpp b/sflphone-common/src/dbus/callmanager.cpp index c8fb552b4e..ed4ebe3741 100644 --- a/sflphone-common/src/dbus/callmanager.cpp +++ b/sflphone-common/src/dbus/callmanager.cpp @@ -128,7 +128,7 @@ void CallManager::joinParticipant (const std::string& sel_callID, const std::string& drag_callID) { _debug ("CallManager::joinParticipant received %s, %s\n", sel_callID.c_str(), drag_callID.c_str()); - // Manager::instance().joinParticipant(callID); + Manager::instance().joinParticipant(sel_callID, drag_callID); } void diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp index d39f198899..a63a676cb9 100644 --- a/sflphone-common/src/managerimpl.cpp +++ b/sflphone-common/src/managerimpl.cpp @@ -641,18 +641,18 @@ ManagerImpl::refuseCall (const CallID& id) void -ManagerImpl::createConference(const CallID& id) +ManagerImpl::createConference(const CallID& id1, const CallID& id2) { _debug("ManagerImpl::createConference()\n"); Conference* conf = new Conference(); - _conferencecall.insert(pair<CallID, Conference*>(id, conf)); - _conferencecall.insert(pair<CallID, Conference*>(getCurrentCallId(), conf)); + _conferencecall.insert(pair<CallID, Conference*>(id1, conf)); + _conferencecall.insert(pair<CallID, Conference*>(id2, conf)); _conferencemap.insert(pair<CallID, Conference*>(default_conf, conf)); - conf->add(getCurrentCallId()); - conf->add(id); + conf->add(id1); + conf->add(id2); } @@ -727,7 +727,7 @@ ManagerImpl::addParticipant(const CallID& call_id) if(iter == _conferencemap.end()) { _debug("NO CONFERENCE YET, CREATE ONE\n"); - createConference(call_id); + createConference(call_id, getCurrentCallId()); answerCall(call_id); @@ -746,6 +746,36 @@ ManagerImpl::addParticipant(const CallID& call_id) } +void +ManagerImpl::joinParticipant(const CallID& call_id1, const CallID& call_id2) +{ + _debug("ManagerImpl::joinParticipant(%s, %s)\n", call_id1.c_str(), call_id2.c_str()); + // _debug(" Current call ID %s\n", getCurrentCallId().c_str()); + + // TODO: add conference_id as a second parameter + ConferenceMap::iterator iter = _conferencemap.find(default_conf); + + if(iter == _conferencemap.end()) + { + _debug("NO CONFERENCE YET, CREATE ONE\n"); + // createConference(call_id1, call_id2); + + // answerCall(call_id); + + } + else + { + _debug("ALREADY A CONFERENCE CREATED, ADD PARTICIPANT TO IT\n"); + // Conference* conf = iter->second; + + // conf->add(call_id); + // _conferencecall.insert(pair<CallID, Conference*>(call_id, conf)); + + // answerCall(call_id); + } + +} + void ManagerImpl::removeParticipant(const CallID& call_id) { diff --git a/sflphone-common/src/managerimpl.h b/sflphone-common/src/managerimpl.h index f6b6d9184c..586f71d6c0 100644 --- a/sflphone-common/src/managerimpl.h +++ b/sflphone-common/src/managerimpl.h @@ -186,7 +186,7 @@ class ManagerImpl { */ bool refuseCall(const CallID& id); - void createConference(const CallID& id); + void createConference(const CallID& id1, const CallID& id2); void removeConference(const CallID& conference_id); @@ -194,6 +194,8 @@ class ManagerImpl { void addParticipant(const CallID& call_id); + void joinParticipant(const CallID& call_id1, const CallID& call_id2); + void removeParticipant(const CallID& call_id); void addStream(const CallID& call_id); -- GitLab