diff --git a/src/qtwrapper/configurationmanager_wrap.h b/src/qtwrapper/configurationmanager_wrap.h
index 4e1fd39eb8f31933050a7bf49006c7eb6fc35799..4c661162735b1abb71ccc3982a175883cdea21c3 100644
--- a/src/qtwrapper/configurationmanager_wrap.h
+++ b/src/qtwrapper/configurationmanager_wrap.h
@@ -1,21 +1,21 @@
 /******************************************************************************
-*   Copyright (C) 2014-2017 Savoir-faire Linux                                 *
-*   Author : Philippe Groarke <philippe.groarke@savoirfairelinux.com>        *
-*   Author : Alexandre Lision <alexandre.lision@savoirfairelinux.com>        *
-*                                                                            *
-*   This library is free software; you can redistribute it and/or            *
-*   modify it under the terms of the GNU Lesser General Public               *
-*   License as published by the Free Software Foundation; either             *
-*   version 2.1 of the License, or (at your option) any later version.       *
-*                                                                            *
-*   This library is distributed in the hope that it will be useful,          *
-*   but WITHOUT ANY WARRANTY; without even the implied warranty of           *
-*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU        *
-*   Lesser General Public License for more details.                          *
-*                                                                            *
-*   You should have received a copy of the Lesser GNU General Public License *
-*   along with this program.  If not, see <http://www.gnu.org/licenses/>.    *
-*****************************************************************************/
+ *   Copyright (C) 2014-2017 Savoir-faire Linux                               *
+ *   Author : Philippe Groarke <philippe.groarke@savoirfairelinux.com>        *
+ *   Author : Alexandre Lision <alexandre.lision@savoirfairelinux.com>        *
+ *                                                                            *
+ *   This library is free software; you can redistribute it and/or            *
+ *   modify it under the terms of the GNU Lesser General Public               *
+ *   License as published by the Free Software Foundation; either             *
+ *   version 2.1 of the License, or (at your option) any later version.       *
+ *                                                                            *
+ *   This library is distributed in the hope that it will be useful,          *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of           *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU        *
+ *   Lesser General Public License for more details.                          *
+ *                                                                            *
+ *   You should have received a copy of the Lesser GNU General Public License *
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.    *
+ *****************************************************************************/
 #pragma once
 
 #include <QtCore/QObject>
@@ -43,683 +43,568 @@ class ConfigurationManagerInterface: public QObject
     Q_OBJECT
 
 public:
