diff --git a/sflphone-common/src/dbus/callmanager-introspec.xml b/sflphone-common/src/dbus/callmanager-introspec.xml
index 83e5009c97a16f584f09f7ec1896e585fc8d2f37..34f4eab3ec6cf7f05cd51faf845a0c64313654dd 100644
--- a/sflphone-common/src/dbus/callmanager-introspec.xml
+++ b/sflphone-common/src/dbus/callmanager-introspec.xml
@@ -1,11 +1,49 @@
-<?xml version="1.0" ?>
+<?xml version="1.0" encoding="UTF-8" ?>
 <node name="/org/sflphone/SFLphone">
+
+  <!--* The CallManager interface is used to manage any call related
+	actions. 
+
+	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
+	otehr hand, SFLphone-daemon will generate a unique callID on
+	incoming calls.
+
+	Actions are performed asynchronously, SFLphone-client should
+	subscribe to the callStateChanged signal in order to be
+	notified on updates in call status.
+    -->
   <interface name="org.sflphone.SFLphone.CallManager">
-  
+
     <method name="placeCall">
-      <arg type="s" name="accountID" direction="in"/>
-      <arg type="s" name="callID" direction="in"/>
-      <arg type="s" name="to" direction="in"/>
+      <!--* This is the main method in order to place a new call. The
+            call is registered to the daemon using this method
+            specified a unique identifier and VoIP Accout to be bound with.
+
+	    The account is specified by its accountID. 
+
+	    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.
+
+	    The callID is a unique identifier that must be randomly
+	    generated on sflphone-client's side. Any subsequent
+	    actions refering to this call must use this callID.
+
+	    If bound to a VoIP account, the to argument is the phone
+	    number. In case of calls involving "IP2IP_PROFILE", a
+	    complete SIP URI must be specified.
+
+            @param[in] input accountID
+            @param[in] input callID
+	    @param[in] input to
+        -->
+      <arg type="s" name="accountID" direction="in" />
+      <arg type="s" name="callID" direction="in" />
+      <arg type="s" name="to" direction="in" />
     </method>
 
     <method name="placeCallFirstAccount">
@@ -14,84 +52,186 @@
     </method>
     
     <method name="refuse">
+      <!--* Method called to refuse an incoming call.
+
+            @param[in] input callID
+        -->
       <arg type="s" name="callID" direction="in"/>
     </method>
     
     <method name="accept">
+      <!--* Method called to answer an incoming call. Automatically put
+	    the current call on state HOLD.
+
+            @param[in] input callID
+        -->
       <arg type="s" name="callID" direction="in"/>
     </method>
     
     <method name="hangUp">
+      <!--* Method called to hangup a call in state "CURRENT" or "HOLD".
+
+            @param[in] input callID
+        -->
       <arg type="s" name="callID" direction="in"/>
     </method>
 
     <method name="hangUpConference">
+      <!--* This method will hangup a conference in state ""
+	    every call participating to the conference.
+
+            @param[in] input confID
+        -->
       <arg type="s" name="confID" direction="in"/>
     </method>
     
     <method name="hold">
+      <!--* Place this call on state HOLD.
+
+            @param[in] input confID
+        -->
       <arg type="s" name="callID" direction="in"/>
     </method>
     
     <method name="unhold">
+      <!--* Place this call on state CURRENT.
+
+            @param[in] input confID
+        -->
       <arg type="s" name="callID" direction="in"/>
     </method>
     
     <method name="transfert">
+      <!--* Transfer a call to given phone number.
+
+            @param[in] input confID
+	    @param[in] input to
+        -->
       <arg type="s" name="callID" direction="in"/>
       <arg type="s" name="to" direction="in"/>
     </method>
     
     <method name="playDTMF">
+      <!--* Dual-Tone multi-frequency. Tell SFLphone-daemon to play
+	    dial tones. A SIP INFO message is sent to notify the server.
+
+            @param[in] input Unicode charter for pressed key
+        -->
       <arg type="s" name="key" direction="in"/>
     </method>
     
     <method name="startTone">
