#16032: Fetch configuration information to display in preferences
diff --git a/src/com/savoirfairelinux/sflphone/client/AccountManagementFragment.java b/src/com/savoirfairelinux/sflphone/client/AccountManagementFragment.java
index 74973e5..58b3fa2 100644
--- a/src/com/savoirfairelinux/sflphone/client/AccountManagementFragment.java
+++ b/src/com/savoirfairelinux/sflphone/client/AccountManagementFragment.java
@@ -130,6 +130,7 @@
     {
         Activity currentContext = getActivity();
         HashMap accountDetails = getAccountDetails();
+        Log.i(TAG, "GetAccountDetails: " + accountDetails.size());
 
         PreferenceScreen root = getPreferenceManager().createPreferenceScreen(currentContext);
 
@@ -143,7 +144,7 @@
         accountAliasPref.setDialogTitle(R.string.dialogtitle_account_alias_field);
         accountAliasPref.setPersistent(false);
         accountAliasPref.setTitle(R.string.title_account_alias_field);
-        accountAliasPref.setSummary(CURRENT_VALUE + accountDetails.get(ServiceConstants.ALIAS_KEY));
+        accountAliasPref.setSummary(CURRENT_VALUE + accountDetails.get(ServiceConstants.CONFIG_ACCOUNT_ALIAS));
         accountAliasPref.setOnPreferenceChangeListener(changeTextEditListener);
         accountPrefCat.addPreference(accountAliasPref);
 
@@ -152,7 +153,7 @@
         accountHostnamePref.setDialogTitle(R.string.dialogtitle_account_hostname_field);
         accountHostnamePref.setPersistent(false);
         accountHostnamePref.setTitle(R.string.title_account_hostname_field);
-        accountHostnamePref.setSummary(CURRENT_VALUE + accountDetails.get(ServiceConstants.HOSTNAME_KEY));
+        accountHostnamePref.setSummary(CURRENT_VALUE + accountDetails.get(ServiceConstants.CONFIG_ACCOUNT_HOSTNAME));
         accountHostnamePref.setOnPreferenceChangeListener(changeTextEditListener);
         accountPrefCat.addPreference(accountHostnamePref);
 
@@ -161,7 +162,7 @@
         accountUsernamePref.setDialogTitle(R.string.dialogtitle_account_username_field);
         accountUsernamePref.setPersistent(false);
         accountUsernamePref.setTitle(R.string.title_account_username_field);
-        accountUsernamePref.setSummary(CURRENT_VALUE + accountDetails.get(ServiceConstants.USERNAME_KEY));
+        accountUsernamePref.setSummary(CURRENT_VALUE + accountDetails.get(ServiceConstants.CONFIG_ACCOUNT_USERNAME));
         accountUsernamePref.setOnPreferenceChangeListener(changeTextEditListener);
         accountPrefCat.addPreference(accountUsernamePref);
 
@@ -170,7 +171,7 @@
         accountProxyPref.setDialogTitle(R.string.dialogtitle_account_proxy_field);
         accountProxyPref.setPersistent(false);
         accountProxyPref.setTitle(R.string.title_account_proxy_field);
-        accountProxyPref.setSummary(CURRENT_VALUE + accountDetails.get(ServiceConstants.SERVICE_ROUTE_KEY));
+        accountProxyPref.setSummary(CURRENT_VALUE + accountDetails.get(ServiceConstants.CONFIG_ACCOUNT_ROUTESET));
         accountProxyPref.setOnPreferenceChangeListener(changeTextEditListener);
         accountPrefCat.addPreference(accountProxyPref);
 
@@ -179,7 +180,7 @@
         accountRegistrationPref.setDialogTitle(R.string.dialogtitle_account_registration_field);
         accountRegistrationPref.setPersistent(false);
         accountRegistrationPref.setTitle(R.string.title_account_registration_field);
-        accountRegistrationPref.setSummary(CURRENT_VALUE + accountDetails.get(ServiceConstants.TIMEOUT_KEY));
+        accountRegistrationPref.setSummary(CURRENT_VALUE + accountDetails.get(ServiceConstants.CONFIG_ACCOUNT_REGISTRATION_EXPIRE));
         accountRegistrationPref.setOnPreferenceChangeListener(changeTextEditListener);
         accountPrefCat.addPreference(accountRegistrationPref);
 
@@ -188,7 +189,7 @@
         accountNetworkPref.setDialogTitle(R.string.dialogtitle_account_network_field);
         accountNetworkPref.setPersistent(false);
         accountNetworkPref.setTitle(R.string.title_account_network_field);
-        accountNetworkPref.setSummary(CURRENT_VALUE + accountDetails.get(ServiceConstants.INTERFACE_KEY));
+        accountNetworkPref.setSummary(CURRENT_VALUE + accountDetails.get(ServiceConstants.CONFIG_LOCAL_INTERFACE));
         accountNetworkPref.setOnPreferenceChangeListener(changeTextEditListener);
         accountPrefCat.addPreference(accountNetworkPref);
 
@@ -197,7 +198,7 @@
         accountSecurityPref.setDialogTitle(R.string.dialogtitle_account_security_field);
         accountSecurityPref.setPersistent(false);
         accountSecurityPref.setTitle(R.string.title_account_security_field);
-        accountSecurityPref.setSummary(CURRENT_VALUE + accountDetails.get(ServiceConstants.STUN_SERVER_KEY));
+        accountSecurityPref.setSummary(CURRENT_VALUE + accountDetails.get(ServiceConstants.CONFIG_STUN_SERVER));
         accountSecurityPref.setOnPreferenceChangeListener(changeTextEditListener);
         accountPrefCat.addPreference(accountSecurityPref);
 
@@ -206,7 +207,7 @@
         accountTlsPref.setDialogTitle(R.string.dialogtitle_account_tls_field);
         accountTlsPref.setPersistent(false);
         accountTlsPref.setTitle(R.string.title_account_tls_field);
-        accountTlsPref.setSummary(CURRENT_VALUE + accountDetails.get(ServiceConstants.TLS_ENABLE_KEY));
+        accountTlsPref.setSummary(CURRENT_VALUE + accountDetails.get(ServiceConstants.CONFIG_TLS_ENABLE));
         accountTlsPref.setOnPreferenceChangeListener(changeTextEditListener);
         accountPrefCat.addPreference(accountTlsPref);
 
@@ -215,7 +216,7 @@
         accountSrtpPref.setDialogTitle(R.string.dialogtitle_account_srtp_field);
         accountSrtpPref.setPersistent(false);
         accountSrtpPref.setTitle(R.string.title_account_srtp_field);
-        accountSrtpPref.setSummary(CURRENT_VALUE + accountDetails.get(ServiceConstants.SRTP_KEY));
+        accountSrtpPref.setSummary(CURRENT_VALUE + accountDetails.get(ServiceConstants.CONFIG_SRTP_ENABLE));
         accountSrtpPref.setOnPreferenceChangeListener(changeTextEditListener);
         accountPrefCat.addPreference(accountSrtpPref);
 
diff --git a/src/com/savoirfairelinux/sflphone/service/ConfigurationManagerJNI.java b/src/com/savoirfairelinux/sflphone/service/ConfigurationManagerJNI.java
index b4714b1..6e38495 100644
--- a/src/com/savoirfairelinux/sflphone/service/ConfigurationManagerJNI.java
+++ b/src/com/savoirfairelinux/sflphone/service/ConfigurationManagerJNI.java
@@ -79,44 +79,44 @@
     SFLPhoneserviceJNI.ConfigurationManagerJNI_removeAccount(swigCPtr, this, accoundID);
   }
 
