From 454df2e6bfc6e2efd1f47fe18f656d7ce4e2db57 Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandresavard@alexandresavard-desktop.(none)>
Date: Mon, 8 Feb 2010 14:41:11 -0500
Subject: [PATCH] [#2588] Use loadAccountOrder in placeCallFirstAccount to load
 account list

---
 sflphone-common/src/dbus/callmanager-introspec.xml |  5 +++++
 sflphone-common/src/dbus/callmanager.cpp           |  9 +++++----
 sflphone-common/src/managerimpl.h                  | 12 ++++++------
 3 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/sflphone-common/src/dbus/callmanager-introspec.xml b/sflphone-common/src/dbus/callmanager-introspec.xml
index 724eddda89..83e5009c97 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 fb41bec4c2..3468944497 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 7aaa89a4a6..c2938844f8 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)
-- 
GitLab