diff --git a/src/Account.cpp b/src/Account.cpp
index 2bd6e0e9d46f616daaa7217780a2e8c50794a66c..6e4f05e0cc52e257d072067ef813efdbcd430ab9 100644
--- a/src/Account.cpp
+++ b/src/Account.cpp
@@ -86,6 +86,12 @@ Account* Account::buildExistingAccountFromId(const QString& _accountId)
       return NULL;
    }
    a->m_pAccountDetails = aDetails;
+
+   //Enable for debug
+   //    foreach (QString str, *aDetails) {
+   //       qDebug() << aDetails->key(str) << str;
+   //    }
+
    return a;
 }
 
@@ -152,6 +158,10 @@ const QString& Account::getAccountDetail(const QString& param) const
    }
    if (m_pAccountDetails->find(param) != m_pAccountDetails->end())
       return (*m_pAccountDetails)[param];
+   else if (m_pAccountDetails->count() > 0) {
+      qDebug() << "Account paramater \"" << param << "\" not found";
+      return EMPTY_STRING;
+   }
    else {
       qDebug() << "Account details not found, there is " << m_pAccountDetails->count() << " details available";
       return EMPTY_STRING;
@@ -167,13 +177,13 @@ const QString& Account::getAlias() const
 ///Is this account enabled
 bool Account::isEnabled() const
 {
-   return (getAccountDetail(ACCOUNT_ENABLED) == ACCOUNT_ENABLED_TRUE);
+   return (getAccountDetail(ACCOUNT_ENABLED) == REGISTRATION_ENABLED_TRUE);
 }
 
 ///Is this account registered
 bool Account::isRegistered() const
 {
-   return (getAccountDetail(ACCOUNT_STATUS) == ACCOUNT_STATE_REGISTERED);
+   return (getAccountDetail(REGISTRATION_STATUS) == ACCOUNT_STATE_REGISTERED);
 }
 
 
@@ -207,7 +217,7 @@ void Account::setAccountId(const QString& id)
 ///Set account enabled
 void Account::setEnabled(bool checked)
 {
-   setAccountDetail(ACCOUNT_ENABLED, checked ? ACCOUNT_ENABLED_TRUE : ACCOUNT_ENABLED_FALSE);
+   setAccountDetail(ACCOUNT_ENABLED, checked ? REGISTRATION_ENABLED_TRUE : REGISTRATION_ENABLED_FALSE);
 }
 
 /*****************************************************************************
@@ -222,8 +232,8 @@ void Account::updateState()
    if(! isNew()) {
       ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
       MapStringString details = configurationManager.getAccountDetails(getAccountId()).value();
-      QString status = details[ACCOUNT_STATUS];
-      setAccountDetail(ACCOUNT_STATUS, status); //Update -internal- object state
+      QString status = details[REGISTRATION_STATUS];
+      setAccountDetail(REGISTRATION_STATUS, status); //Update -internal- object state
    }
 }
 
diff --git a/src/AccountList.cpp b/src/AccountList.cpp
index 8a99b6b899a9095ffd4fc7a81df429b6cdf3f50f..30c440de2cf37e91b4b7b3e07fca06a531679e4c 100644
--- a/src/AccountList.cpp
+++ b/src/AccountList.cpp
@@ -143,7 +143,7 @@ QVector<Account*> AccountList::getAccountsByState(const QString& state)
 {
    QVector<Account *> v;
    for (int i = 0; i < m_pAccounts->size(); ++i) {
-      if ((*m_pAccounts)[i]->getAccountDetail(ACCOUNT_STATUS) == state)
+      if ((*m_pAccounts)[i]->getAccountDetail(REGISTRATION_STATUS) == state)
          v += (*m_pAccounts)[i];
    }
    return v;
@@ -157,7 +157,7 @@ QVector<Account*> AccountList::registeredAccounts() const
    Account* current;
    for (int i = 0; i < m_pAccounts->count(); ++i) {
       current = (*m_pAccounts)[i];
-      if(current->getAccountDetail(ACCOUNT_STATUS) == ACCOUNT_STATE_REGISTERED) {
+      if(current->getAccountDetail(REGISTRATION_STATUS) == ACCOUNT_STATE_REGISTERED) {
          qDebug() << current->getAlias() << " : " << current;
          registeredAccounts.append(current);
       }
@@ -171,11 +171,11 @@ Account* AccountList::firstRegisteredAccount() const
    Account* current;
    for (int i = 0; i < m_pAccounts->count(); ++i) {
       current = (*m_pAccounts)[i];
-      if(current && current->getAccountDetail(ACCOUNT_STATUS) == ACCOUNT_STATE_REGISTERED) {
+      if(current && current->getAccountDetail(REGISTRATION_STATUS) == ACCOUNT_STATE_REGISTERED) {
          return current;
       }
       else {
-         qDebug() << "Account " << current->getAccountId() << " is not registered (" << current->getAccountDetail(ACCOUNT_STATUS) << ")";
+         qDebug() << "Account " << ((current)?current->getAccountId():"") << " is not registered (" << ((current)?current->getAccountDetail(REGISTRATION_STATUS):"") << ") State:" << ((current)?current->getAccountDetail(REGISTRATION_STATUS):"");
       }
    }
    return NULL;
diff --git a/src/AccountList.h b/src/AccountList.h
index 68f995b08dfd2bde6c4891fafed49d22a1e6be08..b1fce03a9d02c00c385c84cef0ebb233947e8666 100644
--- a/src/AccountList.h
+++ b/src/AccountList.h
@@ -17,7 +17,7 @@
  *   along with this program; if not, write to the                         *
  *   Free Software Foundation, Inc.,                                       *
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
- ***************************************************************************/
+ **************************************************************************/
 
 #ifndef ACCOUNT_LIST_H
 #define ACCOUNT_LIST_H
@@ -70,5 +70,4 @@ signals:
    void accountListUpdated();
 };
 
-
 #endif
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index c2fa10571ef547aeec51bee8f033c6322ec560ba..f0c574c9d0f4296a9c5fc15b43dd237ab1cdfe76 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,5 +1,8 @@
 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
 
+ADD_DEFINITIONS("-std=c++0x")
+# ADD_DEFINITIONS("-std=c++0x")
+
 ADD_DEFINITIONS(
 	${QT_DEFINITIONS} 
 	-fexceptions
diff --git a/src/Call.cpp b/src/Call.cpp
index 7504e8e0ec41f3a6bfe9a42263bc2961d4902591..e09f029a425a2765ee3f5e3f001d77476d7228a9 100644
--- a/src/Call.cpp
+++ b/src/Call.cpp
@@ -313,7 +313,7 @@ daemon_call_state Call::toDaemonCallState(const QString & stateName)
 QString Call::getStopTimeStamp()     const
 {
    if (m_pStopTime == NULL)
-      return QString();
+      return QString("0");
    return QString::number(m_pStopTime->toTime_t());
 }
 
@@ -321,7 +321,7 @@ QString Call::getStopTimeStamp()     const
 QString Call::getStartTimeStamp()    const
 {
    if (m_pStartTime == NULL)
-      return QString();
+      return QString("0");
    return QString::number(m_pStartTime->toTime_t());
 }
 
@@ -385,6 +385,12 @@ const QString& Call::getConfId()            const
    return m_ConfId;
 }
 
+///Get the recording path
+const QString& Call::getRecordingPath()      const
+{
+   return m_RecordingPath;
+}
+
 ///Get the current codec
 QString Call::getCurrentCodecName()  const
 {
@@ -459,6 +465,12 @@ void Call::setConfId(QString value)
    m_ConfId = value;
 }
 
+///Set the recording path
+void Call::setRecordingPath(const QString& path)
+{
+   m_RecordingPath = path;
+}
+
 /*****************************************************************************
  *                                                                           *
  *                                  Mutator                                  *
diff --git a/src/Call.h b/src/Call.h
index 8e475dbcdfdcd9c665168835413d4b42fabd370f..47252d9f60a1bbca1dcfe19c9d7fb985ab513481 100644
--- a/src/Call.h
+++ b/src/Call.h
@@ -151,6 +151,7 @@ public:
    const QString&       getConfId           () const;
    const QString&       getTransferNumber   () const;
    const QString&       getCallNumber       () const;
+   const QString&       getRecordingPath    () const;
 
    //Automated function
    call_state stateChanged(const QString & newState);
@@ -161,6 +162,7 @@ public:
    void setConfId(QString value);
    void setTransferNumber(const QString& number);
    void setCallNumber(const QString& number);
+   void setRecordingPath(const QString& path);
    
    //Mutators
    void appendText(const QString& str);
@@ -175,6 +177,7 @@ private:
    QString                m_ConfId         ;
    QString                m_PeerPhoneNumber;
    QString                m_PeerName       ;
+   QString                m_RecordingPath  ;
    history_state          m_HistoryState   ;
    QDateTime*             m_pStartTime     ;
    QDateTime*             m_pStopTime      ;
diff --git a/src/CallModel.h b/src/CallModel.h
index 608af376d043a0d15c16ba95e663e4afe460ac99..7644138291457ed5aa2a1c0ba8de6840a383fe4e 100644
--- a/src/CallModel.h
+++ b/src/CallModel.h
@@ -175,11 +175,11 @@ class LIB_EXPORT CallModel : public CallModelBase {
       struct InternalStruct;
       typedef QList<InternalStruct*> InternalCallList;
       struct InternalStruct {
-	 CallWidget       call       ;
-	 Call*            call_real  ;
-	 Index            index      ;
-	 InternalCallList children   ;
-	 bool             conference ;
+         CallWidget       call       ;
+         Call*            call_real  ;
+         Index            index      ;
+         InternalCallList children   ;
+         bool             conference ;
       };
       typedef QHash< Call*      , InternalStruct* > InternalCall  ;
       typedef QHash< QString    , InternalStruct* > InternalCallId;
diff --git a/src/CallModel.hpp b/src/CallModel.hpp
index f19081c5a580269fd29f90a9985c553b9ec9ffe8..8fb295df4de58fd0e407396aa166953017ccbe92 100644
--- a/src/CallModel.hpp
+++ b/src/CallModel.hpp
@@ -77,7 +77,7 @@ template<typename CallWidget, typename Index> bool CallModel<CallWidget,Index>::
       
       //Setup accounts
       if (m_spAccountList == NULL)
-	 m_spAccountList = new AccountList(true);
+         m_spAccountList = new AccountList(true);
    }
    m_sInstanceInit = true;
    return true;
@@ -117,25 +117,22 @@ template<typename CallWidget, typename Index> bool CallModel<CallWidget,Index>::
 {
    if (!m_sHistoryInit) {
       ConfigurationManagerInterface& configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
-      QStringList historyMap = configurationManager.getHistory().value();
-      foreach (QString historyCallId, historyMap) {
-         QStringList param = historyCallId.split("|");
-         if (param.count() <= 10) {
-            //If this ever change, look at the gnome client
-            QString history_state = param[0];
-            QString peer_number   = param[1];
-            QString peer_name     = param[2];
-            QString time_start    = param[3];
-            QString time_stop     = param[4];
-            QString callID        = param[5];
-            QString accountID     = param[6];
-            QString recordfile    = param[7];
-            QString confID        = param[8];
-            QString time_added    = param[9];
-            m_sHistoryCalls[time_start] = Call::buildHistoryCall(callID, time_start.toUInt(), time_stop.toUInt(), accountID, peer_name, peer_number, history_state);
-            addCall(m_sHistoryCalls[time_start]);
-         }
+      QVector< QMap<QString, QString> > history = configurationManager.getHistory();
+      foreach (MapStringString hc, history) {
+         Call* pastCall = Call::buildHistoryCall(
+                  hc[ CALLID_KEY          ]         ,
+                  hc[ TIMESTAMP_START_KEY ].toUInt(),
+                  hc[ TIMESTAMP_STOP_KEY  ].toUInt(),
+                  hc[ ACCOUNT_ID_KEY      ]         ,
+                  hc[ DISPLAY_NAME_KEY    ]         ,
+                  hc[ PEER_NUMBER_KEY     ]         ,
+                  hc[ STATE_KEY           ]
+         );
+         pastCall->setRecordingPath(hc[ RECORDING_PATH_KEY ]);
+         m_sHistoryCalls[ hc[TIMESTAMP_START_KEY ]] = pastCall;
+         addCall(pastCall);
       }
+      qDebug() << "There is " << m_sHistoryCalls.count() << "in history";
    }
    m_sHistoryInit = true;
    return true;
@@ -181,6 +178,9 @@ template<typename CallWidget, typename Index> QList<Call*> CallModel<CallWidget,
 template<typename CallWidget, typename Index> Call* CallModel<CallWidget,Index>::addCall(Call* call, Call* parent) 
 {
    Q_UNUSED(parent)
+   if (!call)
+      return new Call("",""); //Invalid, but better than managing NULL everywhere
+
    InternalStruct* aNewStruct = new InternalStruct;
    aNewStruct->call_real  = call;
    aNewStruct->conference = false;
@@ -277,7 +277,7 @@ template<typename CallWidget, typename Index> void CallModel<CallWidget,Index>::
 ///Transfer this call to  "target" number
 template<typename CallWidget, typename Index> void CallModel<CallWidget,Index>::transfer(Call* toTransfer, QString target)
 {
-   qDebug() << "\n\n\n\n\nTransferring call " << toTransfer->getCallId() << target << "\n\n\n\n\n";
+   qDebug() << "Transferring call " << toTransfer->getCallId() << "to" << target;
    toTransfer->setTransferNumber(target);
    toTransfer->changeCurrentState(CALL_STATE_TRANSFER);
    toTransfer->actionPerformed(CALL_ACTION_ACCEPT);
@@ -415,6 +415,7 @@ template<typename CallWidget, typename Index> const QStringList CallModel<CallWi
 ///Return the history list
 template<typename CallWidget, typename Index> const CallHash& CallModel<CallWidget,Index>::getHistory()
 {
+   qDebug() << "Getting history" << m_sHistoryCalls.count();
    return m_sHistoryCalls;
 }
 
@@ -441,7 +442,7 @@ template<typename CallWidget, typename Index> QString CallModel<CallWidget,Index
 template<typename CallWidget, typename Index> Account* CallModel<CallWidget,Index>::getCurrentAccount()
 {
    Account* priorAccount = getAccountList()->getAccountById(m_sPriorAccountId);
-   if(priorAccount && priorAccount->getAccountDetail(ACCOUNT_STATUS) == ACCOUNT_STATE_REGISTERED ) {
+   if(priorAccount && priorAccount->getAccountDetail(REGISTRATION_STATUS) == ACCOUNT_STATE_REGISTERED ) {
       return priorAccount;
    }
    else {
@@ -491,7 +492,7 @@ template<typename CallWidget, typename Index> QList<Call*> CallModel<CallWidget,
    QList<Call*> toReturn;
    if (m_sPrivateCallList_widget[widget] && m_sPrivateCallList_widget[widget]->conference) {
       foreach (InternalStruct* child, m_sPrivateCallList_widget[widget]->children) {
-	 toReturn << child.call_real;
+         toReturn << child.call_real;
       }
    }
    return toReturn;
@@ -537,7 +538,7 @@ template<typename CallWidget, typename Index> QList<Call*> CallModel<CallWidget,
    QList<Call*> toReturn;
    if (m_sPrivateCallList_call[call] && m_sPrivateCallList_call[call]->conference) {
       foreach (InternalStruct* child, m_sPrivateCallList_call[call]->children) {
-	 toReturn << child.call_real;
+         toReturn << child.call_real;
       }
    }
    return toReturn;
@@ -568,7 +569,7 @@ template<typename CallWidget, typename Index> QList<Call*> CallModel<CallWidget,
    QList<Call*> toReturn;
    if (m_sPrivateCallList_index[idx] && m_sPrivateCallList_index[idx]->conference) {
       foreach (InternalStruct* child, m_sPrivateCallList_index[idx]->children) {
-	 toReturn << child.call_real;
+         toReturn << child.call_real;
       }
    }
    return toReturn;
@@ -598,7 +599,7 @@ template<typename CallWidget, typename Index> QList<Call*> CallModel<CallWidget,
    QList<Call*> toReturn;
    if (m_sPrivateCallList_callId[callId] && m_sPrivateCallList_callId[callId]->conference) {
       foreach (InternalStruct* child, m_sPrivateCallList_callId[callId]->children) {
-	 toReturn << child.callId_real;
+         toReturn << child.callId_real;
       }
    }
    return toReturn;
@@ -705,4 +706,4 @@ template<typename CallWidget, typename Index> bool CallModel<CallWidget,Index>::
    m_sPrivateCallList_call[call]->index = value                         ;
    m_sPrivateCallList_index[value]      = m_sPrivateCallList_call[call] ;
    return true;
-}
\ No newline at end of file
+}
diff --git a/src/ContactBackend.h b/src/ContactBackend.h
index 81a0c051d2e8c3b4d291530e8d1fe4afdc579ae1..66d65cd8dae12ed87942f5bc46c2daab109e9995 100644
--- a/src/ContactBackend.h
+++ b/src/ContactBackend.h
@@ -37,7 +37,7 @@ class LIB_EXPORT ContactBackend : public QObject {
    Q_OBJECT
 public:
    ContactBackend(QObject* parent);
-   virtual Contact*    getContactByPhone ( const QString& phoneNumber ) = 0;
+   virtual Contact*    getContactByPhone ( const QString& phoneNumber , bool resolveDNS = false) = 0;
    virtual Contact*    getContactByUid   ( const QString& uid         ) = 0;
    virtual void        editContact       ( Contact*       contact     ) = 0;
    virtual void        addNewContact     ( Contact*       contact     ) = 0;
diff --git a/src/Item.h b/src/Item.h
index 24238fa5c4e34f318efd4916f6226e3e107979dd..7da33c927da425bcd23909c79200cf46f729e090 100644
--- a/src/Item.h
+++ b/src/Item.h
@@ -25,68 +25,68 @@
 
 class QListWidgetItem;
 
-/**
-	@author Jérémy Quentin <jeremy.quentin@gmail.com>         
-	Represents an item of a list, that is displayed           
-	by an QListWidgetItem with a QWidget inside.              
-	The two objects are contained in this class, but their    
-	initializations are pure virtual.                         
-	The template class WIDGET_TYPE should be derived from     
-	QWidget.                                                  
-	The implementation of initItem should call initItemWidget 
+/**                                                            
+  * @author Jérémy Quentin <jeremy.quentin@gmail.com>          
+  * Represents an item of a list, that is displayed            
+  * by an QListWidgetItem with a QWidget inside.               
+  * The two objects are contained in this class, but their     
+  * initializations are pure virtual.                          
+  * The template class WIDGET_TYPE should be derived from      
+  * QWidget.                                                   
+  * The implementation of initItem should call initItemWidget  
 */
 template<class WIDGET_TYPE>class LIB_EXPORT Item
 {
 protected:
-	QListWidgetItem * item;
-	WIDGET_TYPE * itemWidget;
-	
+   QListWidgetItem * item;
+   WIDGET_TYPE * itemWidget;
+
 
 public:
-	/**
-	 *  Would be great to take the QListWidget as attribute         
-	 *  to be able to add the itemWidget to the item in the list.   
-	 *  For the moment, we have to do it from outside.              
-	 */
-	Item(/*QListWidget *list=0*/) {
-		item = NULL;
-		itemWidget = NULL;
-	}
-	
-	/**
-	 *   Be careful that it is not already deleted by QObject 
-	 *   Commented for safety reasons...                      
-	 */
-	virtual ~Item() {
-// 		delete item;
-// 		delete itemWidget;
-	}
-	
-	QListWidgetItem* getItem() {
-		return item;
-	}
-	
-	WIDGET_TYPE* getItemWidget() {
-		return itemWidget;
-	}
-	
-	const QListWidgetItem* getItem() const {
-		return item;
-	}
-	const WIDGET_TYPE* getItemWidget() const {
-		return itemWidget;
-	}
-	
-	/**
-	 *   Initializes the item and widget            
-	 *   Implementation should call initItemWidget! 
-	 */
-	virtual void initItem() = 0;
-	
+   /**
+      *  Would be great to take the QListWidget as attribute
+      *  to be able to add the itemWidget to the item in the list.
+      *  For the moment, we have to do it from outside.
+      */
+   Item(/*QListWidget *list=0*/) {
+      item = NULL;
+      itemWidget = NULL;
+   }
+
+   /**
+      *   Be careful that it is not already deleted by QObject
+      *   Commented for safety reasons...
+      */
+   virtual ~Item() {
+      // delete item;
+      // delete itemWidget;
+   }
+
+   QListWidgetItem* getItem() {
+      return item;
+   }
+
+   WIDGET_TYPE* getItemWidget() {
+      return itemWidget;
+   }
+
+   const QListWidgetItem* getItem() const {
+      return item;
+   }
+   const WIDGET_TYPE* getItemWidget() const {
+      return itemWidget;
+   }
+
+   /**
+      *   Initializes the item and widget
+      *   Implementation should call initItemWidget!
+      */
+   virtual void initItem() = 0;
+
 protected:
-	virtual void initItemWidget() = 0;
-	
-	
+   virtual void initItemWidget() = 0;
+
+
 };
 
 #endif
