* #24533 New Contact List, with data model
* #23415 general refactoring
diff --git a/src/com/savoirfairelinux/sflphone/service/SipService.java b/src/com/savoirfairelinux/sflphone/service/SipService.java
index 03b5233..3534dc7 100644
--- a/src/com/savoirfairelinux/sflphone/service/SipService.java
+++ b/src/com/savoirfairelinux/sflphone/service/SipService.java
@@ -47,6 +47,7 @@
 import android.widget.Toast;
 
 import com.savoirfairelinux.sflphone.account.AccountDetailsHandler;
+import com.savoirfairelinux.sflphone.account.AudioHandler;
 import com.savoirfairelinux.sflphone.account.HistoryHandler;
 import com.savoirfairelinux.sflphone.client.SFLphoneApplication;
 
@@ -440,7 +441,7 @@
             CurrentAudioPlugin runInstance = new CurrentAudioPlugin();
             getExecutor().execute(runInstance);
             while (!runInstance.isDone()) {
-                Log.e(TAG, "Waiting for Nofing");
+//                Log.e(TAG, "Waiting for Nofing");
             }
             return (String) runInstance.getVal();
         }
@@ -458,7 +459,7 @@
             AccountList runInstance = new AccountList();
             getExecutor().execute(runInstance);
             while (!runInstance.isDone()) {
-                Log.e(TAG, "Waiting for Nofing");
+//                Log.e(TAG, "Waiting for Nofing");
             }
             StringVect swigvect = (StringVect) runInstance.getVal();
 
@@ -536,7 +537,7 @@
             AddAccount runInstance = new AddAccount(swigmap);
             getExecutor().execute(runInstance);
             while (!runInstance.isDone()) {
-                Log.e(TAG, "Waiting for Nofing");
+//                Log.e(TAG, "Waiting for Nofing");
             }
             String accountId = (String) runInstance.getVal();
 
@@ -574,7 +575,7 @@
             History runInstance = new History();
             getExecutor().execute(runInstance);
             while (!runInstance.isDone()) {
-                Log.w(TAG, "Waiting for getHistory");
+//                Log.w(TAG, "Waiting for getHistory");
             }
             VectMap swigmap = (VectMap) runInstance.getVal();
 
@@ -760,7 +761,7 @@
             ConfList runInstance = new ConfList();
             getExecutor().execute(runInstance);
             while (!runInstance.isDone()) {
-                Log.w(TAG, "Waiting for getConferenceList");
+//                Log.w(TAG, "Waiting for getConferenceList");
             }
             StringVect swigvect = (StringVect) runInstance.getVal();
 
@@ -804,7 +805,7 @@
             RecordPath runInstance = new RecordPath();
             getExecutor().execute(runInstance);
             while (!runInstance.isDone()) {
-                Log.w(TAG, "Waiting for getRecordPath");
+//                Log.w(TAG, "Waiting for getRecordPath");
             }
             String path = (String) runInstance.getVal();
 
@@ -846,5 +847,28 @@
 
         }
 
+        @Override
+        public List getAudioCodecList(String accountID) throws RemoteException {
+            class AudioCodecList extends SipRunnableWithReturn {
+
+                @Override
+                protected IntVect doRun() throws SameThreadException {
+                    Log.i(TAG, "SipService.getAudioCodecList() thread running...");
+                    return configurationManagerJNI.getAudioCodecList();
+                }
+            }
+
+            AudioCodecList runInstance = new AudioCodecList();
+            getExecutor().execute(runInstance);
+            while (!runInstance.isDone()) {
+                Log.w(TAG, "Waiting for getAudioCodecList");
+            }
+            IntVect swigmap = (IntVect) runInstance.getVal();
+
+            ArrayList<Integer> codecs = AudioHandler.convertSwigToNative(swigmap);
+
+            return codecs;
+        }
+
     };
 }