42
42
const char* CallManager::SERVER_PATH = "/org/sflphone/SFLphone/CallManager";
44
44
CallManager::CallManager (DBus::Connection& connection)
45
: DBus::ObjectAdaptor (connection, SERVER_PATH)
45
: DBus::ObjectAdaptor (connection, SERVER_PATH)
50
50
CallManager::placeCall (const std::string& accountID,
51
51
const std::string& callID,
52
const std::string& to)
53
{ // Check if a destination number is available
52
const std::string& to) // Check if a destination number is available
55
55
if (to == "") _debug ("No number entered - Call stopped");
56
56
else Manager::instance().outgoingCall (accountID, callID, to);
60
60
CallManager::placeCallFirstAccount (const std::string& callID,
61
const std::string& to)
61
const std::string& to)
65
_warn("CallManager: Warning: No number entered, call stopped");
65
_warn ("CallManager: Warning: No number entered, call stopped");
69
69
std::vector< std::string > accountOrder = Manager::instance().loadAccountOrder();
74
_debug("AccountOrder size: %d", accountOrder.size());
76
if(accountOrder.size() > 0) {
78
iter = accountOrder.begin();
80
while(iter != accountOrder.end()) {
81
account = Manager::instance().getAccount(*iter);
82
if((*iter != IP2IP_PROFILE) && account->isEnabled()) {
83
Manager::instance().outgoingCall (*iter, callID, to);
91
_error("AccountOrder is empty");
92
// If accountOrder is empty fallback on accountList (which has no preference order)
93
std::vector< std::string > accountList = Manager::instance().getAccountList();
94
iter = accountList.begin();
97
_error("AccountList size: %d", accountList.size());
98
if(accountList.size() > 0) {
99
while(iter != accountList.end()) {
101
account = Manager::instance().getAccount(*iter);
102
if((*iter != IP2IP_PROFILE) && account->isEnabled()) {
104
Manager::instance().outgoingCall(*iter, callID, to);
113
_warn("CallManager: Warning: No enabled account found, call stopped");
74
_debug ("AccountOrder size: %d", accountOrder.size());
76
if (accountOrder.size() > 0) {
78
iter = accountOrder.begin();
80
while (iter != accountOrder.end()) {
81
account = Manager::instance().getAccount (*iter);
83
if ( (*iter != IP2IP_PROFILE) && account->isEnabled()) {
84
Manager::instance().outgoingCall (*iter, callID, to);
91
_error ("AccountOrder is empty");
92
// If accountOrder is empty fallback on accountList (which has no preference order)
93
std::vector< std::string > accountList = Manager::instance().getAccountList();
94
iter = accountList.begin();
97
_error ("AccountList size: %d", accountList.size());
99
if (accountList.size() > 0) {
100
while (iter != accountList.end()) {
102
account = Manager::instance().getAccount (*iter);
104
if ( (*iter != IP2IP_PROFILE) && account->isEnabled()) {
106
Manager::instance().outgoingCall (*iter, callID, to);
116
_warn ("CallManager: Warning: No enabled account found, call stopped");
261
264
std::vector< std::string >
262
265
CallManager::getParticipantList (const std::string& confID)
264
_debug("CallManager: Get Participant list for conference %s", confID.c_str());
267
_debug ("CallManager: Get Participant list for conference %s", confID.c_str());
265
268
return Manager::instance().getParticipantList (confID);
330
333
SIPVoIPLink * link = NULL;
331
334
link = dynamic_cast<SIPVoIPLink *> (Manager::instance().getAccountLink (AccountNULL));
334
_debug ("Failed to get sip link");
337
_debug ("CallManager: Failed to get sip link");
335
338
throw CallManagerException();
338
341
SIPCall *call = link->getSIPCall (callID);
344
_debug ("CallManager: Call id %d is not valid", callID.c_str());
345
throw CallManagerException();
340
348
sfl::AudioRtpFactory * audioRtp = NULL;
341
349
audioRtp = call->getAudioRtp();
343
if (audioRtp == NULL) {
344
_debug ("Failed to get AudioRtpFactory");
352
_debug ("CallManager: Failed to get AudioRtpFactory");
345
353
throw CallManagerException();
442
455
zSession = getAudioZrtpSession (callID);
443
456
zSession->setPBXEnrollment (yesNo);
465
CallManager::sendTextMessage (const std::string& callID, const std::string& message)
467
if (!Manager::instance().sendTextMessage (callID, message, "Me"))
468
throw CallManagerException();