diff --git a/src/configurationmanager_interface_singleton.cpp b/src/configurationmanager_interface_singleton.cpp
index bcd19e8ff1f37f55b7e6853682e95b0e14eb73ce..0c78866ed5dc8fdea5063e53fd8e4757ba8366b6 100644
--- a/src/configurationmanager_interface_singleton.cpp
+++ b/src/configurationmanager_interface_singleton.cpp
@@ -32,4 +32,4 @@ ConfigurationManagerInterface & ConfigurationManagerInterfaceSingleton::getInsta
    }
    return *interface;
 }
-	
+
diff --git a/src/dbus/callmanager-introspec.xml b/src/dbus/callmanager-introspec.xml
index 46cec40068df52b9d16a50324c3947821ed7f443..a742426b77507d01a447521eca94b2237ad136f1 100644
--- a/src/dbus/callmanager-introspec.xml
+++ b/src/dbus/callmanager-introspec.xml
@@ -1,825 +1,781 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 
 <node name="/callmanager-introspec" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
-	<interface name="org.sflphone.SFLphone.CallManager">
-
-		<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
-			<p>The CallManager interface is used to manage
-			any call and conference related actions.</p>
-			<p>Since SFLphone-daemon support multiple incoming/outgoing calls, any actions involving a specific call must address the method by the means of a unique callID. SFLphone-clients is responsible to generate the callID on outgoing call. On the other hand, SFLphone-daemon will generate a unique callID on incoming calls.</p>
-		</tp:docstring>
-		<method name="placeCall" tp:name-for-bindings="placeCall">
-			<tp:docstring>
-			  <p>This is the main method in order to place a new call. The call is registered to the daemon using this method.</p>
-			</tp:docstring>
-			<arg type="s" name="accountID" direction="in">
-			  <tp:docstring>
-			    The ID of the account you want to make a call with. If the call is to be placed whithout any account by the means of a SIP URI (i.e. sip:num@server), the "IP2IP_PROFILE" is passed as the accountID. For more details about accounts see the configuration manager interface.
-			  </tp:docstring>
-			</arg>
-			<arg type="s" name="callID" direction="in">
-			  <tp:docstring>
-			    The callID is a unique identifier that must be randomly generated on the  client's side. Any subsequent actions refering to this call must use this callID.
-			  </tp:docstring>
-			</arg>
-			<arg type="s" name="to" direction="in">
-			  <tp:docstring>
-			    If bound to a VoIP account, then the argument is the phone number. In case of calls involving "IP2IP_PROFILE", a complete SIP URI must be specified.
-			  </tp:docstring>
-			</arg>
-		</method>
-
-		<method name="placeCallFirstAccount" tp:name-for-bindings="placeCallFirstAccount">
-			<tp:added version="0.9.8"/>
-			<tp:docstring>
-			  Place a call with the fist registered account, regarding to the account list order.
-			  <tp:rationale>
-			    Use this function when you don't have any information about the accounts used (Ex: Firefly mozilla extension)			
-			  </tp:rationale>
-			</tp:docstring>
-			<arg type="s" name="callID" direction="in">
-			  <tp:docstring>
-			    The callID is a unique identifier that must be randomly generated on the  client's side. Any subsequent actions refering to this call must use this callID.
-			  </tp:docstring>
-			</arg>
-			<arg type="s" name="to" direction="in">
-			  <tp:docstring>
-			    If bound to a VoIP account, then the argument is the phone number. In case of calls involving "IP2IP_PROFILE", a complete SIP URI must be specified.
-			  </tp:docstring>
-			</arg>
-		</method>
-
-		<method name="refuse" tp:name-for-bindings="refuse">
-			<tp:docstring>
-			  Refuse an incoming call.
-			</tp:docstring>
-			<arg type="s" name="callID" direction="in">
-			  <tp:docstring>
-			    The callID.
-			  </tp:docstring>
-			</arg>
-
-		</method>
-
-		<method name="accept" tp:name-for-bindings="accept">
-			<tp:docstring>
-			  Answer an incoming call. Automatically put the current call on state HOLD.
-			</tp:docstring>
-			<arg type="s" name="callID" direction="in">
-			  <tp:docstring>
-			    The callID.
-			  </tp:docstring>
-			</arg>
-		</method>
-
-		<method name="hangUp" tp:name-for-bindings="hangUp">
-			<tp:docstring>
-			  Hangup a call in state "CURRENT" or "HOLD".
-			</tp:docstring>
-			<arg type="s" name="callID" direction="in">
-			  <tp:docstring>
-			    The callID.
-			  </tp:docstring>
-			</arg>
-		</method>
-
-		<method name="hangUpConference" tp:name-for-bindings="hangUpConference">
-			<tp:added version="0.9.7"/>
-			<tp:docstring>
-			  Hangup a conference, and every call participating to the conference.
-			</tp:docstring>
-			<arg type="s" name="confID" direction="in">
-			  <tp:docstring>
-			    The unique conference ID.
-			  </tp:docstring>
-			</arg>
-		</method>
-
-		<method name="hold" tp:name-for-bindings="hold">
-			<tp:docstring>
-			  Place a call on hold.
-			</tp:docstring>
-			<arg type="s" name="callID" direction="in">
-			  <tp:docstring>
-			    The callID.
-			  </tp:docstring>
-			</arg>
-		</method>
-
-		<method name="unhold" tp:name-for-bindings="unhold">
-			<tp:docstring>
-			  Hold off a call, and place this call on state CURRENT.
-			</tp:docstring>
-			<arg type="s" name="callID" direction="in">
-			  <tp:docstring>
-			    The callID.
-			  </tp:docstring>
-			</arg>
-		</method>
-
-		<method name="transfer" tp:name-for-bindings="transfer">
-			<tp:docstring>
-			  Transfer a call to given phone number.
-			</tp:docstring>
-			<arg type="s" name="callID" direction="in">
-			  <tp:docstring>
-			    The callID.
-			  </tp:docstring>
-			</arg>
-			<arg type="s" name="to" direction="in">
-			  <tp:docstring>
-			    The phone number to transfer the call to.
-			  </tp:docstring>
-			</arg>
-		</method>
-		
-		<method name="attendedTransfer" tp:name-for-bindings="attendedTransfer">
-			<tp:docstring>
-			  Perform an attended transfer on two calls
-			</tp:docstring>
-			<arg type="s" name="transferID" direction="in">
-			  <tp:docstring>
-			    The callID of the call to be transfered.
-			  </tp:docstring>
-			</arg>
-			<arg type="s" name="targetID" direction="in">
-			  <tp:docstring>
-			    The callID of the target call.
-			  </tp:docstring>
-			</arg>
-		</method>
-
-		<method name="playDTMF" tp:name-for-bindings="playDTMF">
-			<tp:docstring>
-			  Dual-Tone multi-frequency. Tell the core to play dial tones. A SIP INFO message is sent to notify the server.
-			</tp:docstring>
-			<arg type="s" name="key" direction="in">
-			  <tp:docstring>
-			    Unicode charter for pressed key
-			  </tp:docstring>
-			</arg>
-		</method>
-
-		<method name="startTone" tp:name-for-bindings="startTone">
-			<tp:docstring>
-			  Start audio stream and play tone..
-			</tp:docstring>
-			<arg type="i" name="start" direction="in"/>
-			<arg type="i" name="type" direction="in"/>
-		</method>
-
-		<method name="setVolume" tp:name-for-bindings="setVolume">
-			<tp:docstring>
-			  <p>Sets the volume using a linear scale [0,100].</p>
-			  <tp:rationale>Pulseaudio has its own mechanism to modify application volume. This method is enabled only if the ALSA API is used.</tp:rationale>
-			</tp:docstring>
-			<arg type="s" name="device" direction="in">
-			  <tp:docstring>
-			    The device: mic or speaker
-			  </tp:docstring>
-			</arg>
-			<arg type="d" name="value" direction="in">
-			  <tp:docstring>
-			    The volume value (between 0 and 100)
-			  </tp:docstring>
-			</arg>
-		</method>
-
-		<method name="getVolume" tp:name-for-bindings="getVolume">
-			<tp:docstring>
-			  <p>Return the volume value of the given device on a linear scale [0,100].</p>
-			  <tp:rationale>Only enabled if the ALSA API is used, Pulseaudio has its own mechanism to modify application volume.</tp:rationale>
-			</tp:docstring>
-			<arg type="s" name="device" direction="in">
-			  <tp:docstring>
-			    The device: mic or speaker
-			  </tp:docstring>
-			</arg>
-			<arg type="d" name="value" direction="out">
-			  <tp:docstring>
-			    The volume value (between 0 and 100)
-			  </tp:docstring>
-			</arg>
-		</method>
-
-		<method name="joinParticipant" tp:name-for-bindings="joinParticipant">
-			<tp:added version="0.9.7"/>
-			<tp:docstring>
-			  <p>Join two participants together to create a 3-way conference including the current client.</p>
-			  <tp:rationale>The signal <tp:member-ref>conferenceCreated</tp:member-ref> is emitted on success.</tp:rationale> 
-			</tp:docstring>
-			<arg type="s" name="sel_callID" direction="in"/>
-			<arg type="s" name="drag_callID" direction="in"/>
-		</method>
-
-                <method name="createConfFromParticipantList" tp:name-for-bindings="createConfFromParticipantList">
-			<tp:added version="0.9.14"/>
-			<tp:docstring>
-				<p>Create a conference from a list of participant</p>
-			<tp:rationale>The signal <tp:member-ref>conferenceCreated</tp:member-ref> is emitted on success.</tp:rationale>
-			</tp:docstring>
-			<arg type="as" name="participants" direction="in"/>
-		</method>
-
-		<method name="addParticipant" tp:name-for-bindings="addParticipant">
-			<tp:added version="0.9.7"/>
-			<tp:docstring>
-			  <p>Join a new particiant to an existing conference.</p>
-			  <tp:rationale>The signal <tp:member-ref>conferenceChanged</tp:member-ref> is emitted on success.</tp:rationale> 
-			</tp:docstring>
-			<arg type="s" name="callID" direction="in">
-			  <tp:docstring>
-			    The ID of the call to add to the conference
-			  </tp:docstring>
-			</arg>
-			<arg type="s" name="confID" direction="in">
-			  <tp:docstring>
-			    An existing conference ID
-			  </tp:docstring>
-			</arg>
-		</method>
-
-		<method name="addMainParticipant" tp:name-for-bindings="addMainParticipant">
-			<tp:added version="0.9.7"/>
-			<tp:docstring>
-			  <p>As the core can handle multiple calls an conferences, it may happens that the client's user leave a conference to answer an incoming call or send new ones. This method is used to reintroduce SFLphone-client's user into the conference.</p>
-			  <p>It put the current call on state HOLD or detach SFLphone-client's user from the another conference.</p>
-			</tp:docstring>
-			<arg type="s" name="confID" direction="in">
-			  <tp:docstring>
-			    An existing conference ID
-			  </tp:docstring>
-			</arg>
-		</method>
-
-		<method name="detachParticipant" tp:name-for-bindings="detachParticipant">
-			<tp:added version="0.9.7"/>
-			<tp:docstring>
-			  Detach the given call from the conference. If only one participant is left, the conference is deleted and the signal <tp:member-ref>conferenceRemoved</tp:member-ref> is emited.
-			</tp:docstring>
-			<arg type="s" name="callID" direction="in">
-			  <tp:docstring>
-			    The call ID
-			  </tp:docstring>
-			</arg>
-		</method>
-
-		<method name="joinConference" tp:name-for-bindings="joinConference">
-			<tp:added version="0.9.7"/>
-			<tp:docstring>
-				Join two conferences together.
-			</tp:docstring>
-			<arg type="s" name="sel_confID" direction="in"/>
-			<arg type="s" name="drag_confID" direction="in"/>
-		</method>
-
-		<method name="getConferenceDetails" tp:name-for-bindings="getConferenceDetails">
-			<tp:added version="0.9.7"/>
-			<tp:docstring>
-			  Returns a hashtable containing conference details.
-			</tp:docstring>
-			<arg type="s" name="callID" direction="in">
-			  <tp:docstring>
-			    The conference ID
-			  </tp:docstring>
-			</arg>
-			<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
-			<arg type="a{ss}" name="infos" direction="out">
-			  <tp:docstring>
-			    A map containing the ID of the conferences
-			    and their states:
-			    <ul>
-			      <li>ACTIVE_ATTACHED</li>
-			      <li>ACTIVE_DETACHED</li>
-			      <li>HOLD</li>
-			    </ul>
-			  </tp:docstring>
-			</arg>
-		</method>
-
-		<method name="getConferenceList" tp:name-for-bindings="getConferenceList">
-			<tp:added version="0.9.7"/>
-			<tp:docstring>
-			  Returns a list containing all active
-			  conferences.
-			  <tp:rationale>To update client status, one should
-			  use <tp:member-ref>getParticipantList</tp:member-ref>
-			  with provided conference IDs.</tp:rationale> 
-			</tp:docstring>
-			<arg type="as" name="list" direction="out">
-			  <tp:docstring>
-			    The list of conferences.
-			  </tp:docstring>
-			</arg>
-		</method>
-
-		<method name="setRecording" tp:name-for-bindings="setRecording">
-			<tp:docstring>
-			  Start recording a call.
-			</tp:docstring>
-			<arg type="s" name="callID" direction="in">
-			  <tp:docstring>
-			    The ID of the call to record.
-			  </tp:docstring>
-			</arg>
-		</method>
-
-		<method name="getIsRecording" tp:name-for-bindings="getIsRecording"> 
-			<tp:docstring>
-			  Tells whether or not a call is being recorded.
-			</tp:docstring>
-			<arg type="s" name="callID" direction="in">
-			  <tp:docstring>
-			    The call ID.
-			  </tp:docstring>
-			</arg>
-			<arg type="b" name="isRecording" direction="out">
-			  <tp:docstring>
-			    Returns true is the call is being recorded. False otherwise.
-			  </tp:docstring>
-			</arg>
-		</method>
-
-		<signal name="recordPlaybackFilepath" tp:name-for-bindings="recordPlaybackFilepath">
-			<tp:docstring>
-			  Once after starting recording for the first time, this signal is emited to 
-			  provide the recorded file path to client application.
-			</tp:docstring>
-			<arg type="s" name="callID" />
-			<arg type="s" name="filepath"/>
-		</signal>
-
-		<signal name="recordPlaybackStopped" tp:name-for-bindings="recordPlaybackStopped">
-			<tp:docstring/>
-			<arg type="s" name="filepath" />
-		</signal>
-			
-
-		<method name="getCallDetails" tp:name-for-bindings="getCallDetails">
-			<tp:docstring>
-			  Get all the details about a specific call.
-			</tp:docstring>
-			<arg type="s" name="callID" direction="in">
-			  <tp:docstring>
-			    The call ID.
-			  </tp:docstring>
-			</arg>
-			<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
-			<arg type="a{ss}" name="infos" direction="out" tp:type="String_String_Map">
-			  <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
-			    <p>A map containing the call details: </p>
-			    <ul>
-			      <li>ACCOUNTID</li>
-			      <li>PEER_NUMBER</li>
-			      <li>PEER_NAME</li>
-			      <li>DISPLAY_NAME</li>
-			      <li>CALL_STATE</li>
-			      <li>CALL_TYPE</li>
-			    </ul>  
-			  </tp:docstring>
-			</arg>
-		</method>
-
-		<method name="getCallList" tp:name-for-bindings="getCallList">
-			<tp:docstring>
-			  Get the list of active calls.
-			  <tp:rationale>To get the call details, iterate on the return value and call <tp:member-ref>getCallDetails</tp:member-ref> method.</tp:rationale> 
-			</tp:docstring>
-			<arg type="as" name="list" direction="out">
-			  <tp:docstring>
-			    A list of call IDs.
-			  </tp:docstring>
-			</arg>
-		</method>
-
-		<method name="getCurrentCallID" tp:name-for-bindings="getCurrentCallID">
-			<tp:docstring>
-			  Unused
-			</tp:docstring>
-			<arg type="s" name="callID" direction="out">
-			  <tp:docstring>	
-			  </tp:docstring>
-			</arg>
-		</method>
-
-		<method name="getCurrentAudioCodecName" tp:name-for-bindings="getCurrentAudioCodecName">
-			<tp:docstring>
-			  Unused
-			</tp:docstring>
-			<arg type="s" name="callID" direction="in"/>
-			<arg type="s" name="codecName" direction="out"/>
-		</method>
-
-		<method name="sendTextMessage" tp:name-for-bindings="sendTextMessage">
-			<tp:docstring>
-				Send a text message to the specified call
-			</tp:docstring>
-			<arg type="s" name="callID" direction="in"/>
-			<arg type="s" name="message" direction="in"/>
-		</method>
-
-		<signal name="newCallCreated" tp:name-for-bindings="newCallCreated">
-			<tp:docstring>
-			  <p>Notify that a cell have been created.</p>
-			  <p>The callID generated by the daemon must be stored by the clients in order to address other action for
-			    this call. This signal is emitted when call have been created by the daemon itself.</p>
-			  <tp:rationale> The client must subscribe to this signal to handle calls created by other clients </tp:rationale>
-			</tp:docstring>
-			<arg type="s" name="accountID">
-			  <tp:docstring>
-			    The account ID of the calle. Clients must notify teh right account when receiving this signal.
-			  </tp:docstring>
-			</arg>
-			<arg type="s" name="callID">
-			  <tp:docstring>
-			    A new call ID.
-			  </tp:docstring>
-			</arg>
-			<arg type="s" name="to">
-			  <tp:docstring>
-			   The sip uri this call is trying to reach
-			  </tp:docstring>
-			</arg>
-		</signal>
-
-		<signal name="incomingCall" tp:name-for-bindings="incomingCall">
-			<tp:docstring>
-			  <p>Notify an incoming call.</p>
-			  <p>The callID generated by the daemon must be stored by the clients in order to address other action for
-			    this call. This signal is emitted when we receive a call from a remote peer</p>
-			  <tp:rationale>The client must subscribe to this signal to handle incoming calls.</tp:rationale>
-			</tp:docstring>
-			<arg type="s" name="accountID">
-			  <tp:docstring>
-			    The account ID of the callee. Clients must notify the right account when receiving this signal.	
-			  </tp:docstring>
-			</arg>
-			<arg type="s" name="callID">
-			  <tp:docstring>
-			    A new call ID.
-			  </tp:docstring>
-			</arg>
-			<arg type="s" name="from">
-			  <tp:docstring>
-			    The caller phone number.
-			  </tp:docstring>
-			</arg>
-		</signal>
-
-		<signal name="incomingMessage" tp:name-for-bindings="incomingMessage">
-			<tp:docstring>
-				Notify clients that a new text message has been received. 
-			</tp:docstring>
-			<arg type="s" name="callID" />
-			<arg type="s" name="from" />
-			<arg type="s" name="message" />
-		</signal>
-
-		<signal name="callStateChanged" tp:name-for-bindings="callStateChanged">
-			<tp:docstring>
-			  <p>Notify of a change in a call state.</p> 
-			  <p>The client must subscribe to this signal.</p>
-			</tp:docstring>
-			<arg type="s" name="callID">
-			  <tp:docstring>
-			    The call ID.
-			  </tp:docstring>
-			</arg>
-			<arg type="s" name="state" >
-			  <tp:docstring>
-			    The acceptable states are: 
-			    <ul>
-			      <li>INCOMING: Initial state of incoming calls</li>
-			      <li>RINGING: Initial state of received outgoing call</li>
-			      <li>CURRENT: The normal active state of an answered call</li>
-			      <li>HUNGUP: Notify that the call has been hungup by peer</li>
-			      <li>BUSY</li>
-			      <li>FAILURE: Error when processing a call</li>
-			      <li>HOLD</li>
-			      <li>UNHOLD_CURRENT</li>
-			      <li>UNHOLD_RECORD</li>
-			    </ul>
-			  </tp:docstring>
-			</arg>
-		</signal>
-
-		<signal name="conferenceChanged" tp:name-for-bindings="conferenceChanged">
-			<tp:added version="0.9.7"/>
-			<tp:docstring>
-			  Notify of a change in the conferences state
-			</tp:docstring>
-			<arg type="s" name="confID">
-			  <tp:docstring>
-			    The conference ID.
-			  </tp:docstring>
-			</arg>
-			<arg type="s" name="state">
-			  <tp:docstring>
-			    The acceptable states are: 
-			    <ul>
-			      <li>ACTIVE_ATTACHED: SFLphone user is
-			      participating to this conference</li>
-			      <li>ACTIVE_DETACHED: This situation can
-			      occur if a call is received while
-			      SFLphone user is participating to a
-			      conference. In this case, one can leave
-			      the conference by answering the
-			      call. Other participants may continue
-			      conferencing normally.</li>
-			      <li>HOLD: Each call in this conference
-			      is on state HOLD</li>
-			    </ul>
-			  </tp:docstring>
-			</arg>
-		</signal>
-
-		<method name="getParticipantList" tp:name-for-bindings="getParticipantList">
-			<tp:added version="0.9.7"/>
-			<tp:docstring>
-			  Get the call IDs of every participant to a given conference. The client should keep and update the list of participant.
-			</tp:docstring>
-			<arg type="s" name="confID" direction="in">
-			  <tp:docstring>
-			    The conference ID.
-			  </tp:docstring>
-			</arg>
-			<arg type="as" name="list" direction="out">
-			  <tp:docstring>
-			    The list of the call IDs.
-			  </tp:docstring>
-			</arg>
-		</method>
-
-		<signal name="conferenceCreated" tp:name-for-bindings="conferenceCreated">
-			<tp:added version="0.9.7"/>
-			<tp:docstring>
-			  Emited when a new conference is created. SFLphone-client is reponsible to store the confID and call <tp:member-ref>getParticipantList</tp:member-ref> to update the display.
-			</tp:docstring>
-			<arg type="s" name="confID">  
-			  <tp:docstring>
-			    A new conference ID.
-			  </tp:docstring>
-			</arg>
-		</signal>
-
-		<signal name="conferenceRemoved" tp:name-for-bindings="conferenceRemoved">
-			<tp:added version="0.9.7"/>
-			<tp:docstring>
-			  Emited when a new conference is remove. SFLphone-client should have kept a list of current participant in order to display modification.
-			</tp:docstring>
-			<arg type="s" name="confID">
-			  <tp:docstring>
-			    The conference ID.
-			  </tp:docstring>
-			</arg>
-		</signal>
-
-		<method name="holdConference" tp:name-for-bindings="holdConference">
-			<tp:added version="0.9.7"/>
-			<tp:docstring>
-			  Hold on every calls participating to this conference.
-			</tp:docstring>
-			<arg type="s" name="confID" direction="in">
-			  <tp:docstring>
-			    The conference ID.
-			  </tp:docstring>
-			</arg>
-		</method>
-
-		<method name="unholdConference" tp:name-for-bindings="unholdConference">
-			<tp:added version="0.9.7"/>
-			<tp:docstring>
-			  Hold off every calls participating to this conference.
-			</tp:docstring>
-			<arg type="s" name="confID" direction="in">
-			  <tp:docstring>
-			    The conference ID.
-			  </tp:docstring>
-			</arg>
-		</method>
- 	        
-                <method name="startRecordedFilePlayback" tp:name-for-bindings="startRecordedFilePlayback">
-			<tp:added version="0.9.14"/>
-			<tp:docstring>
-			</tp:docstring>
-			<arg type="s" name="filepath" direction="in"/>
-			<arg type="b" name="result" direction="out"/>
-	        </method>
-
-		<method name="stopRecordedFilePlayback" tp:name-for-bindings="stopRecordedFilePlayback">
-			<tp:added version="0.9.14"/>
-			<tp:docstring/>
-			<arg type="s" name="filepath" direction="in"/>
-		</method>
-
-		<signal name="sipCallStateChanged" tp:name-for-bindings="sipCallStateChanged">
-			<tp:docstring>
-			  <p>Call state changed, SFLphone received a notification
-			    from registrar concerning this call.</p>
-			</tp:docstring>
-			<arg type="s" name="callID"  />
-			  <tp:docstring>
-			    The call ID
-			  </tp:docstring>
-			<arg type="s" name="state"  />
-			  <tp:docstring>
-			    Description string
-			  </tp:docstring>
-			<arg type="i" name="code"  />
-			  <tp:docstring>
-			    The SIP or IAX2 message code
-			  </tp:docstring>
-		</signal>    
-
-		<signal name="registrationStateChanged" tp:name-for-bindings="registrationStateChanged">
-			<tp:docstring>
-				<p>Account state changed, SFLphone received a notification
-				from registrar.</p>
-			</tp:docstring>
-			<arg type="s" name="accountID" >
-			  <tp:docstring>
-			    The account ID
-			  </tp:docstring>
-			</arg>
-			<arg type="s" name="state">
-			  <tp:docstring>
-			    Description string
-			  </tp:docstring>
-			</arg>
-			<arg type="i" name="code">            
-			  <tp:docstring>
-			    The SIP or IAX2 message code
-			  </tp:docstring>
-			</arg>
-		</signal> 
-
-		<signal name="voiceMailNotify" tp:name-for-bindings="voiceMailNotify">
-			<tp:docstring>
-			  Notify the clients of the voicemail number for a specific account, if applicable.
-			</tp:docstring>
-			<arg type="s" name="accountID">
-			  <tp:docstring>
-			    The account ID.
-			  </tp:docstring>
-			</arg>
-			<arg type="i" name="count">
-			  <tp:docstring>
-			    The number of waiting messages.
-			  </tp:docstring>
-			</arg>
-		</signal>
-
-		<signal name="volumeChanged" tp:name-for-bindings="volumeChanged">
-		        <tp:docstring>
-			  <p>Notify clients of a volume level
-			    change.</p> 
-			  <p>This signal occurs only if ALSA is
-			    enabled since Pulseaudio streams are
-			    managed externally. </p>
-			</tp:docstring>
-			<arg type="s" name="device">
-			  <tp:docstring>
-			    The device: mic or speaker	
-			  </tp:docstring>
-			</arg>
-			<arg type="d" name="value">
-			  <tp:docstring>
-			    The new volume value	
-			  </tp:docstring>
-			</arg>
-		</signal>
-
-		<signal name="transferSucceded" tp:name-for-bindings="transferSucceded">
-			<tp:docstring>
-			  <p>Transfer has been successfully
-			  processed. Client should remove transfered
-			  call from call list as it is no longer
-			  accessible in SFLphone-daemon.</p>
-			</tp:docstring>
-		</signal>
-
-		<signal name="transferFailed" tp:name-for-bindings="transferFailed">
-			<tp:docstring>
-			  <p>Transfer operation failed. Corespondin
-			  call is no longer accessible in
-			  SFLphone-daemon.</p>
-			</tp:docstring>
-		</signal>
-
-		<signal name="secureSdesOn" tp:name-for-bindings="secureSdesOn">
-			<tp:added version="0.9.7"/>
-			<tp:docstring>
-			  <p>Signal sent on SDES session success. Media transmission is encripted
-			  for this call only. It does not apply for a
-			  conference.</p> 
-			  <p>A conference can be considered to be secured if and only if each
-			  participant is secured.</p>
-			</tp:docstring>
-			<arg type="s" name="callID"/>
-		</signal>
-
-		<signal name="secureSdesOff" tp:name-for-bindings="secureSdesOff">
-			<tp:added version="0.9.7"/>
-			<tp:docstring>
-			  <p>Sinal sent to notify that SDES session
-			  failed.</p> 
-			  <p>Media transmission is not encrypted.</p>
-			</tp:docstring>
-			<arg type="s" name="callID" />
-		</signal>
-
-		<!-- ZRTP Methods and Signals -->
-		<signal name="secureZrtpOn" tp:name-for-bindings="secureZrtpOn">
-			<tp:added version="0.9.7"/>
-			<tp:docstring>
-			</tp:docstring>
-			<arg type="s" name="callID"  />
-			<arg type="s" name="cipher"  />
-		</signal>
-
-		<signal name="secureZrtpOff" tp:name-for-bindings="secureZrtpOff">
-			<tp:added version="0.9.7"/>
-			<tp:docstring>
-			</tp:docstring>
-			<arg type="s" name="callID" />
-		</signal>
-
-		<signal name="confirmGoClear" tp:name-for-bindings="confirmGoClear">
-			<tp:added version="0.9.7"/>
-			<tp:docstring>
-			</tp:docstring>
-			<arg type="s" name="callID" />
-		</signal>
-
-		<signal name="zrtpNegotiationFailed" tp:name-for-bindings="zrtpNegotiationFailed">
-			<tp:added version="0.9.7"/>
-			<tp:docstring>
-			</tp:docstring>
-			<arg type="s" name="callID" />
-			<arg type="s" name="reason"  />
-			<arg type="s" name="severity" />
-		</signal>
-
-		<signal name="zrtpNotSuppOther" tp:name-for-bindings="zrtpNotSuppOther">
-			<tp:added version="0.9.7"/>
-			<tp:docstring>
-			</tp:docstring>
-			<arg type="s" name="callID" />
-		</signal>
-
-		<signal name="showSAS" tp:name-for-bindings="showSAS">
-			<tp:added version="0.9.7"/>
-			<tp:added version="0.9.7"/>
-			<tp:docstring>
-			</tp:docstring>
-			<arg type="s" name="callID" />
-			<arg type="s" name="sas"  />
-			<arg type="b" name="verified"/>
-		</signal>
-
-		<method name="setSASVerified" tp:name-for-bindings="setSASVerified">
-			<tp:added version="0.9.7"/>
-			<tp:docstring>
-			</tp:docstring>
-			<arg type="s" name="callID" direction="in"/>
-		</method>
-
-		<method name="resetSASVerified" tp:name-for-bindings="resetSASVerified">
-			<tp:added version="0.9.7"/>
-			<tp:docstring>
-			</tp:docstring>
-			<arg type="s" name="callID" direction="in"/>
-		</method>
-
-		<method name="setConfirmGoClear" tp:name-for-bindings="setConfirmGoClear">
-			<tp:added version="0.9.7"/>
-			<tp:docstring>
-			</tp:docstring>
-			<arg type="s" name="callID" direction="in"/>
-		</method>
-
-		<method name="requestGoClear" tp:name-for-bindings="requestGoClear">
-			<tp:added version="0.9.7"/>
-			<tp:docstring>
-			</tp:docstring>
-			<arg type="s" name="callID" direction="in"/>
-		</method>
-
-		<method name="acceptEnrollment" tp:name-for-bindings="acceptEnrollment">
-			<tp:added version="0.9.7"/>
-			<tp:docstring>
-			</tp:docstring>
-			<arg type="s" name="callID" direction="in"/>
-			<arg type="b" name="accepted" direction="in"/>
-		</method>
-
-		<method name="setPBXEnrollment" tp:name-for-bindings="setPBXEnrollment">
-			<tp:added version="0.9.7"/>
-			<tp:docstring>
-			</tp:docstring>
-			<arg type="s" name="callID" direction="in"/>
-			<arg type="b" name="yesNo" direction="in"/>
-		</method>
-
-	</interface>
+    <interface name="org.sflphone.SFLphone.CallManager">
+
+        <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+            <p>The CallManager interface is used to manage call and conference related actions.</p>
+            <p>Since SFLphone-daemon supports multiple incoming/outgoing calls, any actions involving a specific call must address the method by the means of a unique callID.
+            SFLphone-clients is responsible for generating the callID on outgoing calls. Conversely, SFLphone-daemon will generate a unique callID for incoming calls.</p>
+        </tp:docstring>
+        <method name="placeCall" tp:name-for-bindings="placeCall">
+            <tp:docstring>
+              <p>This is the main method in order to place a new call. The call is registered with the daemon using this method.</p>
+            </tp:docstring>
+            <arg type="s" name="accountID" direction="in">
+              <tp:docstring>
+                The ID of the account with which you want to make a call. If the call is to be placed without any account by means of a SIP URI (i.e. sip:num@server), the "IP2IP_PROFILE" is passed as the accountID. For more details on accounts see the configuration manager interface.
+              </tp:docstring>
+            </arg>
+            <arg type="s" name="callID" direction="in">
+              <tp:docstring>
+                The callID is a unique identifier that must be randomly generated on the client's side. Any subsequent actions refering to this call must use this callID.
+              </tp:docstring>
+            </arg>
+            <arg type="s" name="to" direction="in">
+              <tp:docstring>
+                If bound to a VoIP account, then the argument is the phone number. In case of calls involving "IP2IP_PROFILE", a complete SIP URI must be specified.
+              </tp:docstring>
+            </arg>
+        </method>
+
+        <method name="placeCallFirstAccount" tp:name-for-bindings="placeCallFirstAccount">
+            <tp:added version="0.9.8"/>
+            <tp:docstring>
+              Place a call with the first registered account in the account list.
+              <tp:rationale>
+                Use this function when you don't have any information about the accounts used (Ex: Firefly mozilla extension)
+              </tp:rationale>
+            </tp:docstring>
+            <arg type="s" name="callID" direction="in">
+              <tp:docstring>
+                The callID is a unique identifier that must be randomly generated on the client's side. Any subsequent actions refering to this call must use this callID.
+              </tp:docstring>
+            </arg>
+            <arg type="s" name="to" direction="in">
+              <tp:docstring>
+                If bound to a VoIP account, then the argument is the phone number. In case of calls involving "IP2IP_PROFILE", a complete SIP URI must be specified.
+              </tp:docstring>
+            </arg>
+        </method>
+
+        <method name="refuse" tp:name-for-bindings="refuse">
+            <tp:docstring>
+              Refuse an incoming call.
+            </tp:docstring>
+            <arg type="s" name="callID" direction="in">
+              <tp:docstring>
+                The callID.
+              </tp:docstring>
+            </arg>
+
+        </method>
+
+        <method name="accept" tp:name-for-bindings="accept">
+            <tp:docstring>
+              Answer an incoming call. Automatically puts the current call on HOLD.
+            </tp:docstring>
+            <arg type="s" name="callID" direction="in">
+              <tp:docstring>
+                The callID.
+              </tp:docstring>
+            </arg>
+        </method>
+
+        <method name="hangUp" tp:name-for-bindings="hangUp">
+            <tp:docstring>
+              Hangup a call in state "CURRENT" or "HOLD".
+            </tp:docstring>
+            <arg type="s" name="callID" direction="in">
+              <tp:docstring>
+                The callID.
+              </tp:docstring>
+            </arg>
+        </method>
+
+        <method name="hangUpConference" tp:name-for-bindings="hangUpConference">
+            <tp:added version="0.9.7"/>
+            <tp:docstring>
+              Hangup a conference, and every call participating to the conference.
+            </tp:docstring>
+            <arg type="s" name="confID" direction="in">
+              <tp:docstring>
+                The unique conference ID.
+              </tp:docstring>
+            </arg>
+        </method>
+
+        <method name="hold" tp:name-for-bindings="hold">
+            <tp:docstring>
+              Place a call on hold.
+            </tp:docstring>
+            <arg type="s" name="callID" direction="in">
+              <tp:docstring>
+                The callID.
+              </tp:docstring>
+            </arg>
+        </method>
+
+        <method name="unhold" tp:name-for-bindings="unhold">
+            <tp:docstring>
+              Take a call off hold, and place this call in state CURRENT.
+            </tp:docstring>
+            <arg type="s" name="callID" direction="in">
+              <tp:docstring>
+                The callID.
+              </tp:docstring>
+            </arg>
+        </method>
+
+        <method name="transfer" tp:name-for-bindings="transfer">
+            <tp:docstring>
+              Transfer a call to the given phone number.
+            </tp:docstring>
+            <arg type="s" name="callID" direction="in">
+              <tp:docstring>
+                The callID.
+              </tp:docstring>
+            </arg>
+            <arg type="s" name="to" direction="in">
+              <tp:docstring>
+                The phone number to which the call will be transferred.
+              </tp:docstring>
+            </arg>
+        </method>
+
+        <method name="attendedTransfer" tp:name-for-bindings="attendedTransfer">
+            <tp:docstring>
+              Perform an attended transfer on two calls.
+            </tp:docstring>
+            <arg type="s" name="transferID" direction="in">
+              <tp:docstring>
+                The callID of the call to be transfered.
+              </tp:docstring>
+            </arg>
+            <arg type="s" name="targetID" direction="in">
+              <tp:docstring>
+                The callID of the target call.
+              </tp:docstring>
+            </arg>
+        </method>
+
+        <method name="playDTMF" tp:name-for-bindings="playDTMF">
+            <tp:docstring>
+              Dual-Tone multi-frequency. Tell the core to play dialtones. A SIP INFO message is sent to notify the server.
+            </tp:docstring>
+            <arg type="s" name="key" direction="in">
+              <tp:docstring>
+                Unicode character for pressed key.
+              </tp:docstring>
+            </arg>
+        </method>
+
+        <method name="startTone" tp:name-for-bindings="startTone">
+            <tp:docstring>
+              Start audio stream and play tone.
+            </tp:docstring>
+            <arg type="i" name="start" direction="in"/>
+            <arg type="i" name="type" direction="in"/>
+        </method>
+
+        <method name="setVolume" tp:name-for-bindings="setVolume">
+            <tp:docstring>
+              <p>Sets the volume using a linear scale [0,100].</p>
+              <tp:rationale>Pulseaudio has its own mechanism to modify application volume. This method is enabled only if the ALSA API is used.</tp:rationale>
+            </tp:docstring>
+            <arg type="s" name="device" direction="in">
+              <tp:docstring>
+                The device: mic or speaker
+              </tp:docstring>
+            </arg>
+            <arg type="d" name="value" direction="in">
+              <tp:docstring>
+                The volume value (between 0 and 100)
+              </tp:docstring>
+            </arg>
+        </method>
+
+        <method name="getVolume" tp:name-for-bindings="getVolume">
+            <tp:docstring>
+              <p>Return the volume value of the given device on a linear scale [0,100].</p>
+              <tp:rationale>Only enabled if the ALSA API is used, Pulseaudio has its own mechanism to modify application volume.</tp:rationale>
+            </tp:docstring>
+            <arg type="s" name="device" direction="in">
+              <tp:docstring>
+                The device: mic or speaker
+              </tp:docstring>
+            </arg>
+            <arg type="d" name="value" direction="out">
+              <tp:docstring>
+                The volume value (between 0 and 100)
+              </tp:docstring>
+            </arg>
+        </method>
+
+        <method name="joinParticipant" tp:name-for-bindings="joinParticipant">
+            <tp:added version="0.9.7"/>
+            <tp:docstring>
+              <p>Join two participants together to create a 3-way conference including the current client.</p>
+              <tp:rationale>The signal <tp:member-ref>conferenceCreated</tp:member-ref> is emitted on success.</tp:rationale>
+            </tp:docstring>
+            <arg type="s" name="sel_callID" direction="in"/>
+            <arg type="s" name="drag_callID" direction="in"/>
+        </method>
+
+        <method name="createConfFromParticipantList" tp:name-for-bindings="createConfFromParticipantList">
+            <tp:added version="0.9.14"/>
+            <tp:docstring>
+                <p>Create a conference from a list of participants</p>
+            <tp:rationale>The signal <tp:member-ref>conferenceCreated</tp:member-ref> is emitted on success.</tp:rationale>
+            </tp:docstring>
+            <arg type="as" name="participants" direction="in"/>
+        </method>
+
+        <method name="addParticipant" tp:name-for-bindings="addParticipant">
+            <tp:added version="0.9.7"/>
+            <tp:docstring>
+              <p>Join a new particiant to an existing conference.</p>
+              <tp:rationale>The signal <tp:member-ref>conferenceChanged</tp:member-ref> is emitted on success.</tp:rationale>
+            </tp:docstring>
+            <arg type="s" name="callID" direction="in">
+              <tp:docstring>
+                The ID of the call to add to the conference
+              </tp:docstring>
+            </arg>
+            <arg type="s" name="confID" direction="in">
+              <tp:docstring>
+                An existing conference ID
+              </tp:docstring>
+            </arg>
+        </method>
+
+        <method name="addMainParticipant" tp:name-for-bindings="addMainParticipant">
+            <tp:added version="0.9.7"/>
+            <tp:docstring>
+              <p>As the core can handle multiple calls and conferences, it may happen that the client's user leaves a conference to answer an incoming call or to start new calls. This method is used to reintroduce SFLphone-client's user into the conference.</p>
+              <p>Its put the current call on HOLD or detaches SFLphone-client's user from the another conference.</p>
+            </tp:docstring>
+            <arg type="s" name="confID" direction="in">
+              <tp:docstring>
+                An existing conference ID
+              </tp:docstring>
+            </arg>
+        </method>
+
+        <method name="detachParticipant" tp:name-for-bindings="detachParticipant">
+            <tp:added version="0.9.7"/>
+            <tp:docstring>
+              Detach the given call from the conference. If only one participant is left, the conference is deleted and the signal <tp:member-ref>conferenceRemoved</tp:member-ref> is emited.
+            </tp:docstring>
+            <arg type="s" name="callID" direction="in">
+              <tp:docstring>
+                The call ID
+              </tp:docstring>
+            </arg>
+        </method>
+
+        <method name="joinConference" tp:name-for-bindings="joinConference">
+            <tp:added version="0.9.7"/>
+            <tp:docstring>
+                Join two conferences together.
+            </tp:docstring>
+            <arg type="s" name="sel_confID" direction="in"/>
+            <arg type="s" name="drag_confID" direction="in"/>
+        </method>
+
+        <method name="getConferenceDetails" tp:name-for-bindings="getConferenceDetails">
+            <tp:added version="0.9.7"/>
+            <tp:docstring>
+              Returns a hashtable containing conference details.
+            </tp:docstring>
+            <arg type="s" name="callID" direction="in">
+              <tp:docstring>
+                The conference ID
+              </tp:docstring>
+            </arg>
+            <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
+            <arg type="a{ss}" name="infos" direction="out">
+              <tp:docstring>
+                A map containing the ID of the conferences
+                and their states:
+                <ul>
+                  <li>ACTIVE_ATTACHED</li>
+                  <li>ACTIVE_DETACHED</li>
+                  <li>HOLD</li>
+                </ul>
+              </tp:docstring>
+            </arg>
+        </method>
+
+        <method name="getConferenceList" tp:name-for-bindings="getConferenceList">
+            <tp:added version="0.9.7"/>
+            <tp:docstring>
+              Returns a list containing all active
+              conferences.
+              <tp:rationale>To update client status, one should
+              use <tp:member-ref>getParticipantList</tp:member-ref>
+              with provided conference IDs.</tp:rationale>
+            </tp:docstring>
+            <arg type="as" name="list" direction="out">
+              <tp:docstring>
+                The list of conferences.
+              </tp:docstring>
+            </arg>
+        </method>
+
+        <method name="setRecording" tp:name-for-bindings="setRecording">
+            <tp:docstring>
+              Start recording a call.
+            </tp:docstring>
+            <arg type="s" name="callID" direction="in">
+              <tp:docstring>
+                The ID of the call to record.
+              </tp:docstring>
+            </arg>
+        </method>
+
+        <method name="getIsRecording" tp:name-for-bindings="getIsRecording">
+            <tp:docstring>
+              Tells whether or not a call is being recorded.
+            </tp:docstring>
+            <arg type="s" name="callID" direction="in">
+              <tp:docstring>
+                The call ID.
+              </tp:docstring>
+            </arg>
+            <arg type="b" name="isRecording" direction="out">
+              <tp:docstring>
+                Returns true is the call is being recorded. False otherwise.
+              </tp:docstring>
+            </arg>
+        </method>
+
+        <signal name="recordPlaybackFilepath" tp:name-for-bindings="recordPlaybackFilepath">
+            <tp:docstring>
+              Once after starting recording for the first time, this signal is emited to
+              provide the recorded file path to client application.
+            </tp:docstring>
+            <arg type="s" name="callID" />
+            <arg type="s" name="filepath"/>
+        </signal>
+
+        <signal name="recordPlaybackStopped" tp:name-for-bindings="recordPlaybackStopped">
+            <tp:docstring/>
+            <arg type="s" name="filepath" />
+        </signal>
+
+
+        <method name="getCallDetails" tp:name-for-bindings="getCallDetails">
+            <tp:docstring>
+              Get all the details about a specific call.
+            </tp:docstring>
+            <arg type="s" name="callID" direction="in">
+              <tp:docstring>
+                The call ID.
+              </tp:docstring>
+            </arg>
+            <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
+            <arg type="a{ss}" name="infos" direction="out" tp:type="String_String_Map">
+              <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+                <p>A map containing the call details: </p>
+                <ul>
+                  <li>ACCOUNTID</li>
+                  <li>PEER_NUMBER</li>
+                  <li>PEER_NAME</li>
+                  <li>DISPLAY_NAME</li>
+                  <li>CALL_STATE</li>
+                  <li>CALL_TYPE</li>
+                </ul>
+              </tp:docstring>
+            </arg>
+        </method>
+
+        <method name="getCallList" tp:name-for-bindings="getCallList">
+            <tp:docstring>
+              Get the list of active calls.
+              <tp:rationale>To get the call details, iterate on the return value and call <tp:member-ref>getCallDetails</tp:member-ref> method.</tp:rationale>
+            </tp:docstring>
+            <arg type="as" name="list" direction="out">
+              <tp:docstring>
+                A list of call IDs.
+              </tp:docstring>
+            </arg>
+        </method>
+
+        <method name="getCurrentAudioCodecName" tp:name-for-bindings="getCurrentAudioCodecName">
+            <arg type="s" name="callID" direction="in"/>
+            <arg type="s" name="codecName" direction="out"/>
+        </method>
+
+        <method name="sendTextMessage" tp:name-for-bindings="sendTextMessage">
+            <tp:docstring>
+                Send a text message to the specified call
+            </tp:docstring>
+            <arg type="s" name="callID" direction="in"/>
+            <arg type="s" name="message" direction="in"/>
+        </method>
+
+        <signal name="newCallCreated" tp:name-for-bindings="newCallCreated">
+            <tp:docstring>
+              <p>Notify that a call has been created.</p>
+              <p>The callID generated by the daemon must be stored by the clients in order to address other actions for
+                this call. This signal is emitted when call haves been created by the daemon itself.</p>
+              <tp:rationale>The client must subscribe to this signal to handle calls created by other clients</tp:rationale>
+            </tp:docstring>
+            <arg type="s" name="accountID">
+              <tp:docstring>
+                The account ID of the call. Clients must notify the right account when receiving this signal.
+              </tp:docstring>
+            </arg>
+            <arg type="s" name="callID">
+              <tp:docstring>
+                A new call ID.
+              </tp:docstring>
+            </arg>
+            <arg type="s" name="to">
+              <tp:docstring>
+               The SIP URI this call is trying to reach.
+              </tp:docstring>
+            </arg>
+        </signal>
+
+        <signal name="incomingCall" tp:name-for-bindings="incomingCall">
+            <tp:docstring>
+              <p>Notify an incoming call.</p>
+              <p>The callID generated by the daemon must be stored by the clients in order to address other action for
+                this call. This signal is emitted when we receive a call from a remote peer</p>
+              <tp:rationale>The client must subscribe to this signal to handle incoming calls.</tp:rationale>
+            </tp:docstring>
+            <arg type="s" name="accountID">
+              <tp:docstring>
+                The account ID of the callee. Clients must notify the right account when receiving this signal.
+              </tp:docstring>
+            </arg>
+            <arg type="s" name="callID">
+              <tp:docstring>
+                A new call ID.
+              </tp:docstring>
+            </arg>
+            <arg type="s" name="from">
+              <tp:docstring>
+                The caller phone number.
+              </tp:docstring>
+            </arg>
+        </signal>
+
+        <signal name="incomingMessage" tp:name-for-bindings="incomingMessage">
+            <tp:docstring>
+                Notify clients that a new text message has been received.
+            </tp:docstring>
+            <arg type="s" name="callID" />
+            <arg type="s" name="from" />
+            <arg type="s" name="message" />
+        </signal>
+
+        <signal name="callStateChanged" tp:name-for-bindings="callStateChanged">
+            <tp:docstring>
+              <p>Notify of a change in a call state.</p>
+              <p>The client must subscribe to this signal.</p>
+            </tp:docstring>
+            <arg type="s" name="callID">
+              <tp:docstring>
+                The call ID.
+              </tp:docstring>
+            </arg>
+            <arg type="s" name="state" >
+              <tp:docstring>
+                The acceptable states are:
+                <ul>
+                  <li>INCOMING: Initial state of incoming calls</li>
+                  <li>RINGING: Initial state of received outgoing call</li>
+                  <li>CURRENT: The normal active state of an answered call</li>
+                  <li>HUNGUP: Notify that the call has been hungup by peer</li>
+                  <li>BUSY</li>
+                  <li>FAILURE: Error when processing a call</li>
+                  <li>HOLD</li>
+                  <li>UNHOLD_CURRENT</li>
+                  <li>UNHOLD_RECORD</li>
+                </ul>
+              </tp:docstring>
+            </arg>
+        </signal>
+
+        <signal name="conferenceChanged" tp:name-for-bindings="conferenceChanged">
+            <tp:added version="0.9.7"/>
+            <tp:docstring>
+              Notify of a change in the conferences state
+            </tp:docstring>
+            <arg type="s" name="confID">
+              <tp:docstring>
+                The conference ID.
+              </tp:docstring>
+            </arg>
+            <arg type="s" name="state">
+              <tp:docstring>
+                The acceptable states are:
+                <ul>
+                  <li>ACTIVE_ATTACHED: SFLphone user is
+                  participating to this conference</li>
+                  <li>ACTIVE_DETACHED: This situation can
+                  occur if a call is received while
+                  SFLphone user is participating to a
+                  conference. In this case, one can leave
+                  the conference by answering the
+                  call. Other participants may continue
+                  conferencing normally.</li>
+                  <li>HOLD: Each call in this conference
+                  is on state HOLD</li>
+                </ul>
+              </tp:docstring>
+            </arg>
+        </signal>
+
+        <method name="getParticipantList" tp:name-for-bindings="getParticipantList">
+            <tp:added version="0.9.7"/>
+            <tp:docstring>
+              Get the call IDs of every participant to a given conference. The client should keep and update the list of participants.
+            </tp:docstring>
+            <arg type="s" name="confID" direction="in">
+              <tp:docstring>
+                The conference ID.
+              </tp:docstring>
+            </arg>
+            <arg type="as" name="list" direction="out">
+              <tp:docstring>
+                The list of the call IDs.
+              </tp:docstring>
+            </arg>
+        </method>
+
+        <signal name="conferenceCreated" tp:name-for-bindings="conferenceCreated">
+            <tp:added version="0.9.7"/>
+            <tp:docstring>
+              Emited when a new conference is created. SFLphone-client is reponsible for storing the confID and call <tp:member-ref>getParticipantList</tp:member-ref> to update the display.
+            </tp:docstring>
+            <arg type="s" name="confID">
+              <tp:docstring>
+                A new conference ID.
+              </tp:docstring>
+            </arg>
+        </signal>
+
+        <signal name="conferenceRemoved" tp:name-for-bindings="conferenceRemoved">
+            <tp:added version="0.9.7"/>
+            <tp:docstring>
+              Emited when a new conference is remove. SFLphone-client should have kept a list of current participant in order to display modification.
+            </tp:docstring>
+            <arg type="s" name="confID">
+              <tp:docstring>
+                The conference ID.
+              </tp:docstring>
+            </arg>
+        </signal>
+
+        <method name="holdConference" tp:name-for-bindings="holdConference">
+            <tp:added version="0.9.7"/>
+            <tp:docstring>
+              Hold every call which is participating in this conference.
+            </tp:docstring>
+            <arg type="s" name="confID" direction="in">
+              <tp:docstring>
+                The conference ID.
+              </tp:docstring>
+            </arg>
+        </method>
+
+        <method name="unholdConference" tp:name-for-bindings="unholdConference">
+            <tp:added version="0.9.7"/>
+            <tp:docstring>
+              Hold off every call participating in this conference.
+            </tp:docstring>
+            <arg type="s" name="confID" direction="in">
+              <tp:docstring>
+                The conference ID.
+              </tp:docstring>
+            </arg>
+        </method>
+
+        <method name="startRecordedFilePlayback" tp:name-for-bindings="startRecordedFilePlayback">
+            <tp:added version="0.9.14"/>
+            <arg type="s" name="filepath" direction="in"/>
+            <arg type="b" name="result" direction="out"/>
+        </method>
+
+        <method name="stopRecordedFilePlayback" tp:name-for-bindings="stopRecordedFilePlayback">
+            <tp:added version="0.9.14"/>
+            <tp:docstring/>
+            <arg type="s" name="filepath" direction="in"/>
+        </method>
+
+        <signal name="sipCallStateChanged" tp:name-for-bindings="sipCallStateChanged">
+            <tp:docstring>
+              <p>Call state changed, SFLphone received a notification
+                from registrar concerning this call.</p>
+            </tp:docstring>
+            <arg type="s" name="callID"  />
+              <tp:docstring>
+                The call ID
+              </tp:docstring>
+            <arg type="s" name="state"  />
+              <tp:docstring>
+                Description string
+              </tp:docstring>
+            <arg type="i" name="code"  />
+              <tp:docstring>
+                The SIP or IAX2 message code
+              </tp:docstring>
+        </signal>
+
+        <signal name="registrationStateChanged" tp:name-for-bindings="registrationStateChanged">
+            <tp:docstring>
+                <p>Account state changed, SFLphone received a notification
+                from registrar.</p>
+            </tp:docstring>
+            <arg type="s" name="accountID" >
+              <tp:docstring>
+                The account ID
+              </tp:docstring>
+            </arg>
+            <arg type="s" name="state">
+              <tp:docstring>
+                Description string
+              </tp:docstring>
+            </arg>
+            <arg type="i" name="code">
+              <tp:docstring>
+                The SIP or IAX2 message code
+              </tp:docstring>
+            </arg>
+        </signal>
+
+        <signal name="voiceMailNotify" tp:name-for-bindings="voiceMailNotify">
+            <tp:docstring>
+              Notify the clients of the voicemail number for a specific account, if applicable.
+            </tp:docstring>
+            <arg type="s" name="accountID">
+              <tp:docstring>
+                The account ID.
+              </tp:docstring>
+            </arg>
+            <arg type="i" name="count">
+              <tp:docstring>
+                The number of waiting messages.
+              </tp:docstring>
+            </arg>
+        </signal>
+
+        <signal name="volumeChanged" tp:name-for-bindings="volumeChanged">
+                <tp:docstring>
+              <p>Notify clients of a volume level change.</p>
+              <p>This signal occurs only if ALSA is enabled since Pulseaudio streams are managed externally. </p>
+            </tp:docstring>
+            <arg type="s" name="device">
+              <tp:docstring>
+                The device: mic or speaker
+              </tp:docstring>
+            </arg>
+            <arg type="d" name="value">
+              <tp:docstring>
+                The new volume value
+              </tp:docstring>
+            </arg>
+        </signal>
+
+        <signal name="transferSucceeded" tp:name-for-bindings="transferSucceeded">
+            <tp:docstring>
+              <p>Transfer has been successfully
+              processed. Client should remove transfered
+              call from call list as it is no longer
+              accessible in SFLphone-daemon.</p>
+            </tp:docstring>
+        </signal>
+
+        <signal name="transferFailed" tp:name-for-bindings="transferFailed">
+            <tp:docstring>
+              <p>Transfer operation failed. Corresponding
+              call is no longer accessible in
+              SFLphone-daemon.</p>
+            </tp:docstring>
+        </signal>
+
+        <signal name="secureSdesOn" tp:name-for-bindings="secureSdesOn">
+            <tp:added version="0.9.7"/>
+            <tp:docstring>
+              <p>Signal sent on SDES session success. Media transmission is encripted
+              for this call only. It does not apply for a conference.</p>
+              <p>A conference can be considered to be secured if and only if each
+              participant is secured.</p>
+            </tp:docstring>
+            <arg type="s" name="callID"/>
+        </signal>
+
+        <signal name="secureSdesOff" tp:name-for-bindings="secureSdesOff">
+            <tp:added version="0.9.7"/>
+            <tp:docstring>
+              <p>Sinal sent to notify that SDES session failed.</p>
+              <p>Media transmission is not encrypted.</p>
+            </tp:docstring>
+            <arg type="s" name="callID" />
+        </signal>
+
+        <!-- ZRTP Methods and Signals -->
+        <signal name="secureZrtpOn" tp:name-for-bindings="secureZrtpOn">
+            <tp:added version="0.9.7"/>
+            <arg type="s" name="callID"  />
+            <arg type="s" name="cipher"  />
+        </signal>
+
+        <signal name="secureZrtpOff" tp:name-for-bindings="secureZrtpOff">
+            <tp:added version="0.9.7"/>
+            <arg type="s" name="callID" />
+        </signal>
+
+        <signal name="confirmGoClear" tp:name-for-bindings="confirmGoClear">
+            <tp:added version="0.9.7"/>
+            <arg type="s" name="callID" />
+        </signal>
+
+        <signal name="zrtpNegotiationFailed" tp:name-for-bindings="zrtpNegotiationFailed">
+            <tp:added version="0.9.7"/>
+            <arg type="s" name="callID" />
+            <arg type="s" name="reason"  />
+            <arg type="s" name="severity" />
+        </signal>
+
+        <signal name="zrtpNotSuppOther" tp:name-for-bindings="zrtpNotSuppOther">
+            <tp:added version="0.9.7"/>
+            <arg type="s" name="callID" />
+        </signal>
+
+        <signal name="showSAS" tp:name-for-bindings="showSAS">
+            <tp:added version="0.9.7"/>
+            <tp:added version="0.9.7"/>
+            <arg type="s" name="callID" />
+            <arg type="s" name="sas"  />
+            <arg type="b" name="verified"/>
+        </signal>
+
+        <method name="setSASVerified" tp:name-for-bindings="setSASVerified">
+            <tp:added version="0.9.7"/>
+            <arg type="s" name="callID" direction="in"/>
+        </method>
+
+        <method name="resetSASVerified" tp:name-for-bindings="resetSASVerified">
+            <tp:added version="0.9.7"/>
+            <arg type="s" name="callID" direction="in"/>
+        </method>
+
+        <method name="setConfirmGoClear" tp:name-for-bindings="setConfirmGoClear">
+            <tp:added version="0.9.7"/>
+            <arg type="s" name="callID" direction="in"/>
+        </method>
+
+        <method name="requestGoClear" tp:name-for-bindings="requestGoClear">
+            <tp:added version="0.9.7"/>
+            <arg type="s" name="callID" direction="in"/>
+        </method>
+
+        <method name="acceptEnrollment" tp:name-for-bindings="acceptEnrollment">
+            <tp:added version="0.9.7"/>
+            <arg type="s" name="callID" direction="in"/>
+            <arg type="b" name="accepted" direction="in"/>
+        </method>
+
+        <method name="setPBXEnrollment" tp:name-for-bindings="setPBXEnrollment">
+            <tp:added version="0.9.7"/>
+            <arg type="s" name="callID" direction="in"/>
+            <arg type="b" name="yesNo" direction="in"/>
+        </method>
+
+    </interface>
 </node>
