diff --git a/sflphone-common/src/dbus/callmanager-introspec.xml b/sflphone-common/src/dbus/callmanager-introspec.xml index 724eddda89055fb3d3b0f3d6161add5052dc84be..83e5009c97a16f584f09f7ec1896e585fc8d2f37 100644 --- a/sflphone-common/src/dbus/callmanager-introspec.xml +++ b/sflphone-common/src/dbus/callmanager-introspec.xml @@ -7,6 +7,11 @@ <arg type="s" name="callID" direction="in"/> <arg type="s" name="to" direction="in"/> </method> + + <method name="placeCallFirstAccount"> + <arg type="s" name="callID" direction="in"/> + <arg type="s" name="to" direction="in"/> + </method> <method name="refuse"> <arg type="s" name="callID" direction="in"/> diff --git a/sflphone-common/src/dbus/callmanager.cpp b/sflphone-common/src/dbus/callmanager.cpp index fb41bec4c2f62becde7a9a0c9349d9870cd92498..34689444975c56e64060e7348ab22d80d3e744f8 100644 --- a/sflphone-common/src/dbus/callmanager.cpp +++ b/sflphone-common/src/dbus/callmanager.cpp @@ -51,18 +51,19 @@ void CallManager::placeCallFirstAccount (const std::string& callID, const std::string& to) { + if (to == "") { _warn("No number entered - Call stopped"); return; } - std::vector< std::string > accountIdList = Manager::instance().getAccountList(); - std::vector< std::string >::iterator iter = accountIdList.begin(); + std::vector< std::string > accountOrder = Manager::instance().loadAccountOrder(); + std::vector< std::string >::iterator iter = accountOrder.begin(); Account *account; - while(iter != accountIdList.end()) { + while(iter != accountOrder.end()) { account = Manager::instance().getAccount(*iter); - if(account->isEnabled()) { + if((*iter != IP2IP_PROFILE) && account->isEnabled()) { Manager::instance().outgoingCall (*iter, callID, to); return; } diff --git a/sflphone-common/src/managerimpl.h b/sflphone-common/src/managerimpl.h index 7aaa89a4a669a496cfe49cef6d4027e5f13de278..c2938844f8405674609d6918eb298d42e1e74a67 100644 --- a/sflphone-common/src/managerimpl.h +++ b/sflphone-common/src/managerimpl.h @@ -424,6 +424,12 @@ class ManagerImpl { */ void setAccountsOrder (const std::string& order); + /** + * Load the accounts order set by the user from the sflphonedrc config file + * @return std::vector<std::string> A vector containing the account ID's + */ + std::vector<std::string> loadAccountOrder (); + /** * Retrieve details about a given account * @param accountID The account identifier @@ -1212,12 +1218,6 @@ class ManagerImpl { */ short loadAccountMap(); - /** - * Load the accounts order set by the user from the sflphonedrc config file - * @return std::vector<std::string> A vector containing the account ID's - */ - std::vector<std::string> loadAccountOrder (); - /** * Unload the account (delete them)