-
-   std::map<std::string, std::shared_ptr<DRing::CallbackWrapperBase>> confHandlers;
-
-   ConfigurationManagerInterface()
-   {
-      setObjectName("ConfigurationManagerInterface");
-      using DRing::exportable_callback;
-      using DRing::ConfigurationSignal;
-      using DRing::AudioSignal;
-
-      setObjectName("ConfigurationManagerInterface");
-      confHandlers = {
-         exportable_callback<ConfigurationSignal::VolumeChanged>(
-               [this] (const std::string &device, double value) {
-                   Q_EMIT this->volumeChanged(QString(device.c_str()), value);
-               }),
-         exportable_callback<ConfigurationSignal::AccountsChanged>(
-               [this] () {
-                   Q_EMIT this->accountsChanged();
-               }),
-         exportable_callback<ConfigurationSignal::StunStatusFailed>(
-               [this] (const std::string &reason) {
-                           Q_EMIT this->stunStatusFailure(QString(reason.c_str()));
-         }),
-         exportable_callback<ConfigurationSignal::RegistrationStateChanged>(
-               [this] (const std::string &accountID, const std::string& registration_state, unsigned detail_code,
-                       const std::string& detail_str) {
-                   Q_EMIT this->registrationStateChanged(QString(accountID.c_str()),
-                                                         QString(registration_state.c_str()),
-                                                         detail_code,
-                                                         QString(detail_str.c_str()));
-               }),
-         exportable_callback<ConfigurationSignal::VolatileDetailsChanged>(
-               [this] (const std::string &accountID, const std::map<std::string, std::string>& details) {
-                   Q_EMIT this->volatileAccountDetailsChanged(QString(accountID.c_str()), convertMap(details));
-               }),
-         exportable_callback<ConfigurationSignal::Error>(
-               [this] (int code) {
-                   Q_EMIT this->errorAlert(code);
-               }),
-         exportable_callback<ConfigurationSignal::CertificateExpired>(
-               [this] (const std::string &certId) {
-                   Q_EMIT this->certificateExpired(QString(certId.c_str()));
-               }),
-         exportable_callback<ConfigurationSignal::CertificatePinned>(
-               [this] (const std::string &certId) {
-                   Q_EMIT this->certificatePinned(QString(certId.c_str()));
-               }),
-         exportable_callback<ConfigurationSignal::CertificatePathPinned>(
-               [this] (const std::string &certPath, const std::vector<std::string>& list) {
-                   Q_EMIT this->certificatePathPinned(QString(certPath.c_str()),convertStringList(list));
-               }),
-         exportable_callback<ConfigurationSignal::CertificateStateChanged>(
-               [this] (const std::string &accountID, const std::string &certId, const std::string &state) {
-                     QTimer::singleShot(0, [this, accountID, certId, state] {
-                           Q_EMIT this->certificateStateChanged(QString(accountID.c_str()), QString(certId.c_str()), QString(state.c_str()));
-                     });
-         }),
-         exportable_callback<DRing::ConfigurationSignal::AccountMessageStatusChanged>(
-               [this] (const std::string& accountID, uint64_t id, const std::string& to, int status) {
-                   Q_EMIT this->accountMessageStatusChanged(QString(accountID.c_str()), id, QString(to.c_str()), status);
-               }),
-         exportable_callback<ConfigurationSignal::IncomingTrustRequest>(
-               [this] (const std::string &accountId, const std::string &certId, const std::vector<uint8_t> &payload, time_t timestamp) {
-                   Q_EMIT this->incomingTrustRequest(QString(accountId.c_str()), QString(certId.c_str()), QByteArray(reinterpret_cast<const char*>(payload.data()), payload.size()), timestamp);
-               }),
-         exportable_callback<ConfigurationSignal::KnownDevicesChanged>(
-               [this] (const std::string &accountId, const std::map<std::string, std::string>& devices) {
-                   Q_EMIT this->knownDevicesChanged(QString(accountId.c_str()), convertMap(devices));
-               }),
-         exportable_callback<ConfigurationSignal::ExportOnRingEnded>(
-               [this] (const std::string &accountId, int status, const std::string &pin) {
+    std::map<std::string, std::shared_ptr<DRing::CallbackWrapperBase>> confHandlers;
+
+    ConfigurationManagerInterface() {
+        setObjectName("ConfigurationManagerInterface");
+        using DRing::exportable_callback;
+        using DRing::ConfigurationSignal;
+        using DRing::AudioSignal;
+
+        setObjectName("ConfigurationManagerInterface");
+        confHandlers = {
+            exportable_callback<ConfigurationSignal::VolumeChanged>(
+                [this] (const std::string &device, double value) {
+                    Q_EMIT this->volumeChanged(QString(device.c_str()), value);
+                }),
+            exportable_callback<ConfigurationSignal::AccountsChanged>(
+                [this] () {
+                    Q_EMIT this->accountsChanged();
+                }),
+            exportable_callback<ConfigurationSignal::StunStatusFailed>(
+                [this] (const std::string &reason) {
+                    Q_EMIT this->stunStatusFailure(QString(reason.c_str()));
+                }),
+            exportable_callback<ConfigurationSignal::RegistrationStateChanged>(
+                [this] (const std::string &accountID, const std::string& registration_state,
+                        unsigned detail_code,
+                        const std::string& detail_str) {
+                    Q_EMIT this->registrationStateChanged(QString(accountID.c_str()),
+                                                          QString(registration_state.c_str()),
+                                                          detail_code,
+                                                          QString(detail_str.c_str()));
+                }),
+            exportable_callback<ConfigurationSignal::VolatileDetailsChanged>(
+                [this] (const std::string &accountID, const std::map<std::string, std::string>& details) {
+                    Q_EMIT this->volatileAccountDetailsChanged(QString(accountID.c_str()), convertMap(details));
+                }),
+            exportable_callback<ConfigurationSignal::Error>(
+                [this] (int code) {
+                    Q_EMIT this->errorAlert(code);
+                }),
+            exportable_callback<ConfigurationSignal::CertificateExpired>(
+                [this] (const std::string &certId) {
+                    Q_EMIT this->certificateExpired(QString(certId.c_str()));
+                }),
+            exportable_callback<ConfigurationSignal::CertificatePinned>(
+                [this] (const std::string &certId) {
+                    Q_EMIT this->certificatePinned(QString(certId.c_str()));
+                }),
+            exportable_callback<ConfigurationSignal::CertificatePathPinned>(
+                [this] (const std::string &certPath, const std::vector<std::string>& list) {
+                    Q_EMIT this->certificatePathPinned(QString(certPath.c_str()),convertStringList(list));
+                }),
+            exportable_callback<ConfigurationSignal::CertificateStateChanged>(
+                [this] (const std::string &accountID, const std::string &certId, const std::string &state) {
+                    QTimer::singleShot(
+                        0, [this, accountID, certId, state] {
+                            Q_EMIT this->certificateStateChanged(QString(accountID.c_str()), QString(certId.c_str()), QString(state.c_str()));
+                        });
+                }),
+            exportable_callback<DRing::ConfigurationSignal::AccountMessageStatusChanged>(
+                [this] (const std::string& accountID, uint64_t id, const std::string& to, int status) {
+                    Q_EMIT this->accountMessageStatusChanged(QString(accountID.c_str()), id, QString(to.c_str()), status);
+                }),
+            exportable_callback<ConfigurationSignal::IncomingTrustRequest>(
+                [this] (const std::string &accountId, const std::string &certId, const std::vector<uint8_t> &payload, time_t timestamp) {
+                    Q_EMIT this->incomingTrustRequest(QString(accountId.c_str()), QString(certId.c_str()), QByteArray(reinterpret_cast<const char*>(payload.data()), payload.size()), timestamp);
+                }),
+            exportable_callback<ConfigurationSignal::KnownDevicesChanged>(
+                [this] (const std::string &accountId, const std::map<std::string, std::string>& devices) {
+                    Q_EMIT this->knownDevicesChanged(QString(accountId.c_str()), convertMap(devices));
+                }),
+            exportable_callback<ConfigurationSignal::ExportOnRingEnded>(
+                [this] (const std::string &accountId, int status, const std::string &pin) {
                     Q_EMIT this->exportOnRingEnded(QString(accountId.c_str()), status, QString(pin.c_str()));
-         }),
-         exportable_callback<ConfigurationSignal::NameRegistrationEnded>(
-               [this] (const std::string &accountId, int status, const std::string &name) {
-                           Q_EMIT this->nameRegistrationEnded(QString(accountId.c_str()), status, QString(name.c_str()));
+                }),
+            exportable_callback<ConfigurationSignal::NameRegistrationEnded>(
+                [this] (const std::string &accountId, int status, const std::string &name) {
+                    Q_EMIT this->nameRegistrationEnded(QString(accountId.c_str()), status, QString(name.c_str()));
 
-         }),
-         exportable_callback<ConfigurationSignal::RegisteredNameFound>(
+                }),
+            exportable_callback<ConfigurationSignal::RegisteredNameFound>(
                 [this] (const std::string &accountId, int status, const std::string &address, const std::string &name) {
-                            Q_EMIT this->registeredNameFound(QString(accountId.c_str()), status, QString(address.c_str()), QString(name.c_str()));
-         }),
-         exportable_callback<ConfigurationSignal::IncomingAccountMessage>(
-               [this] (const std::string& account_id, const std::string& from, const std::map<std::string, std::string>& payloads) {
-                   Q_EMIT this->incomingAccountMessage(QString(account_id.c_str()), QString(from.c_str()), convertMap(payloads));
-               }),
-         exportable_callback<ConfigurationSignal::MediaParametersChanged>(
-               [this] (const std::string& account_id) {
-                   Q_EMIT this->mediaParametersChanged(QString(account_id.c_str()));
-               }),
-         exportable_callback<AudioSignal::DeviceEvent>(
-               [this] () {
-                   Q_EMIT this->audioDeviceEvent();
-               }),
-        exportable_callback<ConfigurationSignal::MigrationEnded>(
-               [this] (const std::string& account_id, const std::string& result) {
-                   Q_EMIT this->migrationEnded(QString(account_id.c_str()), QString(result.c_str()));
-               }),
-        exportable_callback<ConfigurationSignal::ContactAdded>(
-               [this] (const std::string& account_id, const std::string& uri, const bool& confirmed) {
-                   Q_EMIT this->contactAdded(QString(account_id.c_str()), QString(uri.c_str()), confirmed);
-               }),
-        exportable_callback<ConfigurationSignal::ContactRemoved>(
-               [this] (const std::string& account_id, const std::string& uri, const bool& banned) {
-                   Q_EMIT this->contactRemoved(QString(account_id.c_str()), QString(uri.c_str()), banned);
-               }),
-      };
-   }
-
-   ~ConfigurationManagerInterface() {}
+                    Q_EMIT this->registeredNameFound(QString(accountId.c_str()), status, QString(address.c_str()), QString(name.c_str()));
+                }),
+            exportable_callback<ConfigurationSignal::IncomingAccountMessage>(
+                [this] (const std::string& account_id, const std::string& from, const std::map<std::string, std::string>& payloads) {
+                    Q_EMIT this->incomingAccountMessage(QString(account_id.c_str()), QString(from.c_str()), convertMap(payloads));
+                }),
+            exportable_callback<ConfigurationSignal::MediaParametersChanged>(
+                [this] (const std::string& account_id) {
+                    Q_EMIT this->mediaParametersChanged(QString(account_id.c_str()));
+                }),
+            exportable_callback<AudioSignal::DeviceEvent>(
+                [this] () {
+                    Q_EMIT this->audioDeviceEvent();
+                }),
+            exportable_callback<ConfigurationSignal::MigrationEnded>(
+                [this] (const std::string& account_id, const std::string& result) {
+                    Q_EMIT this->migrationEnded(QString(account_id.c_str()), QString(result.c_str()));
+                }),
+            exportable_callback<ConfigurationSignal::ContactAdded>(
+                [this] (const std::string& account_id, const std::string& uri, const bool& confirmed) {
+                    Q_EMIT this->contactAdded(QString(account_id.c_str()), QString(uri.c_str()), confirmed);
+                }),
+            exportable_callback<ConfigurationSignal::ContactRemoved>(
+                [this] (const std::string& account_id, const std::string& uri, const bool& banned) {
+                    Q_EMIT this->contactRemoved(QString(account_id.c_str()), QString(uri.c_str()), banned);
+                }),
+        };
+    }
+
+    ~ConfigurationManagerInterface() {}
 
 public Q_SLOTS: // METHODS