diff --git a/src/dbus/configurationmanager-introspec.xml b/src/dbus/configurationmanager-introspec.xml
index 13f666940b39300c39b405ac4abe3ff7ce1e0aa0..926ff774de75a99636920b3dc711ab6914695cb9 100644
--- a/src/dbus/configurationmanager-introspec.xml
+++ b/src/dbus/configurationmanager-introspec.xml
@@ -1,107 +1,97 @@
 <?xml version="1.0" ?>
 <node name="/configurationmanager-introspec" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
-	<interface name="org.sflphone.SFLphone.ConfigurationManager">
-
-		<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
-			Used to handle the configuration stuff: accounts settings, account registration, user preferences, ...
-		</tp:docstring>
-
-		<method name="getAccountDetails" tp:name-for-bindings="getAccountDetails">
-			<tp:docstring>
-				Get all parameters of the specified account.
-			</tp:docstring>
-			<arg type="s" name="accountID" direction="in">
-				<tp:docstring>
-					The account ID
-				</tp:docstring>
-			</arg>
-			<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
-			<arg type="a{ss}" name="details" direction="out" tp:type="String_String_Map">
-				<tp:docstring>
-					The available keys / parameters are:
-					<ul>
-						<li>CONFIG_ACCOUNT_ENABLE:	True or False (Default: True)</li>
-						<li>CONFIG_ACCOUNT_RESOLVE_ONCE</li>
-						<li>CONFIG_ACCOUNT_TYPE: SIP or IAX2 (Default: SIP)</li>
-						<li>HOSTNAME: The IP adress or hostname of the registrar</li>
-						<li>USERNAME: The username (or extension) of the account</li>
-						<li>PASSWORD: The password associated to the account</li>
-						<li>REALM</li>
-						<li>CONFIG_ACCOUNT_MAILBOX: Number to dial to access the voicemail box</li>
-						<li>CONFIG_ACCOUNT_REGISTRATION_EXPIRE: SIP header expiration value (Default: 1600)</li>
-						<li>LOCAL_INTERFACE: The network interface (Default: eth0)</li>
-						<li>PUBLISHED_SAMEAS_LOCAL: If False, the published address equals the local address. This is the default.</li>
-						<li>PUBLISHED_ADDRESS: The SIP published address</li>
-						<li>LOCAL_PORT: The SIP listening port (Default: 5060)</li>
-						<li>PUBLISHED_PORT: The SIP published port</li>
-						<li>DISPLAY_NAMEL: The display name</li>
-						<li>STUN_ENABLE: True or False (Default: False)</li>
-						<li>STUN_SERVER: The STUN server address</li>
-						<li>REGISTRATION_STATUS: The account registration status. Should be Registered to make calls.</li>
-						<li>REGISTRATION_STATE_CODE</li>
-						<li>REGISTRATION_STATE_DESCRIPTION</li>
-						<li>SRTP_KEY_EXCHANGE</li>
-						<li>SRTP_ENABLE: Whether or not voice communication are encrypted - True or False (Default: False)</li>
-						<li>SRTP_RTP_FALLBACK</li>
-						<li>ZRTP_DISPLAY_SAS</li>
-						<li>ZRTP_DISPLAY_SAS_ONCE</li>
-						<li>ZRTP_HELLO_HASH</li>
-						<li>ZRTP_NOT_SUPP_WARNING</li>
-						<li>TLS_LISTENER_PORT: TLS listening port (Default: 5061)</li>
-						<li>TLS_ENABLE: Whether or not signalling is encrypted - True or False (Default: False)</li>
-						<li>TLS_CA_LIST_FILE</li>
-						<li>TLS_CERTIFICATE_FILE</li>
-						<li>TLS_PRIVATE_KEY_FILE</li>
-						<li>TLS_METHOD</li>
-						<li>TLS_CIPHERS</li>
-						<li>TLS_SERVER_NAME</li>
-						<li>TLS_VERIFY_SERVER</li>
-						<li>TLS_VERIFY_CLIENT</li>
-						<li>TLS_REQUIRE_CLIENT_CERTIFICATE</li>
-						<li>TLS_NEGOTIATION_TIMEOUT_SEC</li>
-						<li>TLS_NEGOTIATION_TIMEOUT_MSEC</li>
-					</ul>
-				</tp:docstring>
-			</arg>
-		</method>
-
-		<method name="setAccountDetails" tp:name-for-bindings="setAccountDetails">
-			<tp:docstring>
-				Send new account parameters, or account parameters changes, to the core. The hash table is not required to be complete, only the updated parameters may be specified.
-				<tp:rationale>Account settings are written to the configuration file when sflphone properly quits.</tp:rationale>
-				<tp:rationale>After calling this method, the core will emit the signal <tp:member-ref>accountsChanged</tp:member-ref> with the updated data. The client must subscribe to this signal and use it to update its internal data structure.</tp:rationale>
-			</tp:docstring>
-			<annotation name="com.trolltech.QtDBus.QtTypeName.In1" value="MapStringString"/>
-			<arg type="s" name="accountID" direction="in">
-				<tp:docstring>
-				</tp:docstring>
-			</arg>
-			<arg type="a{ss}" name="details" direction="in" tp:type="String_String_Map">
-				<tp:docstring>
-				</tp:docstring>
-			</arg>
-		</method>
-
-		<method name="setCredentials" tp:name-for-bindings="setCredentials">
-			<tp:docstring>
-			</tp:docstring>
-			<arg type="s" name="accountID" direction="in">
-				<tp:docstring>
-				</tp:docstring>
-			</arg>
-			<annotation name="com.trolltech.QtDBus.QtTypeName.In1" value="VectorMapStringString"/>
-			<arg type="aa{ss}" name="credentialInformation" direction="in" tp:type="String_String_Map">
-				<tp:docstring>
-				</tp:docstring>
-			</arg>
-		</method>
-
-		<method name="getIp2IpDetails" tp:name-for-bindings="getIp2IpDetails">
+    <interface name="org.sflphone.SFLphone.ConfigurationManager">
+
+        <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+            Used to handle the configuration stuff: accounts settings, account registration, user preferences, ...
+        </tp:docstring>
+
+        <method name="getAccountDetails" tp:name-for-bindings="getAccountDetails">
+            <tp:docstring>
+                Get all parameters of the specified account.
+            </tp:docstring>
+            <arg type="s" name="accountID" direction="in">
+                <tp:docstring>
+                    The account ID
+                </tp:docstring>
+            </arg>
+            <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
+            <arg type="a{ss}" name="details" direction="out" tp:type="String_String_Map">
+                <tp:docstring>
+                    The available keys / parameters are:
+                    <ul>
+                        <li>CONFIG_ACCOUNT_ENABLE:    True or False (Default: True)</li>
+                        <li>CONFIG_ACCOUNT_RESOLVE_ONCE</li>
+                        <li>CONFIG_ACCOUNT_TYPE: SIP or IAX2 (Default: SIP)</li>
+                        <li>HOSTNAME: The IP adress or hostname of the registrar</li>
+                        <li>USERNAME: The username (or extension) of the account</li>
+                        <li>PASSWORD: The password associated to the account</li>
+                        <li>REALM</li>
+                        <li>CONFIG_ACCOUNT_MAILBOX: Number to dial to access the voicemail box</li>
+                        <li>CONFIG_ACCOUNT_REGISTRATION_EXPIRE: SIP header expiration value (Default: 1600)</li>
+                        <li>LOCAL_INTERFACE: The network interface (Default: eth0)</li>
+                        <li>PUBLISHED_SAMEAS_LOCAL: If False, the published address equals the local address. This is the default.</li>
+                        <li>PUBLISHED_ADDRESS: The SIP published address</li>
+                        <li>LOCAL_PORT: The SIP listening port (Default: 5060)</li>
+                        <li>PUBLISHED_PORT: The SIP published port</li>
+                        <li>DISPLAY_NAMEL: The display name</li>
+                        <li>STUN_ENABLE: True or False (Default: False)</li>
+                        <li>STUN_SERVER: The STUN server address</li>
+                        <li>REGISTRATION_STATUS: The account registration status. Should be Registered to make calls.</li>
+                        <li>REGISTRATION_STATE_CODE</li>
+                        <li>REGISTRATION_STATE_DESCRIPTION</li>
+                        <li>SRTP_KEY_EXCHANGE</li>
+                        <li>SRTP_ENABLE: Whether or not voice communication are encrypted - True or False (Default: False)</li>
+                        <li>SRTP_RTP_FALLBACK</li>
+                        <li>ZRTP_DISPLAY_SAS</li>
+                        <li>ZRTP_DISPLAY_SAS_ONCE</li>
+                        <li>ZRTP_HELLO_HASH</li>
+                        <li>ZRTP_NOT_SUPP_WARNING</li>
+                        <li>TLS_LISTENER_PORT: TLS listening port (Default: 5061)</li>
+                        <li>TLS_ENABLE: Whether or not signalling is encrypted - True or False (Default: False)</li>
+                        <li>TLS_CA_LIST_FILE</li>
+                        <li>TLS_CERTIFICATE_FILE</li>
+                        <li>TLS_PRIVATE_KEY_FILE</li>
+                        <li>TLS_METHOD</li>
+                        <li>TLS_CIPHERS</li>
+                        <li>TLS_SERVER_NAME</li>
+                        <li>TLS_VERIFY_SERVER</li>
+                        <li>TLS_VERIFY_CLIENT</li>
+                        <li>TLS_REQUIRE_CLIENT_CERTIFICATE</li>
+                        <li>TLS_NEGOTIATION_TIMEOUT_SEC</li>
+                        <li>TLS_NEGOTIATION_TIMEOUT_MSEC</li>
+                    </ul>
+                </tp:docstring>
+            </arg>
+        </method>
+
+        <method name="setAccountDetails" tp:name-for-bindings="setAccountDetails">
+            <tp:docstring>
+                Send new account parameters, or account parameters changes, to the core. The hash table is not required to be complete, only the updated parameters may be specified.
+                <tp:rationale>Account settings are written to the configuration file when sflphone properly quits.</tp:rationale>
+                <tp:rationale>After calling this method, the core will emit the signal <tp:member-ref>accountsChanged</tp:member-ref> with the updated data. The client must subscribe to this signal and use it to update its internal data structure.</tp:rationale>
+            </tp:docstring>
+            <annotation name="com.trolltech.QtDBus.QtTypeName.In1" value="MapStringString"/>
+            <arg type="s" name="accountID" direction="in">
+            </arg>
+            <arg type="a{ss}" name="details" direction="in" tp:type="String_String_Map">
+            </arg>
+        </method>
+
+        <method name="setCredentials" tp:name-for-bindings="setCredentials">
+            <arg type="s" name="accountID" direction="in">
+            </arg>
+            <annotation name="com.trolltech.QtDBus.QtTypeName.In1" value="VectorMapStringString"/>
+            <arg type="aa{ss}" name="credentialInformation" direction="in" tp:type="String_String_Map">
+            </arg>
+        </method>
+
+        <method name="getIp2IpDetails" tp:name-for-bindings="getIp2IpDetails">
             <tp:docstring>
             Get configuration settings of the IP2IP_PROFILE. They are sligthly different from account settings since no VoIP accounts are involved.
             </tp:docstring>
             <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