+      <!--* This method is used to start audio stream and play tone.
+
+            @param[in] input confID
+        -->
       <arg type="i" name="start" direction="in"/>
       <arg type="i" name="type" direction="in"/>
     </method>
 
     <method name="setVolume">
+      <!--* This method sets the volume using a linear scale
+            [0,100]. Pulseaudio has its own mechanism to modify
+            application volume. This method is enabled only if the
+            ALSA API is used. 
+
+            @param[in] input device
+	    @param[in] input value
+        -->
       <arg type="s" name="device" direction="in"/>
       <arg type="d" name="value" direction="in"/>
     </method>
     
     <method name="getVolume">
+      <!--* This method is enabled only if the ALSA API is used, Pulseaudio 
+	    has its own mechanism to modify application volume. Return
+	    a value on a linear scale [0,100].
+
+            @param[in] input device
+	    @param[out] output value
+        -->
       <arg type="s" name="device" direction="in"/>
       <arg type="d" name="value" direction="out"/>
     </method>
 
     <method name="joinParticipant">
+      <!--* Join two participants together to create a 3-way
+            conference including current SFLphone-client.
+	    conferenceCreated signal is emited on success.
+
+            @param[in] input sel_callID
+	    @param[in] input drag_callID
+        -->
       <arg type="s" name="sel_callID" direction="in"/>
       <arg type="s" name="drag_callID" direction="in"/>
     </method>
 
     <method name="addParticipant">
+      <!--* Join a new particiant to an already created conference.
+            conferenceChaged signal is emited on success.
+
+            @param[in] input callID
+	    @param[in] input confID
+        -->
       <arg type="s" name="callID" direction="in"/>
       <arg type="s" name="confID" direction="in"/>
     </method>
 
     <method name="addMainParticipant">
+      <!--* As SFLphone-daemon can handle multiple calls and
+            conferences. It may happen that SFLphone-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.
+
+	    It put the current call on state HOLD or detach
+	    SFLphone-client's user from the another conference.
+
+	    @param[in] input confID
+        -->
       <arg type="s" name="confID" direction="in"/>
     </method>
 
     <method name="detachParticipant">
+      <!--* Detach the given call from the conference. If only one
+            participant is left, the conference is deleted and the 
+	    "conferenceRemoved" signal is emited.
+
+            @param[in] input callID
+        -->
       <arg type="s" name="callID" direction="in"/>
     </method>
 
     <method name="joinConference">
+      <!--* Method used to join two conference together.
+
+            @param[in] input sel_confID
+	    @param[in] input drag_confID
+        -->
       <arg type="s" name="sel_confID" direction="in"/>
       <arg type="s" name="drag_confID" direction="in"/>
     </method>
 
     <method name="getConferenceDetails">
+      <!--* Returns a hashtable containing conference details.
+
+	    "CONFID"
+	    "CONF_STATE"
+
+            @param[in] input confID
+	    @param[out] output a infos
+        -->
       <arg type="s" name="callID" direction="in"/>
       <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
       <arg type="a{ss}" name="infos" direction="out"/>
     </method>
     
     <method name="getConferenceList">
-        <arg type="as" name="list" direction="out"/>
+      <!--* Returns a list containing all active confID in SFLphone-daemon.
+
+	    @param[out] output list
+        -->
+      <arg type="as" name="list" direction="out"/>
     </method>
 
     <method name="setRecording">
@@ -104,16 +244,36 @@
     </method>
     
     <method name="getCallDetails">
+      <!--* Returns a hashtable containing call details.
+
+	    "ACCOUNTID"
+            "PEER_NUMBER"
+            "PEER_NAME"
+            "DISPLAY_NAME"    Name to display
+            "CALL_STATE"      The state of the call
+            "CALL_TYPE"       SIP or IAX
+
+            @param[in] input callID
+	    @param[out] output a infos
+        -->
       <arg type="s" name="callID" direction="in"/>
       <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
       <arg type="a{ss}" name="infos" direction="out"/>
     </method>
     
     <method name="getCallList">