-   QString addAccount(MapStringString details)
-   {
-      QString temp(
-         DRing::addAccount(convertMap(details)).c_str());
-      return temp;
-   }
-
-   bool exportOnRing(const QString& accountID, const QString& password)
-   {
-       return DRing::exportOnRing(accountID.toStdString(), password.toStdString());
-   }
-
-   MapStringString getKnownRingDevices(const QString& accountID)
-   {
-       MapStringString temp =
-           convertMap(DRing::getKnownRingDevices(accountID.toStdString()));
-       return temp;
-   }
-
-   bool lookupName(const QString& accountID, const QString& nameServiceURL, const QString& name)
-   {
-       return DRing::lookupName(accountID.toStdString(), nameServiceURL.toStdString(), name.toStdString());
-   }
-
-   bool lookupAddress(const QString& accountID, const QString& nameServiceURL, const QString& address)
-   {
-       return DRing::lookupAddress(accountID.toStdString(), nameServiceURL.toStdString(), address.toStdString());
-   }
-
-   bool registerName(const QString& accountID, const QString& password, const QString& name)
-   {
-      return DRing::registerName(accountID.toStdString(), password.toStdString(), name.toStdString());
-   }
-
-   MapStringString getAccountDetails(const QString& accountID)
-   {
-      MapStringString temp =
-         convertMap(DRing::getAccountDetails(accountID.toStdString()));
-      return temp;
-   }
-
-   QStringList getAccountList()
-   {
-      QStringList temp =
-         convertStringList(DRing::getAccountList());
-      return temp;
-   }
-
-   MapStringString getAccountTemplate(const QString& accountType)
-   {
-      MapStringString temp =
-         convertMap(DRing::getAccountTemplate(accountType.toStdString()));
-      return temp;
-   }
-
-   // TODO: works?
-   VectorUInt getActiveCodecList(const QString& accountID)
-   {
-      return QVector<unsigned int>::fromStdVector(
-         DRing::getActiveCodecList(accountID.toStdString()));
-   }
-
-   QString getAddrFromInterfaceName(const QString& interface)
-   {
-      QString temp(
-         DRing::getAddrFromInterfaceName(interface.toStdString()).c_str());
-      return temp;
-   }
-
-   QStringList getAllIpInterface()
-   {
-      QStringList temp =
-         convertStringList(DRing::getAllIpInterface());
-      return temp;
-   }
-
-   QStringList getAllIpInterfaceByName()
-   {
-      QStringList temp =
-         convertStringList(DRing::getAllIpInterfaceByName());
-      return temp;
-   }
-
-   MapStringString getCodecDetails(const QString& accountID, int payload)
-   {
-      MapStringString temp =
-         convertMap(DRing::getCodecDetails(
-               accountID.toStdString().c_str(), payload));
-      return temp;
-   }
-
-   VectorUInt getCodecList()
-   {
-      return QVector<unsigned int>::fromStdVector(DRing::getCodecList());
-   }
-
-   VectorMapStringString getContacts(const QString &accountID)
-   {
-      VectorMapStringString temp;
-      for (const auto& x : DRing::getContacts(accountID.toStdString())) {
-         temp.push_back(convertMap(x));
-      }
-      return temp;
-   }
-
-   int getAudioInputDeviceIndex(const QString& devname)
-   {
-      return DRing::getAudioInputDeviceIndex(devname.toStdString());
-   }
-
-   QStringList getAudioInputDeviceList()
-   {
-      QStringList temp =
-         convertStringList(DRing::getAudioInputDeviceList());
-      return temp;
-   }
-
-   QString getAudioManager()
-   {
-      QString temp(
-         DRing::getAudioManager().c_str());
-      return temp;
-   }
-
-   int getAudioOutputDeviceIndex(const QString& devname)
-   {
-      return DRing::getAudioOutputDeviceIndex(devname.toStdString());
-   }
-
-   QStringList getAudioOutputDeviceList()
-   {
-      QStringList temp =
-         convertStringList(DRing::getAudioOutputDeviceList());
-      return temp;
-   }
-
-   QStringList getAudioPluginList()
-   {
-      QStringList temp =
-         convertStringList(DRing::getAudioPluginList());
-      return temp;
-   }
-
-   VectorMapStringString getCredentials(const QString& accountID)
-   {
-      VectorMapStringString temp;
-      for(auto x : DRing::getCredentials(accountID.toStdString())) {
-         temp.push_back(convertMap(x));
-      }
-      return temp;
-   }
-
-   QStringList getCurrentAudioDevicesIndex()
-   {
-      QStringList temp =
-         convertStringList(DRing::getCurrentAudioDevicesIndex());
-      return temp;
-   }
-
-   QString getCurrentAudioOutputPlugin()
-   {
-      QString temp(
-         DRing::getCurrentAudioOutputPlugin().c_str());
-      return temp;
-   }
-
-   int getHistoryLimit()
-   {
-      return DRing::getHistoryLimit();
-   }
-
-   MapStringString getHookSettings()
-   {
-      MapStringString temp =
-         convertMap(DRing::getHookSettings());
-      return temp;
-   }
-
-   bool getIsAlwaysRecording()
-   {
-      return DRing::getIsAlwaysRecording();
-   }
-
-   bool getNoiseSuppressState()
-   {
-      return DRing::getNoiseSuppressState();
-   }
-
-   QString getRecordPath()
-   {
-      QString temp(
-         DRing::getRecordPath().c_str());
-      return temp;
-   }
-
-   QStringList getSupportedAudioManagers()
-   {
-      QStringList temp;
-      return temp;
-   }
-
-   MapStringString getShortcuts()
-   {
-      MapStringString temp =
-         convertMap(DRing::getShortcuts());
-      return temp;
-   }
-
-   QStringList getSupportedTlsMethod()
-   {
-      QStringList temp =
-         convertStringList(DRing::getSupportedTlsMethod());
-      return temp;
-   }
-
-   MapStringString validateCertificate(const QString& unused, const QString& certificate)
-   {
-      MapStringString temp =
-         convertMap(DRing::validateCertificate(unused.toStdString(),
-                                             certificate.toStdString()));
-      return temp;
-   }
-
-   MapStringString validateCertificatePath(const QString& unused, const QString& certificate, const QString& privateKey, const QString& privateKeyPass, const QString& caListPath)
-   {
-      MapStringString temp =
-         convertMap(DRing::validateCertificatePath(unused.toStdString(),
-                                             certificate.toStdString(),
-                                             privateKey.toStdString(),
-                                             privateKeyPass.toStdString(),
-                                             caListPath.toStdString()));
-      return temp;
-   }
-
-   MapStringString getCertificateDetails(const QString& certificate)
-   {
-      MapStringString temp =
-         convertMap(DRing::getCertificateDetails(certificate.toStdString()));
-      return temp;
-   }
-
-   MapStringString getCertificateDetailsPath(const QString& certificate, const QString& privateKey, const QString& privateKeyPass)
-   {
-      MapStringString temp =
-         convertMap(DRing::getCertificateDetailsPath(certificate.toStdString(),
-                                                     privateKey.toStdString(),
-                                                     privateKeyPass.toStdString()));
-      return temp;
-   }
-
-   QStringList getSupportedCiphers(const QString& accountID)
-   {
-      QStringList temp =
-         convertStringList(DRing::getSupportedCiphers(accountID.toStdString()));
-      return temp;
-   }
-
-   MapStringString getTlsDefaultSettings()
-   {
-      MapStringString temp =
-         convertMap(DRing::getTlsDefaultSettings());
-      return temp;
-   }
-
-   double getVolume(const QString& device)
-   {
-      return DRing::getVolume(device.toStdString());
-   }
-
-   bool isAgcEnabled()
-   {
-      return DRing::isAgcEnabled();
-   }
-
-   bool isCaptureMuted()
-   {
-      return DRing::isCaptureMuted();
-   }
-
-   bool isDtmfMuted()
-   {
-      return DRing::isDtmfMuted();
-   }
-
-   bool isPlaybackMuted()
-   {
-      return DRing::isPlaybackMuted();
-   }
-
-   void muteCapture(bool mute)
-   {
-      DRing::muteCapture(mute);
-   }
-
-   void muteDtmf(bool mute)
-   {
-      DRing::muteDtmf(mute);
-   }
-
-   void mutePlayback(bool mute)
-   {
-      DRing::mutePlayback(mute);
-   }
-
-   void registerAllAccounts()
-   {
-      DRing::registerAllAccounts();
-   }
-
-   void removeAccount(const QString& accountID)
-   {
-      DRing::removeAccount(accountID.toStdString());
-   }
-
-   int  exportAccounts(const QStringList& accountIDs, const QString& filePath, const QString& password)
-   {
-      return DRing::exportAccounts(convertStringList(accountIDs), filePath.toStdString(), password.toStdString());
-   }
-
-   int importAccounts(const QString& filePath, const QString& password)
-   {
-      return DRing::importAccounts(filePath.toStdString(), password.toStdString());
-   }
-
-   bool changeAccountPassword(const QString& id, const QString& currentPassword, const QString& newPassword)
-   {
-       return DRing::changeAccountPassword(id.toStdString(), currentPassword.toStdString(), newPassword.toStdString());
-   }
-
-   void sendRegister(const QString& accountID, bool enable)
-   {
-      DRing::sendRegister(accountID.toStdString(), enable);
-   }
-
-   void setAccountDetails(const QString& accountID, MapStringString details)
-   {
-      DRing::setAccountDetails(accountID.toStdString(),
-         convertMap(details));
-   }
-
-   void setAccountsOrder(const QString& order)
-   {
-      DRing::setAccountsOrder(order.toStdString());
-   }
-
-   void setActiveCodecList(const QString& accountID, VectorUInt &list)
-   {
-      //const std::vector<unsigned int> converted = convertStringList(list);
-      DRing::setActiveCodecList(accountID.toStdString(),
-      list.toStdVector());
-   }
-
-   void setAgcState(bool enabled)
-   {
-      DRing::setAgcState(enabled);
-   }
-
-   void setAudioInputDevice(int index)
-   {
-      DRing::setAudioInputDevice(index);
-   }
-
-   bool setAudioManager(const QString& api)
-   {
-      return DRing::setAudioManager(api.toStdString());
-   }
-
-   void setAudioOutputDevice(int index)
-   {
-      DRing::setAudioOutputDevice(index);
-   }
-
-   void setAudioPlugin(const QString& audioPlugin)
-   {
-      DRing::setAudioPlugin(audioPlugin.toStdString());
-   }
-
-   void setAudioRingtoneDevice(int index)
-   {
-      DRing::setAudioRingtoneDevice(index);
-   }
-
-   void setCredentials(const QString& accountID, VectorMapStringString credentialInformation)
-   {
-      std::vector<std::map<std::string, std::string> > temp;
-      for (auto x : credentialInformation) {
-         temp.push_back(convertMap(x));
-      }
-      DRing::setCredentials(accountID.toStdString(), temp);
-   }
-
-   void setHistoryLimit(int days)
-   {
-      DRing::setHistoryLimit(days);
-   }
-
-   void setHookSettings(MapStringString settings)
-   {
-      DRing::setHookSettings(convertMap(settings));
-   }
-
-   void setIsAlwaysRecording(bool enabled)
-   {
-      DRing::setIsAlwaysRecording(enabled);
-   }
-
-   void setNoiseSuppressState(bool state)
-   {
-      DRing::setNoiseSuppressState(state);
-   }
-
-   void setRecordPath(const QString& rec)
-   {
-      DRing::setRecordPath(rec.toStdString());
-   }
-
-   void setShortcuts(MapStringString shortcutsMap)
-   {
-      DRing::setShortcuts(convertMap(shortcutsMap));
-   }
-
-   void setVolume(const QString& device, double value)
-   {
-      DRing::setVolume(device.toStdString(), value);
-   }
-
-   MapStringString getVolatileAccountDetails(const QString& accountID)
-   {
-      MapStringString temp = convertMap(DRing::getVolatileAccountDetails(accountID.toStdString()));
-      return temp;
-   }
-
-   QStringList getPinnedCertificates()
-   {
-      QStringList temp =
-         convertStringList(DRing::getPinnedCertificates());
-      return temp;
-   }
-
-   QStringList pinCertificate(const QByteArray& content, bool local)
-   {
-      std::vector<unsigned char> raw(content.begin(), content.end());
-      return convertStringList(DRing::pinCertificate(raw,local));
-   }
-
-   bool unpinCertificate(const QString& certId)
-   {
-      return DRing::unpinCertificate(certId.toStdString());
-   }
-
-   void pinCertificatePath(const QString& certPath)
-   {
-      DRing::pinCertificatePath(certPath.toStdString());
-   }
-
-   uint unpinCertificatePath(const QString& certPath)
-   {
-      return DRing::unpinCertificatePath(certPath.toStdString());
-   }
-
-   bool pinRemoteCertificate(const QString& accountId, const QString& certPath)
-   {
-      return DRing::pinRemoteCertificate(accountId.toStdString(), certPath.toStdString());
-   }
-
-   bool setCertificateStatus(const QString& accountId, const QString& certPath, const QString& status)
-   {
-      return DRing::setCertificateStatus(accountId.toStdString(), certPath.toStdString(), status.toStdString());
-   }
-
-   QStringList getCertificatesByStatus(const QString& accountId, const QString& status)
-   {
-      return convertStringList(DRing::getCertificatesByStatus(accountId.toStdString(), status.toStdString()));
-   }
-
-   VectorMapStringString getTrustRequests(const QString& accountId)
-   {
-      return convertVecMap(DRing::getTrustRequests(accountId.toStdString()));
-   }
-
-   bool acceptTrustRequest(const QString& accountId, const QString& from)
-   {
-      return DRing::acceptTrustRequest(accountId.toStdString(), from.toStdString());
-   }
-
-   bool discardTrustRequest(const QString& accountId, const QString& from)
-   {
-      return DRing::discardTrustRequest(accountId.toStdString(), from.toStdString());
-   }
-
-   void sendTrustRequest(const QString& accountId, const QString& from, const QByteArray& payload)
-   {
-      std::vector<unsigned char> raw(payload.begin(), payload.end());
-      DRing::sendTrustRequest(accountId.toStdString(), from.toStdString(), raw);
-   }
-
-   void removeContact(const QString &accountId, const QString &uri, bool ban)
-   {
-      DRing::removeContact(accountId.toStdString(), uri.toStdString(), ban);
-   }
-
-   void addContact(const QString &accountId, const QString &uri)
-   {
-      DRing::addContact(accountId.toStdString(), uri.toStdString());
-   }
-
-   uint64_t sendTextMessage(const QString& accountId, const QString& to, const QMap<QString,QString>& payloads)
-   {
-      return DRing::sendAccountTextMessage(accountId.toStdString(), to.toStdString(), convertMap(payloads));
-   }
-
-   bool setCodecDetails(const QString& accountId, unsigned int codecId, const MapStringString& details)
-   {
-      return DRing::setCodecDetails(accountId.toStdString(), codecId, convertMap(details));
-   }
-
-   int getMessageStatus(uint64_t id)
-   {
-       return DRing::getMessageStatus(id);
-   }
-
-   void connectivityChanged()
-   {
-       DRing::connectivityChanged();
-   }
-
-   MapStringString getContactDetails(const QString &accountID, const QString &uri)
-   {
-       return convertMap(DRing::getContactDetails(accountID.toStdString(), uri.toStdString()));
-   }
+    QString addAccount(MapStringString details) {
+        QString temp(DRing::addAccount(convertMap(details)).c_str());
+        return temp;
+    }
+
+    bool exportOnRing(const QString& accountID, const QString& password) {
+        return DRing::exportOnRing(accountID.toStdString(), password.toStdString());
+    }
+
+    MapStringString getKnownRingDevices(const QString& accountID) {
+        MapStringString temp = convertMap(DRing::getKnownRingDevices(accountID.toStdString()));
+        return temp;
+    }
+
+    bool lookupName(const QString& accountID, const QString& nameServiceURL, const QString& name) {
+        return DRing::lookupName(accountID.toStdString(), nameServiceURL.toStdString(), name.toStdString());
+    }
+
+    bool lookupAddress(const QString& accountID, const QString& nameServiceURL, const QString& address) {
+        return DRing::lookupAddress(accountID.toStdString(), nameServiceURL.toStdString(), address.toStdString());
+    }
+
+    bool registerName(const QString& accountID, const QString& password, const QString& name) {
+        return DRing::registerName(accountID.toStdString(), password.toStdString(), name.toStdString());
+    }
+
+    MapStringString getAccountDetails(const QString& accountID) {
+        MapStringString temp = convertMap(DRing::getAccountDetails(accountID.toStdString()));
+        return temp;
+    }
+
+    QStringList getAccountList() {
+        QStringList temp =
+            convertStringList(DRing::getAccountList());
+        return temp;
+    }
+
+    MapStringString getAccountTemplate(const QString& accountType) {
+        MapStringString temp = convertMap(DRing::getAccountTemplate(accountType.toStdString()));
+        return temp;
+    }
+
+    // TODO: works?
+    VectorUInt getActiveCodecList(const QString& accountID) {
+        return QVector<unsigned int>::fromStdVector(DRing::getActiveCodecList(accountID.toStdString()));
+    }
+
+    QString getAddrFromInterfaceName(const QString& interface) {
+        QString temp(DRing::getAddrFromInterfaceName(interface.toStdString()).c_str());
+        return temp;
+    }
+
+    QStringList getAllIpInterface() {
+        QStringList temp = convertStringList(DRing::getAllIpInterface());
+        return temp;
+    }
+
+    QStringList getAllIpInterfaceByName() {
+        QStringList temp = convertStringList(DRing::getAllIpInterfaceByName());
+        return temp;
+    }
+
+    MapStringString getCodecDetails(const QString& accountID, int payload) {
+        MapStringString temp = convertMap(DRing::getCodecDetails(accountID.toStdString().c_str(), payload));
+        return temp;
+    }
+
+    VectorUInt getCodecList() {
+        return QVector<unsigned int>::fromStdVector(DRing::getCodecList());
+    }
+
+    VectorMapStringString getContacts(const QString &accountID) {
+        VectorMapStringString temp;
+        for (const auto& x : DRing::getContacts(accountID.toStdString())) {
+            temp.push_back(convertMap(x));
+        }
+        return temp;
+    }
+
+    int getAudioInputDeviceIndex(const QString& devname) {
+        return DRing::getAudioInputDeviceIndex(devname.toStdString());
+    }
+
+    QStringList getAudioInputDeviceList() {
+        QStringList temp = convertStringList(DRing::getAudioInputDeviceList());
+        return temp;
+    }
+
+    QString getAudioManager() {
+        QString temp(DRing::getAudioManager().c_str());
+        return temp;
+    }
+
+    int getAudioOutputDeviceIndex(const QString& devname) {
+        return DRing::getAudioOutputDeviceIndex(devname.toStdString());
+    }
+
+    QStringList getAudioOutputDeviceList() {
+        QStringList temp = convertStringList(DRing::getAudioOutputDeviceList());
+        return temp;
+    }
+
+    QStringList getAudioPluginList() {
+        QStringList temp = convertStringList(DRing::getAudioPluginList());
+        return temp;
+    }
+
+    VectorMapStringString getCredentials(const QString& accountID) {
+        VectorMapStringString temp;
+        for (auto x : DRing::getCredentials(accountID.toStdString())) {
+            temp.push_back(convertMap(x));
+        }
+        return temp;
+    }
+
+    QStringList getCurrentAudioDevicesIndex() {
+        QStringList temp = convertStringList(DRing::getCurrentAudioDevicesIndex());
+        return temp;
+    }
+
+    QString getCurrentAudioOutputPlugin() {
+        QString temp(DRing::getCurrentAudioOutputPlugin().c_str());
+        return temp;
+    }
+
+    int getHistoryLimit() {
+        return DRing::getHistoryLimit();
+    }
+
+    MapStringString getHookSettings() {
+        MapStringString temp = convertMap(DRing::getHookSettings());
+        return temp;
+    }
+
+    bool getIsAlwaysRecording() {
+        return DRing::getIsAlwaysRecording();
+    }
+
+    bool getNoiseSuppressState() {
+        return DRing::getNoiseSuppressState();
+    }
+
+    QString getRecordPath() {
+        QString temp(DRing::getRecordPath().c_str());
+        return temp;
+    }
+
+    QStringList getSupportedAudioManagers() {
+        QStringList temp;
+        return temp;
+    }
+
+    MapStringString getShortcuts() {
+        MapStringString temp = convertMap(DRing::getShortcuts());
+        return temp;
+    }
+
+    QStringList getSupportedTlsMethod() {
+        QStringList temp = convertStringList(DRing::getSupportedTlsMethod());
+        return temp;
+    }
+
+    MapStringString validateCertificate(const QString& unused, const QString& certificate) {
+        MapStringString temp = convertMap(DRing::validateCertificate(unused.toStdString(),
+                                                                     certificate.toStdString()));
+        return temp;
+    }
+
+    MapStringString validateCertificatePath(const QString& unused,
+                                            const QString& certificate,
+                                            const QString& privateKey,
+                                            const QString& privateKeyPass,
+                                            const QString& caListPath) {
+        MapStringString temp = convertMap(DRing::validateCertificatePath(unused.toStdString(),
+                                                                         certificate.toStdString(),
+                                                                         privateKey.toStdString(),
+                                                                         privateKeyPass.toStdString(),
+                                                                         caListPath.toStdString()));
+        return temp;
+    }
+
+    MapStringString getCertificateDetails(const QString& certificate) {
+        MapStringString temp = convertMap(DRing::getCertificateDetails(certificate.toStdString()));
+        return temp;
+    }
+
+    MapStringString getCertificateDetailsPath(const QString& certificate,
+                                              const QString& privateKey,
+                                              const QString& privateKeyPass) {
+        MapStringString temp = convertMap(DRing::getCertificateDetailsPath(certificate.toStdString(),
+                                                                           privateKey.toStdString(),
+                                                                           privateKeyPass.toStdString()));
+        return temp;
+    }
+
+    QStringList getSupportedCiphers(const QString& accountID) {
+        QStringList temp = convertStringList(DRing::getSupportedCiphers(accountID.toStdString()));
+        return temp;
+    }
+
+    MapStringString getTlsDefaultSettings() {
+        MapStringString temp = convertMap(DRing::getTlsDefaultSettings());
+        return temp;
+    }
+
+    double getVolume(const QString& device) {
+        return DRing::getVolume(device.toStdString());
+    }
+
+    bool isAgcEnabled() {
+        return DRing::isAgcEnabled();
+    }
+
+    bool isCaptureMuted() {
+        return DRing::isCaptureMuted();
+    }
+
+    bool isDtmfMuted() {
+        return DRing::isDtmfMuted();
+    }
+
+    bool isPlaybackMuted() {
+        return DRing::isPlaybackMuted();
+    }
+
+    void muteCapture(bool mute) {
+        DRing::muteCapture(mute);
+    }
+
+    void muteDtmf(bool mute) {
+        DRing::muteDtmf(mute);
+    }
+
+    void mutePlayback(bool mute) {
+        DRing::mutePlayback(mute);
+    }
+
+    void registerAllAccounts() {
+        DRing::registerAllAccounts();
+    }
+
+    void removeAccount(const QString& accountID) {
+        DRing::removeAccount(accountID.toStdString());
+    }
+
+    int  exportAccounts(const QStringList& accountIDs, const QString& filePath, const QString& password) {
+        return DRing::exportAccounts(convertStringList(accountIDs), filePath.toStdString(), password.toStdString());
+    }
+
+    int importAccounts(const QString& filePath, const QString& password) {
+        return DRing::importAccounts(filePath.toStdString(), password.toStdString());
+    }
+
+    bool changeAccountPassword(const QString& id, const QString& currentPassword, const QString& newPassword) {
+        return DRing::changeAccountPassword(id.toStdString(), currentPassword.toStdString(), newPassword.toStdString());
+    }
+
+    void sendRegister(const QString& accountID, bool enable) {
+        DRing::sendRegister(accountID.toStdString(), enable);
+    }
+
+    void setAccountDetails(const QString& accountID, MapStringString details) {
+        DRing::setAccountDetails(accountID.toStdString(),
+                                 convertMap(details));
+    }
+
+    void setAccountsOrder(const QString& order) {
+        DRing::setAccountsOrder(order.toStdString());
+    }
+
+    void setActiveCodecList(const QString& accountID, VectorUInt &list) {
+        //const std::vector<unsigned int> converted = convertStringList(list);
+        DRing::setActiveCodecList(accountID.toStdString(),
+                                  list.toStdVector());
+    }
+
+    void setAgcState(bool enabled) {
+        DRing::setAgcState(enabled);
+    }
+
+    void setAudioInputDevice(int index) {
+        DRing::setAudioInputDevice(index);
+    }
+
+    bool setAudioManager(const QString& api) {
+        return DRing::setAudioManager(api.toStdString());
+    }
+
+    void setAudioOutputDevice(int index) {
+        DRing::setAudioOutputDevice(index);
+    }
+
+    void setAudioPlugin(const QString& audioPlugin) {
+        DRing::setAudioPlugin(audioPlugin.toStdString());
+    }
+
+    void setAudioRingtoneDevice(int index) {
+        DRing::setAudioRingtoneDevice(index);
+    }
+
+    void setCredentials(const QString& accountID, VectorMapStringString credentialInformation) {
+        std::vector<std::map<std::string, std::string> > temp;
+        for (auto x : credentialInformation) {
+            temp.push_back(convertMap(x));
+        }
+        DRing::setCredentials(accountID.toStdString(), temp);
+    }
+
+    void setHistoryLimit(int days) {
+        DRing::setHistoryLimit(days);
+    }
+
+    void setHookSettings(MapStringString settings) {
+        DRing::setHookSettings(convertMap(settings));
+    }
+
+    void setIsAlwaysRecording(bool enabled) {
+        DRing::setIsAlwaysRecording(enabled);
+    }
+
+    void setNoiseSuppressState(bool state) {
+        DRing::setNoiseSuppressState(state);
+    }
+
+    void setRecordPath(const QString& rec) {
+        DRing::setRecordPath(rec.toStdString());
+    }
+
+    void setShortcuts(MapStringString shortcutsMap) {
+        DRing::setShortcuts(convertMap(shortcutsMap));
+    }
+
+    void setVolume(const QString& device, double value) {
+        DRing::setVolume(device.toStdString(), value);
+    }
+
+    MapStringString getVolatileAccountDetails(const QString& accountID) {
+        MapStringString temp = convertMap(DRing::getVolatileAccountDetails(accountID.toStdString()));
+        return temp;
+    }
+
+    QStringList getPinnedCertificates() {
+        QStringList temp = convertStringList(DRing::getPinnedCertificates());
+        return temp;
+    }
+
+    QStringList pinCertificate(const QByteArray& content, bool local) {
+        std::vector<unsigned char> raw(content.begin(), content.end());
+        return convertStringList(DRing::pinCertificate(raw,local));
+    }
+
+    bool unpinCertificate(const QString& certId) {
+        return DRing::unpinCertificate(certId.toStdString());
+    }
+
+    void pinCertificatePath(const QString& certPath) {
+        DRing::pinCertificatePath(certPath.toStdString());
+    }
+
+    uint unpinCertificatePath(const QString& certPath) {
+        return DRing::unpinCertificatePath(certPath.toStdString());
+    }
+
+    bool pinRemoteCertificate(const QString& accountId, const QString& certPath) {
+        return DRing::pinRemoteCertificate(accountId.toStdString(), certPath.toStdString());
+    }
+
+    bool setCertificateStatus(const QString& accountId, const QString& certPath, const QString& status) {
+        return DRing::setCertificateStatus(accountId.toStdString(), certPath.toStdString(), status.toStdString());
+    }
+
+    QStringList getCertificatesByStatus(const QString& accountId, const QString& status) {
+        return convertStringList(DRing::getCertificatesByStatus(accountId.toStdString(), status.toStdString()));
+    }
+
+    VectorMapStringString getTrustRequests(const QString& accountId) {
+        return convertVecMap(DRing::getTrustRequests(accountId.toStdString()));
+    }
+
+    bool acceptTrustRequest(const QString& accountId, const QString& from) {
+        return DRing::acceptTrustRequest(accountId.toStdString(), from.toStdString());
+    }
+
+    bool discardTrustRequest(const QString& accountId, const QString& from) {
+        return DRing::discardTrustRequest(accountId.toStdString(), from.toStdString());
+    }
+
+    void sendTrustRequest(const QString& accountId, const QString& from, const QByteArray& payload) {
+        std::vector<unsigned char> raw(payload.begin(), payload.end());
+        DRing::sendTrustRequest(accountId.toStdString(), from.toStdString(), raw);
+    }
+
+    void removeContact(const QString &accountId, const QString &uri, bool ban) {
+        DRing::removeContact(accountId.toStdString(), uri.toStdString(), ban);
+    }
+
+    void addContact(const QString &accountId, const QString &uri) {
+        DRing::addContact(accountId.toStdString(), uri.toStdString());
+    }
+
+    uint64_t sendTextMessage(const QString& accountId, const QString& to, const QMap<QString,QString>& payloads) {
+        return DRing::sendAccountTextMessage(accountId.toStdString(), to.toStdString(), convertMap(payloads));
+    }
+
+    bool setCodecDetails(const QString& accountId, unsigned int codecId, const MapStringString& details) {
+        return DRing::setCodecDetails(accountId.toStdString(), codecId, convertMap(details));
+    }
+
+    int getMessageStatus(uint64_t id) {
+        return DRing::getMessageStatus(id);
+    }
+
+    void connectivityChanged() {
+        DRing::connectivityChanged();
+    }
+
+    MapStringString getContactDetails(const QString &accountID, const QString &uri) {
+        return convertMap(DRing::getContactDetails(accountID.toStdString(), uri.toStdString()));
+    }
 
 Q_SIGNALS: // SIGNALS