-			<!--<annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/>-->
+            <!--<annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/>-->
             <arg type="a{ss}" name="details" direction="out" tp:type="String_String_Map">
             <tp:docstring>
             Available parameters are:
@@ -134,597 +124,388 @@
             </arg>
         </method>
 
-	   <method name="getCredentials" tp:name-for-bindings="getCredentials">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <arg type="s" name="accountID" direction="in">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-		   <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorMapStringString"/>
-		   <arg type="aa{ss}" name="credentialInformation" direction="out">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="addAccount" tp:name-for-bindings="addAccount">
-		   <tp:docstring>
-			   Add a new account. When created, the signal <tp:member-ref>accountsChanged</tp:member-ref> is emitted. The clients must then call <tp:member-ref>getAccountList</tp:member-ref> to update their internal data structure.
-			   <tp:rationale>If no details are specified, the default parameters are used.</tp:rationale>
-			   <tp:rationale>The core tries to register the account as soon it is created.</tp:rationale>
-		   </tp:docstring>
-		   <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/>
-		   <arg type="a{ss}" name="details" direction="in"  tp:type="String_String_Map">
-			   <tp:docstring>
-					The new account settings
-			   </tp:docstring>
-		   </arg>
-		   <arg type="s" name="createdAccountId" direction="out">
-			   <tp:docstring>
-					A new account ID
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="setAccountsOrder" tp:name-for-bindings="setAccountsOrder">
-		   <tp:docstring>
-				Update the accounts order.
-				<tp:rationale>When placing a call, the first registered account in the list is used.</tp:rationale>
-		   </tp:docstring>
-		   <arg type="s" name="order" direction="in">
-			   <tp:docstring>
-				   An ordered list of account IDs, delimited by '/'
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="removeAccount" tp:name-for-bindings="removeAccount">
-		   <tp:docstring>
-			   Remove an existing account. When removed, the signal <tp:member-ref>accountsChanged</tp:member-ref> is emitted. The clients must then call <tp:member-ref>getAccountList</tp:member-ref> to update their internal data structure.
-		   </tp:docstring>
-		   <arg type="s" name="accoundID" direction="in">
-			   <tp:docstring>
-					The account to remove, identified by its ID
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="getAccountList" tp:name-for-bindings="getAccountList">
-		   <tp:docstring>
-				Get a list of all created accounts, as stored by the core.
-		   </tp:docstring>
-		   <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
-		   <arg type="as" name="list" direction="out">
-			   <tp:docstring>
-				   A list of account IDs
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="sendRegister" tp:name-for-bindings="sendRegister">
-		   <tp:docstring>
-				Send account registration (REGISTER) to the registrar.
-		   </tp:docstring>
-		   the account if expire=1, unregister if expire=0.
-
-		   @param[in] input accountID
-		   -->
-		   <arg type="s" name="accountID" direction="in">
-			   <tp:docstring>
-					The account ID
-			   </tp:docstring>
-		   </arg>
-		   <arg type="i" name="expire" direction="in">
-			   <tp:docstring>
-					<p>To register, expire must be 1.</p>
-					<p>To un-register, expire must be 0.</p>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="getAudioManager" tp:name-for-bindings="getAudioManager">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <arg type="s" name="api" direction="out">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="setAudioManager" tp:name-for-bindings="setAudioManager">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <arg type="s" name="api" direction="in">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="getRecordPath" tp:name-for-bindings="getRecordPath">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <arg type="s" name="rec" direction="out">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="setRecordPath" tp:name-for-bindings="setRecordPath">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <arg type="s" name="rec" direction="in">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-	   
-	   <method name="getIsAlwaysRecording" tp:name-for-bindings="getIsAlwaysRecording">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <arg type="b" name="res" direction="out">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="setIsAlwaysRecording" tp:name-for-bindings="setIsAlwaysRecording">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <arg type="b" name="enabled" direction="in">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <!--      ///////////////////////               -->
-
-	   <!-- Codecs-related methods -->
-
-	   <method name="getAudioCodecList" tp:name-for-bindings="getAudioCodecList">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorInt"/>
-		   <arg type="ai" name="list" direction="out">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="getAudioCodecDetails" tp:name-for-bindings="getAudioCodecDetails">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <arg type="i" name="payload" direction="in">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-		   <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
-		   <arg type="as" name="details" direction="out">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="getActiveAudioCodecList" tp:name-for-bindings="getActiveAudioCodecList">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorInt"/>
-		   <arg type="s" name="accountID" direction="in">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-		   <arg type="ai" name="list" direction="out">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="setActiveAudioCodecList" tp:name-for-bindings="setActiveAudioCodecList">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="VectorString"/>
-		   <arg type="as" name="list" direction="in">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-		   <arg type="s" name="accountID" direction="in">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-
-	   <!-- Audio devices methods -->
-
-	   <method name="getAudioPluginList" tp:name-for-bindings="getAudioPluginList">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
-		   <arg type="as" name="list" direction="out">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="setAudioPlugin" tp:name-for-bindings="setAudioPlugin">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <arg type="s" name="audioPlugin" direction="in">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="getAudioOutputDeviceList" tp:name-for-bindings="getAudioOutputDeviceList">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
-		   <arg type="as" name="list" direction="out">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="setAudioOutputDevice" tp:name-for-bindings="setAudioOutputDevice">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <arg type="i" name="index" direction="in">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="setAudioInputDevice" tp:name-for-bindings="setAudioInputDevice">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <arg type="i" name="index" direction="in">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="setAudioRingtoneDevice" tp:name-for-bindings="setAudioRingtoneDevice">
-	           <tp:docstring>
-		   </tp:docstring>
-		   <arg type="i" name="index" direction="in">
-		     <tp:docstring>
-		     </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="getAudioInputDeviceList" tp:name-for-bindings="getAudioInputDeviceList">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
-		   <arg type="as" name="list" direction="out">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-
-	   <method name="getCurrentAudioDevicesIndex" tp:name-for-bindings="getCurrentAudioDevicesIndex">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
-		   <arg type="as" name="list" direction="out">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="getAudioDeviceIndex" tp:name-for-bindings="getAudioDeviceIndex">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <arg type="s" name="name" direction="in">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-		   <arg type="i" name="index" direction="out">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="getCurrentAudioOutputPlugin" tp:name-for-bindings="getCurrentAudioOutputPlugin">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <arg type="s" name="plugin" direction="out">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
+       <method name="getCredentials" tp:name-for-bindings="getCredentials">
+           <arg type="s" name="accountID" direction="in">
+           </arg>
+           <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorMapStringString"/>
+           <arg type="aa{ss}" name="credentialInformation" direction="out">
+           </arg>
+       </method>
+
+       <method name="addAccount" tp:name-for-bindings="addAccount">
+           <tp:docstring>
+               Add a new account. When created, the signal <tp:member-ref>accountsChanged</tp:member-ref> is emitted. The clients must then call <tp:member-ref>getAccountList</tp:member-ref> to update their internal data structure.
+               <tp:rationale>If no details are specified, the default parameters are used.</tp:rationale>
+               <tp:rationale>The core tries to register the account as soon it is created.</tp:rationale>
+           </tp:docstring>
+           <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/>
+           <arg type="a{ss}" name="details" direction="in"  tp:type="String_String_Map">
+               <tp:docstring>
+                    The new account settings
+               </tp:docstring>
+           </arg>
+           <arg type="s" name="createdAccountId" direction="out">
+               <tp:docstring>
+                    A new account ID
+               </tp:docstring>
+           </arg>
+       </method>
+
+       <method name="setAccountsOrder" tp:name-for-bindings="setAccountsOrder">
+           <tp:docstring>
+                Update the accounts order.
+                <tp:rationale>When placing a call, the first registered account in the list is used.</tp:rationale>
+           </tp:docstring>
+           <arg type="s" name="order" direction="in">
+               <tp:docstring>
+                   An ordered list of account IDs, delimited by '/'
+               </tp:docstring>
+           </arg>
+       </method>
+
+       <method name="removeAccount" tp:name-for-bindings="removeAccount">
+           <tp:docstring>
+               Remove an existing account. When removed, the signal <tp:member-ref>accountsChanged</tp:member-ref> is emitted. The clients must then call <tp:member-ref>getAccountList</tp:member-ref> to update their internal data structure.
+           </tp:docstring>
+           <arg type="s" name="accoundID" direction="in">
+               <tp:docstring>
+                    The account to remove, identified by its ID
+               </tp:docstring>
+           </arg>
+       </method>
+
+       <method name="getAccountList" tp:name-for-bindings="getAccountList">
+           <tp:docstring>
+                Get a list of all created accounts, as stored by the core.
+           </tp:docstring>
+           <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
+           <arg type="as" name="list" direction="out">
+               <tp:docstring>
+                   A list of account IDs
+               </tp:docstring>
+           </arg>
+       </method>
+
+       <method name="sendRegister" tp:name-for-bindings="sendRegister">
+           <tp:docstring>
+                Send account registration (REGISTER) to the registrar.
+           </tp:docstring>
+           Register the account if enable=true, unregister if enable=false.
+
+           @param[in] input accountID
+           -->
+           <arg type="s" name="accountID" direction="in">
+               <tp:docstring>
+                    The account ID
+               </tp:docstring>
+           </arg>
+           <arg type="b" name="enable" direction="in">
+               <tp:docstring>
+                    <p>To register, enable must be true.</p>
+                    <p>To un-register, enable must be false.</p>
+               </tp:docstring>
+           </arg>
+       </method>
+
+       <method name="getAudioManager" tp:name-for-bindings="getAudioManager">
+           <arg type="s" name="api" direction="out">
+           </arg>
+       </method>
+
+       <method name="setAudioManager" tp:name-for-bindings="setAudioManager">
+           <arg type="s" name="api" direction="in">
+           </arg>
+       </method>
+
+       <method name="getRecordPath" tp:name-for-bindings="getRecordPath">
+           <arg type="s" name="rec" direction="out">
+           </arg>
+       </method>
+
+       <method name="setRecordPath" tp:name-for-bindings="setRecordPath">
+           <arg type="s" name="rec" direction="in">
+           </arg>
+       </method>
+
+       <method name="getIsAlwaysRecording" tp:name-for-bindings="getIsAlwaysRecording">
+           <arg type="b" name="res" direction="out">
+           </arg>
+       </method>
+
+       <method name="setIsAlwaysRecording" tp:name-for-bindings="setIsAlwaysRecording">
+           <arg type="b" name="enabled" direction="in">
+           </arg>
+       </method>
+
+       <!--      ///////////////////////               -->
+
+       <!-- Codecs-related methods -->
+
+       <method name="getAudioCodecList" tp:name-for-bindings="getAudioCodecList">
+           <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorInt"/>
+           <arg type="ai" name="list" direction="out">
+           </arg>
+       </method>
+
+       <method name="getAudioCodecDetails" tp:name-for-bindings="getAudioCodecDetails">
+           <arg type="i" name="payload" direction="in">
+           </arg>
+           <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
+           <arg type="as" name="details" direction="out">
+           </arg>
+       </method>
+
+       <method name="getActiveAudioCodecList" tp:name-for-bindings="getActiveAudioCodecList">
+           <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorInt"/>
+           <arg type="s" name="accountID" direction="in">
+           </arg>
+           <arg type="ai" name="list" direction="out">
+           </arg>
+       </method>
+
+       <method name="setActiveAudioCodecList" tp:name-for-bindings="setActiveAudioCodecList">
+           <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="VectorString"/>
+           <arg type="as" name="list" direction="in">
+           </arg>
+           <arg type="s" name="accountID" direction="in">
+           </arg>
+       </method>
+
+       <!-- Audio devices methods -->
+
+       <method name="getAudioPluginList" tp:name-for-bindings="getAudioPluginList">
+           <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
+           <arg type="as" name="list" direction="out">
+           </arg>
+       </method>
+
+       <method name="setAudioPlugin" tp:name-for-bindings="setAudioPlugin">
+           <arg type="s" name="audioPlugin" direction="in">
+           </arg>
+       </method>
+
+       <method name="getAudioOutputDeviceList" tp:name-for-bindings="getAudioOutputDeviceList">
+           <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
+           <arg type="as" name="list" direction="out">
+           </arg>
+       </method>
+
+       <method name="setAudioOutputDevice" tp:name-for-bindings="setAudioOutputDevice">
+           <arg type="i" name="index" direction="in">
+           </arg>
+       </method>
+
+       <method name="setAudioInputDevice" tp:name-for-bindings="setAudioInputDevice">
+           <arg type="i" name="index" direction="in">
+           </arg>
+       </method>
+
+       <method name="setAudioRingtoneDevice" tp:name-for-bindings="setAudioRingtoneDevice">
+           <arg type="i" name="index" direction="in">
+           </arg>
+       </method>
+
+       <method name="getAudioInputDeviceList" tp:name-for-bindings="getAudioInputDeviceList">
+           <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
+           <arg type="as" name="list" direction="out">
+           </arg>
+       </method>
+
+
+       <method name="getCurrentAudioDevicesIndex" tp:name-for-bindings="getCurrentAudioDevicesIndex">
+           <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
+           <arg type="as" name="list" direction="out">
+           </arg>
+       </method>
+
+       <method name="getAudioDeviceIndex" tp:name-for-bindings="getAudioDeviceIndex">
+           <arg type="s" name="name" direction="in">
+           </arg>
+           <arg type="i" name="index" direction="out">
+           </arg>
+       </method>
+
+       <method name="getCurrentAudioOutputPlugin" tp:name-for-bindings="getCurrentAudioOutputPlugin">
+           <arg type="s" name="plugin" direction="out">
+           </arg>
+       </method>
 
        <method name="getEchoCancelState" tp:name-for-bindings="getNoiseSuppressState">