-        <arg type="as" name="list" direction="out"/>
+      <!--* Returns a list containing all active callID in SFLphone-daemon.
+
+	    @param[out] output list
+        -->
+      <arg type="as" name="list" direction="out"/>
     </method>
 
     <method name="getCurrentCallID">
+      <!--* Returns the CURRENT callID
+
+	    @param[out] output callID
+        -->
       <arg type="s" name="callID" direction="out"/>
     </method>
 
@@ -128,6 +288,16 @@
     </signal>
     
     <signal name="incomingCall">
+      <!--* Signal sent to notify incoming calls.
+
+	    The callID generated by the daemon and must be stored
+	    by SFLphone-client in order to address other action for
+	    this call.
+
+            @param[in] input accountID
+            @param[in] input callID
+	    @param[in] input from
+        -->
       <arg type="s" name="accountID" />
       <arg type="s" name="callID" />
       <arg type="s" name="from" />
@@ -139,33 +309,92 @@
     </signal>
     
     <signal name="callStateChanged">
+      <!--* Signal emited by SFLphone-daemon to notify of a chage in
+	    call state.
+ 
+	    The following is a liste of possible call state:
+
+	    "INCOMING"          Initial state of incoming calls
+	    "RINGING"           Initial state of received outgoing call
+	    "CURRENT"           The normal active state of an answered call
+            "HUNGUP"            Notify that the call has been hungup by peer
+	    "BUSY" 
+            "FAILURE"           Signal emited on failure to answer the call
+            "HOLD"              CAll state is now on hold
+            "UNHOLD_RECORD"     CAll state is now on CURRENT (pursue recording)
+            "UNHOLD_CURRENT"    CAll state is now on CURRENT
+
+            @param[in] input accountID
+            @param[in] input state
+        -->
       <arg type="s" name="callID"  direction="out"/>
       <arg type="s" name="state"  direction="out"/>
     </signal>
 
     <signal name="conferenceChanged">
+      <!--* Signal emited by SFLphone-daemon to notify of a chage in
+	    conference state.
+ 
+	    The following is a liste of possible conference state:
+
+	    "ACTIVE_ATACHED"    Conference state is active
+	    "ACTIVE_DETACHED"   Conference state is active  
+	    "HOLD"              Conference is on hold
+
+            @param[in] input accountID
+            @param[in] input state
+        -->
       <arg type="s" name="confID"  direction="out"/>
       <arg type="s" name="state"  direction="out"/>
     </signal>
 
     <method name="getParticipantList">
+      <!--* Return a vector (or a list) containig the callIP of every
+            participant to a given conference. SFLphone-client should
+            keep and update the list of participant.
+
+            @param[in] input accountID
+            @param[out] output List of callID
+        -->
       <arg type="s" name="confID" direction="in"/>
       <arg type="as" name="list" direction="out"/>
     </method>
 
     <signal name="conferenceCreated">
+      <!--* Emited when a new conference is created. SFLphone-client
+            is reponsible to store the confID and call
+            getParticipantList to update display.
+
+            param[out] output Newly generated confID
+        -->
       <arg type="s" name="confID"  direction="out"/>
     </signal>
 
     <signal name="conferenceRemoved">
+      <!--* Emited when a new conference is removed. SFLphone-client
+            should have kept a list of current participant in order to
+            display modification. 
+
+            @param[out] output confID
+        -->
       <arg type="s" name="confID"  direction="out"/>
     </signal>
 
     <method name="holdConference">
+      <!--* Put the hole conference on hold. Every call participating
+            to this conference will be update to state HOLD. 
+
+            @param[in] input confID
+        -->
       <arg type="s" name="confID" direction="in"/>
     </method>
 
     <method name="unholdConference">
+      <!--* Put the conference on state ACTIVE. Every call participating
+            to this conference will be updated to state UNHOLD.
+
+            @param[in] input confID
+        -->
       <arg type="s" name="confID" direction="in"/>
     </method>