-   void volumeChanged(const QString& device, double value);
-   void accountsChanged();
-   void historyChanged();
-   void stunStatusFailure(const QString& reason);
-   void registrationStateChanged(const QString& accountID, const QString& registration_state, unsigned detail_code, const QString& detail_str);
-   void stunStatusSuccess(const QString& message);
-   void errorAlert(int code);
-   void volatileAccountDetailsChanged(const QString& accountID, MapStringString details);
-   void certificatePinned(const QString& certId);
-   void certificatePathPinned(const QString& path, const QStringList& certIds);
-   void certificateExpired(const QString& certId);
-   void certificateStateChanged(const QString& accountId, const QString& certId, const QString& status);
-   void incomingTrustRequest(const QString& accountId, const QString& from, const QByteArray& payload, qulonglong timeStamp);
-   void knownDevicesChanged(const QString& accountId, const MapStringString& devices);
-   void exportOnRingEnded(const QString& accountId, int status, const QString& pin);
-   void incomingAccountMessage(const QString& accountId, const QString& from, const MapStringString& payloads);
-   void mediaParametersChanged(const QString& accountId);
-   void audioDeviceEvent();
-   void accountMessageStatusChanged(const QString& accountId, const uint64_t id, const QString& to, int status);
-   void nameRegistrationEnded(const QString& accountId, int status, const QString& name);
-   void registeredNameFound(const QString& accountId, int status, const QString& address, const QString& name);
-   void migrationEnded(const QString &accountID, const QString &result);
-   void contactAdded(const QString &accountID, const QString &uri, bool banned);
-   void contactRemoved(const QString &accountID, const QString &uri, bool banned);
+    void volumeChanged(const QString& device, double value);
+    void accountsChanged();
+    void historyChanged();
+    void stunStatusFailure(const QString& reason);
+    void registrationStateChanged(const QString& accountID, const QString& registration_state, unsigned detail_code, const QString& detail_str);
+    void stunStatusSuccess(const QString& message);
+    void errorAlert(int code);
+    void volatileAccountDetailsChanged(const QString& accountID, MapStringString details);
+    void certificatePinned(const QString& certId);
+    void certificatePathPinned(const QString& path, const QStringList& certIds);
+    void certificateExpired(const QString& certId);
+    void certificateStateChanged(const QString& accountId, const QString& certId, const QString& status);
+    void incomingTrustRequest(const QString& accountId, const QString& from, const QByteArray& payload, qulonglong timeStamp);
+    void knownDevicesChanged(const QString& accountId, const MapStringString& devices);
+    void exportOnRingEnded(const QString& accountId, int status, const QString& pin);
+    void incomingAccountMessage(const QString& accountId, const QString& from, const MapStringString& payloads);
+    void mediaParametersChanged(const QString& accountId);
+    void audioDeviceEvent();
+    void accountMessageStatusChanged(const QString& accountId, const uint64_t id, const QString& to, int status);
+    void nameRegistrationEnded(const QString& accountId, int status, const QString& name);
+    void registeredNameFound(const QString& accountId, int status, const QString& address, const QString& name);
+    void migrationEnded(const QString &accountID, const QString &result);
+    void contactAdded(const QString &accountID, const QString &uri, bool banned);
+    void contactRemoved(const QString &accountID, const QString &uri, bool banned);
 
 
 };
 
-namespace org {
-   namespace ring {
-      namespace Ring {
-         typedef ::ConfigurationManagerInterface ConfigurationManager;
-      }
-   }
-}
+namespace org { namespace ring { namespace Ring {
+typedef ::ConfigurationManagerInterface ConfigurationManager;
+}}}