-	           <tp:docstring>
-		   </tp:docstring>
-		   <arg type="s" name="state" direction="out">
-		           <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="setEchoCancelState" tp:name-for-bindings="setEchoCancelState">
-	           <arg type="s" name="state" direction="in">
-	           </arg>
-	   </method>
-
-	   <method name="setEchoCancelTailLength" tp:name-for-bindings="setEchoCancelTailLength">
-	           <tp:docstring>
-		   </tp:docstring>
-		   <arg type="i" name="index" direction="in">
-		     <tp:docstring>
-		     </tp:docstring>
-		   </arg>
-	   </method>
-	   
-	   <method name="getEchoCancelTailLength" tp:name-for-bindings="getEchoCancelTailLength">
-	           <tp:docstring>
-		   </tp:docstring>
-		   <arg type="i" name="index" direction="out">
-		     <tp:docstring>
-		     </tp:docstring>
-		   </arg>
-	   </method>
-	   
-	   <method name="setEchoCancelDelay" tp:name-for-bindings="setEchoCancelDelay">
-	       <tp:docstring>
-	       </tp:docstring>
-	       <arg type="i" name="index" direction="in">
-	       </arg>
-	   </method> 
-	   
-	   <method name="getEchoCancelDelay" tp:name-for-bindings="getEchoCancelDelay">
-	       <tp:docstring>
-	       </tp:docstring>
-	       <arg type="i" name="index" direction="out">
-	       </arg>
-	   </method>
-	   
-	   
-	   <method name="getNoiseSuppressState" tp:name-for-bindings="getEchoCancelState">
-	           <tp:docstring>
-		   </tp:docstring>
-		   <arg type="s" name="state" direction="out">
-		           <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="setNoiseSuppressState" tp:name-for-bindings="setNoiseSuppressState">
-	           <arg type="s" name="state" direction="in">
-	           </arg>
-	   </method>
-
-	   <!--    General Settings Panel         -->
-
-	   <method name="isIax2Enabled" tp:name-for-bindings="isIax2Enabled">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <arg type="i" name="res" direction="out">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="setMailNotify" tp:name-for-bindings="setMailNotify">
-		   <tp:docstring>
-		   </tp:docstring>
-	   </method>
-
-	   <method name="getMailNotify" tp:name-for-bindings="getMailNotify">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <arg type="i" name="level" direction="out">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-
-	   <method name="getHistoryLimit" tp:name-for-bindings="getHistoryLimit">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <arg type="i" name="days" direction="out">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="setHistoryLimit" tp:name-for-bindings="setHistoryLimit">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <arg type="i" name="days" direction="in">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <!-- Addressbook configuration -->
-	   <method name="getAddressbookSettings" tp:name-for-bindings="getAddressbookSettings">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringInt"/>
-		   <arg type="a{si}" name="settings" direction="out">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="setAddressbookSettings" tp:name-for-bindings="setAddressbookSettings">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringInt"/>
-		   <arg type="a{si}" name="settings" direction="in">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <!-- Addressbook list -->
-	   <method name="getAddressbookList" tp:name-for-bindings="getAddressbookList">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
-		   <arg type="as" name="settings" direction="out">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="setAddressbookList" tp:name-for-bindings="setAddressbookList">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="VectorString"/>
-		   <arg type="as" name="settings" direction="in">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <!-- Hook configuration -->
-	   <method name="getHookSettings" tp:name-for-bindings="getHookSettings">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
-		   <arg type="a{ss}" name="settings" direction="out">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="setHookSettings" tp:name-for-bindings="setHookSettings">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/>
-		   <arg type="a{ss}" name="settings" direction="in">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="getHistory" tp:name-for-bindings="getHistory">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
-		   <arg type="as" name="entries" direction="out">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="setHistory" tp:name-for-bindings="setHistory">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/>
-		   <arg type="as" name="entries" direction="in">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <signal name="accountsChanged" tp:name-for-bindings="accountsChanged">
-	   </signal>  
-
-	   <signal name="errorAlert" tp:name-for-bindings="errorAlert">
-		   <arg type="i" name="code">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </signal> 
-
-	   <!-- TLS Methods -->
-	   <method name="getSupportedTlsMethod" tp:name-for-bindings="getSupportedTlsMethod">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
-		   <arg type="as" name="list" direction="out">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="getTlsSettingsDefault" tp:name-for-bindings="getTlsSettingsDefault">
+           <arg type="s" name="state" direction="out">
+           </arg>
+       </method>
+
+       <method name="setEchoCancelState" tp:name-for-bindings="setEchoCancelState">
+               <arg type="s" name="state" direction="in">
+               </arg>
+       </method>
+
+       <method name="setEchoCancelTailLength" tp:name-for-bindings="setEchoCancelTailLength">
+           <arg type="i" name="index" direction="in">
+           </arg>
+       </method>
+
+       <method name="getEchoCancelTailLength" tp:name-for-bindings="getEchoCancelTailLength">
+           <arg type="i" name="index" direction="out">
+           </arg>
+       </method>
+
+       <method name="setEchoCancelDelay" tp:name-for-bindings="setEchoCancelDelay">
+           <arg type="i" name="index" direction="in">
+           </arg>
+       </method>
+
+       <method name="getEchoCancelDelay" tp:name-for-bindings="getEchoCancelDelay">
+           <arg type="i" name="index" direction="out">
+           </arg>
+       </method>
+
+
+       <method name="getNoiseSuppressState" tp:name-for-bindings="getEchoCancelState">
+           <arg type="s" name="state" direction="out">
+           </arg>
+       </method>
+
+       <method name="setNoiseSuppressState" tp:name-for-bindings="setNoiseSuppressState">
+               <arg type="s" name="state" direction="in">
+               </arg>
+       </method>
+
+       <!--    General Settings Panel         -->
+
+       <method name="isIax2Enabled" tp:name-for-bindings="isIax2Enabled">
+           <arg type="i" name="res" direction="out">
+           </arg>
+       </method>
+
+       <method name="setMailNotify" tp:name-for-bindings="setMailNotify">
+       </method>
+
+       <method name="getMailNotify" tp:name-for-bindings="getMailNotify">
+           <arg type="i" name="level" direction="out">
+           </arg>
+       </method>
+
+       <method name="getHistoryLimit" tp:name-for-bindings="getHistoryLimit">
+           <arg type="i" name="days" direction="out">
+           </arg>
+       </method>
+
+       <method name="setHistoryLimit" tp:name-for-bindings="setHistoryLimit">
+           <arg type="i" name="days" direction="in">
+           </arg>
+       </method>
+
+       <!-- Addressbook configuration -->
+       <method name="getAddressbookSettings" tp:name-for-bindings="getAddressbookSettings">
+           <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringInt"/>
+           <arg type="a{si}" name="settings" direction="out">
+           </arg>
+       </method>
+
+       <method name="setAddressbookSettings" tp:name-for-bindings="setAddressbookSettings">
+           <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringInt"/>
+           <arg type="a{si}" name="settings" direction="in">
+           </arg>
+       </method>
+
+       <!-- Addressbook list -->
+       <method name="getAddressbookList" tp:name-for-bindings="getAddressbookList">
+           <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
+           <arg type="as" name="settings" direction="out">
+           </arg>
+       </method>
+
+       <method name="setAddressbookList" tp:name-for-bindings="setAddressbookList">
+           <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="VectorString"/>
+           <arg type="as" name="settings" direction="in">
+           </arg>
+       </method>
+
+       <!-- Hook configuration -->
+       <method name="getHookSettings" tp:name-for-bindings="getHookSettings">
+           <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
+           <arg type="a{ss}" name="settings" direction="out">
+           </arg>
+       </method>
+
+       <method name="setHookSettings" tp:name-for-bindings="setHookSettings">
+           <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/>
+           <arg type="a{ss}" name="settings" direction="in">
+           </arg>
+       </method>
+
+       <method name="getHistory" tp:name-for-bindings="getHistory">
+           <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorMapStringString"/>
+           <!-- Return a List of type Dict<string, string> >...a List of Dicts -->
+           <arg type="aa{ss}" name="entries" direction="out"/>
+       </method>
+
+       <method name="clearHistory" tp:name-for-bindings="clearHistory">
+       </method>
+
+       <signal name="accountsChanged" tp:name-for-bindings="accountsChanged">
+       </signal>
+
+       <signal name="errorAlert" tp:name-for-bindings="errorAlert">
+           <arg type="i" name="code">
+           </arg>
+       </signal>
+
+       <!-- TLS Methods -->
+       <method name="getSupportedTlsMethod" tp:name-for-bindings="getSupportedTlsMethod">
+           <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
+           <arg type="as" name="list" direction="out">
+           </arg>
+       </method>
+
+       <method name="getTlsSettingsDefault" tp:name-for-bindings="getTlsSettingsDefault">
                    <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