-  public SWIGTYPE_p_std__vectorT_std__string_t getAccountList() {
-    return new SWIGTYPE_p_std__vectorT_std__string_t(SFLPhoneserviceJNI.ConfigurationManagerJNI_getAccountList(swigCPtr, this), true);
+  public StringVect getAccountList() {
+    return new StringVect(SFLPhoneserviceJNI.ConfigurationManagerJNI_getAccountList(swigCPtr, this), true);
   }
 
   public SWIGTYPE_p_std__vectorT_int32_t_t getAudioCodecList() {
     return new SWIGTYPE_p_std__vectorT_int32_t_t(SFLPhoneserviceJNI.ConfigurationManagerJNI_getAudioCodecList(swigCPtr, this), true);
   }
 
-  public SWIGTYPE_p_std__vectorT_std__string_t getSupportedTlsMethod() {
-    return new SWIGTYPE_p_std__vectorT_std__string_t(SFLPhoneserviceJNI.ConfigurationManagerJNI_getSupportedTlsMethod(swigCPtr, this), true);
+  public StringVect getSupportedTlsMethod() {
+    return new StringVect(SFLPhoneserviceJNI.ConfigurationManagerJNI_getSupportedTlsMethod(swigCPtr, this), true);
   }
 
-  public SWIGTYPE_p_std__vectorT_std__string_t getAudioCodecDetails(SWIGTYPE_p_int32_t payload) {
-    return new SWIGTYPE_p_std__vectorT_std__string_t(SFLPhoneserviceJNI.ConfigurationManagerJNI_getAudioCodecDetails(swigCPtr, this, SWIGTYPE_p_int32_t.getCPtr(payload)), true);
+  public StringVect getAudioCodecDetails(SWIGTYPE_p_int32_t payload) {
+    return new StringVect(SFLPhoneserviceJNI.ConfigurationManagerJNI_getAudioCodecDetails(swigCPtr, this, SWIGTYPE_p_int32_t.getCPtr(payload)), true);
   }
 
   public SWIGTYPE_p_std__vectorT_int32_t_t getActiveAudioCodecList(String accountID) {
     return new SWIGTYPE_p_std__vectorT_int32_t_t(SFLPhoneserviceJNI.ConfigurationManagerJNI_getActiveAudioCodecList(swigCPtr, this, accountID), true);
   }
 
-  public void setActiveAudioCodecList(SWIGTYPE_p_std__vectorT_std__string_t list, String accountID) {
-    SFLPhoneserviceJNI.ConfigurationManagerJNI_setActiveAudioCodecList(swigCPtr, this, SWIGTYPE_p_std__vectorT_std__string_t.getCPtr(list), accountID);
+  public void setActiveAudioCodecList(StringVect list, String accountID) {
+    SFLPhoneserviceJNI.ConfigurationManagerJNI_setActiveAudioCodecList(swigCPtr, this, StringVect.getCPtr(list), list, accountID);
   }
 
-  public SWIGTYPE_p_std__vectorT_std__string_t getAudioPluginList() {
-    return new SWIGTYPE_p_std__vectorT_std__string_t(SFLPhoneserviceJNI.ConfigurationManagerJNI_getAudioPluginList(swigCPtr, this), true);
+  public StringVect getAudioPluginList() {
+    return new StringVect(SFLPhoneserviceJNI.ConfigurationManagerJNI_getAudioPluginList(swigCPtr, this), true);
   }
 
   public void setAudioPlugin(String audioPlugin) {
     SFLPhoneserviceJNI.ConfigurationManagerJNI_setAudioPlugin(swigCPtr, this, audioPlugin);
   }
 
-  public SWIGTYPE_p_std__vectorT_std__string_t getAudioOutputDeviceList() {
-    return new SWIGTYPE_p_std__vectorT_std__string_t(SFLPhoneserviceJNI.ConfigurationManagerJNI_getAudioOutputDeviceList(swigCPtr, this), true);
+  public StringVect getAudioOutputDeviceList() {
+    return new StringVect(SFLPhoneserviceJNI.ConfigurationManagerJNI_getAudioOutputDeviceList(swigCPtr, this), true);
   }
 
-  public SWIGTYPE_p_std__vectorT_std__string_t getAudioInputDeviceList() {
-    return new SWIGTYPE_p_std__vectorT_std__string_t(SFLPhoneserviceJNI.ConfigurationManagerJNI_getAudioInputDeviceList(swigCPtr, this), true);
+  public StringVect getAudioInputDeviceList() {
+    return new StringVect(SFLPhoneserviceJNI.ConfigurationManagerJNI_getAudioInputDeviceList(swigCPtr, this), true);
   }
 
   public void setAudioOutputDevice(SWIGTYPE_p_int32_t index) {
@@ -131,8 +131,8 @@
     SFLPhoneserviceJNI.ConfigurationManagerJNI_setAudioRingtoneDevice(swigCPtr, this, SWIGTYPE_p_int32_t.getCPtr(index));
   }
 
-  public SWIGTYPE_p_std__vectorT_std__string_t getCurrentAudioDevicesIndex() {
-    return new SWIGTYPE_p_std__vectorT_std__string_t(SFLPhoneserviceJNI.ConfigurationManagerJNI_getCurrentAudioDevicesIndex(swigCPtr, this), true);
+  public StringVect getCurrentAudioDevicesIndex() {
+    return new StringVect(SFLPhoneserviceJNI.ConfigurationManagerJNI_getCurrentAudioDevicesIndex(swigCPtr, this), true);
   }
 
   public SWIGTYPE_p_int32_t getAudioDeviceIndex(String name) {
@@ -235,12 +235,12 @@
     SFLPhoneserviceJNI.ConfigurationManagerJNI_setAddressbookSettings(swigCPtr, this, SWIGTYPE_p_std__mapT_std__string_int32_t_t.getCPtr(settings));
   }
 
-  public SWIGTYPE_p_std__vectorT_std__string_t getAddressbookList() {
-    return new SWIGTYPE_p_std__vectorT_std__string_t(SFLPhoneserviceJNI.ConfigurationManagerJNI_getAddressbookList(swigCPtr, this), true);
+  public StringVect getAddressbookList() {
+    return new StringVect(SFLPhoneserviceJNI.ConfigurationManagerJNI_getAddressbookList(swigCPtr, this), true);
   }
 
-  public void setAddressbookList(SWIGTYPE_p_std__vectorT_std__string_t list) {
-    SFLPhoneserviceJNI.ConfigurationManagerJNI_setAddressbookList(swigCPtr, this, SWIGTYPE_p_std__vectorT_std__string_t.getCPtr(list));
+  public void setAddressbookList(StringVect list) {
+    SFLPhoneserviceJNI.ConfigurationManagerJNI_setAddressbookList(swigCPtr, this, StringVect.getCPtr(list), list);
   }
 
   public StringMap getHookSettings() {
@@ -259,12 +259,12 @@
     return SFLPhoneserviceJNI.ConfigurationManagerJNI_getAddrFromInterfaceName(swigCPtr, this, arg0);
   }
 
-  public SWIGTYPE_p_std__vectorT_std__string_t getAllIpInterface() {
-    return new SWIGTYPE_p_std__vectorT_std__string_t(SFLPhoneserviceJNI.ConfigurationManagerJNI_getAllIpInterface(swigCPtr, this), true);
+  public StringVect getAllIpInterface() {
+    return new StringVect(SFLPhoneserviceJNI.ConfigurationManagerJNI_getAllIpInterface(swigCPtr, this), true);
   }
 
-  public SWIGTYPE_p_std__vectorT_std__string_t getAllIpInterfaceByName() {
-    return new SWIGTYPE_p_std__vectorT_std__string_t(SFLPhoneserviceJNI.ConfigurationManagerJNI_getAllIpInterfaceByName(swigCPtr, this), true);
+  public StringVect getAllIpInterfaceByName() {
+    return new StringVect(SFLPhoneserviceJNI.ConfigurationManagerJNI_getAllIpInterfaceByName(swigCPtr, this), true);
   }
 
   public StringMap getShortcuts() {
diff --git a/src/com/savoirfairelinux/sflphone/service/ISipService.aidl b/src/com/savoirfairelinux/sflphone/service/ISipService.aidl
index 83f7a5d..01134ed 100644
--- a/src/com/savoirfairelinux/sflphone/service/ISipService.aidl
+++ b/src/com/savoirfairelinux/sflphone/service/ISipService.aidl
@@ -5,6 +5,7 @@
     void refuse(in String callID);
     void accept(in String callID);
     void hangUp(in String callID);
-    void setAudioPlugin(in String callID);
+    List getAccountList();
     Map getAccountDetails(in String accountID);
+    void setAudioPlugin(in String callID);
 }
diff --git a/src/com/savoirfairelinux/sflphone/service/ServiceConstants.java b/src/com/savoirfairelinux/sflphone/service/ServiceConstants.java
index 9e25926..6b00ac2 100644
--- a/src/com/savoirfairelinux/sflphone/service/ServiceConstants.java
+++ b/src/com/savoirfairelinux/sflphone/service/ServiceConstants.java
@@ -5,58 +5,69 @@
     public static final String INTENT_SIP_SERVICE = "com.savoirfairelinux.sflphone.service.SipService";
     public static final String EXTRA_OUTGOING_ACTIVITY = "outgoing_activity";
 
-    public static final String AUDIO_CODECS_KEY = "audioCodecs";
-    public static final String VIDEO_CODECS_KEY = "videoCodecs";
-    public static final String VIDEO_CODEC_ENABLED = "enabled";
-    public static final String VIDEO_CODEC_NAME = "name";
-    public static final String VIDEO_CODEC_PARAMETERS = "parameters";
-    public static final String VIDEO_CODEC_BITRATE = "bitrate";
-    public static final String RINGTONE_PATH_KEY = "ringtonePath";
-    public static final String RINGTONE_ENABLED_KEY = "ringtoneEnabled";
-    public static final String DISPLAY_NAME_KEY = "displayName";
-    public static final String ALIAS_KEY = "alias";
-    public static final String TYPE_KEY = "type";
-    public static final String ID_KEY = "id";
-    public static final String USERNAME_KEY = "username";
-    public static final String AUTHENTICATION_USERNAME_KEY = "authenticationUsername";
-    public static final String PASSWORD_KEY = "password";
-    public static final String HOSTNAME_KEY = "hostname";
-    public static final String ACCOUNT_ENABLE_KEY = "enable";
-    public static final String ACCOUNT_AUTOANSWER_KEY = "autoAnswer";
-    public static final String MAILBOX_KEY = "mailbox";
+    public static final String CONFIG_ACCOUNT_TYPE = "Account.type";
+    public static final String CONFIG_ACCOUNT_ALIAS = "Account.alias";
+    public static final String CONFIG_ACCOUNT_MAILBOX = "Account.mailbox";
+    public static final String CONFIG_ACCOUNT_ENABLE = "Account.enable";
+    public static final String CONFIG_ACCOUNT_REGISTRATION_EXPIRE = "Account.registrationExpire";
+    public static final String CONFIG_ACCOUNT_REGISTRATION_STATUS = "Account.registrationStatus";
+    public static final String CONFIG_ACCOUNT_REGISTRATION_STATE_CODE = "Account.registrationCode";
+    public static final String CONFIG_ACCOUNT_REGISTRATION_STATE_DESC = "Account.registrationDescription";
+    public static final String CONFIG_CREDENTIAL_NUMBER = "Credential.count";
+    public static final String CONFIG_ACCOUNT_DTMF_TYPE = "Account.dtmfType";
+    public static final String CONFIG_RINGTONE_PATH = "Account.ringtonePath";
+    public static final String CONFIG_RINGTONE_ENABLED = "Account.ringtoneEnabled";
+    public static final String CONFIG_KEEP_ALIVE_ENABLED = "Account.keepAliveEnabled";
 
-    public static final String INTERFACE_KEY = "interface";
-    public static final String PORT_KEY = "port";
-    public static final String PUBLISH_ADDR_KEY = "publishAddr";
-    public static final String PUBLISH_PORT_KEY = "publishPort";
-    public static final String SAME_AS_LOCAL_KEY = "sameasLocal";
-    public static final String DTMF_TYPE_KEY = "dtmfType";
-    public static final String SERVICE_ROUTE_KEY = "serviceRoute";
-    public static final String KEEP_ALIVE_ENABLED = "keepAlive";
-    public static final String SRTP_KEY = "srtp";
-    public static final String SRTP_ENABLE_KEY = "enable";
-    public static final String KEY_EXCHANGE_KEY = "keyExchange";
-    public static final String RTP_FALLBACK_KEY = "rtpFallback";
-    public static final String ZRTP_KEY = "zrtp";
-    public static final String DISPLAY_SAS_KEY = "displaySas";
-    public static final String DISPLAY_SAS_ONCE_KEY = "displaySasOnce";
-    public static final String HELLO_HASH_ENABLED_KEY = "helloHashEnabled";
-    public static final String NOT_SUPP_WARNING_KEY = "notSuppWarning";
-    public static final String TLS_KEY = "tls";
-    public static final String TLS_PORT_KEY = "tlsPort";
-    public static final String CERTIFICATE_KEY = "certificate";
-    public static final String CALIST_KEY = "calist";
-    public static final String CIPHERS_KEY = "ciphers";
-    public static final String TLS_ENABLE_KEY = "enable";
-    public static final String METHOD_KEY = "method";
-    public static final String TIMEOUT_KEY = "timeout";
-    public static final String TLS_PASSWORD_KEY = "password";
-    public static final String PRIVATE_KEY_KEY = "privateKey";
-    public static final String REQUIRE_CERTIF_KEY = "requireCertif";
-    public static final String SERVER_KEY = "server";
-    public static final String VERIFY_CLIENT_KEY = "verifyClient";
-    public static final String VERIFY_SERVER_KEY = "verifyServer";
-    public static final String STUN_ENABLED_KEY = "stunEnabled";
-    public static final String STUN_SERVER_KEY = "stunServer";
-    public static final String CRED_KEY = "credential";
+    public static final String CONFIG_ACCOUNT_HOSTNAME = "Account.hostname";
+    public static final String CONFIG_ACCOUNT_USERNAME = "Account.username";
+    public static final String CONFIG_ACCOUNT_ROUTESET = "Account.routeset";
+    public static final String CONFIG_ACCOUNT_PASSWORD = "Account.password";
+    public static final String CONFIG_ACCOUNT_REALM = "Account.realm";
+    public static final String CONFIG_ACCOUNT_DEFAULT_REALM = "*";
+    public static final String CONFIG_ACCOUNT_USERAGENT = "Account.useragent";
+    public static final String CONFIG_ACCOUNT_AUTOANSWER = "Account.autoAnswer";
+
+    public static final String CONFIG_LOCAL_INTERFACE = "Account.localInterface";
+    public static final String CONFIG_INTERFACE = "Account.interface";
+    public static final String CONFIG_PUBLISHED_SAMEAS_LOCAL = "Account.publishedSameAsLocal";
+    public static final String CONFIG_LOCAL_PORT = "Account.localPort";
+    public static final String CONFIG_PUBLISHED_PORT = "Account.publishedPort";
+    public static final String CONFIG_PUBLISHED_ADDRESS = "Account.publishedAddress";
+    public static final String CONFIG_DEFAULT_LOCAL_PORT = "5060";
+    public static final String CONFIG_DEFAULT_PUBLISHED_PORT = "5060";
+    public static final String CONFIG_DEFAULT_PUBLISHED_SAMEAS_LOCAL = "true";
+    public static final String CONFIG_DEFAULT_INTERFACE = "default";
+
+    public static final String CONFIG_DISPLAY_NAME = "Account.displayName";
+    public static final String CONFIG_DEFAULT_ADDRESS = "0.0.0.0";
+
+    public static final String CONFIG_STUN_SERVER = "STUN.server";
+    public static final String CONFIG_STUN_ENABLE = "STUN.enable";
+
+    // SRTP specific parameters
+    public static final String CONFIG_SRTP_ENABLE = "SRTP.enable";
+    public static final String CONFIG_SRTP_KEY_EXCHANGE = "SRTP.keyExchange";
+    public static final String CONFIG_SRTP_ENCRYPTION_ALGO = "SRTP.encryptionAlgorithm";  // Provided by ccRTP,0=NULL,1=AESCM,2=AESF8
+    public static final String CONFIG_SRTP_RTP_FALLBACK = "SRTP.rtpFallback";
+    public static final String CONFIG_ZRTP_HELLO_HASH = "ZRTP.helloHashEnable";
+    public static final String CONFIG_ZRTP_DISPLAY_SAS = "ZRTP.displaySAS";
+    public static final String CONFIG_ZRTP_NOT_SUPP_WARNING = "ZRTP.notSuppWarning";
+    public static final String CONFIG_ZRTP_DISPLAY_SAS_ONCE = "ZRTP.displaySasOnce";
+
+    public static final String CONFIG_TLS_LISTENER_PORT = "TLS.listenerPort";
+    public static final String CONFIG_TLS_ENABLE = "TLS.enable";
+    public static final String CONFIG_TLS_CA_LIST_FILE = "TLS.certificateListFile";
+    public static final String CONFIG_TLS_CERTIFICATE_FILE = "TLS.certificateFile";
+    public static final String CONFIG_TLS_PRIVATE_KEY_FILE = "TLS.privateKeyFile";
+    public static final String CONFIG_TLS_PASSWORD = "TLS.password";
+    public static final String CONFIG_TLS_METHOD = "TLS.method";
+    public static final String CONFIG_TLS_CIPHERS = "TLS.ciphers";
+    public static final String CONFIG_TLS_SERVER_NAME = "TLS.serverName";
+    public static final String CONFIG_TLS_VERIFY_SERVER = "TLS.verifyServer";
+    public static final String CONFIG_TLS_VERIFY_CLIENT = "TLS.verifyClient";
+    public static final String CONFIG_TLS_REQUIRE_CLIENT_CERTIFICATE = "TLS.requireClientCertificate";
+    public static final String CONFIG_TLS_NEGOTIATION_TIMEOUT_SEC = "TLS.negotiationTimeoutSec";
+    public static final String CONFIG_TLS_NEGOTIATION_TIMEOUT_MSEC = "TLS.negotiationTimemoutMsec";
+
 }
diff --git a/src/com/savoirfairelinux/sflphone/service/SipService.java b/src/com/savoirfairelinux/sflphone/service/SipService.java
index 1196da2..f290c42 100644
--- a/src/com/savoirfairelinux/sflphone/service/SipService.java
+++ b/src/com/savoirfairelinux/sflphone/service/SipService.java
@@ -41,6 +41,7 @@
 import com.savoirfairelinux.sflphone.service.ISipService;
 
 import java.util.HashMap;
+import java.util.ArrayList;
 
 public class SipService extends Service {
 
@@ -116,43 +117,73 @@
         }
 
         @Override
+        public ArrayList<String> getAccountList() {
+            StringVect swigvect = configurationManagerJNI.getAccountList();
+            ArrayList<String> nativelist = new ArrayList<String>();
+            return nativelist;
+        } 
+
+        @Override
         public HashMap<String,String> getAccountDetails(final String accountID) {
             StringMap swigmap = configurationManagerJNI.getAccountDetails(accountID);
 
             HashMap<String, String> nativemap = new HashMap<String, String>();
-            nativemap.put(ServiceConstants.INTERFACE_KEY, nativemap.get(ServiceConstants.INTERFACE_KEY));
-            nativemap.put(ServiceConstants.PORT_KEY, nativemap.get(ServiceConstants.PORT_KEY));
-            nativemap.put(ServiceConstants.PUBLISH_ADDR_KEY, nativemap.get(ServiceConstants.PUBLISH_ADDR_KEY));
-            nativemap.put(ServiceConstants.PUBLISH_PORT_KEY, nativemap.get(ServiceConstants.PUBLISH_PORT_KEY));
-            nativemap.put(ServiceConstants.SAME_AS_LOCAL_KEY, nativemap.get(ServiceConstants.SAME_AS_LOCAL_KEY));
-            nativemap.put(ServiceConstants.DTMF_TYPE_KEY, nativemap.get(ServiceConstants.DTMF_TYPE_KEY));
-            nativemap.put(ServiceConstants.SERVICE_ROUTE_KEY, nativemap.get(ServiceConstants.SERVICE_ROUTE_KEY));
-            nativemap.put(ServiceConstants.KEEP_ALIVE_ENABLED, nativemap.get(ServiceConstants.KEEP_ALIVE_ENABLED));
-            nativemap.put(ServiceConstants.SRTP_KEY, nativemap.get(ServiceConstants.SRTP_KEY));
-            nativemap.put(ServiceConstants.SRTP_ENABLE_KEY, nativemap.get(ServiceConstants.SRTP_ENABLE_KEY));
-            nativemap.put(ServiceConstants.KEY_EXCHANGE_KEY, nativemap.get(ServiceConstants.KEY_EXCHANGE_KEY));
-            nativemap.put(ServiceConstants.RTP_FALLBACK_KEY, nativemap.get(ServiceConstants.RTP_FALLBACK_KEY));
-            nativemap.put(ServiceConstants.ZRTP_KEY, nativemap.get(ServiceConstants.ZRTP_KEY));
-            nativemap.put(ServiceConstants.DISPLAY_SAS_KEY, nativemap.get(ServiceConstants.DISPLAY_SAS_KEY));
-            nativemap.put(ServiceConstants.DISPLAY_SAS_ONCE_KEY, nativemap.get(ServiceConstants.DISPLAY_SAS_ONCE_KEY));
-            nativemap.put(ServiceConstants.HELLO_HASH_ENABLED_KEY, nativemap.get(ServiceConstants.HELLO_HASH_ENABLED_KEY));
-            nativemap.put(ServiceConstants.NOT_SUPP_WARNING_KEY, nativemap.get(ServiceConstants.NOT_SUPP_WARNING_KEY));
-            nativemap.put(ServiceConstants.TLS_KEY, nativemap.get(ServiceConstants.TLS_KEY));
-            nativemap.put(ServiceConstants.TLS_PORT_KEY, nativemap.get(ServiceConstants.TLS_PORT_KEY));
-            nativemap.put(ServiceConstants.CERTIFICATE_KEY, nativemap.get(ServiceConstants.CERTIFICATE_KEY));
-            nativemap.put(ServiceConstants.CALIST_KEY, nativemap.get(ServiceConstants.CALIST_KEY));
-            nativemap.put(ServiceConstants.TLS_ENABLE_KEY, nativemap.get(ServiceConstants.TLS_ENABLE_KEY));
-            nativemap.put(ServiceConstants.METHOD_KEY, nativemap.get(ServiceConstants.METHOD_KEY));
-            nativemap.put(ServiceConstants.TIMEOUT_KEY, nativemap.get(ServiceConstants.TIMEOUT_KEY));
-            nativemap.put(ServiceConstants.TLS_PASSWORD_KEY, nativemap.get(ServiceConstants.TLS_PASSWORD_KEY));
-            nativemap.put(ServiceConstants.PRIVATE_KEY_KEY, nativemap.get(ServiceConstants.PRIVATE_KEY_KEY));
-            nativemap.put(ServiceConstants.REQUIRE_CERTIF_KEY, nativemap.get(ServiceConstants.REQUIRE_CERTIF_KEY));
-            nativemap.put(ServiceConstants.SERVER_KEY, nativemap.get(ServiceConstants.SERVER_KEY));
-            nativemap.put(ServiceConstants.VERIFY_CLIENT_KEY, nativemap.get(ServiceConstants.VERIFY_CLIENT_KEY));
-            nativemap.put(ServiceConstants.VERIFY_SERVER_KEY, nativemap.get(ServiceConstants.VERIFY_SERVER_KEY));
-            nativemap.put(ServiceConstants.STUN_ENABLED_KEY, nativemap.get(ServiceConstants.STUN_ENABLED_KEY));
-            nativemap.put(ServiceConstants.STUN_SERVER_KEY, nativemap.get(ServiceConstants.STUN_SERVER_KEY));
-            nativemap.put(ServiceConstants.CRED_KEY, nativemap.get(ServiceConstants.CRED_KEY));
+
+            nativemap.put(ServiceConstants.CONFIG_ACCOUNT_ALIAS, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_ALIAS));
+            nativemap.put(ServiceConstants.CONFIG_ACCOUNT_HOSTNAME, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_HOSTNAME));
+            nativemap.put(ServiceConstants.CONFIG_ACCOUNT_USERNAME, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_USERNAME));
+            nativemap.put(ServiceConstants.CONFIG_ACCOUNT_ROUTESET, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_ROUTESET));
+            nativemap.put(ServiceConstants.CONFIG_ACCOUNT_REGISTRATION_EXPIRE, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_REGISTRATION_EXPIRE));
+            nativemap.put(ServiceConstants.CONFIG_LOCAL_INTERFACE, swigmap.get(ServiceConstants.CONFIG_LOCAL_INTERFACE));
+            nativemap.put(ServiceConstants.CONFIG_STUN_SERVER, swigmap.get(ServiceConstants.CONFIG_STUN_SERVER));
+            nativemap.put(ServiceConstants.CONFIG_TLS_ENABLE, swigmap.get(ServiceConstants.CONFIG_TLS_ENABLE));
+            nativemap.put(ServiceConstants.CONFIG_SRTP_ENABLE, swigmap.get(ServiceConstants.CONFIG_SRTP_ENABLE));
+
+            /*
+            nativemap.put(ServiceConstants.CONFIG_ACCOUNT_TYPE, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_TYPE));
+            nativemap.put(ServiceConstants.CONFIG_ACCOUNT_ALIAS, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_ALIAS));
+            nativemap.put(ServiceConstants.CONFIG_ACCOUNT_MAILBOX, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_MAILBOX));
+            nativemap.put(ServiceConstants.CONFIG_ACCOUNT_ENABLE, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_ENABLE));
+            nativemap.put(ServiceConstants.CONFIG_ACCOUNT_REGISTRATION_EXPIRE, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_REGISTRATION_EXPIRE));
+            nativemap.put(ServiceConstants.CONFIG_ACCOUNT_REGISTRATION_STATUS, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_REGISTRATION_STATUS));
+            nativemap.put(ServiceConstants.CONFIG_ACCOUNT_REGISTRATION_STATE_CODE, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_REGISTRATION_STATE_CODE));
+            nativemap.put(ServiceConstants.CONFIG_ACCOUNT_REGISTRATION_STATE_DESC, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_REGISTRATION_STATE_DESC));
+            nativemap.put(ServiceConstants.CONFIG_CREDENTIAL_NUMBER, swigmap.get(ServiceConstants.CONFIG_CREDENTIAL_NUMBER));
+            nativemap.put(ServiceConstants.CONFIG_ACCOUNT_DTMF_TYPE, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_DTMF_TYPE));
+            nativemap.put(ServiceConstants.CONFIG_RINGTONE_PATH, swigmap.get(ServiceConstants.CONFIG_RINGTONE_PATH));
+            nativemap.put(ServiceConstants.CONFIG_RINGTONE_ENABLED, swigmap.get(ServiceConstants.CONFIG_RINGTONE_ENABLED));
+            nativemap.put(ServiceConstants.CONFIG_KEEP_ALIVE_ENABLED, swigmap.get(ServiceConstants.CONFIG_KEEP_ALIVE_ENABLED));
+            nativemap.put(ServiceConstants.CONFIG_ACCOUNT_PASSWORD, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_PASSWORD));
+            nativemap.put(ServiceConstants.CONFIG_ACCOUNT_REALM, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_REALM));
+            nativemap.put(ServiceConstants.CONFIG_ACCOUNT_DEFAULT_REALM, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_DEFAULT_REALM));
+            nativemap.put(ServiceConstants.CONFIG_ACCOUNT_USERAGENT, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_USERAGENT));
+            nativemap.put(ServiceConstants.CONFIG_ACCOUNT_AUTOANSWER, swigmap.get(ServiceConstants.CONFIG_ACCOUNT_AUTOANSWER));
+            nativemap.put(ServiceConstants.CONFIG_INTERFACE, swigmap.get(ServiceConstants.CONFIG_INTERFACE));
+            nativemap.put(ServiceConstants.CONFIG_PUBLISHED_SAMEAS_LOCAL, swigmap.get(ServiceConstants.CONFIG_PUBLISHED_SAMEAS_LOCAL));
+            nativemap.put(ServiceConstants.CONFIG_DEFAULT_INTERFACE, swigmap.get(ServiceConstants.CONFIG_DEFAULT_INTERFACE));
+            nativemap.put(ServiceConstants.CONFIG_DISPLAY_NAME, swigmap.get(ServiceConstants.CONFIG_DISPLAY_NAME));
+            nativemap.put(ServiceConstants.CONFIG_DEFAULT_ADDRESS, swigmap.get(ServiceConstants.CONFIG_DEFAULT_ADDRESS));
+            nativemap.put(ServiceConstants.CONFIG_SRTP_KEY_EXCHANGE, swigmap.get(ServiceConstants.CONFIG_SRTP_KEY_EXCHANGE));
+            nativemap.put(ServiceConstants.CONFIG_SRTP_ENCRYPTION_ALGO, swigmap.get(ServiceConstants.CONFIG_SRTP_ENCRYPTION_ALGO));
+            nativemap.put(ServiceConstants.CONFIG_SRTP_RTP_FALLBACK, swigmap.get(ServiceConstants.CONFIG_SRTP_RTP_FALLBACK));
+            nativemap.put(ServiceConstants.CONFIG_ZRTP_HELLO_HASH, swigmap.get(ServiceConstants.CONFIG_ZRTP_HELLO_HASH));
+            nativemap.put(ServiceConstants.CONFIG_ZRTP_DISPLAY_SAS, swigmap.get(ServiceConstants.CONFIG_ZRTP_DISPLAY_SAS));
+            nativemap.put(ServiceConstants.CONFIG_ZRTP_NOT_SUPP_WARNING, swigmap.get(ServiceConstants.CONFIG_ZRTP_NOT_SUPP_WARNING));
+            nativemap.put(ServiceConstants.CONFIG_ZRTP_DISPLAY_SAS_ONCE, swigmap.get(ServiceConstants.CONFIG_ZRTP_DISPLAY_SAS_ONCE));
+            nativemap.put(ServiceConstants.CONFIG_TLS_LISTENER_PORT, swigmap.get(ServiceConstants.CONFIG_TLS_LISTENER_PORT));
+            nativemap.put(ServiceConstants.CONFIG_TLS_CA_LIST_FILE, swigmap.get(ServiceConstants.CONFIG_TLS_CA_LIST_FILE));
+            nativemap.put(ServiceConstants.CONFIG_TLS_CERTIFICATE_FILE, swigmap.get(ServiceConstants.CONFIG_TLS_CERTIFICATE_FILE));
+            nativemap.put(ServiceConstants.CONFIG_TLS_PRIVATE_KEY_FILE, swigmap.get(ServiceConstants.CONFIG_TLS_PRIVATE_KEY_FILE));
+            nativemap.put(ServiceConstants.CONFIG_TLS_PASSWORD, swigmap.get(ServiceConstants.CONFIG_TLS_PASSWORD));
+            nativemap.put(ServiceConstants.CONFIG_TLS_METHOD, swigmap.get(ServiceConstants.CONFIG_TLS_METHOD));
+            nativemap.put(ServiceConstants.CONFIG_TLS_CIPHERS, swigmap.get(ServiceConstants.CONFIG_TLS_CIPHERS));
+            nativemap.put(ServiceConstants.CONFIG_TLS_SERVER_NAME, swigmap.get(ServiceConstants.CONFIG_TLS_SERVER_NAME));
+            nativemap.put(ServiceConstants.CONFIG_TLS_VERIFY_SERVER, swigmap.get(ServiceConstants.CONFIG_TLS_VERIFY_SERVER));
+            nativemap.put(ServiceConstants.CONFIG_TLS_VERIFY_CLIENT, swigmap.get(ServiceConstants.CONFIG_TLS_VERIFY_CLIENT));
+            nativemap.put(ServiceConstants.CONFIG_TLS_REQUIRE_CLIENT_CERTIFICATE, swigmap.get(ServiceConstants.CONFIG_TLS_REQUIRE_CLIENT_CERTIFICATE));
+            nativemap.put(ServiceConstants.CONFIG_TLS_NEGOTIATION_TIMEOUT_SEC, swigmap.get(ServiceConstants.CONFIG_TLS_NEGOTIATION_TIMEOUT_SEC));
+            nativemap.put(ServiceConstants.CONFIG_TLS_NEGOTIATION_TIMEOUT_MSEC, swigmap.get(ServiceConstants.CONFIG_TLS_NEGOTIATION_TIMEOUT_MSEC));
+            */
 
             return nativemap;
         }