-		   <tp:docstring>
-		   </tp:docstring>
-		   <arg type="a{ss}" name="details" direction="out">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="getTlsSettings" tp:name-for-bindings="getTlsSettings">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
-		   <arg type="a{ss}" name="details" direction="out">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="setTlsSettings" tp:name-for-bindings="setTlsSettings">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/>
-		   <arg type="a{ss}" name="details" direction="in">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="getAddrFromInterfaceName" tp:name-for-bindings="getAddrFromInterfaceName">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <arg type="s" name="interface" direction="in">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-		   <arg type="s" name="address" direction="out">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="getAllIpInterface" tp:name-for-bindings="getAllIpInterface">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
-		   <arg type="as" name="list" direction="out">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="getAllIpInterfaceByName" tp:name-for-bindings="getAllIpInterfaceByName">
-		   <tp:docstring>
-		   </tp:docstring>
-		   <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
-		   <arg type="as" name="list" direction="out">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="getShortcuts" tp:name-for-bindings="getShortcuts">
+           <arg type="a{ss}" name="details" direction="out">
+           </arg>
+       </method>
+
+       <method name="getTlsSettings" tp:name-for-bindings="getTlsSettings">
+           <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
+           <arg type="a{ss}" name="details" direction="out">
+           </arg>
+       </method>
+
+       <method name="setTlsSettings" tp:name-for-bindings="setTlsSettings">
+           <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/>
+           <arg type="a{ss}" name="details" direction="in">
+           </arg>
+       </method>
+
+       <method name="getAddrFromInterfaceName" tp:name-for-bindings="getAddrFromInterfaceName">
+           <arg type="s" name="interface" direction="in">
+           </arg>
+           <arg type="s" name="address" direction="out">
+           </arg>
+       </method>
+
+       <method name="getAllIpInterface" tp:name-for-bindings="getAllIpInterface">
+           <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
+           <arg type="as" name="list" direction="out">
+           </arg>
+       </method>
+
+       <method name="getAllIpInterfaceByName" tp:name-for-bindings="getAllIpInterfaceByName">
+           <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="VectorString"/>
+           <arg type="as" name="list" direction="out">
+           </arg>
+       </method>
+
+       <method name="getShortcuts" tp:name-for-bindings="getShortcuts">
                    <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
-		   <tp:docstring>
-		   </tp:docstring>
-		   <arg type="a{ss}" name="shortcutsMap" direction="out">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
-
-	   <method name="setShortcuts" tp:name-for-bindings="setShortcuts">
+           <arg type="a{ss}" name="shortcutsMap" direction="out">
+           </arg>
+       </method>
+
+       <method name="setShortcuts" tp:name-for-bindings="setShortcuts">
                    <annotation name="com.trolltech.QtDBus.QtTypeName.In0" value="MapStringString"/>
-		   <tp:docstring>
-		   </tp:docstring>
-		   <arg type="a{ss}" name="shortcutsMap" direction="in">
-			   <tp:docstring>
-			   </tp:docstring>
-		   </arg>
-	   </method>
+           <arg type="a{ss}" name="shortcutsMap" direction="in">
+           </arg>
+       </method>
    </interface>
-	   </node>
+</node>
diff --git a/src/instance_interface_singleton.cpp b/src/instance_interface_singleton.cpp
index cbf2d744a628e06c8d9832c8fd2653ec749fc5cb..68e700c71b3399cb8110b5f962d36a500ca76704 100644
--- a/src/instance_interface_singleton.cpp
+++ b/src/instance_interface_singleton.cpp
@@ -27,7 +27,7 @@ InstanceInterface* InstanceInterfaceSingleton::interface
 InstanceInterface& InstanceInterfaceSingleton::getInstance()
 {
    if(!interface->connection().isConnected()) {
-      throw "Error : sflphoned not connected. Service " + interface->service() + " not connected. From instance interface.";	
+      throw "Error : sflphoned not connected. Service " + interface->service() + " not connected. From instance interface.";
    }
    return *interface;
 }
diff --git a/src/instance_interface_singleton.h b/src/instance_interface_singleton.h
index 1b29e058d21005f9b589456a6aac04ccb64761d6..0263954fe9eec6a396eb6f7cdf807dfe048d79f6 100644
--- a/src/instance_interface_singleton.h
+++ b/src/instance_interface_singleton.h
@@ -25,9 +25,9 @@
 #include "src/lib/instance_dbus_interface.h"
 #include "typedefs.h"
 
-/**
-	@author Jérémy Quentin <jeremy.quentin@savoirfairelinux.com>
-*/
+/**                                                               
+ * @author Jérémy Quentin <jeremy.quentin@savoirfairelinux.com>   
+ */
 class LIB_EXPORT InstanceInterfaceSingleton
 {
 
diff --git a/src/sflphone_const.h b/src/sflphone_const.h
index 10009f279c6c30b36a3d129b89c5b54940eacd01..500cca98cf09c24c4a25a53963febed4f9c074de 100644
--- a/src/sflphone_const.h
+++ b/src/sflphone_const.h
@@ -110,63 +110,139 @@
 
 
 /** Account details */
-#define ACCOUNT_TYPE                     "Account.type"
-#define ACCOUNT_ALIAS		         "Account.alias"
-#define ACCOUNT_ENABLED		         "Account.enable"
-#define ACCOUNT_MAILBOX		         "Account.mailbox"
-#define ACCOUNT_RESOLVE_ONCE             "Account.resolveOnce"
-#define ACCOUNT_REGISTRATION_EXPIRE      "Account.expire"
-#define ACCOUNT_SIP_STUN_SERVER	         "STUN.server"
-#define ACCOUNT_SIP_STUN_ENABLED         "STUN.enable"
-#define ACCOUNT_HOSTNAME                 "hostname"
-#define ACCOUNT_USERNAME                 "username"
-#define ACCOUNT_PASSWORD                 "password"
-#define ACCOUNT_AUTHENTICATION_USERNAME  "authenticationUsername"
-#define ACCOUNT_REALM                    "realm"
-#define ACCOUNT_KEY_EXCHANGE             "SRTP.keyExchange"
-#define ACCOUNT_SRTP_ENABLED             "SRTP.enable"
-#define ACCOUNT_ZRTP_DISPLAY_SAS         "ZRTP.displaySAS"
-#define ACCOUNT_ZRTP_NOT_SUPP_WARNING    "ZRTP.notSuppWarning"
-#define ACCOUNT_ZRTP_HELLO_HASH          "ZRTP.helloHashEnable"
-#define ACCOUNT_DISPLAY_SAS_ONCE         "ZRTP.displaySasOnce"
-#define KEY_EXCHANGE_NONE                "0"
-#define ZRTP                             "1"
-#define SDES                             "2"
+// #define ACCOUNT_ID                         "Account.id"
+// #define ACCOUNT_TYPE                       "Account.type"
+// #define ACCOUNT_ALIAS                      "Account.alias"
+// #define ACCOUNT_ENABLED                    "Account.enable"
+// #define ACCOUNT_MAILBOX                    "Account.mailbox"
+// #define ACCOUNT_USERAGENT                  "Account.useragent"
+// #define ACCOUNT_REGISTRATION_EXPIRE        "Account.registrationExpire"
+// #define ACCOUNT_SIP_STUN_SERVER            "STUN.server"
+// #define ACCOUNT_SIP_STUN_ENABLED           "STUN.enable"
+// #define ACCOUNT_DTMF_TYPE                  "Account.dtmfType"
+// #define ACCOUNT_HOSTNAME                   "Account.hostname"
+// #define ACCOUNT_USERNAME                   "Account.username"
+// #define ACCOUNT_ROUTE                      "Account.routeset"
+// #define ACCOUNT_PASSWORD                   "Account.password"
+// #define ACCOUNT_REALM                      "Account.realm"
+// #define ACCOUNT_KEY_EXCHANGE               "SRTP.keyExchange"
+// #define ACCOUNT_SRTP_ENABLED               "SRTP.enable"
+// #define ACCOUNT_SRTP_RTP_FALLBACK          "SRTP.rtpFallback"
+// #define ACCOUNT_ZRTP_DISPLAY_SAS           "ZRTP.displaySAS"
+// #define ACCOUNT_ZRTP_NOT_SUPP_WARNING      "ZRTP.notSuppWarning"
+// #define ACCOUNT_ZRTP_HELLO_HASH            "ZRTP.helloHashEnable"
+// #define ACCOUNT_DISPLAY_SAS_ONCE           "ZRTP.displaySasOnce"
+// #define KEY_EXCHANGE_NONE                "0"
+// #define ZRTP                             "1"
+// #define SDES                             "2"
 
 /** TLS */
-#define TLS_LISTENER_PORT                   "TLS.listenerPort"
-#define TLS_ENABLE                       "TLS.enable"
-#define TLS_PORT                         "TLS.port"
-#define TLS_CA_LIST_FILE                 "TLS.certificateListFile"
-#define TLS_CERTIFICATE_FILE             "TLS.certificateFile"
-#define TLS_PRIVATE_KEY_FILE             "TLS.privateKeyFile"
-#define TLS_PASSWORD                     "TLS.password"
-#define TLS_METHOD                       "TLS.method"
-#define TLS_CIPHERS                      "TLS.ciphers"
-#define TLS_SERVER_NAME                  "TLS.serverName"
-#define TLS_VERIFY_SERVER                "TLS.verifyServer"
-#define TLS_VERIFY_CLIENT                "TLS.verifyClient"
-#define TLS_REQUIRE_CLIENT_CERTIFICATE   "TLS.requireClientCertificate"  
-#define TLS_NEGOTIATION_TIMEOUT_SEC      "TLS.negotiationTimeoutSec"
-#define TLS_NEGOTIATION_TIMEOUT_MSEC     "TLS.negotiationTimemoutMsec"
-
-#define LOCAL_INTERFACE                  "Account.localInterface"
-#define PUBLISHED_SAMEAS_LOCAL           "Account.publishedSameAsLocal"
-#define LOCAL_PORT                       "Account.localPort"
-#define PUBLISHED_PORT                   "Account.publishedPort"
-#define PUBLISHED_ADDRESS                "Account.publishedAddress"
-
-#define REGISTRATION_STATUS              "Status"
-#define REGISTRATION_STATE_CODE          "Registration.code" 
-#define REGISTRATION_STATE_DESCRIPTION   "Registration.description"
+// #define TLS_LISTENER_PORT                "TLS.listenerPort"
+// #define TLS_ENABLE                       "TLS.enable"
+// #define TLS_PORT                         "TLS.port"
+// #define TLS_CA_LIST_FILE                 "TLS.certificateListFile"
+// #define TLS_CERTIFICATE_FILE             "TLS.certificateFile"
+// #define TLS_PRIVATE_KEY_FILE             "TLS.privateKeyFile"
+// #define TLS_PASSWORD                     "TLS.password"
+// #define TLS_METHOD                       "TLS.method"
+// #define TLS_CIPHERS                      "TLS.ciphers"
+// #define TLS_SERVER_NAME                  "TLS.serverName"
+// #define TLS_VERIFY_SERVER                "TLS.verifyServer"
+// #define TLS_VERIFY_CLIENT                "TLS.verifyClient"
+// #define TLS_REQUIRE_CLIENT_CERTIFICATE   "TLS.requireClientCertificate"  
+// #define TLS_NEGOTIATION_TIMEOUT_SEC      "TLS.negotiationTimeoutSec"
+// #define TLS_NEGOTIATION_TIMEOUT_MSEC     "TLS.negotiationTimemoutMsec"
+// 
+// #define LOCAL_INTERFACE                  "Account.localInterface"
+// #define PUBLISHED_SAMEAS_LOCAL           "Account.publishedSameAsLocal"
+// #define LOCAL_PORT                       "Account.localPort"
+// #define PUBLISHED_PORT                   "Account.publishedPort"
+// #define PUBLISHED_ADDRESS                "Account.publishedAddress"
+// 
+// #define REGISTRATION_STATUS              "Registration.Status"
+// #define REGISTRATION_STATE_CODE          "Registration.code"
+// #define REGISTRATION_STATE_DESCRIPTION   "Registration.description"
+
+
+#define IP2IP_PROFILE                      "IP2IP"
+
+#define ACCOUNT_ID                         "Account.id"
+#define ACCOUNT_TYPE                       "Account.type"
+#define ACCOUNT_ALIAS                      "Account.alias"
+#define ACCOUNT_ENABLED                    "Account.enable"
+#define ACCOUNT_MAILBOX                    "Account.mailbox"
+#define ACCOUNT_USERAGENT                  "Account.useragent"
+#define ACCOUNT_REGISTRATION_EXPIRE        "Account.registrationExpire"
+#define ACCOUNT_SIP_STUN_SERVER            "STUN.server"
+#define ACCOUNT_SIP_STUN_ENABLED           "STUN.enable"
+#define ACCOUNT_DTMF_TYPE                  "Account.dtmfType"
+#define ACCOUNT_HOSTNAME                   "Account.hostname"
+#define ACCOUNT_USERNAME                   "Account.username"
+#define ACCOUNT_ROUTE                      "Account.routeset"
+#define ACCOUNT_PASSWORD                   "Account.password"
+#define ACCOUNT_REALM                      "Account.realm"
+#define ACCOUNT_KEY_EXCHANGE               "SRTP.keyExchange"
+#define ACCOUNT_SRTP_ENABLED               "SRTP.enable"
+#define ACCOUNT_SRTP_RTP_FALLBACK          "SRTP.rtpFallback"
+#define ACCOUNT_ZRTP_DISPLAY_SAS           "ZRTP.displaySAS"
+#define ACCOUNT_ZRTP_NOT_SUPP_WARNING      "ZRTP.notSuppWarning"
+#define ACCOUNT_ZRTP_HELLO_HASH            "ZRTP.helloHashEnable"
+#define ACCOUNT_DISPLAY_SAS_ONCE           "ZRTP.displaySasOnce"
+#define KEY_EXCHANGE_NONE                  "none"
+#define ZRTP                               "zrtp"
+#define SDES                               "sdes"
+
+#define CONFIG_RINGTONE_PATH               "Account.ringtonePath"
+#define CONFIG_RINGTONE_ENABLED            "Account.ringtoneEnabled"
+
+#define TLS_LISTENER_PORT                  "TLS.listenerPort"
+#define TLS_ENABLE                         "TLS.enable"
+#define TLS_PORT                           "TLS.port"
+#define TLS_CA_LIST_FILE                   "TLS.certificateListFile"
+#define TLS_CERTIFICATE_FILE               "TLS.certificateFile"
+#define TLS_PRIVATE_KEY_FILE               "TLS.privateKeyFile"
+#define TLS_PASSWORD                       "TLS.password"
+#define TLS_METHOD                         "TLS.method"
+#define TLS_CIPHERS                        "TLS.ciphers"
+#define TLS_SERVER_NAME                    "TLS.serverName"
+#define TLS_VERIFY_SERVER                  "TLS.verifyServer"
+#define TLS_VERIFY_CLIENT                  "TLS.verifyClient"
+#define TLS_REQUIRE_CLIENT_CERTIFICATE     "TLS.requireClientCertificate"
+#define TLS_NEGOTIATION_TIMEOUT_SEC        "TLS.negotiationTimeoutSec"
+#define TLS_NEGOTIATION_TIMEOUT_MSEC       "TLS.negotiationTimemoutMsec"
+
+#define LOCAL_INTERFACE                    "Account.localInterface"
+#define PUBLISHED_SAMEAS_LOCAL             "Account.publishedSameAsLocal"
+#define LOCAL_PORT                         "Account.localPort"
+#define PUBLISHED_PORT                     "Account.publishedPort"
+#define PUBLISHED_ADDRESS                  "Account.publishedAddress"
+
+#define REGISTRATION_STATUS                "Registration.Status"
+#define REGISTRATION_STATE_CODE            "Registration.code"
+#define REGISTRATION_STATE_DESCRIPTION     "Registration.description"
+
+#define SHORTCUT_PICKUP                    "pickUp"
+#define SHORTCUT_HANGUP                    "hangUp"
+#define SHORTCUT_POPUP                     "popupWindow"
+#define SHORTCUT_TOGGLEPICKUPHANGUP        "togglePickupHangup"
+#define SHORTCUT_TOGGLEHOLD                "toggleHold"
+
+
+#define CONFIG_ACCOUNT_HOSTNAME             "Account.hostname"
+#define CONFIG_ACCOUNT_USERNAME             "Account.username"
+#define CONFIG_ACCOUNT_ROUTESET             "Account.routeset"
+#define CONFIG_ACCOUNT_PASSWORD             "Account.password"
+#define CONFIG_ACCOUNT_REALM                "Account.realm"
+#define CONFIG_ACCOUNT_DEFAULT_REALM        "*"
+#define CONFIG_ACCOUNT_USERAGENT            "Account.useragent"
 
 
 /** Maybe to remove **/
-#define ACCOUNT_EXPIRE                   "Account.expire"
-#define ACCOUNT_STATUS                   "Status"
-#define ACCOUNT_EXPIRE_DEFAULT            600
-#define ACCOUNT_ENABLED_TRUE              "true"
-#define ACCOUNT_ENABLED_FALSE             "false"
+// #define ACCOUNT_EXPIRE                   "Account.expire"
+// #define ACCOUNT_STATUS                   "Status"
+#define REGISTRATION_EXPIRE_DEFAULT            600
+#define REGISTRATION_ENABLED_TRUE              "true"
+#define REGISTRATION_ENABLED_FALSE             "false"
 #define ACCOUNT_TYPE_SIP                  "SIP"
 #define ACCOUNT_TYPE_IAX                  "IAX"
 #define ACCOUNT_TYPES_TAB                 {QString(ACCOUNT_TYPE_SIP), QString(ACCOUNT_TYPE_IAX)}
@@ -250,34 +326,34 @@
 #define CONST_PULSEAUDIO                  1
 
 /** TLS */
-#define TLS_LISTENER_PORT                   "TLS.listenerPort"
-#define TLS_ENABLE                          "TLS.enable"
-#define TLS_PORT                            "TLS.port"
-#define TLS_CA_LIST_FILE                    "TLS.certificateListFile"
-#define TLS_CERTIFICATE_FILE                "TLS.certificateFile"
-#define TLS_PRIVATE_KEY_FILE                "TLS.privateKeyFile"
-#define TLS_PASSWORD                        "TLS.password"
-#define TLS_METHOD                          "TLS.method"
-#define TLS_CIPHERS                         "TLS.ciphers"
-#define TLS_SERVER_NAME                     "TLS.serverName"
-#define TLS_VERIFY_SERVER                   "TLS.verifyServer"
-#define TLS_VERIFY_CLIENT                   "TLS.verifyClient"
-#define TLS_REQUIRE_CLIENT_CERTIFICATE      "TLS.requireClientCertificate"  
-#define TLS_NEGOTIATION_TIMEOUT_SEC         "TLS.negotiationTimeoutSec"
-#define TLS_NEGOTIATION_TIMEOUT_MSEC        "TLS.negotiationTimemoutMsec"
-
-#define ACCOUNT_ID                         "Account.id"
-#define ACCOUNT_AUTHENTICATION_USERNAME    "authenticationUsername"
-#define ACCOUNT_KEY_EXCHANGE               "SRTP.keyExchange"
-#define ACCOUNT_SRTP_ENABLED               "SRTP.enable"
-#define ACCOUNT_SRTP_RTP_FALLBACK          "SRTP.rtpFallback"
-#define ACCOUNT_ZRTP_DISPLAY_SAS           "ZRTP.displaySAS"
-#define ACCOUNT_ZRTP_NOT_SUPP_WARNING      "ZRTP.notSuppWarning"
-#define ACCOUNT_ZRTP_HELLO_HASH            "ZRTP.helloHashEnable"
-#define ACCOUNT_DISPLAY_SAS_ONCE           "ZRTP.displaySasOnce"
-#define KEY_EXCHANGE_NONE                  "0"
-#define ZRTP                               "1"
-#define SDES                               "2"
+// #define TLS_LISTENER_PORT                   "TLS.listenerPort"
+// #define TLS_ENABLE                          "TLS.enable"
+// #define TLS_PORT                            "TLS.port"
+// #define TLS_CA_LIST_FILE                    "TLS.certificateListFile"
+// #define TLS_CERTIFICATE_FILE                "TLS.certificateFile"
+// #define TLS_PRIVATE_KEY_FILE                "TLS.privateKeyFile"
+// #define TLS_PASSWORD                        "TLS.password"
+// #define TLS_METHOD                          "TLS.method"
+// #define TLS_CIPHERS                         "TLS.ciphers"
+// #define TLS_SERVER_NAME                     "TLS.serverName"
+// #define TLS_VERIFY_SERVER                   "TLS.verifyServer"
+// #define TLS_VERIFY_CLIENT                   "TLS.verifyClient"
+// #define TLS_REQUIRE_CLIENT_CERTIFICATE      "TLS.requireClientCertificate"  
+// #define TLS_NEGOTIATION_TIMEOUT_SEC         "TLS.negotiationTimeoutSec"
+// #define TLS_NEGOTIATION_TIMEOUT_MSEC        "TLS.negotiationTimemoutMsec"
+
+// #define ACCOUNT_ID                         "Account.id"
+// #define ACCOUNT_AUTHENTICATION_USERNAME    "authenticationUsername"
+// #define ACCOUNT_KEY_EXCHANGE               "SRTP.keyExchange"
+// #define ACCOUNT_SRTP_ENABLED               "SRTP.enable"
+// #define ACCOUNT_SRTP_RTP_FALLBACK          "SRTP.rtpFallback"
+// #define ACCOUNT_ZRTP_DISPLAY_SAS           "ZRTP.displaySAS"
+// #define ACCOUNT_ZRTP_NOT_SUPP_WARNING      "ZRTP.notSuppWarning"
+// #define ACCOUNT_ZRTP_HELLO_HASH            "ZRTP.helloHashEnable"
+// #define ACCOUNT_DISPLAY_SAS_ONCE           "ZRTP.displaySasOnce"
+// #define KEY_EXCHANGE_NONE                  "0"
+// #define ZRTP                               "1"
+// #define SDES                               "2"
 
 typedef enum
 { 
@@ -317,3 +393,17 @@ static const QString empty("");
 #define MIME_PLAIN_TEXT       "text/plain"
 #endif
 
+/** HISTORY SERIALIZATION */
+#define ACCOUNT_ID_KEY      "accountid"
+#define CALLID_KEY          "callid"
+#define CONFID_KEY          "confid"
+#define DISPLAY_NAME_KEY    "display_name"
+#define PEER_NUMBER_KEY     "peer_number"
+#define RECORDING_PATH_KEY  "recordfile"
+#define STATE_KEY           "state"
+#define TIMESTAMP_START_KEY "timestamp_start"
+#define TIMESTAMP_STOP_KEY  "timestamp_stop"
+#define MISSED_STRING       "missed"
+#define INCOMING_STRING     "incoming"
+#define OUTGOING_STRING     "outgoing"
+