diff --git a/sflphone-client-gnome/VERSION b/sflphone-client-gnome/VERSION
index 517317e95fb23bda5f1c305dfaa84bfa8021a824..bc440692c3b559a2d3fe749ce99f8993b879252f 100644
--- a/sflphone-client-gnome/VERSION
+++ b/sflphone-client-gnome/VERSION
@@ -1 +1 @@
-0.9.6~beta
+0.9.6~rc1
diff --git a/sflphone-client-kde/po/de/sflphone-client-kde.po b/sflphone-client-kde/po/de/sflphone-client-kde.po
index 3d6e2576f7993bb099964f17398d6374a6e06d48..3df5026271a9b97e1a3e808718e6853df3493bec 100644
--- a/sflphone-client-kde/po/de/sflphone-client-kde.po
+++ b/sflphone-client-kde/po/de/sflphone-client-kde.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-07-03 13:49-0400\n"
+"POT-Creation-Date: 2009-07-08 15:18-0400\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -222,22 +222,22 @@ msgstr ""
 msgid "(C) 2009 Savoir-faire Linux"
 msgstr ""
 
-#: ../src/main.cpp:43
+#: ../src/main.cpp:42
 msgid "Jérémy Quentin"
 msgstr ""
 
-#: ../src/main.cpp:45
+#: ../src/main.cpp:43
 msgctxt "NAME OF TRANSLATORS"
 msgid "Your names"
 msgstr ""
 
-#: ../src/main.cpp:45
+#: ../src/main.cpp:43
 msgctxt "EMAIL OF TRANSLATORS"
 msgid "Your emails"
 msgstr ""
 
-#: ../src/SFLPhone.cpp:62 ../src/sflphone_kdeview.cpp:1047
-#: ../src/sflphone_kdeview.cpp:1052 ../src/sflphone_kdeview.cpp:1057
+#: ../src/SFLPhone.cpp:62 ../src/sflphone_kdeview.cpp:1066
+#: ../src/sflphone_kdeview.cpp:1071 ../src/sflphone_kdeview.cpp:1076
 msgid "SFLphone"
 msgstr ""
 
@@ -257,28 +257,28 @@ msgstr ""
 msgid "Click to accept or refuse it."
 msgstr ""
 
-#: ../src/sflphone_kdeview.cpp:864
+#: ../src/sflphone_kdeview.cpp:883
 msgid "No account registered"
 msgstr ""
 
-#: ../src/sflphone_kdeview.cpp:868
+#: ../src/sflphone_kdeview.cpp:887
 msgid "Using account"
 msgstr ""
 
-#: ../src/sflphone_kdeview.cpp:1047
+#: ../src/sflphone_kdeview.cpp:1066
 msgid "Main screen"
 msgstr ""
 
-#: ../src/sflphone_kdeview.cpp:1052 ../build/src/ui_dlggeneralbase.h:165
+#: ../src/sflphone_kdeview.cpp:1071 ../build/src/ui_dlggeneralbase.h:165
 msgid "Call history"
 msgstr ""
 
-#: ../src/sflphone_kdeview.cpp:1057
+#: ../src/sflphone_kdeview.cpp:1076
 #: ../build/src/ui_sflphone_kdeview_base.h:407
 msgid "Address book"
 msgstr ""
 
-#: ../src/sflphone_kdeview.cpp:1071 ../src/sflphone_kdeview.cpp:1132
+#: ../src/sflphone_kdeview.cpp:1090 ../src/sflphone_kdeview.cpp:1151
 msgid "Edit before call"
 msgstr ""
 
@@ -352,7 +352,7 @@ msgid "Hooks"
 msgstr ""
 
 #: ../build/src/ui_dlgaccountsbase.h:321
-#: ../build/src/ui_dlgaddressbookbase.h:142 ../build/src/ui_dlgaudiobase.h:262
+#: ../build/src/ui_dlgaddressbookbase.h:142 ../build/src/ui_dlgaudiobase.h:263
 #: ../build/src/ui_dlgdisplaybase.h:120 ../build/src/ui_dlggeneralbase.h:164
 #: ../build/src/ui_dlghooksbase.h:173 ../build/src/ui_dlgrecordbase.h:90
 #: ../build/src/ui_sflphone_kdeview_base.h:390
@@ -476,56 +476,52 @@ msgstr ""
 msgid "&Home"
 msgstr ""
 
-#: ../build/src/ui_dlgaudiobase.h:264
+#: ../build/src/ui_dlgaudiobase.h:265
 msgid "Audio device"
 msgstr ""
 
-#: ../build/src/ui_dlgaudiobase.h:267
+#: ../build/src/ui_dlgaudiobase.h:268
 msgid "ALSA"
 msgstr ""
 
-#: ../build/src/ui_dlgaudiobase.h:268
+#: ../build/src/ui_dlgaudiobase.h:269
 msgid "PulseAudio"
 msgstr ""
 
-#: ../build/src/ui_dlgaudiobase.h:270
+#: ../build/src/ui_dlgaudiobase.h:271
 msgid "Enable ringtones"
 msgstr ""
 
-#: ../build/src/ui_dlgaudiobase.h:271
-msgid "&Codecs"
+#: ../build/src/ui_dlgaudiobase.h:272
+msgid "*.ul *.au *.wav"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:273
-msgid "Active"
+msgid "&Codecs"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:275
-msgid "Name"
+msgid "Active"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:277
-msgid "Frequency"
+msgid "Name"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:279
-msgid "Bitrate"
+msgid "Frequency"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:281
-msgid "Bandwidth"
-msgstr ""
-
-#: ../build/src/ui_dlgaudiobase.h:284
-msgid "ALSA settings"
+msgid "Bitrate"
 msgstr ""
 
-#: ../build/src/ui_dlgaudiobase.h:285
-msgid "In"
+#: ../build/src/ui_dlgaudiobase.h:283
+msgid "Bandwidth"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:286
-msgid "Out"
+msgid "ALSA settings"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:287
@@ -533,10 +529,18 @@ msgid "ALSA plugin"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:288
-msgid "PulseAudio settings"
+msgid "In"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:289
+msgid "Out"
+msgstr ""
+
+#: ../build/src/ui_dlgaudiobase.h:290
+msgid "PulseAudio settings"
+msgstr ""
+
+#: ../build/src/ui_dlgaudiobase.h:291
 msgid "Mute other applications during a call"
 msgstr ""
 
@@ -651,7 +655,7 @@ msgid "Display dialpad"
 msgstr ""
 
 #: ../build/src/ui_sflphone_kdeview_base.h:405
-msgctxt "Action record a calld"
+msgctxt "Action record a call"
 msgid "Record"
 msgstr ""
 
diff --git a/sflphone-client-kde/po/es/sflphone-client-kde.po b/sflphone-client-kde/po/es/sflphone-client-kde.po
index 79dcfb0c572de5c5d2afbbfd3818ddf66780607c..d2f4921bf98f6c95717f6a389333e15cff51bbf8 100644
--- a/sflphone-client-kde/po/es/sflphone-client-kde.po
+++ b/sflphone-client-kde/po/es/sflphone-client-kde.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-07-03 13:49-0400\n"
+"POT-Creation-Date: 2009-07-08 15:18-0400\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -222,22 +222,22 @@ msgstr ""
 msgid "(C) 2009 Savoir-faire Linux"
 msgstr ""
 
-#: ../src/main.cpp:43
+#: ../src/main.cpp:42
 msgid "Jérémy Quentin"
 msgstr ""
 
-#: ../src/main.cpp:45
+#: ../src/main.cpp:43
 msgctxt "NAME OF TRANSLATORS"
 msgid "Your names"
 msgstr ""
 
-#: ../src/main.cpp:45
+#: ../src/main.cpp:43
 msgctxt "EMAIL OF TRANSLATORS"
 msgid "Your emails"
 msgstr ""
 
-#: ../src/SFLPhone.cpp:62 ../src/sflphone_kdeview.cpp:1047
-#: ../src/sflphone_kdeview.cpp:1052 ../src/sflphone_kdeview.cpp:1057
+#: ../src/SFLPhone.cpp:62 ../src/sflphone_kdeview.cpp:1066
+#: ../src/sflphone_kdeview.cpp:1071 ../src/sflphone_kdeview.cpp:1076
 msgid "SFLphone"
 msgstr ""
 
@@ -257,28 +257,28 @@ msgstr ""
 msgid "Click to accept or refuse it."
 msgstr ""
 
-#: ../src/sflphone_kdeview.cpp:864
+#: ../src/sflphone_kdeview.cpp:883
 msgid "No account registered"
 msgstr ""
 
-#: ../src/sflphone_kdeview.cpp:868
+#: ../src/sflphone_kdeview.cpp:887
 msgid "Using account"
 msgstr ""
 
-#: ../src/sflphone_kdeview.cpp:1047
+#: ../src/sflphone_kdeview.cpp:1066
 msgid "Main screen"
 msgstr ""
 
-#: ../src/sflphone_kdeview.cpp:1052 ../build/src/ui_dlggeneralbase.h:165
+#: ../src/sflphone_kdeview.cpp:1071 ../build/src/ui_dlggeneralbase.h:165
 msgid "Call history"
 msgstr ""
 
-#: ../src/sflphone_kdeview.cpp:1057
+#: ../src/sflphone_kdeview.cpp:1076
 #: ../build/src/ui_sflphone_kdeview_base.h:407
 msgid "Address book"
 msgstr ""
 
-#: ../src/sflphone_kdeview.cpp:1071 ../src/sflphone_kdeview.cpp:1132
+#: ../src/sflphone_kdeview.cpp:1090 ../src/sflphone_kdeview.cpp:1151
 msgid "Edit before call"
 msgstr ""
 
@@ -352,7 +352,7 @@ msgid "Hooks"
 msgstr ""
 
 #: ../build/src/ui_dlgaccountsbase.h:321
-#: ../build/src/ui_dlgaddressbookbase.h:142 ../build/src/ui_dlgaudiobase.h:262
+#: ../build/src/ui_dlgaddressbookbase.h:142 ../build/src/ui_dlgaudiobase.h:263
 #: ../build/src/ui_dlgdisplaybase.h:120 ../build/src/ui_dlggeneralbase.h:164
 #: ../build/src/ui_dlghooksbase.h:173 ../build/src/ui_dlgrecordbase.h:90
 #: ../build/src/ui_sflphone_kdeview_base.h:390
@@ -476,56 +476,52 @@ msgstr ""
 msgid "&Home"
 msgstr ""
 
-#: ../build/src/ui_dlgaudiobase.h:264
+#: ../build/src/ui_dlgaudiobase.h:265
 msgid "Audio device"
 msgstr ""
 
-#: ../build/src/ui_dlgaudiobase.h:267
+#: ../build/src/ui_dlgaudiobase.h:268
 msgid "ALSA"
 msgstr ""
 
-#: ../build/src/ui_dlgaudiobase.h:268
+#: ../build/src/ui_dlgaudiobase.h:269
 msgid "PulseAudio"
 msgstr ""
 
-#: ../build/src/ui_dlgaudiobase.h:270
+#: ../build/src/ui_dlgaudiobase.h:271
 msgid "Enable ringtones"
 msgstr ""
 
-#: ../build/src/ui_dlgaudiobase.h:271
-msgid "&Codecs"
+#: ../build/src/ui_dlgaudiobase.h:272
+msgid "*.ul *.au *.wav"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:273
-msgid "Active"
+msgid "&Codecs"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:275
-msgid "Name"
+msgid "Active"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:277
-msgid "Frequency"
+msgid "Name"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:279
-msgid "Bitrate"
+msgid "Frequency"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:281
-msgid "Bandwidth"
-msgstr ""
-
-#: ../build/src/ui_dlgaudiobase.h:284
-msgid "ALSA settings"
+msgid "Bitrate"
 msgstr ""
 
-#: ../build/src/ui_dlgaudiobase.h:285
-msgid "In"
+#: ../build/src/ui_dlgaudiobase.h:283
+msgid "Bandwidth"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:286
-msgid "Out"
+msgid "ALSA settings"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:287
@@ -533,10 +529,18 @@ msgid "ALSA plugin"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:288
-msgid "PulseAudio settings"
+msgid "In"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:289
+msgid "Out"
+msgstr ""
+
+#: ../build/src/ui_dlgaudiobase.h:290
+msgid "PulseAudio settings"
+msgstr ""
+
+#: ../build/src/ui_dlgaudiobase.h:291
 msgid "Mute other applications during a call"
 msgstr ""
 
@@ -651,7 +655,7 @@ msgid "Display dialpad"
 msgstr ""
 
 #: ../build/src/ui_sflphone_kdeview_base.h:405
-msgctxt "Action record a calld"
+msgctxt "Action record a call"
 msgid "Record"
 msgstr ""
 
diff --git a/sflphone-client-kde/po/fr/sflphone-client-kde.po b/sflphone-client-kde/po/fr/sflphone-client-kde.po
index aad2a8233fc14b7c9a826a414c4002fd4edea9c8..7e73a3ee9fc66d2d2f5186c05ee2b5f77012d65e 100644
--- a/sflphone-client-kde/po/fr/sflphone-client-kde.po
+++ b/sflphone-client-kde/po/fr/sflphone-client-kde.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-07-03 13:49-0400\n"
+"POT-Creation-Date: 2009-07-08 15:18-0400\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -224,22 +224,22 @@ msgstr "SFLphone Client KDE"
 msgid "(C) 2009 Savoir-faire Linux"
 msgstr "(C) 2009 Savoir-faire Linux"
 
-#: ../src/main.cpp:43
+#: ../src/main.cpp:42
 msgid "Jérémy Quentin"
 msgstr "Jérémy Quentin"
 
-#: ../src/main.cpp:45
+#: ../src/main.cpp:43
 msgctxt "NAME OF TRANSLATORS"
 msgid "Your names"
 msgstr "Jérémy Quentin"
 
-#: ../src/main.cpp:45
+#: ../src/main.cpp:43
 msgctxt "EMAIL OF TRANSLATORS"
 msgid "Your emails"
 msgstr "jeremy.quentin@savoirfairelinux.com"
 
-#: ../src/SFLPhone.cpp:62 ../src/sflphone_kdeview.cpp:1047
-#: ../src/sflphone_kdeview.cpp:1052 ../src/sflphone_kdeview.cpp:1057
+#: ../src/SFLPhone.cpp:62 ../src/sflphone_kdeview.cpp:1066
+#: ../src/sflphone_kdeview.cpp:1071 ../src/sflphone_kdeview.cpp:1076
 msgid "SFLphone"
 msgstr "SFLphone"
 
@@ -261,28 +261,28 @@ msgstr "Vous avez un appel entrant de"
 msgid "Click to accept or refuse it."
 msgstr "Cliquez sur ce message pour accepter ou refuser"
 
-#: ../src/sflphone_kdeview.cpp:864
+#: ../src/sflphone_kdeview.cpp:883
 msgid "No account registered"
 msgstr "Aucun compte enregistré"
 
-#: ../src/sflphone_kdeview.cpp:868
+#: ../src/sflphone_kdeview.cpp:887
 msgid "Using account"
 msgstr "Utilise le compte"
 
-#: ../src/sflphone_kdeview.cpp:1047
+#: ../src/sflphone_kdeview.cpp:1066
 msgid "Main screen"
 msgstr "Écran principal"
 
-#: ../src/sflphone_kdeview.cpp:1052 ../build/src/ui_dlggeneralbase.h:165
+#: ../src/sflphone_kdeview.cpp:1071 ../build/src/ui_dlggeneralbase.h:165
 msgid "Call history"
 msgstr "Historique d'appel"
 
-#: ../src/sflphone_kdeview.cpp:1057
+#: ../src/sflphone_kdeview.cpp:1076
 #: ../build/src/ui_sflphone_kdeview_base.h:407
 msgid "Address book"
 msgstr "Carnet d'adresse"
 
-#: ../src/sflphone_kdeview.cpp:1071 ../src/sflphone_kdeview.cpp:1132
+#: ../src/sflphone_kdeview.cpp:1090 ../src/sflphone_kdeview.cpp:1151
 msgid "Edit before call"
 msgstr "Éditer avant d'appeler"
 
@@ -356,7 +356,7 @@ msgid "Hooks"
 msgstr "Ancrage"
 
 #: ../build/src/ui_dlgaccountsbase.h:321
-#: ../build/src/ui_dlgaddressbookbase.h:142 ../build/src/ui_dlgaudiobase.h:262
+#: ../build/src/ui_dlgaddressbookbase.h:142 ../build/src/ui_dlgaudiobase.h:263
 #: ../build/src/ui_dlgdisplaybase.h:120 ../build/src/ui_dlggeneralbase.h:164
 #: ../build/src/ui_dlghooksbase.h:173 ../build/src/ui_dlgrecordbase.h:90
 #: ../build/src/ui_sflphone_kdeview_base.h:390
@@ -493,67 +493,71 @@ msgstr "&Mobiles"
 msgid "&Home"
 msgstr "P&ersonnels"
 
-#: ../build/src/ui_dlgaudiobase.h:264
+#: ../build/src/ui_dlgaudiobase.h:265
 msgid "Audio device"
 msgstr "Interface audio"
 
-#: ../build/src/ui_dlgaudiobase.h:267
+#: ../build/src/ui_dlgaudiobase.h:268
 msgid "ALSA"
 msgstr "ALSA"
 
-#: ../build/src/ui_dlgaudiobase.h:268
+#: ../build/src/ui_dlgaudiobase.h:269
 msgid "PulseAudio"
 msgstr "PulseAudio"
 
-#: ../build/src/ui_dlgaudiobase.h:270
+#: ../build/src/ui_dlgaudiobase.h:271
 msgid "Enable ringtones"
 msgstr "Activer les sonneries"
 
-#: ../build/src/ui_dlgaudiobase.h:271
+#: ../build/src/ui_dlgaudiobase.h:272
+msgid "*.ul *.au *.wav"
+msgstr ""
+
+#: ../build/src/ui_dlgaudiobase.h:273
 msgid "&Codecs"
 msgstr "&Codecs"
 
-#: ../build/src/ui_dlgaudiobase.h:273
+#: ../build/src/ui_dlgaudiobase.h:275
 msgid "Active"
 msgstr "Activé"
 
-#: ../build/src/ui_dlgaudiobase.h:275
+#: ../build/src/ui_dlgaudiobase.h:277
 msgid "Name"
 msgstr "Nom"
 
-#: ../build/src/ui_dlgaudiobase.h:277
+#: ../build/src/ui_dlgaudiobase.h:279
 msgid "Frequency"
 msgstr "Fréquence"
 
-#: ../build/src/ui_dlgaudiobase.h:279
+#: ../build/src/ui_dlgaudiobase.h:281
 msgid "Bitrate"
 msgstr "Bitrate"
 
-#: ../build/src/ui_dlgaudiobase.h:281
+#: ../build/src/ui_dlgaudiobase.h:283
 msgid "Bandwidth"
 msgstr "Bande passante"
 
-#: ../build/src/ui_dlgaudiobase.h:284
+#: ../build/src/ui_dlgaudiobase.h:286
 msgid "ALSA settings"
 msgstr "Paramètre ALSA"
 
-#: ../build/src/ui_dlgaudiobase.h:285
+#: ../build/src/ui_dlgaudiobase.h:287
+msgid "ALSA plugin"
+msgstr "Greffon ALSA"
+
+#: ../build/src/ui_dlgaudiobase.h:288
 msgid "In"
 msgstr "Entrée"
 
-#: ../build/src/ui_dlgaudiobase.h:286
+#: ../build/src/ui_dlgaudiobase.h:289
 msgid "Out"
 msgstr "Sortie"
 
-#: ../build/src/ui_dlgaudiobase.h:287
-msgid "ALSA plugin"
-msgstr "Greffon ALSA"
-
-#: ../build/src/ui_dlgaudiobase.h:288
+#: ../build/src/ui_dlgaudiobase.h:290
 msgid "PulseAudio settings"
 msgstr "Paramètres PulseAudio"
 
-#: ../build/src/ui_dlgaudiobase.h:289
+#: ../build/src/ui_dlgaudiobase.h:291
 msgid "Mute other applications during a call"
 msgstr "Couper le son des autres applications pendant un appel"
 
@@ -670,9 +674,10 @@ msgid "Display dialpad"
 msgstr "Afficher le clavier"
 
 #: ../build/src/ui_sflphone_kdeview_base.h:405
-msgctxt "Action record a calld"
+#, fuzzy
+msgctxt "Action record a call"
 msgid "Record"
-msgstr "Enregistrer"
+msgstr "Enregistrement"
 
 #: ../build/src/ui_sflphone_kdeview_base.h:406
 msgid "Account creation wizard"
@@ -682,6 +687,10 @@ msgstr "Assistant de création de compte"
 msgid "Attention:number of results exceeds max displayed."
 msgstr "Attention:tous les résultats ne sont pas affichés."
 
+#~ msgctxt "Action record a calld"
+#~ msgid "Record"
+#~ msgstr "Enregistrer"
+
 #~ msgid "Attention : SIP port must be over 1024 !"
 #~ msgstr "Attention : le port SIP doit être supérieur à 1024 !"
 
diff --git a/sflphone-client-kde/po/ru/sflphone-client-kde.po b/sflphone-client-kde/po/ru/sflphone-client-kde.po
index 79dcfb0c572de5c5d2afbbfd3818ddf66780607c..3a2f9f528549a963da6e8cb4483d53579d4f07ee 100644
--- a/sflphone-client-kde/po/ru/sflphone-client-kde.po
+++ b/sflphone-client-kde/po/ru/sflphone-client-kde.po
@@ -1,664 +1,1534 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-07-03 13:49-0400\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../src/Account.cpp:34
-msgctxt "account state"
-msgid "Registered"
-msgstr ""
-
-#: ../src/Account.cpp:36
-msgctxt "account state"
-msgid "Not Registered"
-msgstr ""
-
-#: ../src/Account.cpp:38
-msgctxt "account state"
-msgid "Trying..."
-msgstr ""
-
-#: ../src/Account.cpp:40
-msgctxt "account state"
-msgid "Error"
-msgstr ""
-
-#: ../src/Account.cpp:42
-msgctxt "account state"
-msgid "Authentication Failed"
-msgstr ""
-
-#: ../src/Account.cpp:44
-msgctxt "account state"
-msgid "Network unreachable"
-msgstr ""
-
-#: ../src/Account.cpp:46
-msgctxt "account state"
-msgid "Host unreachable"
-msgstr ""
-
-#: ../src/Account.cpp:48
-msgctxt "account state"
-msgid "Stun configuration error"
-msgstr ""
-
-#: ../src/Account.cpp:50
-msgctxt "account state"
-msgid "Stun server invalid"
-msgstr ""
-
-#: ../src/Account.cpp:51
-msgctxt "account state"
-msgid "Invalid"
-msgstr ""
-
-#: ../src/AccountWizard.cpp:163 ../src/AccountWizard.cpp:278
-msgid "Account Creation Wizard"
-msgstr ""
-
-#: ../src/AccountWizard.cpp:199
-msgid "Creation of account succeed with these parameters"
-msgstr ""
-
-#: ../src/AccountWizard.cpp:211
-msgid "Creation of account has failed for the reason"
-msgstr ""
-
-#: ../src/AccountWizard.cpp:217
-msgid "Register of account succeed with these parameters"
-msgstr ""
-
-#: ../src/AccountWizard.cpp:255 ../src/AccountWizard.cpp:440
-#: ../build/src/ui_dlgaccountsbase.h:359
-msgid "Alias"
-msgstr ""
-
-#: ../src/AccountWizard.cpp:256 ../src/AccountWizard.cpp:441
-#: ../build/src/ui_dlgaccountsbase.h:366
-msgid "Server"
-msgstr ""
-
-#: ../src/AccountWizard.cpp:257 ../src/AccountWizard.cpp:442
-#: ../build/src/ui_dlgaccountsbase.h:367
-msgid "User"
-msgstr ""
-
-#: ../src/AccountWizard.cpp:258 ../src/AccountWizard.cpp:443
-#: ../build/src/ui_dlgaccountsbase.h:368
-msgid "Password"
-msgstr ""
-
-#: ../src/AccountWizard.cpp:259 ../build/src/ui_dlgaccountsbase.h:360
-msgid "Protocol"
-msgstr ""
-
-#: ../src/AccountWizard.cpp:260 ../build/src/ui_dlgaccountsbase.h:369
-#: ../build/src/ui_sflphone_kdeview_base.h:396
-msgid "Mailbox"
-msgstr ""
-
-#: ../src/AccountWizard.cpp:279
-msgid "Welcome to the Account creation wizard of SFLphone"
-msgstr ""
+# Russian Translation.
+# Copyright (C) 2009 Savoir-Faire Linux Inc.
+# This file is distributed under the same license as the sflphone package.
+# Hussein Abdallah <hussein.abdallah@savoirfairelinux.com>, 2009
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: SFLphone 0.9.6\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-08 15:18-0400\n"
+"PO-Revision-Date: 2009-06-08 10:19 GMT-5\n"
+"Last-Translator: HUSSEIN ABDALLAH <hussein.abdallah@savoirfairelinux.com>\n"
+"Language-Team:  Savoir-Faire Linux Inc <sflphoneteam@savoirfairelinux.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../src/Account.cpp:34
+msgctxt "account state"
+msgid "Registered"
+msgstr ""
+
+#: ../src/Account.cpp:36
+msgctxt "account state"
+msgid "Not Registered"
+msgstr ""
+
+#: ../src/Account.cpp:38
+msgctxt "account state"
+msgid "Trying..."
+msgstr ""
+
+#: ../src/Account.cpp:40
+msgctxt "account state"
+msgid "Error"
+msgstr ""
+
+#: ../src/Account.cpp:42
+#, fuzzy
+msgctxt "account state"
+msgid "Bad authentification"
+msgstr "Включить предупреждения"
+
+#: ../src/Account.cpp:44
+msgctxt "account state"
+msgid "Network unreachable"
+msgstr ""
+
+#: ../src/Account.cpp:46
+msgctxt "account state"
+msgid "Host unreachable"
+msgstr ""
+
+#: ../src/Account.cpp:48
+#, fuzzy
+msgctxt "account state"
+msgid "Stun configuration error"
+msgstr "Окно настроек"
+
+#: ../src/Account.cpp:50
+#, fuzzy
+msgctxt "account state"
+msgid "Stun server invalid"
+msgstr "STUN-сервер"
+
+#: ../src/Account.cpp:51
+msgctxt "account state"
+msgid "Invalid"
+msgstr ""
+
+#: ../src/AccountWizard.cpp:163 ../src/AccountWizard.cpp:278
+msgid "Account Creation Wizard"
+msgstr "Мастер настройки SFLphone"
+
+#: ../src/AccountWizard.cpp:199
+msgid "Creation of account succeed with these parameters"
+msgstr "Успешное создание аккаунта с этими настройками"
+
+#: ../src/AccountWizard.cpp:211
+msgid "Creation of account has failed for the reason"
+msgstr "Создание аккаунта не получилось по этим причинам"
+
+#: ../src/AccountWizard.cpp:217
+msgid "Register of account succeed with these parameters"
+msgstr "Успешное регистрация аккаунта с этими настройками"
+
+#: ../src/AccountWizard.cpp:255 ../src/AccountWizard.cpp:440
+#: ../build/src/ui_dlgaccountsbase.h:359
+msgid "Alias"
+msgstr "Псевдоним"
+
+#: ../src/AccountWizard.cpp:256 ../src/AccountWizard.cpp:441
+#: ../build/src/ui_dlgaccountsbase.h:366
+msgid "Server"
+msgstr "Сервер"
+
+#: ../src/AccountWizard.cpp:257 ../src/AccountWizard.cpp:442
+#: ../build/src/ui_dlgaccountsbase.h:367
+msgid "User"
+msgstr "Пользователь"
+
+#: ../src/AccountWizard.cpp:258 ../src/AccountWizard.cpp:443
+#: ../build/src/ui_dlgaccountsbase.h:368
+msgid "Password"
+msgstr "Пароль"
+
+#: ../src/AccountWizard.cpp:259 ../build/src/ui_dlgaccountsbase.h:360
+msgid "Protocol"
+msgstr "Протокол"
+
+#: ../src/AccountWizard.cpp:260 ../build/src/ui_dlgaccountsbase.h:369
+#: ../build/src/ui_sflphone_kdeview_base.h:396
+msgid "Mailbox"
+msgstr "Звуковые сообщения"
+
+#: ../src/AccountWizard.cpp:279
+#, fuzzy
+msgid "Welcome to the Account creation wizard of SFLphone"
+msgstr "Добро пожаловать в мастер настройки SFLphone"
 
 #: ../src/AccountWizard.cpp:281
 msgid "This wizard will help you setting up an account."
-msgstr ""
-
-#: ../src/AccountWizard.cpp:309 ../src/conf/ConfigurationDialog.cpp:50
-msgid "Accounts"
-msgstr ""
-
-#: ../src/AccountWizard.cpp:310
-msgid "Please choose between those options :"
-msgstr ""
-
-#: ../src/AccountWizard.cpp:312
-msgid "Create a free SIP/IAX2 account on sflphone.org"
-msgstr ""
-
-#: ../src/AccountWizard.cpp:313
-msgid "Register an existing SIP/IAX2 account"
-msgstr ""
-
-#: ../src/AccountWizard.cpp:352
-msgid "VoIP Protocols"
-msgstr ""
-
-#: ../src/AccountWizard.cpp:353
-msgid "Choose the account type"
-msgstr ""
-
-#: ../src/AccountWizard.cpp:355
-msgid "Register a SIP (Session Initiation Protocol) account"
-msgstr ""
-
-#: ../src/AccountWizard.cpp:356
-msgid "Register a IAX2 (InterAsterisk eXchange) account"
-msgstr ""
-
-#: ../src/AccountWizard.cpp:395
-msgid "Optionnal Email Address"
-msgstr ""
-
-#: ../src/AccountWizard.cpp:396
-msgid "This email address will be used to send your voicemail messages."
-msgstr ""
-
-#: ../src/AccountWizard.cpp:398
-msgid "Email address"
-msgstr ""
-
-#: ../src/AccountWizard.cpp:432
-msgid "SIP Account Settings"
-msgstr ""
-
-#: ../src/AccountWizard.cpp:436
-msgid "IAX2 Account Settings"
-msgstr ""
-
-#: ../src/AccountWizard.cpp:438
-msgid "Please full these settings fields."
-msgstr ""
-
-#: ../src/AccountWizard.cpp:444
-msgid "Voicemail number"
-msgstr ""
-
-#: ../src/AccountWizard.cpp:523
-msgid "Network Address Translation (NAT)"
-msgstr ""
-
-#: ../src/AccountWizard.cpp:524
-msgid ""
-"You should probably enable this option if you're placed under a firewall"
-msgstr ""
-
-#: ../src/AccountWizard.cpp:526
-msgid "Enable STUN"
-msgstr ""
-
-#: ../src/AccountWizard.cpp:527
-msgid "Stun Server"
-msgstr ""
-
-#: ../src/AccountWizard.cpp:561
-msgid "Account Definition Finished"
-msgstr ""
-
-#: ../src/AccountWizard.cpp:562
-msgid ""
-"After checking the settings you chose, click \"Finish\" to create the "
-"account."
-msgstr ""
-
-#: ../src/ActionSetAccountFirst.cpp:26
-msgid "Default account"
-msgstr ""
-
-#: ../src/Call.cpp:116
-msgid "Transfer to : "
-msgstr ""
-
-#: ../src/main.cpp:34
-msgid "SFLphone KDE Client"
-msgstr ""
-
-#: ../src/main.cpp:38
-msgid "(C) 2009 Savoir-faire Linux"
-msgstr ""
-
-#: ../src/main.cpp:43
-msgid "Jérémy Quentin"
-msgstr ""
-
-#: ../src/main.cpp:45
-msgctxt "NAME OF TRANSLATORS"
-msgid "Your names"
-msgstr ""
-
-#: ../src/main.cpp:45
-msgctxt "EMAIL OF TRANSLATORS"
-msgid "Your emails"
-msgstr ""
-
-#: ../src/SFLPhone.cpp:62 ../src/sflphone_kdeview.cpp:1047
-#: ../src/sflphone_kdeview.cpp:1052 ../src/sflphone_kdeview.cpp:1057
-msgid "SFLphone"
-msgstr ""
-
-#: ../src/SFLPhone.cpp:181
-msgid "You still have some calls open. Please close all calls before quitting."
-msgstr ""
-
-#: ../src/SFLPhone.cpp:209
-msgid "Incoming call"
-msgstr ""
-
-#: ../src/SFLPhone.cpp:210
-msgid "You have an incoming call from"
-msgstr ""
-
-#: ../src/SFLPhone.cpp:210
-msgid "Click to accept or refuse it."
-msgstr ""
-
-#: ../src/sflphone_kdeview.cpp:864
-msgid "No account registered"
-msgstr ""
-
-#: ../src/sflphone_kdeview.cpp:868
-msgid "Using account"
-msgstr ""
-
-#: ../src/sflphone_kdeview.cpp:1047
-msgid "Main screen"
-msgstr ""
-
-#: ../src/sflphone_kdeview.cpp:1052 ../build/src/ui_dlggeneralbase.h:165
-msgid "Call history"
-msgstr ""
-
-#: ../src/sflphone_kdeview.cpp:1057
-#: ../build/src/ui_sflphone_kdeview_base.h:407
-msgid "Address book"
-msgstr ""
-
-#: ../src/sflphone_kdeview.cpp:1071 ../src/sflphone_kdeview.cpp:1132
-msgid "Edit before call"
-msgstr ""
-
-#: ../src/sflphone_const.h:56
-msgid "Call"
-msgstr ""
-
-#: ../src/sflphone_const.h:57 ../build/src/ui_sflphone_kdeview_base.h:392
-msgid "Hang up"
-msgstr ""
-
-#: ../src/sflphone_const.h:58 ../build/src/ui_sflphone_kdeview_base.h:393
-msgid "Hold"
-msgstr ""
-
-#: ../src/sflphone_const.h:59 ../build/src/ui_sflphone_kdeview_base.h:394
-msgid "Transfer"
-msgstr ""
-
-#: ../src/sflphone_const.h:60
-msgid "Record"
-msgstr ""
-
-#: ../src/sflphone_const.h:61
-msgid "Accept"
-msgstr ""
-
-#: ../src/sflphone_const.h:62
-msgid "Refuse"
-msgstr ""
-
-#: ../src/sflphone_const.h:63
-msgid "Unhold"
-msgstr ""
-
-#: ../src/sflphone_const.h:64
-msgid "Give up transfer"
-msgstr ""
-
-#: ../src/sflphone_const.h:65
-msgid "Call back"
-msgstr ""
-
-#: ../src/sflphone_const.h:66
-msgid "Give up search"
-msgstr ""
-
-#: ../src/conf/ConfigurationDialog.cpp:48 ../build/src/ui_dlgrecordbase.h:91
-msgid "General"
-msgstr ""
-
-#: ../src/conf/ConfigurationDialog.cpp:49
-msgid "Display"
-msgstr ""
-
-#: ../src/conf/ConfigurationDialog.cpp:51
-msgid "Audio"
-msgstr ""
-
-#: ../src/conf/ConfigurationDialog.cpp:52
-msgid "Address Book"
-msgstr ""
-
-#: ../src/conf/ConfigurationDialog.cpp:53
-msgctxt "Config section"
-msgid "Record"
-msgstr ""
-
-#: ../src/conf/ConfigurationDialog.cpp:54
-msgid "Hooks"
-msgstr ""
-
-#: ../build/src/ui_dlgaccountsbase.h:321
-#: ../build/src/ui_dlgaddressbookbase.h:142 ../build/src/ui_dlgaudiobase.h:262
-#: ../build/src/ui_dlgdisplaybase.h:120 ../build/src/ui_dlggeneralbase.h:164
-#: ../build/src/ui_dlghooksbase.h:173 ../build/src/ui_dlgrecordbase.h:90
-#: ../build/src/ui_sflphone_kdeview_base.h:390
-msgid "Form"
-msgstr ""
-
-#: ../build/src/ui_dlgaccountsbase.h:323
-msgid ""
-"By default, when you place a call, sflphone will use the first account in "
-"this list which is \"registered\". Change the order of the accounts using "
-"the \"Up\" and \"Down\" arrows. Enable/disable them by checking/unchecking "
-"them on the left of the item. Add or remove some with \"Plus\" and \"Sub\" "
-"buttons. Edit the selected account with the form on the right."
-msgstr ""
-
-#: ../build/src/ui_dlgaccountsbase.h:327
-msgid "Remove the selected account"
-msgstr ""
-
-#: ../build/src/ui_dlgaccountsbase.h:330
-msgid ""
-"This button will remove the selected account in the list below. Be sure you "
-"really don't need it anymore. If you think you might use it again later, "
-"just uncheck it."
-msgstr ""
-
-#: ../build/src/ui_dlgaccountsbase.h:335
-msgid "Remove"
-msgstr ""
-
-#: ../build/src/ui_dlgaccountsbase.h:336
-msgid "Backspace, Return"
-msgstr ""
-
-#: ../build/src/ui_dlgaccountsbase.h:338
-msgid "Add a new account"
-msgstr ""
-
-#: ../build/src/ui_dlgaccountsbase.h:341
-msgid ""
-"This button enables you to initialize a new account. You will then be able "
-"to edit it using the form on the right."
-msgstr ""
-
-#: ../build/src/ui_dlgaccountsbase.h:343
-msgid "Add"
-msgstr ""
-
-#: ../build/src/ui_dlgaccountsbase.h:345
-msgid "Get this account down"
-msgstr ""
-
-#: ../build/src/ui_dlgaccountsbase.h:348 ../build/src/ui_dlgaccountsbase.h:355
-msgid ""
-"By default, when you place a call, sflphone will use the first account in "
-"this list which is \"registered\". Change the order of the accounts using "
-"the \"Up\" and \"Down\" arrows."
-msgstr ""
-
-#: ../build/src/ui_dlgaccountsbase.h:350
-msgid "Down"
-msgstr ""
-
-#: ../build/src/ui_dlgaccountsbase.h:352
-msgid "Get this account up"
-msgstr ""
-
-#: ../build/src/ui_dlgaccountsbase.h:357
-msgid "Up"
-msgstr ""
-
-#: ../build/src/ui_dlgaccountsbase.h:358
-msgid "Apply"
-msgstr ""
-
-#: ../build/src/ui_dlgaccountsbase.h:363
-msgid "SIP"
-msgstr ""
-
-#: ../build/src/ui_dlgaccountsbase.h:364
-msgid "IAX"
-msgstr ""
-
-#: ../build/src/ui_dlgaccountsbase.h:370
-msgid "State"
-msgstr ""
-
-#: ../build/src/ui_dlgaccountsbase.h:373
-msgid "Stun settings will be applied on each account"
-msgstr ""
-
-#: ../build/src/ui_dlgaccountsbase.h:374
-msgid "Enable Stun"
-msgstr ""
-
-#: ../build/src/ui_dlgaccountsbase.h:375
-msgid "choose Stun server (example : stunserver.org)"
-msgstr ""
-
-#: ../build/src/ui_dlgaddressbookbase.h:143
-msgid "Maximum &results"
-msgstr ""
-
-#: ../build/src/ui_dlgaddressbookbase.h:144
-msgid "Display &photo if available"
-msgstr ""
-
-#: ../build/src/ui_dlgaddressbookbase.h:145
-msgid "Display phone numbers of these &types :"
-msgstr ""
-
-#: ../build/src/ui_dlgaddressbookbase.h:146
-msgid "&Work"
-msgstr ""
-
-#: ../build/src/ui_dlgaddressbookbase.h:147
-msgid "&Mobile"
-msgstr ""
-
-#: ../build/src/ui_dlgaddressbookbase.h:148
-msgid "&Home"
-msgstr ""
-
-#: ../build/src/ui_dlgaudiobase.h:264
-msgid "Audio device"
-msgstr ""
-
-#: ../build/src/ui_dlgaudiobase.h:267
-msgid "ALSA"
-msgstr ""
-
-#: ../build/src/ui_dlgaudiobase.h:268
-msgid "PulseAudio"
-msgstr ""
-
-#: ../build/src/ui_dlgaudiobase.h:270
-msgid "Enable ringtones"
-msgstr ""
-
-#: ../build/src/ui_dlgaudiobase.h:271
-msgid "&Codecs"
-msgstr ""
-
-#: ../build/src/ui_dlgaudiobase.h:273
-msgid "Active"
-msgstr ""
-
-#: ../build/src/ui_dlgaudiobase.h:275
-msgid "Name"
-msgstr ""
-
-#: ../build/src/ui_dlgaudiobase.h:277
-msgid "Frequency"
-msgstr ""
-
-#: ../build/src/ui_dlgaudiobase.h:279
-msgid "Bitrate"
-msgstr ""
-
-#: ../build/src/ui_dlgaudiobase.h:281
-msgid "Bandwidth"
-msgstr ""
-
-#: ../build/src/ui_dlgaudiobase.h:284
-msgid "ALSA settings"
-msgstr ""
-
-#: ../build/src/ui_dlgaudiobase.h:285
-msgid "In"
-msgstr ""
-
-#: ../build/src/ui_dlgaudiobase.h:286
-msgid "Out"
-msgstr ""
-
-#: ../build/src/ui_dlgaudiobase.h:287
-msgid "ALSA plugin"
-msgstr ""
-
-#: ../build/src/ui_dlgaudiobase.h:288
-msgid "PulseAudio settings"
-msgstr ""
-
-#: ../build/src/ui_dlgaudiobase.h:289
-msgid "Mute other applications during a call"
-msgstr ""
-
-#: ../build/src/ui_dlgdisplaybase.h:121
-msgid "Enable notifications"
-msgstr ""
-
-#: ../build/src/ui_dlgdisplaybase.h:122
-msgid "On incoming &calls"
-msgstr ""
-
-#: ../build/src/ui_dlgdisplaybase.h:123
-msgid "On &messages"
-msgstr ""
-
-#: ../build/src/ui_dlgdisplaybase.h:124
-msgid "Show main window"
-msgstr ""
-
-#: ../build/src/ui_dlgdisplaybase.h:125
-msgid "On &start"
-msgstr ""
-
-#: ../build/src/ui_dlgdisplaybase.h:126
-msgid "On &incoming calls"
-msgstr ""
-
-#: ../build/src/ui_dlggeneralbase.h:166
-msgid "Keep my history for at least"
-msgstr ""
-
-#: ../build/src/ui_dlggeneralbase.h:167
-msgid "days"
-msgstr ""
-
-#: ../build/src/ui_dlggeneralbase.h:168
-msgid "Clear history"
-msgstr ""
-
-#: ../build/src/ui_dlggeneralbase.h:169
-msgid "Connection"
-msgstr ""
-
-#: ../build/src/ui_dlggeneralbase.h:170
-msgid "SIP Port"
-msgstr ""
-
-#: ../build/src/ui_dlggeneralbase.h:171
-msgid "Attention "
-msgstr ""
-
-#: ../build/src/ui_dlghooksbase.h:174
-msgid "URL Argument"
-msgstr ""
-
-#: ../build/src/ui_dlghooksbase.h:175
-#, c-format
-msgid "Custom commands with URL %s will be replaced with the passed URL."
-msgstr ""
-
-#: ../build/src/ui_dlghooksbase.h:176
-msgid "Trigger on specific SIP header"
-msgstr ""
-
-#: ../build/src/ui_dlghooksbase.h:177
-msgid "Trigger on IAX2 URL"
-msgstr ""
-
-#: ../build/src/ui_dlghooksbase.h:178
-msgid "Command to run"
-msgstr ""
-
-#: ../build/src/ui_dlghooksbase.h:179
-msgid "Phone number formatting"
-msgstr ""
-
-#: ../build/src/ui_dlghooksbase.h:180
-msgid "Add phone number prefix"
-msgstr ""
-
-#: ../build/src/ui_dlgrecordbase.h:92
-msgid "Destination folder"
-msgstr ""
-
-#: ../build/src/ui_sflphone_kdeview_base.h:391
-msgid "Pick up"
-msgstr ""
-
-#: ../build/src/ui_sflphone_kdeview_base.h:395
-msgid "History"
-msgstr ""
-
-#: ../build/src/ui_sflphone_kdeview_base.h:397
-msgid "Configure accounts"
-msgstr ""
-
-#: ../build/src/ui_sflphone_kdeview_base.h:398
-msgid "Configure audio"
-msgstr ""
-
-#: ../build/src/ui_sflphone_kdeview_base.h:399
-#: ../build/src/ui_sflphone_kdeview_base.h:401
-msgid "Configure SFLphone"
-msgstr ""
-
-#: ../build/src/ui_sflphone_kdeview_base.h:403
-msgid "Display volume bars"
-msgstr ""
-
-#: ../build/src/ui_sflphone_kdeview_base.h:404
-msgid "Display dialpad"
-msgstr ""
-
-#: ../build/src/ui_sflphone_kdeview_base.h:405
-msgctxt "Action record a calld"
-msgid "Record"
-msgstr ""
-
-#: ../build/src/ui_sflphone_kdeview_base.h:406
-msgid "Account creation wizard"
-msgstr ""
-
-#: ../build/src/ui_sflphone_kdeview_base.h:408
-msgid "Attention:number of results exceeds max displayed."
-msgstr ""
+msgstr "Этот мастер установки поможет вам настроить ваш аккаунт."
+
+#: ../src/AccountWizard.cpp:309 ../src/conf/ConfigurationDialog.cpp:50
+msgid "Accounts"
+msgstr "Аккаунты"
+
+#: ../src/AccountWizard.cpp:310
+msgid "Please choose between those options :"
+msgstr "Выберите пожалуйста тип аккаунта :"
+
+#: ../src/AccountWizard.cpp:312
+msgid "Create a free SIP/IAX2 account on sflphone.org"
+msgstr "Создать бесплатный SIP/IAX2-аккаунт на sflphone.org"
+
+#: ../src/AccountWizard.cpp:313
+msgid "Register an existing SIP/IAX2 account"
+msgstr "Зарегистрировать существующий SIP или IAX2 аккаунт"
+
+#: ../src/AccountWizard.cpp:352
+msgid "VoIP Protocols"
+msgstr "VoIP-протоколы"
+
+#: ../src/AccountWizard.cpp:353
+msgid "Choose the account type"
+msgstr "Выберите тип аккаунта:"
+
+#: ../src/AccountWizard.cpp:355
+msgid "Register a SIP (Session Initiation Protocol) account"
+msgstr "Зарегистрировать существующий SIP или IAX2 аккаунт"
+
+#: ../src/AccountWizard.cpp:356
+msgid "Register a IAX2 (InterAsterisk eXchange) account"
+msgstr "Зарегистрируете IAX2-аккаунт"
+
+#: ../src/AccountWizard.cpp:395
+msgid "Optionnal Email Address"
+msgstr "Электронный адрес (необязательный) "
+
+#: ../src/AccountWizard.cpp:396
+msgid "This email address will be used to send your voicemail messages."
+msgstr "Этот электронный адрес будет использоваться для речевых сообщений"
+
+#: ../src/AccountWizard.cpp:398
+msgid "Email address"
+msgstr "Адрес эл. почты"
+
+#: ../src/AccountWizard.cpp:432
+msgid "SIP Account Settings"
+msgstr "Настройки SIP-аккаунта"
+
+#: ../src/AccountWizard.cpp:436
+msgid "IAX2 Account Settings"
+msgstr "Настройки IAX2-аккаунта"
+
+#: ../src/AccountWizard.cpp:438
+msgid "Please full these settings fields."
+msgstr "Заполните пожалуйста эти поля."
+
+#: ../src/AccountWizard.cpp:444
+msgid "Voicemail number"
+msgstr ""
+
+#: ../src/AccountWizard.cpp:523
+msgid "Network Address Translation (NAT)"
+msgstr "Network Address Translation (NAT)"
+
+#: ../src/AccountWizard.cpp:524
+msgid ""
+"You should probably enable this option if you're placed under a firewall"
+msgstr "Вы наверное должны это включить если вы находитесь за сетевым экраном."
+
+#: ../src/AccountWizard.cpp:526
+msgid "Enable STUN"
+msgstr "Включить STUN"
+
+#: ../src/AccountWizard.cpp:527
+msgid "Stun Server"
+msgstr "STUN-сервер"
+
+#: ../src/AccountWizard.cpp:561
+msgid "Account Definition Finished"
+msgstr "Настройка аккаунта закончена."
+
+#: ../src/AccountWizard.cpp:562
+msgid ""
+"After checking the settings you chose, click \"Finish\" to create the "
+"account."
+msgstr ""
+"После просмотра выбранных настроек, нажмите на \"Закончить\" чтобы создать "
+"аккаунт. "
+
+#: ../src/ActionSetAccountFirst.cpp:26
+msgid "Default account"
+msgstr ""
+
+#: ../src/Call.cpp:116
+msgid "Transfer to : "
+msgstr "Переслать звонок на другой номер :"
+
+#: ../src/main.cpp:34
+msgid "SFLphone KDE Client"
+msgstr ""
+
+#: ../src/main.cpp:38
+msgid "(C) 2009 Savoir-faire Linux"
+msgstr ""
+
+#: ../src/main.cpp:42
+msgid "Jérémy Quentin"
+msgstr ""
+
+#: ../src/main.cpp:43
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr ""
+
+#: ../src/main.cpp:43
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr ""
+
+#: ../src/SFLPhone.cpp:62 ../src/sflphone_kdeview.cpp:1066
+#: ../src/sflphone_kdeview.cpp:1071 ../src/sflphone_kdeview.cpp:1076
+#, fuzzy
+msgid "SFLphone"
+msgstr "SFLPhone"
+
+#: ../src/SFLPhone.cpp:181
+msgid "You still have some calls open. Please close all calls before quitting."
+msgstr ""
+"У вас ещё есть неоконченные звонки. Пожалуйста проверьте что все звонки "
+"окончены перед тем как выйти."
+
+#: ../src/SFLPhone.cpp:209
+msgid "Incoming call"
+msgstr "Входящий звонок"
+
+#: ../src/SFLPhone.cpp:210
+msgid "You have an incoming call from"
+msgstr "Входящей звонок от "
+
+#: ../src/SFLPhone.cpp:210
+msgid "Click to accept or refuse it."
+msgstr "Нажмите чтобы принять или отклонить."
+
+#: ../src/sflphone_kdeview.cpp:883
+msgid "No account registered"
+msgstr ""
+
+#: ../src/sflphone_kdeview.cpp:887
+#, fuzzy
+msgid "Using account"
+msgstr "Настроить &аккаунты"
+
+#: ../src/sflphone_kdeview.cpp:1066
+msgid "Main screen"
+msgstr "Главный экран"
+
+#: ../src/sflphone_kdeview.cpp:1071 ../build/src/ui_dlggeneralbase.h:165
+msgid "Call history"
+msgstr "Журнал звонков"
+
+#: ../src/sflphone_kdeview.cpp:1076
+#: ../build/src/ui_sflphone_kdeview_base.h:407
+msgid "Address book"
+msgstr "Адресная книга"
+
+#: ../src/sflphone_kdeview.cpp:1090 ../src/sflphone_kdeview.cpp:1151
+msgid "Edit before call"
+msgstr "Изменить перед звонком"
+
+#: ../src/sflphone_const.h:56
+msgid "Call"
+msgstr "Звонок"
+
+#: ../src/sflphone_const.h:57 ../build/src/ui_sflphone_kdeview_base.h:392
+msgid "Hang up"
+msgstr "Положить трубку"
+
+#: ../src/sflphone_const.h:58 ../build/src/ui_sflphone_kdeview_base.h:393
+msgid "Hold"
+msgstr "Удержать звонок"
+
+#: ../src/sflphone_const.h:59 ../build/src/ui_sflphone_kdeview_base.h:394
+msgid "Transfer"
+msgstr "Переслать звонок на другой номер"
+
+#: ../src/sflphone_const.h:60
+msgid "Record"
+msgstr "Записать"
+
+#: ../src/sflphone_const.h:61
+msgid "Accept"
+msgstr "Принять"
+
+#: ../src/sflphone_const.h:62
+msgid "Refuse"
+msgstr "Отклонить"
+
+#: ../src/sflphone_const.h:63
+msgid "Unhold"
+msgstr "Снова взять"
+
+#: ../src/sflphone_const.h:64
+msgid "Give up transfer"
+msgstr "Отменить пересылку звонка"
+
+#: ../src/sflphone_const.h:65
+msgid "Call back"
+msgstr "Перезвонить"
+
+#: ../src/sflphone_const.h:66
+msgid "Give up search"
+msgstr "Отменить поиск"
+
+#: ../src/conf/ConfigurationDialog.cpp:48 ../build/src/ui_dlgrecordbase.h:91
+msgid "General"
+msgstr "Общие настройки"
+
+#: ../src/conf/ConfigurationDialog.cpp:49
+msgid "Display"
+msgstr "Экран"
+
+#: ../src/conf/ConfigurationDialog.cpp:51
+msgid "Audio"
+msgstr "Звук"
+
+#: ../src/conf/ConfigurationDialog.cpp:52
+msgid "Address Book"
+msgstr "Адресная книга"
+
+#: ../src/conf/ConfigurationDialog.cpp:53
+#, fuzzy
+msgctxt "Config section"
+msgid "Record"
+msgstr "Записать"
+
+#: ../src/conf/ConfigurationDialog.cpp:54
+msgid "Hooks"
+msgstr "перехватчики (hooks)"
+
+#: ../build/src/ui_dlgaccountsbase.h:321
+#: ../build/src/ui_dlgaddressbookbase.h:142 ../build/src/ui_dlgaudiobase.h:263
+#: ../build/src/ui_dlgdisplaybase.h:120 ../build/src/ui_dlggeneralbase.h:164
+#: ../build/src/ui_dlghooksbase.h:173 ../build/src/ui_dlgrecordbase.h:90
+#: ../build/src/ui_sflphone_kdeview_base.h:390
+msgid "Form"
+msgstr ""
+
+#: ../build/src/ui_dlgaccountsbase.h:323
+msgid ""
+"By default, when you place a call, sflphone will use the first account in "
+"this list which is \"registered\". Change the order of the accounts using "
+"the \"Up\" and \"Down\" arrows. Enable/disable them by checking/unchecking "
+"them on the left of the item. Add or remove some with \"Plus\" and \"Sub\" "
+"buttons. Edit the selected account with the form on the right."
+msgstr ""
+
+#: ../build/src/ui_dlgaccountsbase.h:327
+#, fuzzy
+msgid "Remove the selected account"
+msgstr "Убрать этот аккаунт"
+
+#: ../build/src/ui_dlgaccountsbase.h:330
+msgid ""
+"This button will remove the selected account in the list below. Be sure you "
+"really don't need it anymore. If you think you might use it again later, "
+"just uncheck it."
+msgstr ""
+
+#: ../build/src/ui_dlgaccountsbase.h:335
+msgid "Remove"
+msgstr ""
+
+#: ../build/src/ui_dlgaccountsbase.h:336
+msgid "Backspace, Return"
+msgstr ""
+
+#: ../build/src/ui_dlgaccountsbase.h:338
+msgid "Add a new account"
+msgstr "Добавить новый аккаунт"
+
+#: ../build/src/ui_dlgaccountsbase.h:341
+msgid ""
+"This button enables you to initialize a new account. You will then be able "
+"to edit it using the form on the right."
+msgstr ""
+
+#: ../build/src/ui_dlgaccountsbase.h:343
+msgid "Add"
+msgstr ""
+
+#: ../build/src/ui_dlgaccountsbase.h:345
+#, fuzzy
+msgid "Get this account down"
+msgstr "Убрать этот аккаунт"
+
+#: ../build/src/ui_dlgaccountsbase.h:348 ../build/src/ui_dlgaccountsbase.h:355
+msgid ""
+"By default, when you place a call, sflphone will use the first account in "
+"this list which is \"registered\". Change the order of the accounts using "
+"the \"Up\" and \"Down\" arrows."
+msgstr ""
+
+#: ../build/src/ui_dlgaccountsbase.h:350
+msgid "Down"
+msgstr "Вниз"
+
+#: ../build/src/ui_dlgaccountsbase.h:352
+#, fuzzy
+msgid "Get this account up"
+msgstr "Убрать этот аккаунт"
+
+#: ../build/src/ui_dlgaccountsbase.h:357
+msgid "Up"
+msgstr "Вверх"
+
+#: ../build/src/ui_dlgaccountsbase.h:358
+msgid "Apply"
+msgstr "Применить"
+
+#: ../build/src/ui_dlgaccountsbase.h:363
+msgid "SIP"
+msgstr "SIP"
+
+#: ../build/src/ui_dlgaccountsbase.h:364
+msgid "IAX"
+msgstr "IAX"
+
+#: ../build/src/ui_dlgaccountsbase.h:370
+msgid "State"
+msgstr "Статус"
+
+#: ../build/src/ui_dlgaccountsbase.h:373
+msgid "Stun settings will be applied on each account"
+msgstr "Stun-настройки будут использоваться для всех аккаунтов"
+
+#: ../build/src/ui_dlgaccountsbase.h:374
+#, fuzzy
+msgid "Enable Stun"
+msgstr "&Включить STUN"
+
+#: ../build/src/ui_dlgaccountsbase.h:375
+msgid "choose Stun server (example : stunserver.org)"
+msgstr ""
+
+#: ../build/src/ui_dlgaddressbookbase.h:143
+msgid "Maximum &results"
+msgstr "Максимальное &количество результатов"
+
+#: ../build/src/ui_dlgaddressbookbase.h:144
+msgid "Display &photo if available"
+msgstr "Показать &фотографию контакта (если имеется)"
+
+#: ../build/src/ui_dlgaddressbookbase.h:145
+msgid "Display phone numbers of these &types :"
+msgstr "Если контакт имеет несколько номеров, показать &только :"
+
+#: ../build/src/ui_dlgaddressbookbase.h:146
+msgid "&Work"
+msgstr "&Рабочий номер"
+
+#: ../build/src/ui_dlgaddressbookbase.h:147
+msgid "&Mobile"
+msgstr "Номер &мобильника"
+
+#: ../build/src/ui_dlgaddressbookbase.h:148
+msgid "&Home"
+msgstr "&Домашний номер"
+
+#: ../build/src/ui_dlgaudiobase.h:265
+#, fuzzy
+msgid "Audio device"
+msgstr "Звуковое устройство"
+
+#: ../build/src/ui_dlgaudiobase.h:268
+msgid "ALSA"
+msgstr "ALSA"
+
+#: ../build/src/ui_dlgaudiobase.h:269
+msgid "PulseAudio"
+msgstr "PulseAudio"
+
+#: ../build/src/ui_dlgaudiobase.h:271
+#, fuzzy
+msgid "Enable ringtones"
+msgstr "Включить звонок"
+
+#: ../build/src/ui_dlgaudiobase.h:272
+msgid "*.ul *.au *.wav"
+msgstr ""
+
+#: ../build/src/ui_dlgaudiobase.h:273
+msgid "&Codecs"
+msgstr "&Кодеки"
+
+#: ../build/src/ui_dlgaudiobase.h:275
+msgid "Active"
+msgstr ""
+
+#: ../build/src/ui_dlgaudiobase.h:277
+msgid "Name"
+msgstr "Имя"
+
+#: ../build/src/ui_dlgaudiobase.h:279
+msgid "Frequency"
+msgstr "Частота"
+
+#: ../build/src/ui_dlgaudiobase.h:281
+msgid "Bitrate"
+msgstr "Битрейт"
+
+#: ../build/src/ui_dlgaudiobase.h:283
+msgid "Bandwidth"
+msgstr "Пропускная способность"
+
+#: ../build/src/ui_dlgaudiobase.h:286
+msgid "ALSA settings"
+msgstr "Настройка ALSA"
+
+#: ../build/src/ui_dlgaudiobase.h:287
+#, fuzzy
+msgid "ALSA plugin"
+msgstr "ALSA-плагин"
+
+#: ../build/src/ui_dlgaudiobase.h:288
+msgid "In"
+msgstr ""
+
+#: ../build/src/ui_dlgaudiobase.h:289
+msgid "Out"
+msgstr ""
+
+#: ../build/src/ui_dlgaudiobase.h:290
+msgid "PulseAudio settings"
+msgstr "Настройка PulseAudio"
+
+#: ../build/src/ui_dlgaudiobase.h:291
+msgid "Mute other applications during a call"
+msgstr "Приглушить звук других програм во время звонка"
+
+#: ../build/src/ui_dlgdisplaybase.h:121
+msgid "Enable notifications"
+msgstr "Включить предупреждения"
+
+#: ../build/src/ui_dlgdisplaybase.h:122
+msgid "On incoming &calls"
+msgstr "При входящих звонках"
+
+#: ../build/src/ui_dlgdisplaybase.h:123
+msgid "On &messages"
+msgstr "При звуковых &сообщениях"
+
+#: ../build/src/ui_dlgdisplaybase.h:124
+msgid "Show main window"
+msgstr "Показать главное окно"
+
+#: ../build/src/ui_dlgdisplaybase.h:125
+msgid "On &start"
+msgstr "При &запуске"
+
+#: ../build/src/ui_dlgdisplaybase.h:126
+msgid "On &incoming calls"
+msgstr "При входящих звонках"
+
+#: ../build/src/ui_dlggeneralbase.h:166
+msgid "Keep my history for at least"
+msgstr ""
+
+#: ../build/src/ui_dlggeneralbase.h:167
+msgid "days"
+msgstr ""
+
+#: ../build/src/ui_dlggeneralbase.h:168
+#, fuzzy
+msgid "Clear history"
+msgstr "Стереть журнал"
+
+#: ../build/src/ui_dlggeneralbase.h:169
+msgid "Connection"
+msgstr "Подключение"
+
+#: ../build/src/ui_dlggeneralbase.h:170
+#, fuzzy
+msgid "SIP Port"
+msgstr "SIP-порт"
+
+#: ../build/src/ui_dlggeneralbase.h:171
+msgid "Attention "
+msgstr "Внимание"
+
+#: ../build/src/ui_dlghooksbase.h:174
+msgid "URL Argument"
+msgstr ""
+
+#: ../build/src/ui_dlghooksbase.h:175
+#, c-format
+msgid "Custom commands with URL %s will be replaced with the passed URL."
+msgstr ""
+
+#: ../build/src/ui_dlghooksbase.h:176
+msgid "Trigger on specific SIP header"
+msgstr ""
+
+#: ../build/src/ui_dlghooksbase.h:177
+msgid "Trigger on IAX2 URL"
+msgstr ""
+
+#: ../build/src/ui_dlghooksbase.h:178
+#, fuzzy
+msgid "Command to run"
+msgstr "Команда"
+
+#: ../build/src/ui_dlghooksbase.h:179
+msgid "Phone number formatting"
+msgstr "Формат номера телефона"
+
+#: ../build/src/ui_dlghooksbase.h:180
+msgid "Add phone number prefix"
+msgstr "Добавить перед на набранными номерами"
+
+#: ../build/src/ui_dlgrecordbase.h:92
+msgid "Destination folder"
+msgstr "Папка для записи"
+
+#: ../build/src/ui_sflphone_kdeview_base.h:391
+#, fuzzy
+msgid "Pick up"
+msgstr "&Взять трубку"
+
+#: ../build/src/ui_sflphone_kdeview_base.h:395
+#, fuzzy
+msgid "History"
+msgstr "Журнал"
+
+#: ../build/src/ui_sflphone_kdeview_base.h:397
+#, fuzzy
+msgid "Configure accounts"
+msgstr "Настроить &аккаунты"
+
+#: ../build/src/ui_sflphone_kdeview_base.h:398
+#, fuzzy
+msgid "Configure audio"
+msgstr "Настроить &звук"
+
+#: ../build/src/ui_sflphone_kdeview_base.h:399
+#: ../build/src/ui_sflphone_kdeview_base.h:401
+#, fuzzy
+msgid "Configure SFLphone"
+msgstr "&Настроить SFLPhone"
+
+#: ../build/src/ui_sflphone_kdeview_base.h:403
+#, fuzzy
+msgid "Display volume bars"
+msgstr "Показать уровень &громкости"
+
+#: ../build/src/ui_sflphone_kdeview_base.h:404
+#, fuzzy
+msgid "Display dialpad"
+msgstr "Показать &клавиатуру"
+
+#: ../build/src/ui_sflphone_kdeview_base.h:405
+#, fuzzy
+msgctxt "Action record a call"
+msgid "Record"
+msgstr "Записать"
+
+#: ../build/src/ui_sflphone_kdeview_base.h:406
+#, fuzzy
+msgid "Account creation wizard"
+msgstr "&Мастер настройки SFLphone"
+
+#: ../build/src/ui_sflphone_kdeview_base.h:408
+msgid "Attention:number of results exceeds max displayed."
+msgstr ""
+
+#~ msgid "Attention : SIP port must be over 1024 !"
+#~ msgstr "Внимание : SIP-порт должен быть больше чем 1024 !"
+
+#~ msgid "Attention : SIP port must be under 65536 !"
+#~ msgstr "Внимание : SIP-порт должен быть меньше чем 65536 !"
+
+#~ msgid "about"
+#~ msgstr "О"
+
+#~ msgid "Configure general settings"
+#~ msgstr "Общие настройки"
+
+#~ msgid "&Capacity"
+#~ msgstr "Вместимость"
+
+#~ msgid "Configure display"
+#~ msgstr "Настроить экран"
+
+#~ msgid "Configure user accounts"
+#~ msgstr "Настройка аккаунтов пользователей"
+
+#~ msgid "&Alias"
+#~ msgstr "Псевдоним"
+
+#~ msgid "&Protocol"
+#~ msgstr "Протокол"
+
+#~ msgid "&Server"
+#~ msgstr "&Сервер"
+
+#~ msgid "&User"
+#~ msgstr "&Пользователь"
+
+#~ msgid "Pass&word"
+#~ msgstr "Па&роль"
+
+#~ msgid "&Mailbox"
+#~ msgstr "&Звуковые сообщения"
+
+#~ msgid "Configure audio settings"
+#~ msgstr "Настройки звука"
+
+#~ msgid "Configure record settings"
+#~ msgstr "Настроить запись звонков"
+
+#~ msgid "Configure address book settings"
+#~ msgstr "Настроить адресную книгу"
+
+#~ msgid "Configure hooks settings"
+#~ msgstr "Настроить перехватчики"
+
+#~ msgid "SIP Protocol"
+#~ msgstr "SIP-Протокол"
+
+#~ msgid "IAX2 Protocol"
+#~ msgstr "IAX2-Протокол"
+
+#~ msgid "SIP Header"
+#~ msgstr "SIP Заголовок"
+
+#~ msgid "Prepend"
+#~ msgstr "Добавить в начало"
+
+#~ msgid "&Hang up"
+#~ msgstr "&Положить трубку"
+
+#~ msgid "H&old"
+#~ msgstr "&Удержать звонок"
+
+#~ msgid "&Transfer"
+#~ msgstr "Пе&реслать звонок на другой номер"
+
+#~ msgid "&About"
+#~ msgstr "&О SFLphone"
+
+#~ msgid "&Record"
+#~ msgstr "Записать"
+=======
+msgid ""
+msgstr ""
+"Project-Id-Version: SFLphone 0.9.6\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-08 15:18-0400\n"
+"PO-Revision-Date: 2009-06-08 10:19 GMT-5\n"
+"Last-Translator: HUSSEIN ABDALLAH <hussein.abdallah@savoirfairelinux.com>\n"
+"Language-Team:  Savoir-Faire Linux Inc <sflphoneteam@savoirfairelinux.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../src/Account.cpp:34
+msgctxt "account state"
+msgid "Registered"
+msgstr "Зарегестрирован"
+
+#: ../src/Account.cpp:36
+msgctxt "account state"
+msgid "Not Registered"
+msgstr "Не зарегестрирован"
+
+#: ../src/Account.cpp:38
+msgctxt "account state"
+msgid "Trying..."
+msgstr "попытка подключения..."
+
+#: ../src/Account.cpp:40
+msgctxt "account state"
+msgid "Error"
+msgstr "Ошибка"
+
+#: ../src/Account.cpp:42
+msgctxt "account state"
+msgid "Bad authentification"
+msgstr "Включить предупреждения"
+
+#: ../src/Account.cpp:44
+msgctxt "account state"
+msgid "Network unreachable"
+msgstr "Сеть недоступна"
+
+#: ../src/Account.cpp:46
+msgctxt "account state"
+msgid "Host unreachable"
+msgstr "Сервер недоступен"
+
+#: ../src/Account.cpp:48
+msgctxt "account state"
+msgid "Stun configuration error"
+msgstr "Окно настроек"
+
+#: ../src/Account.cpp:50
+msgctxt "account state"
+msgid "Stun server invalid"
+msgstr "STUN-сервер недействителен"
+
+#: ../src/Account.cpp:51
+msgctxt "account state"
+msgid "Invalid"
+msgstr "Недействителен"
+
+#: ../src/AccountWizard.cpp:163 ../src/AccountWizard.cpp:278
+msgid "Account Creation Wizard"
+msgstr "Мастер настройки SFLphone"
+
+#: ../src/AccountWizard.cpp:199
+msgid "Creation of account succeed with these parameters"
+msgstr "Успешное создание аккаунта с этими настройками"
+
+#: ../src/AccountWizard.cpp:211
+msgid "Creation of account has failed for the reason"
+msgstr "Создание аккаунта не получилось по этим причинам"
+
+#: ../src/AccountWizard.cpp:217
+msgid "Register of account succeed with these parameters"
+msgstr "Успешное регистрация аккаунта с этими настройками"
+
+#: ../src/AccountWizard.cpp:255 ../src/AccountWizard.cpp:440
+#: ../build/src/ui_dlgaccountsbase.h:359
+msgid "Alias"
+msgstr "Псевдоним"
+
+#: ../src/AccountWizard.cpp:256 ../src/AccountWizard.cpp:441
+#: ../build/src/ui_dlgaccountsbase.h:366
+msgid "Server"
+msgstr "Сервер"
+
+#: ../src/AccountWizard.cpp:257 ../src/AccountWizard.cpp:442
+#: ../build/src/ui_dlgaccountsbase.h:367
+msgid "User"
+msgstr "Пользователь"
+
+#: ../src/AccountWizard.cpp:258 ../src/AccountWizard.cpp:443
+#: ../build/src/ui_dlgaccountsbase.h:368
+msgid "Password"
+msgstr "Пароль"
+
+#: ../src/AccountWizard.cpp:259 ../build/src/ui_dlgaccountsbase.h:360
+msgid "Protocol"
+msgstr "Протокол"
+
+#: ../src/AccountWizard.cpp:260 ../build/src/ui_dlgaccountsbase.h:369
+#: ../build/src/ui_sflphone_kdeview_base.h:396
+msgid "Mailbox"
+msgstr "Автоответчик"
+
+#: ../src/AccountWizard.cpp:279
+msgid "Welcome to the Account creation wizard of SFLphone"
+msgstr "Добро пожаловать в мастер настройки SFLphone"
+
+#: ../src/AccountWizard.cpp:281
+msgid "This wizard will help you setting up an account."
+msgstr "Этот мастер установки поможет вам настроить ваш аккаунт."
+
+#: ../src/AccountWizard.cpp:309 ../src/conf/ConfigurationDialog.cpp:50
+msgid "Accounts"
+msgstr "Аккаунты"
+
+#: ../src/AccountWizard.cpp:310
+msgid "Please choose between those options :"
+msgstr "Выберите пожалуйста тип аккаунта :"
+
+#: ../src/AccountWizard.cpp:312
+msgid "Create a free SIP/IAX2 account on sflphone.org"
+msgstr "Создать бесплатный SIP/IAX2-аккаунт на sflphone.org"
+
+#: ../src/AccountWizard.cpp:313
+msgid "Register an existing SIP/IAX2 account"
+msgstr "Зарегистрировать существующий SIP или IAX2 аккаунт"
+
+#: ../src/AccountWizard.cpp:352
+msgid "VoIP Protocols"
+msgstr "VoIP-протоколы"
+
+#: ../src/AccountWizard.cpp:353
+msgid "Choose the account type"
+msgstr "Выберите тип аккаунта:"
+
+#: ../src/AccountWizard.cpp:355
+msgid "Register a SIP (Session Initiation Protocol) account"
+msgstr "Зарегистрировать существующий SIP-аккаунт"
+
+#: ../src/AccountWizard.cpp:356
+msgid "Register a IAX2 (InterAsterisk eXchange) account"
+msgstr "Зарегистрировать существующий IAX2-аккаунт"
+
+#: ../src/AccountWizard.cpp:395
+msgid "Optionnal Email Address"
+msgstr "Электронный адрес (необязательный) "
+
+#: ../src/AccountWizard.cpp:396
+msgid "This email address will be used to send your voicemail messages."
+msgstr "Этот электронный адрес будет использоваться для речевых сообщений"
+
+#: ../src/AccountWizard.cpp:398
+msgid "Email address"
+msgstr "Адрес эл. почты"
+
+#: ../src/AccountWizard.cpp:432
+msgid "SIP Account Settings"
+msgstr "Настройки SIP-аккаунта"
+
+#: ../src/AccountWizard.cpp:436
+msgid "IAX2 Account Settings"
+msgstr "Настройки IAX2-аккаунта"
+
+#: ../src/AccountWizard.cpp:438
+msgid "Please full these settings fields."
+msgstr "Заполните пожалуйста эти поля."
+
+#: ../src/AccountWizard.cpp:444
+msgid "Voicemail number"
+msgstr "Номер автоответчика"
+
+#: ../src/AccountWizard.cpp:523
+msgid "Network Address Translation (NAT)"
+msgstr "Network Address Translation (NAT)"
+
+#: ../src/AccountWizard.cpp:524
+msgid ""
+"You should probably enable this option if you're placed under a firewall"
+msgstr ""
+"Вы наверное должны это включить если вы находитесь за сетевым экраном."
+
+#: ../src/AccountWizard.cpp:526
+msgid "Enable STUN"
+msgstr "Включить STUN"
+
+#: ../src/AccountWizard.cpp:527
+msgid "Stun Server"
+msgstr "STUN-сервер"
+
+#: ../src/AccountWizard.cpp:561
+msgid "Account Definition Finished"
+msgstr "Настройка аккаунта закончена."
+
+#: ../src/AccountWizard.cpp:562
+msgid ""
+"After checking the settings you chose, click \"Finish\" to create the "
+"account."
+msgstr ""
+"После просмотра выбранных настроек, нажмите на \"Закончить\" чтобы создать "
+"аккаунт. "
+
+#: ../src/ActionSetAccountFirst.cpp:26
+msgid "Default account"
+msgstr "Аккаунт по умолчанию"
+
+#: ../src/Call.cpp:116
+msgid "Transfer to : "
+msgstr "Переслать звонок на другой номер :"
+
+#: ../src/main.cpp:34
+msgid "SFLphone KDE Client"
+msgstr "SFLphone - версия для KDE "
+
+#: ../src/main.cpp:38
+msgid "(C) 2009 Savoir-faire Linux"
+msgstr "(C) 2009 Savoir-faire Linux"
+
+#: ../src/main.cpp:42
+msgid "Jérémy Quentin"
+msgstr "Jérémy Quentin"
+
+#: ../src/main.cpp:43
+msgctxt "NAME OF TRANSLATORS"
+msgid "Your names"
+msgstr "Hussein Abdallah"
+
+#: ../src/main.cpp:43
+msgctxt "EMAIL OF TRANSLATORS"
+msgid "Your emails"
+msgstr "hussein.abdallah@savoirfairelinux.com"
+
+#: ../src/SFLPhone.cpp:62 ../src/sflphone_kdeview.cpp:1066
+#: ../src/sflphone_kdeview.cpp:1071 ../src/sflphone_kdeview.cpp:1076
+msgid "SFLphone"
+msgstr "SFLphone"
+
+#: ../src/SFLPhone.cpp:181
+msgid "You still have some calls open. Please close all calls before quitting."
+msgstr ""
+"У вас ещё есть неоконченные звонки. Пожалуйста проверьте что все звонки "
+"окончены перед тем как выйти."
+
+#: ../src/SFLPhone.cpp:209
+msgid "Incoming call"
+msgstr "Входящий звонок"
+
+#: ../src/SFLPhone.cpp:210
+msgid "You have an incoming call from"
+msgstr "Входящей звонок от "
+
+#: ../src/SFLPhone.cpp:210
+msgid "Click to accept or refuse it."
+msgstr "Нажмите чтобы принять или отклонить."
+
+#: ../src/sflphone_kdeview.cpp:883
+msgid "No account registered"
+msgstr "Нет зарегистрированных аккаунтов"
+
+#: ../src/sflphone_kdeview.cpp:887
+msgid "Using account"
+msgstr "Используется аккаунт"
+
+#: ../src/sflphone_kdeview.cpp:1066
+msgid "Main screen"
+msgstr "Главный экран"
+
+#: ../src/sflphone_kdeview.cpp:1071 ../build/src/ui_dlggeneralbase.h:165
+msgid "Call history"
+msgstr "Журнал звонков"
+
+#: ../src/sflphone_kdeview.cpp:1076
+#: ../build/src/ui_sflphone_kdeview_base.h:407
+msgid "Address book"
+msgstr "Адресная книга"
+
+#: ../src/sflphone_kdeview.cpp:1090 ../src/sflphone_kdeview.cpp:1151
+msgid "Edit before call"
+msgstr "Изменить перед звонком"
+
+#: ../src/sflphone_const.h:56
+msgid "Call"
+msgstr "Звонок"
+
+#: ../src/sflphone_const.h:57 ../build/src/ui_sflphone_kdeview_base.h:392
+msgid "Hang up"
+msgstr "Положить трубку"
+
+#: ../src/sflphone_const.h:58 ../build/src/ui_sflphone_kdeview_base.h:393
+msgid "Hold"
+msgstr "Удержать звонок"
+
+#: ../src/sflphone_const.h:59 ../build/src/ui_sflphone_kdeview_base.h:394
+msgid "Transfer"
+msgstr "Переслать звонок на другой номер"
+
+#: ../src/sflphone_const.h:60
+msgid "Record"
+msgstr "Записать"
+
+#: ../src/sflphone_const.h:61
+msgid "Accept"
+msgstr "Принять"
+
+#: ../src/sflphone_const.h:62
+msgid "Refuse"
+msgstr "Отклонить"
+
+#: ../src/sflphone_const.h:63
+msgid "Unhold"
+msgstr "Снова взять"
+
+#: ../src/sflphone_const.h:64
+msgid "Give up transfer"
+msgstr "Отменить пересылку звонка"
+
+#: ../src/sflphone_const.h:65
+msgid "Call back"
+msgstr "Перезвонить"
+
+#: ../src/sflphone_const.h:66
+msgid "Give up search"
+msgstr "Отменить поиск"
+
+#: ../src/conf/ConfigurationDialog.cpp:48 ../build/src/ui_dlgrecordbase.h:91
+msgid "General"
+msgstr "Общие настройки"
+
+#: ../src/conf/ConfigurationDialog.cpp:49
+msgid "Display"
+msgstr "Экран"
+
+#: ../src/conf/ConfigurationDialog.cpp:51
+msgid "Audio"
+msgstr "Звук"
+
+#: ../src/conf/ConfigurationDialog.cpp:52
+msgid "Address Book"
+msgstr "Адресная книга"
+
+#: ../src/conf/ConfigurationDialog.cpp:53
+msgctxt "Config section"
+msgid "Record"
+msgstr "Запись переговоров"
+
+#: ../src/conf/ConfigurationDialog.cpp:54
+msgid "Hooks"
+msgstr "перехватчики (hooks)"
+
+#: ../build/src/ui_dlgaccountsbase.h:321
+#: ../build/src/ui_dlgaddressbookbase.h:142 ../build/src/ui_dlgaudiobase.h:263
+#: ../build/src/ui_dlgdisplaybase.h:120 ../build/src/ui_dlggeneralbase.h:164
+#: ../build/src/ui_dlghooksbase.h:173 ../build/src/ui_dlgrecordbase.h:90
+#: ../build/src/ui_sflphone_kdeview_base.h:390
+msgid "Form"
+msgstr ""
+
+#: ../build/src/ui_dlgaccountsbase.h:323
+msgid ""
+"By default, when you place a call, sflphone will use the first account in "
+"this list which is \"registered\". Change the order of the accounts using "
+"the \"Up\" and \"Down\" arrows. Enable/disable them by checking/unchecking "
+"them on the left of the item. Add or remove some with \"Plus\" and \"Sub\" "
+"buttons. Edit the selected account with the form on the right."
+msgstr ""
+"По умолчанию, SFLPhone будет использовать первый аккаунт в списке "
+"зарегистрированных аккаунтов. Последовательность использования "
+"аккаунтов можно изменить при помощи стрелок \"Вверх\" и \"Вниз\"."
+
+
+#: ../build/src/ui_dlgaccountsbase.h:327
+msgid "Remove the selected account"
+msgstr "Убрать этот аккаунт"
+
+#: ../build/src/ui_dlgaccountsbase.h:330
+msgid ""
+"This button will remove the selected account in the list below. Be sure you "
+"really don't need it anymore. If you think you might use it again later, "
+"just uncheck it."
+msgstr ""
+"Это кнопка уберëт аккаунт. Если вы думаете его использовать позже, "
+"то достаточно его отменить "
+
+#: ../build/src/ui_dlgaccountsbase.h:335
+msgid "Remove"
+msgstr "Убрать"
+
+#: ../build/src/ui_dlgaccountsbase.h:336
+msgid "Backspace, Return"
+msgstr "Backspace, Return"
+
+#: ../build/src/ui_dlgaccountsbase.h:338
+msgid "Add a new account"
+msgstr "Добавить новый аккаунт"
+
+#: ../build/src/ui_dlgaccountsbase.h:341
+msgid ""
+"This button enables you to initialize a new account. You will then be able "
+"to edit it using the form on the right."
+msgstr ""
+"Это кнопка позволит вам добавить новый аккаунт. После этого вы сможете "
+"его изменить при помощи экрана справа." 
+
+#: ../build/src/ui_dlgaccountsbase.h:343
+msgid "Add"
+msgstr "Добавить"
+
+#: ../build/src/ui_dlgaccountsbase.h:345
+msgid "Get this account down"
+msgstr "Убрать этот аккаунт"
+
+#: ../build/src/ui_dlgaccountsbase.h:348 ../build/src/ui_dlgaccountsbase.h:355
+msgid ""
+"By default, when you place a call, sflphone will use the first account in "
+"this list which is \"registered\". Change the order of the accounts using "
+"the \"Up\" and \"Down\" arrows."
+msgstr ""
+"По умолчанию, SFLPhone будет использовать первый аккаунт в списке "
+"зарегистрированных аккаунтов. Последовательность использования "
+"аккаунтов можно изменить при помощи стрелок \"Вверх\" и \"Вниз\"."
+
+
+#: ../build/src/ui_dlgaccountsbase.h:350
+msgid "Down"
+msgstr "Вниз"
+
+#: ../build/src/ui_dlgaccountsbase.h:352
+msgid "Get this account up"
+msgstr "Убрать этот аккаунт"
+
+#: ../build/src/ui_dlgaccountsbase.h:357
+msgid "Up"
+msgstr "Вверх"
+
+#: ../build/src/ui_dlgaccountsbase.h:358
+msgid "Apply"
+msgstr "Применить"
+
+#: ../build/src/ui_dlgaccountsbase.h:363
+msgid "SIP"
+msgstr "SIP"
+
+#: ../build/src/ui_dlgaccountsbase.h:364
+msgid "IAX"
+msgstr "IAX"
+
+#: ../build/src/ui_dlgaccountsbase.h:370
+msgid "State"
+msgstr "Статус"
+
+#: ../build/src/ui_dlgaccountsbase.h:373
+msgid "Stun settings will be applied on each account"
+msgstr "Stun-настройки будут использоваться для всех аккаунтов"
+
+#: ../build/src/ui_dlgaccountsbase.h:374
+msgid "Enable Stun"
+msgstr "&Включить STUN"
+
+#: ../build/src/ui_dlgaccountsbase.h:375
+msgid "choose Stun server (example : stunserver.org)"
+msgstr "Выберите STUN-сервер (например : stunserver.org )"
+
+#: ../build/src/ui_dlgaddressbookbase.h:143
+msgid "Maximum &results"
+msgstr "Максимальное &количество результатов"
+
+#: ../build/src/ui_dlgaddressbookbase.h:144
+msgid "Display &photo if available"
+msgstr "Показать &фотографию контакта (если имеется)"
+
+#: ../build/src/ui_dlgaddressbookbase.h:145
+msgid "Display phone numbers of these &types :"
+msgstr "Если контакт имеет несколько номеров, показать &только :"
+
+#: ../build/src/ui_dlgaddressbookbase.h:146
+msgid "&Work"
+msgstr "&Рабочий номер"
+
+#: ../build/src/ui_dlgaddressbookbase.h:147
+msgid "&Mobile"
+msgstr "Номер &мобильника"
+
+#: ../build/src/ui_dlgaddressbookbase.h:148
+msgid "&Home"
+msgstr "&Домашний номер"
+
+#: ../build/src/ui_dlgaudiobase.h:265
+msgid "Audio device"
+msgstr "Звуковое устройство"
+
+#: ../build/src/ui_dlgaudiobase.h:268
+msgid "ALSA"
+msgstr "ALSA"
+
+#: ../build/src/ui_dlgaudiobase.h:269
+msgid "PulseAudio"
+msgstr "PulseAudio"
+
+#: ../build/src/ui_dlgaudiobase.h:271
+msgid "Enable ringtones"
+msgstr "Включить звонок"
+
+#: ../build/src/ui_dlgaudiobase.h:272
+msgid "*.ul *.au *.wav"
+msgstr "*.ul *.au *.wav"
+
+#: ../build/src/ui_dlgaudiobase.h:273
+msgid "&Codecs"
+msgstr "&Кодеки"
+
+#: ../build/src/ui_dlgaudiobase.h:275
+msgid "Active"
+msgstr "Вкл."
+
+#: ../build/src/ui_dlgaudiobase.h:277
+msgid "Name"
+msgstr "Имя"
+
+#: ../build/src/ui_dlgaudiobase.h:279
+msgid "Frequency"
+msgstr "Частота"
+
+#: ../build/src/ui_dlgaudiobase.h:281
+msgid "Bitrate"
+msgstr "Битрейт"
+
+#: ../build/src/ui_dlgaudiobase.h:283
+msgid "Bandwidth"
+msgstr "Пропускная способность"
+
+#: ../build/src/ui_dlgaudiobase.h:286
+msgid "ALSA settings"
+msgstr "Настройка ALSA"
+
+#: ../build/src/ui_dlgaudiobase.h:287
+msgid "ALSA plugin"
+msgstr "ALSA-плагин"
+
+#: ../build/src/ui_dlgaudiobase.h:288
+msgid "In"
+msgstr "Вход"
+
+#: ../build/src/ui_dlgaudiobase.h:289
+msgid "Out"
+msgstr "Выход"
+
+#: ../build/src/ui_dlgaudiobase.h:290
+msgid "PulseAudio settings"
+msgstr "Настройка PulseAudio"
+
+#: ../build/src/ui_dlgaudiobase.h:291
+msgid "Mute other applications during a call"
+msgstr "Приглушить звук других програм во время звонка"
+
+#: ../build/src/ui_dlgdisplaybase.h:121
+msgid "Enable notifications"
+msgstr "Включить предупреждения"
+
+#: ../build/src/ui_dlgdisplaybase.h:122
+msgid "On incoming &calls"
+msgstr "При входящих звонках"
+
+#: ../build/src/ui_dlgdisplaybase.h:123
+msgid "On &messages"
+msgstr "При звуковых &сообщениях"
+
+#: ../build/src/ui_dlgdisplaybase.h:124
+msgid "Show main window"
+msgstr "Показать главное окно"
+
+#: ../build/src/ui_dlgdisplaybase.h:125
+msgid "On &start"
+msgstr "При &запуске"
+
+#: ../build/src/ui_dlgdisplaybase.h:126
+msgid "On &incoming calls"
+msgstr "При входящих звонках"
+
+#: ../build/src/ui_dlggeneralbase.h:166
+msgid "Keep my history for at least"
+msgstr "Сохранить журнал звонков как минимум "
+
+#: ../build/src/ui_dlggeneralbase.h:167
+msgid "days"
+msgstr "дней"
+
+#: ../build/src/ui_dlggeneralbase.h:168
+msgid "Clear history"
+msgstr "Стереть журнал"
+
+#: ../build/src/ui_dlggeneralbase.h:169
+msgid "Connection"
+msgstr "Подключение"
+
+#: ../build/src/ui_dlggeneralbase.h:170
+msgid "SIP Port"
+msgstr "SIP-порт"
+
+#: ../build/src/ui_dlggeneralbase.h:171
+msgid "Attention "
+msgstr "Внимание"
+
+#: ../build/src/ui_dlghooksbase.h:174
+msgid "URL Argument"
+msgstr "Аргумент переданный в URL"
+
+#: ../build/src/ui_dlghooksbase.h:175
+#, c-format
+msgid "Custom commands with URL %s will be replaced with the passed URL."
+msgstr "Команды с URL %s будут заменены на переданный URL"
+
+#: ../build/src/ui_dlghooksbase.h:176
+msgid "Trigger on specific SIP header"
+msgstr "Запустить при определëнном SIP-заголовке"
+
+#: ../build/src/ui_dlghooksbase.h:177
+msgid "Trigger on IAX2 URL"
+msgstr "Запустить при URL IAX2 "
+
+#: ../build/src/ui_dlghooksbase.h:178
+msgid "Command to run"
+msgstr "Команда"
+
+#: ../build/src/ui_dlghooksbase.h:179
+msgid "Phone number formatting"
+msgstr "Формат номера телефона"
+
+#: ../build/src/ui_dlghooksbase.h:180
+msgid "Add phone number prefix"
+msgstr "Добавить перед на набранными номерами"
+
+#: ../build/src/ui_dlgrecordbase.h:92
+msgid "Destination folder"
+msgstr "Папка для записи"
+
+#: ../build/src/ui_sflphone_kdeview_base.h:391
+msgid "Pick up"
+msgstr "&Взять трубку"
+
+#: ../build/src/ui_sflphone_kdeview_base.h:395
+msgid "History"
+msgstr "Журнал"
+
+#: ../build/src/ui_sflphone_kdeview_base.h:397
+msgid "Configure accounts"
+msgstr "Настроить &аккаунты"
+
+#: ../build/src/ui_sflphone_kdeview_base.h:398
+msgid "Configure audio"
+msgstr "Настроить &звук"
+
+#: ../build/src/ui_sflphone_kdeview_base.h:399
+#: ../build/src/ui_sflphone_kdeview_base.h:401
+msgid "Configure SFLphone"
+msgstr "&Настроить SFLPhone"
+
+#: ../build/src/ui_sflphone_kdeview_base.h:403
+msgid "Display volume bars"
+msgstr "Показать уровень &громкости"
+
+#: ../build/src/ui_sflphone_kdeview_base.h:404
+msgid "Display dialpad"
+msgstr "Показать &клавиатуру"
+
+#: ../build/src/ui_sflphone_kdeview_base.h:405
+msgctxt "Action record a call"
+msgid "Record"
+msgstr "Записать"
+
+#: ../build/src/ui_sflphone_kdeview_base.h:406
+msgid "Account creation wizard"
+msgstr "&Мастер настройки SFLphone"
+
+#: ../build/src/ui_sflphone_kdeview_base.h:408
+msgid "Attention:number of results exceeds max displayed."
+msgstr "Внимание: Количество результатов превышает настроенный максимум результатов"
+
+#~ msgid "Attention : SIP port must be over 1024 !"
+#~ msgstr "Внимание : SIP-порт должен быть больше чем 1024 !"
+
+#~ msgid "Attention : SIP port must be under 65536 !"
+#~ msgstr "Внимание : SIP-порт должен быть меньше чем 65536 !"
+
+#~ msgid "about"
+#~ msgstr "О"
+
+#~ msgid "Configure general settings"
+#~ msgstr "Общие настройки"
+
+#~ msgid "&Capacity"
+#~ msgstr "Вместимость"
+
+#~ msgid "Configure display"
+#~ msgstr "Настроить экран"
+
+#~ msgid "Configure user accounts"
+#~ msgstr "Настройка аккаунтов пользователей"
+
+#~ msgid "&Alias"
+#~ msgstr "Псевдоним"
+
+#~ msgid "&Protocol"
+#~ msgstr "Протокол"
+
+#~ msgid "&Server"
+#~ msgstr "&Сервер"
+
+#~ msgid "&User"
+#~ msgstr "&Пользователь"
+
+#~ msgid "Pass&word"
+#~ msgstr "Па&роль"
+
+#~ msgid "&Mailbox"
+#~ msgstr "&Звуковые сообщения"
+
+#~ msgid "Configure audio settings"
+#~ msgstr "Настройки звука"
+
+#~ msgid "Configure record settings"
+#~ msgstr "Настроить запись звонков"
+
+#~ msgid "Configure address book settings"
+#~ msgstr "Настроить адресную книгу"
+
+#~ msgid "Configure hooks settings"
+#~ msgstr "Настроить перехватчики"
+
+#~ msgid "SIP Protocol"
+#~ msgstr "SIP-Протокол"
+
+#~ msgid "IAX2 Protocol"
+#~ msgstr "IAX2-Протокол"
+
+#~ msgid "SIP Header"
+#~ msgstr "SIP Заголовок"
+
+#~ msgid "Prepend"
+#~ msgstr "Добавить в начало"
+
+#~ msgid "&Hang up"
+#~ msgstr "&Положить трубку"
+
+#~ msgid "H&old"
+#~ msgstr "&Удержать звонок"
+
+#~ msgid "&Transfer"
+#~ msgstr "Пе&реслать звонок на другой номер"
+
+#~ msgid "&About"
+#~ msgstr "&О SFLphone"
+
+#~ msgid "&Record"
+#~ msgstr "Записать"
+>>>>>>> rc1:sflphone-client-kde/po/ru/sflphone-client-kde.po
diff --git a/sflphone-client-kde/po/sflphone-client-kde.pot b/sflphone-client-kde/po/sflphone-client-kde.pot
index 79dcfb0c572de5c5d2afbbfd3818ddf66780607c..d2f4921bf98f6c95717f6a389333e15cff51bbf8 100644
--- a/sflphone-client-kde/po/sflphone-client-kde.pot
+++ b/sflphone-client-kde/po/sflphone-client-kde.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-07-03 13:49-0400\n"
+"POT-Creation-Date: 2009-07-08 15:18-0400\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -222,22 +222,22 @@ msgstr ""
 msgid "(C) 2009 Savoir-faire Linux"
 msgstr ""
 
-#: ../src/main.cpp:43
+#: ../src/main.cpp:42
 msgid "Jérémy Quentin"
 msgstr ""
 
-#: ../src/main.cpp:45
+#: ../src/main.cpp:43
 msgctxt "NAME OF TRANSLATORS"
 msgid "Your names"
 msgstr ""
 
-#: ../src/main.cpp:45
+#: ../src/main.cpp:43
 msgctxt "EMAIL OF TRANSLATORS"
 msgid "Your emails"
 msgstr ""
 
-#: ../src/SFLPhone.cpp:62 ../src/sflphone_kdeview.cpp:1047
-#: ../src/sflphone_kdeview.cpp:1052 ../src/sflphone_kdeview.cpp:1057
+#: ../src/SFLPhone.cpp:62 ../src/sflphone_kdeview.cpp:1066
+#: ../src/sflphone_kdeview.cpp:1071 ../src/sflphone_kdeview.cpp:1076
 msgid "SFLphone"
 msgstr ""
 
@@ -257,28 +257,28 @@ msgstr ""
 msgid "Click to accept or refuse it."
 msgstr ""
 
-#: ../src/sflphone_kdeview.cpp:864
+#: ../src/sflphone_kdeview.cpp:883
 msgid "No account registered"
 msgstr ""
 
-#: ../src/sflphone_kdeview.cpp:868
+#: ../src/sflphone_kdeview.cpp:887
 msgid "Using account"
 msgstr ""
 
-#: ../src/sflphone_kdeview.cpp:1047
+#: ../src/sflphone_kdeview.cpp:1066
 msgid "Main screen"
 msgstr ""
 
-#: ../src/sflphone_kdeview.cpp:1052 ../build/src/ui_dlggeneralbase.h:165
+#: ../src/sflphone_kdeview.cpp:1071 ../build/src/ui_dlggeneralbase.h:165
 msgid "Call history"
 msgstr ""
 
-#: ../src/sflphone_kdeview.cpp:1057
+#: ../src/sflphone_kdeview.cpp:1076
 #: ../build/src/ui_sflphone_kdeview_base.h:407
 msgid "Address book"
 msgstr ""
 
-#: ../src/sflphone_kdeview.cpp:1071 ../src/sflphone_kdeview.cpp:1132
+#: ../src/sflphone_kdeview.cpp:1090 ../src/sflphone_kdeview.cpp:1151
 msgid "Edit before call"
 msgstr ""
 
@@ -352,7 +352,7 @@ msgid "Hooks"
 msgstr ""
 
 #: ../build/src/ui_dlgaccountsbase.h:321
-#: ../build/src/ui_dlgaddressbookbase.h:142 ../build/src/ui_dlgaudiobase.h:262
+#: ../build/src/ui_dlgaddressbookbase.h:142 ../build/src/ui_dlgaudiobase.h:263
 #: ../build/src/ui_dlgdisplaybase.h:120 ../build/src/ui_dlggeneralbase.h:164
 #: ../build/src/ui_dlghooksbase.h:173 ../build/src/ui_dlgrecordbase.h:90
 #: ../build/src/ui_sflphone_kdeview_base.h:390
@@ -476,56 +476,52 @@ msgstr ""
 msgid "&Home"
 msgstr ""
 
-#: ../build/src/ui_dlgaudiobase.h:264
+#: ../build/src/ui_dlgaudiobase.h:265
 msgid "Audio device"
 msgstr ""
 
-#: ../build/src/ui_dlgaudiobase.h:267
+#: ../build/src/ui_dlgaudiobase.h:268
 msgid "ALSA"
 msgstr ""
 
-#: ../build/src/ui_dlgaudiobase.h:268
+#: ../build/src/ui_dlgaudiobase.h:269
 msgid "PulseAudio"
 msgstr ""
 
-#: ../build/src/ui_dlgaudiobase.h:270
+#: ../build/src/ui_dlgaudiobase.h:271
 msgid "Enable ringtones"
 msgstr ""
 
-#: ../build/src/ui_dlgaudiobase.h:271
-msgid "&Codecs"
+#: ../build/src/ui_dlgaudiobase.h:272
+msgid "*.ul *.au *.wav"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:273
-msgid "Active"
+msgid "&Codecs"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:275
-msgid "Name"
+msgid "Active"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:277
-msgid "Frequency"
+msgid "Name"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:279
-msgid "Bitrate"
+msgid "Frequency"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:281
-msgid "Bandwidth"
-msgstr ""
-
-#: ../build/src/ui_dlgaudiobase.h:284
-msgid "ALSA settings"
+msgid "Bitrate"
 msgstr ""
 
-#: ../build/src/ui_dlgaudiobase.h:285
-msgid "In"
+#: ../build/src/ui_dlgaudiobase.h:283
+msgid "Bandwidth"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:286
-msgid "Out"
+msgid "ALSA settings"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:287
@@ -533,10 +529,18 @@ msgid "ALSA plugin"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:288
-msgid "PulseAudio settings"
+msgid "In"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:289
+msgid "Out"
+msgstr ""
+
+#: ../build/src/ui_dlgaudiobase.h:290
+msgid "PulseAudio settings"
+msgstr ""
+
+#: ../build/src/ui_dlgaudiobase.h:291
 msgid "Mute other applications during a call"
 msgstr ""
 
@@ -651,7 +655,7 @@ msgid "Display dialpad"
 msgstr ""
 
 #: ../build/src/ui_sflphone_kdeview_base.h:405
-msgctxt "Action record a calld"
+msgctxt "Action record a call"
 msgid "Record"
 msgstr ""
 
diff --git a/sflphone-client-kde/po/zh_CN/sflphone-client-kde.po b/sflphone-client-kde/po/zh_CN/sflphone-client-kde.po
index 79dcfb0c572de5c5d2afbbfd3818ddf66780607c..d2f4921bf98f6c95717f6a389333e15cff51bbf8 100644
--- a/sflphone-client-kde/po/zh_CN/sflphone-client-kde.po
+++ b/sflphone-client-kde/po/zh_CN/sflphone-client-kde.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-07-03 13:49-0400\n"
+"POT-Creation-Date: 2009-07-08 15:18-0400\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -222,22 +222,22 @@ msgstr ""
 msgid "(C) 2009 Savoir-faire Linux"
 msgstr ""
 
-#: ../src/main.cpp:43
+#: ../src/main.cpp:42
 msgid "Jérémy Quentin"
 msgstr ""
 
-#: ../src/main.cpp:45
+#: ../src/main.cpp:43
 msgctxt "NAME OF TRANSLATORS"
 msgid "Your names"
 msgstr ""
 
-#: ../src/main.cpp:45
+#: ../src/main.cpp:43
 msgctxt "EMAIL OF TRANSLATORS"
 msgid "Your emails"
 msgstr ""
 
-#: ../src/SFLPhone.cpp:62 ../src/sflphone_kdeview.cpp:1047
-#: ../src/sflphone_kdeview.cpp:1052 ../src/sflphone_kdeview.cpp:1057
+#: ../src/SFLPhone.cpp:62 ../src/sflphone_kdeview.cpp:1066
+#: ../src/sflphone_kdeview.cpp:1071 ../src/sflphone_kdeview.cpp:1076
 msgid "SFLphone"
 msgstr ""
 
@@ -257,28 +257,28 @@ msgstr ""
 msgid "Click to accept or refuse it."
 msgstr ""
 
-#: ../src/sflphone_kdeview.cpp:864
+#: ../src/sflphone_kdeview.cpp:883
 msgid "No account registered"
 msgstr ""
 
-#: ../src/sflphone_kdeview.cpp:868
+#: ../src/sflphone_kdeview.cpp:887
 msgid "Using account"
 msgstr ""
 
-#: ../src/sflphone_kdeview.cpp:1047
+#: ../src/sflphone_kdeview.cpp:1066
 msgid "Main screen"
 msgstr ""
 
-#: ../src/sflphone_kdeview.cpp:1052 ../build/src/ui_dlggeneralbase.h:165
+#: ../src/sflphone_kdeview.cpp:1071 ../build/src/ui_dlggeneralbase.h:165
 msgid "Call history"
 msgstr ""
 
-#: ../src/sflphone_kdeview.cpp:1057
+#: ../src/sflphone_kdeview.cpp:1076
 #: ../build/src/ui_sflphone_kdeview_base.h:407
 msgid "Address book"
 msgstr ""
 
-#: ../src/sflphone_kdeview.cpp:1071 ../src/sflphone_kdeview.cpp:1132
+#: ../src/sflphone_kdeview.cpp:1090 ../src/sflphone_kdeview.cpp:1151
 msgid "Edit before call"
 msgstr ""
 
@@ -352,7 +352,7 @@ msgid "Hooks"
 msgstr ""
 
 #: ../build/src/ui_dlgaccountsbase.h:321
-#: ../build/src/ui_dlgaddressbookbase.h:142 ../build/src/ui_dlgaudiobase.h:262
+#: ../build/src/ui_dlgaddressbookbase.h:142 ../build/src/ui_dlgaudiobase.h:263
 #: ../build/src/ui_dlgdisplaybase.h:120 ../build/src/ui_dlggeneralbase.h:164
 #: ../build/src/ui_dlghooksbase.h:173 ../build/src/ui_dlgrecordbase.h:90
 #: ../build/src/ui_sflphone_kdeview_base.h:390
@@ -476,56 +476,52 @@ msgstr ""
 msgid "&Home"
 msgstr ""
 
-#: ../build/src/ui_dlgaudiobase.h:264
+#: ../build/src/ui_dlgaudiobase.h:265
 msgid "Audio device"
 msgstr ""
 
-#: ../build/src/ui_dlgaudiobase.h:267
+#: ../build/src/ui_dlgaudiobase.h:268
 msgid "ALSA"
 msgstr ""
 
-#: ../build/src/ui_dlgaudiobase.h:268
+#: ../build/src/ui_dlgaudiobase.h:269
 msgid "PulseAudio"
 msgstr ""
 
-#: ../build/src/ui_dlgaudiobase.h:270
+#: ../build/src/ui_dlgaudiobase.h:271
 msgid "Enable ringtones"
 msgstr ""
 
-#: ../build/src/ui_dlgaudiobase.h:271
-msgid "&Codecs"
+#: ../build/src/ui_dlgaudiobase.h:272
+msgid "*.ul *.au *.wav"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:273
-msgid "Active"
+msgid "&Codecs"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:275
-msgid "Name"
+msgid "Active"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:277
-msgid "Frequency"
+msgid "Name"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:279
-msgid "Bitrate"
+msgid "Frequency"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:281
-msgid "Bandwidth"
-msgstr ""
-
-#: ../build/src/ui_dlgaudiobase.h:284
-msgid "ALSA settings"
+msgid "Bitrate"
 msgstr ""
 
-#: ../build/src/ui_dlgaudiobase.h:285
-msgid "In"
+#: ../build/src/ui_dlgaudiobase.h:283
+msgid "Bandwidth"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:286
-msgid "Out"
+msgid "ALSA settings"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:287
@@ -533,10 +529,18 @@ msgid "ALSA plugin"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:288
-msgid "PulseAudio settings"
+msgid "In"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:289
+msgid "Out"
+msgstr ""
+
+#: ../build/src/ui_dlgaudiobase.h:290
+msgid "PulseAudio settings"
+msgstr ""
+
+#: ../build/src/ui_dlgaudiobase.h:291
 msgid "Mute other applications during a call"
 msgstr ""
 
@@ -651,7 +655,7 @@ msgid "Display dialpad"
 msgstr ""
 
 #: ../build/src/ui_sflphone_kdeview_base.h:405
-msgctxt "Action record a calld"
+msgctxt "Action record a call"
 msgid "Record"
 msgstr ""
 
diff --git a/sflphone-client-kde/po/zh_HK/sflphone-client-kde.po b/sflphone-client-kde/po/zh_HK/sflphone-client-kde.po
index 79dcfb0c572de5c5d2afbbfd3818ddf66780607c..d2f4921bf98f6c95717f6a389333e15cff51bbf8 100644
--- a/sflphone-client-kde/po/zh_HK/sflphone-client-kde.po
+++ b/sflphone-client-kde/po/zh_HK/sflphone-client-kde.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-07-03 13:49-0400\n"
+"POT-Creation-Date: 2009-07-08 15:18-0400\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -222,22 +222,22 @@ msgstr ""
 msgid "(C) 2009 Savoir-faire Linux"
 msgstr ""
 
-#: ../src/main.cpp:43
+#: ../src/main.cpp:42
 msgid "Jérémy Quentin"
 msgstr ""
 
-#: ../src/main.cpp:45
+#: ../src/main.cpp:43
 msgctxt "NAME OF TRANSLATORS"
 msgid "Your names"
 msgstr ""
 
-#: ../src/main.cpp:45
+#: ../src/main.cpp:43
 msgctxt "EMAIL OF TRANSLATORS"
 msgid "Your emails"
 msgstr ""
 
-#: ../src/SFLPhone.cpp:62 ../src/sflphone_kdeview.cpp:1047
-#: ../src/sflphone_kdeview.cpp:1052 ../src/sflphone_kdeview.cpp:1057
+#: ../src/SFLPhone.cpp:62 ../src/sflphone_kdeview.cpp:1066
+#: ../src/sflphone_kdeview.cpp:1071 ../src/sflphone_kdeview.cpp:1076
 msgid "SFLphone"
 msgstr ""
 
@@ -257,28 +257,28 @@ msgstr ""
 msgid "Click to accept or refuse it."
 msgstr ""
 
-#: ../src/sflphone_kdeview.cpp:864
+#: ../src/sflphone_kdeview.cpp:883
 msgid "No account registered"
 msgstr ""
 
-#: ../src/sflphone_kdeview.cpp:868
+#: ../src/sflphone_kdeview.cpp:887
 msgid "Using account"
 msgstr ""
 
-#: ../src/sflphone_kdeview.cpp:1047
+#: ../src/sflphone_kdeview.cpp:1066
 msgid "Main screen"
 msgstr ""
 
-#: ../src/sflphone_kdeview.cpp:1052 ../build/src/ui_dlggeneralbase.h:165
+#: ../src/sflphone_kdeview.cpp:1071 ../build/src/ui_dlggeneralbase.h:165
 msgid "Call history"
 msgstr ""
 
-#: ../src/sflphone_kdeview.cpp:1057
+#: ../src/sflphone_kdeview.cpp:1076
 #: ../build/src/ui_sflphone_kdeview_base.h:407
 msgid "Address book"
 msgstr ""
 
-#: ../src/sflphone_kdeview.cpp:1071 ../src/sflphone_kdeview.cpp:1132
+#: ../src/sflphone_kdeview.cpp:1090 ../src/sflphone_kdeview.cpp:1151
 msgid "Edit before call"
 msgstr ""
 
@@ -352,7 +352,7 @@ msgid "Hooks"
 msgstr ""
 
 #: ../build/src/ui_dlgaccountsbase.h:321
-#: ../build/src/ui_dlgaddressbookbase.h:142 ../build/src/ui_dlgaudiobase.h:262
+#: ../build/src/ui_dlgaddressbookbase.h:142 ../build/src/ui_dlgaudiobase.h:263
 #: ../build/src/ui_dlgdisplaybase.h:120 ../build/src/ui_dlggeneralbase.h:164
 #: ../build/src/ui_dlghooksbase.h:173 ../build/src/ui_dlgrecordbase.h:90
 #: ../build/src/ui_sflphone_kdeview_base.h:390
@@ -476,56 +476,52 @@ msgstr ""
 msgid "&Home"
 msgstr ""
 
-#: ../build/src/ui_dlgaudiobase.h:264
+#: ../build/src/ui_dlgaudiobase.h:265
 msgid "Audio device"
 msgstr ""
 
-#: ../build/src/ui_dlgaudiobase.h:267
+#: ../build/src/ui_dlgaudiobase.h:268
 msgid "ALSA"
 msgstr ""
 
-#: ../build/src/ui_dlgaudiobase.h:268
+#: ../build/src/ui_dlgaudiobase.h:269
 msgid "PulseAudio"
 msgstr ""
 
-#: ../build/src/ui_dlgaudiobase.h:270
+#: ../build/src/ui_dlgaudiobase.h:271
 msgid "Enable ringtones"
 msgstr ""
 
-#: ../build/src/ui_dlgaudiobase.h:271
-msgid "&Codecs"
+#: ../build/src/ui_dlgaudiobase.h:272
+msgid "*.ul *.au *.wav"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:273
-msgid "Active"
+msgid "&Codecs"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:275
-msgid "Name"
+msgid "Active"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:277
-msgid "Frequency"
+msgid "Name"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:279
-msgid "Bitrate"
+msgid "Frequency"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:281
-msgid "Bandwidth"
-msgstr ""
-
-#: ../build/src/ui_dlgaudiobase.h:284
-msgid "ALSA settings"
+msgid "Bitrate"
 msgstr ""
 
-#: ../build/src/ui_dlgaudiobase.h:285
-msgid "In"
+#: ../build/src/ui_dlgaudiobase.h:283
+msgid "Bandwidth"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:286
-msgid "Out"
+msgid "ALSA settings"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:287
@@ -533,10 +529,18 @@ msgid "ALSA plugin"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:288
-msgid "PulseAudio settings"
+msgid "In"
 msgstr ""
 
 #: ../build/src/ui_dlgaudiobase.h:289
+msgid "Out"
+msgstr ""
+
+#: ../build/src/ui_dlgaudiobase.h:290
+msgid "PulseAudio settings"
+msgstr ""
+
+#: ../build/src/ui_dlgaudiobase.h:291
 msgid "Mute other applications during a call"
 msgstr ""
 
@@ -651,7 +655,7 @@ msgid "Display dialpad"
 msgstr ""
 
 #: ../build/src/ui_sflphone_kdeview_base.h:405
-msgctxt "Action record a calld"
+msgctxt "Action record a call"
 msgid "Record"
 msgstr ""
 
diff --git a/sflphone-client-kde/src/Account.cpp b/sflphone-client-kde/src/Account.cpp
index f5fcf0362b4ea4ab7a5f01f0973cfe1a738d09ff..aee3cb2c54bb9c4f32ee35664061412287230629 100644
--- a/sflphone-client-kde/src/Account.cpp
+++ b/sflphone-client-kde/src/Account.cpp
@@ -53,10 +53,12 @@ const QString account_state_name(QString & s)
 
 //Constructors
 
-Account::Account():accountId(NULL), item(NULL), itemWidget(NULL){}
+Account::Account():accountId(NULL)
+{
+}
 
 
-void Account::initAccountItem()
+void Account::initItem()
 {
 	if(item != NULL)
 	{
@@ -65,10 +67,10 @@ void Account::initAccountItem()
 	item = new QListWidgetItem();
 	item->setSizeHint(QSize(140,25));
 	item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsDragEnabled|Qt::ItemIsDropEnabled|Qt::ItemIsEnabled);
-	initAccountItemWidget();
+	initItemWidget();
 }
 
-void Account::initAccountItemWidget()
+void Account::initItemWidget()
 {
 	if(itemWidget != NULL)
 	{
@@ -90,6 +92,7 @@ void Account::initAccountItemWidget()
 	{
 		itemWidget->setState(AccountItemWidget::NotWorking);
 	}
+	connect(itemWidget, SIGNAL(checkStateChanged(bool)), this, SLOT(setEnabled(bool)));
 }
 
 Account * Account::buildExistingAccountFromId(QString _accountId)
@@ -99,7 +102,7 @@ Account * Account::buildExistingAccountFromId(QString _accountId)
 	a->accountId = new QString(_accountId);
 	qDebug() << "getAccountDetails 1 sent";
 	a->accountDetails = new MapStringString( configurationManager.getAccountDetails(_accountId).value() );
-	a->initAccountItem();
+	a->initItem();
 	return a;
 }
 
@@ -108,7 +111,7 @@ Account * Account::buildNewAccountFromAlias(QString alias)
 	Account * a = new Account();
 	a->accountDetails = new MapStringString();
 	a->setAccountDetail(ACCOUNT_ALIAS,alias);
-	a->initAccountItem();
+	a->initItem();
 	return a;
 }
 
@@ -147,13 +150,11 @@ MapStringString & Account::getAccountDetails() const
 
 QListWidgetItem * Account::getItem()
 {
-	if(!item)  {	qDebug() << "null" ;	}
 	return item;
 }
 
 AccountItemWidget * Account::getItemWidget()
 {
-	if(itemWidget == NULL)  {	qDebug() << "null";	}
 	return itemWidget;
 }
 
@@ -214,6 +215,12 @@ void Account::setAccountId(QString id)
 	accountId = new QString(id);
 }
 
+void Account::setEnabled(bool checked)
+{
+	qDebug() << "setEnabled = " << checked;
+	setAccountDetail(ACCOUNT_ENABLED, checked ? ACCOUNT_ENABLED_TRUE : ACCOUNT_ENABLED_FALSE);
+}
+
 void Account::updateState()
 {
 	qDebug() << "updateState";
diff --git a/sflphone-client-kde/src/Account.h b/sflphone-client-kde/src/Account.h
index e1463bb64e3b280999f25f7a14e1bc7b49392187..37f11f4b23fcdae36e7e90ced18adfe25b4f8eeb 100644
--- a/sflphone-client-kde/src/Account.h
+++ b/sflphone-client-kde/src/Account.h
@@ -28,17 +28,18 @@
 
 #include "typedefs.h"
 #include "AccountItemWidget.h"
+#include "Item.h"
 
 const QString account_state_name(QString & s);
 
-class Account{
-	
+class Account : public QObject, public Item<AccountItemWidget>{
+Q_OBJECT
 private:
 
 	QString * accountId;
 	MapStringString * accountDetails;
-	QListWidgetItem * item;
-	AccountItemWidget * itemWidget;
+// 	QListWidgetItem * item;
+// 	AccountItemWidget * itemWidget;
 
 	Account();
 
@@ -69,13 +70,17 @@ public:
 	void setAccountDetail(QString param, QString val);
 	
 	//Updates
-	void initAccountItem();
-	void initAccountItemWidget();
+	void initItem();
+	void initItemWidget();
 	void updateState();
 	
 	//Operators
 	bool operator==(const Account&)const;
 	
+private slots:
+	void setEnabled(bool checked);
+	
+	
 	
 };
 
diff --git a/sflphone-client-kde/src/AccountItemWidget.cpp b/sflphone-client-kde/src/AccountItemWidget.cpp
index ab841e83a60a089db27df0bae82344571972aa49..3549b5fd92f2da3398e394d35ec317e6606faebe 100644
--- a/sflphone-client-kde/src/AccountItemWidget.cpp
+++ b/sflphone-client-kde/src/AccountItemWidget.cpp
@@ -113,7 +113,8 @@ bool AccountItemWidget::getEnabled()
 	return checkBox->checkState();
 }
 
-void AccountItemWidget::on_checkBox_stateChanged()
+void AccountItemWidget::on_checkBox_stateChanged(int state)
 {
-	emit checkStateChanged();
+	qDebug() << "on_checkBox_stateChanged";
+	emit checkStateChanged(state == Qt::Checked);
 }
diff --git a/sflphone-client-kde/src/AccountItemWidget.h b/sflphone-client-kde/src/AccountItemWidget.h
index 25c1a688dc1fb7c88a753d793a1de68ce69db6f5..60055a3e5b09728a0bc886d9c152eecaee791294 100644
--- a/sflphone-client-kde/src/AccountItemWidget.h
+++ b/sflphone-client-kde/src/AccountItemWidget.h
@@ -65,11 +65,11 @@ public:
 	void updateDisplay();
 	
 private slots:	
-	void on_checkBox_stateChanged();
+	void on_checkBox_stateChanged(int state);
 	
 	
 signals:
-	void checkStateChanged();
+	void checkStateChanged(bool checked);
 
 };
 
diff --git a/sflphone-client-kde/src/AccountList.cpp b/sflphone-client-kde/src/AccountList.cpp
index 3f53f475fdb6502359b1db9726ce391bd7364772..82f2afd0bb2c8f3083269455565b58dd6d2eca05 100644
--- a/sflphone-client-kde/src/AccountList.cpp
+++ b/sflphone-client-kde/src/AccountList.cpp
@@ -40,7 +40,10 @@ AccountList::AccountList(bool fill)
 {
 	qDebug() << "AccountList()";
 	accounts = new QVector<Account *>();
-	updateAccounts();
+	if(fill)
+	{
+		updateAccounts();
+	}
 }
 
 void AccountList::update()
diff --git a/sflphone-client-kde/src/CMakeLists.txt b/sflphone-client-kde/src/CMakeLists.txt
index 32540e27410f48052ba8ab62a9999a14b5ae47a6..1513094c6247e19af0d06a12d5c57d0874592765 100644
--- a/sflphone-client-kde/src/CMakeLists.txt
+++ b/sflphone-client-kde/src/CMakeLists.txt
@@ -54,6 +54,10 @@ SET(	   sflphone_client_kde_SRCS
 	conf/dlghooks.cpp
 	conf/ConfigurationSkeleton.cpp
 	Dialpad.cpp
+	Codec.cpp
+	CodecListModel.cpp
+	SortableCodecListWidget.cpp
+	Item.cpp
 )
  
 
diff --git a/sflphone-client-kde/src/Call.cpp b/sflphone-client-kde/src/Call.cpp
index e5f2e94c1f6cad8eee3ad25a3f2a25f44867b283..efb34db0da9ab6b59166ceb24edb7f62736ac8c4 100644
--- a/sflphone-client-kde/src/Call.cpp
+++ b/sflphone-client-kde/src/Call.cpp
@@ -54,7 +54,7 @@ const function Call::actionPerformedFunctionMap[11][5] =
 /*INCOMING       */  {&Call::accept     , &Call::refuse   , &Call::acceptTransf   , &Call::acceptHold  ,  &Call::setRecord     },
 /*RINGING        */  {&Call::nothing    , &Call::hangUp   , &Call::nothing        , &Call::nothing     ,  &Call::setRecord     },
 /*CURRENT        */  {&Call::nothing    , &Call::hangUp   , &Call::nothing        , &Call::hold        ,  &Call::setRecord     },
-/*DIALING        */  {&Call::call       , &Call::nothing  , &Call::nothing        , &Call::nothing     ,  &Call::nothing       },
+/*DIALING        */  {&Call::call       , &Call::cancel  , &Call::nothing        , &Call::nothing     ,  &Call::nothing       },
 /*HOLD           */  {&Call::nothing    , &Call::hangUp   , &Call::nothing        , &Call::unhold      ,  &Call::setRecord     },
 /*FAILURE        */  {&Call::nothing    , &Call::hangUp   , &Call::nothing        , &Call::nothing     ,  &Call::nothing       },
 /*BUSY           */  {&Call::nothing    , &Call::hangUp   , &Call::nothing        , &Call::nothing     ,  &Call::nothing       },
@@ -164,24 +164,20 @@ Call::Call(call_state startState, QString callId, QString peerName, QString peer
 	this->stopTime = NULL;
 }
 
-Call::Call(QString callId)
+Call * Call::buildExistingCall(QString callId)
 {
 	CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance();
 	MapStringString details = callManager.getCallDetails(callId).value();
 	qDebug() << "Constructing existing call with details : " << details;
-	this->callId = callId;
-	this->peerPhoneNumber = details[CALL_PEER_NUMBER];
-	this->peerName = details[CALL_PEER_NAME];
-	initCallItem();
+	QString peerNumber = details[CALL_PEER_NUMBER];
+	QString peerName = details[CALL_PEER_NAME];
 	call_state startState = getStartStateFromDaemonCallState(details[CALL_STATE], details[CALL_TYPE]);
-	changeCurrentState(startState);
-	this->historyState = getHistoryStateFromDaemonCallState(details[CALL_STATE], details[CALL_TYPE]);
-	this->account = details[CALL_ACCOUNTID];
-	this->recording = false;
-	this->startTime = new QDateTime(QDateTime::currentDateTime());
-	this->stopTime = NULL;
-	this->historyItem = NULL;
-	this->historyItemWidget = NULL;
+	QString account = details[CALL_ACCOUNTID];
+	Call * call = new Call(startState, callId, peerName, peerNumber, account);
+	call->startTime = new QDateTime(QDateTime::currentDateTime());
+	call->recording = callManager.getIsRecording(callId);
+	call->historyState = getHistoryStateFromDaemonCallState(details[CALL_STATE], details[CALL_TYPE]);
+	return call;
 }
 
 Call::~Call()
@@ -251,6 +247,7 @@ history_state Call::getHistoryStateFromType(QString type)
 	{
 		return INCOMING;
 	}
+	return NONE;
 }
 
 call_state Call::getStartStateFromDaemonCallState(QString daemonCallState, QString daemonCallType)
@@ -275,6 +272,14 @@ call_state Call::getStartStateFromDaemonCallState(QString daemonCallState, QStri
 	{
 		return CALL_STATE_RINGING;
 	}
+	else if(daemonCallState == DAEMON_CALL_STATE_INIT_INCOMING)
+	{
+		return CALL_STATE_INCOMING;
+	}
+	else if(daemonCallState == DAEMON_CALL_STATE_INIT_RINGING)
+	{
+		return CALL_STATE_RINGING;
+	}
 	else
 	{
 		return CALL_STATE_FAILURE;
@@ -353,7 +358,7 @@ Contact * Call::findContactForNumberInKAddressBook(QString number)
 	ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
 	MapStringInt addressBookSettings = configurationManager.getAddressbookSettings().value();
 	bool displayPhoto = addressBookSettings[ADDRESSBOOK_DISPLAY_CONTACT_PHOTO];
-	AddressBook * ab = KABC::StdAddressBook::self();
+	AddressBook * ab = KABC::StdAddressBook::self(true);
 	QVector<Contact *> results = QVector<Contact *>();
 	AddressBook::Iterator it;
 	for ( it = ab->begin(); it != ab->end(); ++it ) {	
@@ -558,6 +563,13 @@ void Call::hangUp()
 	callManager.hangUp(callId);
 }
 
+void Call::cancel()
+{
+	CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance();
+	qDebug() << "Canceling call. callId : " << callId;
+	callManager.hangUp(callId);
+}
+
 void Call::hold()
 {
 	CallManagerInterface & callManager = CallManagerInterfaceSingleton::getInstance();
@@ -572,8 +584,8 @@ void Call::call()
 	qDebug() << "account = " << account;
 	if(account.isEmpty())
 	{
-		qDebug() << "account is empty"; 
-		this->account = sflphone_kdeView::firstRegisteredAccount()->getAccountId();
+		qDebug() << "account is empty, taking the first registered.";
+		this->account = sflphone_kdeView::firstRegisteredAccountId();
 	}
 	if(!account.isEmpty())
 	{
@@ -581,8 +593,8 @@ void Call::call()
 		callManager.placeCall(account, callId, number);
 		this->account = account;
 		this->peerPhoneNumber = number;
-		Contact * contact = findContactForNumberInKAddressBook(peerPhoneNumber);
-		if(contact) this->peerName = contact->getNickName();
+// 		Contact * contact = findContactForNumberInKAddressBook(peerPhoneNumber);
+// 		if(contact) this->peerName = contact->getNickName();
 		this->startTime = new QDateTime(QDateTime::currentDateTime());
 		this->historyState = OUTGOING;
 	}
@@ -647,7 +659,6 @@ void Call::warning()
 
 void Call::appendItemText(QString text)
 {
-	ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
 	QLabel * editNumber;
 	switch(currentState)
 	{
diff --git a/sflphone-client-kde/src/Call.h b/sflphone-client-kde/src/Call.h
index 143c0cb4ebfa5075e9cedeb6951bffe468a832ef..3d3ae20fc7de786f9c040bd9c78f0309f115dc63 100644
--- a/sflphone-client-kde/src/Call.h
+++ b/sflphone-client-kde/src/Call.h
@@ -113,6 +113,31 @@ class Call;
 
 typedef  void (Call::*function)();
 
+
+/**
+ *  This class represents a call either actual (in the call list
+ *  displayed in main window), either past (in the call history).
+ *  A call is represented by an automate, with a list of states
+ *  (enum call_state) and 2 lists of transition signals
+ *  (call_action when the user performs an action on the UI and 
+ *  daemon_call_state when the daemon sends a stateChanged signal)
+ *  When a transition signal is received, the automate calls a
+ *  function then go to a new state according to the previous state
+ *  of the call and the signal received.
+ *  The functions to call and the new states to go to are placed in
+ *  the maps actionPerformedStateMap, actionPerformedFunctionMap, 
+ *  stateChangedStateMap and stateChangedFunctionMap.
+ *  Those maps are used by actionPerformed and stateChanged functions
+ *  to handle the behavior of the automate.
+ *  When an actual call goes to the state OVER, it becomes part of
+ *  the call history.
+ *
+ *  It may be better to handle call list and call history separately,
+ *  and to use the class Item to handle their display, or a model/view
+ *  way. For this it needs to handle the becoming of a call to a past call
+ *  keeping the information gathered by the call and needed by the history
+ *  call (history state, start time...).
+**/
 class Call
 {
 private:
@@ -144,9 +169,34 @@ private:
 	
 	
 	//Automate attributes
+	/**
+	 *  actionPerformedStateMap[orig_state][action]
+	 *  Map of the states to go to when the action action is 
+	 *  performed on a call in state orig_state.
+	**/
 	static const call_state actionPerformedStateMap [11][5];
+	
+	/**
+	 *  actionPerformedFunctionMap[orig_state][action]
+	 *  Map of the functions to call when the action action is 
+	 *  performed on a call in state orig_state.
+	**/
 	static const function actionPerformedFunctionMap [11][5];
+	
+	/**
+	 *  stateChangedStateMap[orig_state][daemon_new_state]
+	 *  Map of the states to go to when the daemon sends the signal 
+	 *  callStateChanged with arg daemon_new_state
+	 *  on a call in state orig_state.
+	**/
 	static const call_state stateChangedStateMap [11][6];
+	
+	/**
+	 *  stateChangedFunctionMap[orig_state][daemon_new_state]
+	 *  Map of the functions to call when the daemon sends the signal 
+	 *  callStateChanged with arg daemon_new_state
+	 *  on a call in state orig_state.
+	**/
 	static const function stateChangedFunctionMap [11][6];
 	
 	static const char * historyIcons[3];
@@ -161,12 +211,15 @@ private:
 	static daemon_call_state toDaemonCallState(const QString & stateName);
 	
 	//Automate functions
+	// See actionPerformedFunctionMap and stateChangedFunctionMap
+	// to know when it is called.
 	void nothing();
 	void accept();
 	void refuse();
 	void acceptTransf();
 	void acceptHold();
 	void hangUp();
+	void cancel();
 	void hold();
 	void call();
 	void transfer();
@@ -180,13 +233,14 @@ private:
 public:
 	
 	//Constructors & Destructors
-	Call(QString callId);
 	~Call();
 	void initCallItem();
 	static Call * buildDialingCall(QString callId, const QString & peerName, QString account = "");
-	static Call * buildIncomingCall(const QString & callId/*, const QString & from, const QString & account*/);
+	static Call * buildIncomingCall(const QString & callId);
 	static Call * buildRingingCall(const QString & callId);
 	static Call * buildHistoryCall(const QString & callId, uint startTimeStamp, uint stopTimeStamp, QString account, QString name, QString number, QString type);
+	static Call * buildExistingCall(QString callId);
+	
 	static history_state getHistoryStateFromType(QString type);
 	static call_state getStartStateFromDaemonCallState(QString daemonCallState, QString daemonCallType);
 	static history_state getHistoryStateFromDaemonCallState(QString daemonCallState, QString daemonCallType);
diff --git a/sflphone-client-kde/src/CallList.cpp b/sflphone-client-kde/src/CallList.cpp
index ca189dee7763918ddb9e57d6b23890d990d74bab..9f2cb774456cb3f812375a2e78fd720d19bb9e64 100644
--- a/sflphone-client-kde/src/CallList.cpp
+++ b/sflphone-client-kde/src/CallList.cpp
@@ -31,11 +31,10 @@ CallList::CallList()
 	ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
 	QStringList callList = callManager.getCallList();
 	qDebug() << "Call List = " << callList;
-	callIdCpt = 0;
 	calls = new QVector<Call *>();
 	for(int i = 0 ; i < callList.size() ; i++)
 	{
-		calls->append(new Call(callList[i]));
+		calls->append(Call::buildExistingCall(callList[i]));
 	}
 	MapStringString historyMap = configurationManager.getHistory().value();
 	qDebug() << "Call History = " << historyMap;
@@ -49,7 +48,7 @@ CallList::CallList()
 		QString name = param[2];
 		uint stopTimeStamp = param[3].toUInt();
 		QString account = param[4];
-		calls->append(Call::buildHistoryCall(getAndIncCallId(), startTimeStamp, stopTimeStamp, account, name, number, type));
+		calls->append(Call::buildHistoryCall(generateCallId(), startTimeStamp, stopTimeStamp, account, name, number, type));
 	}
 }
 
@@ -127,10 +126,11 @@ Call * CallList::operator[](int ind)
 	return (*calls)[ind];
 }
 
-QString CallList::getAndIncCallId()
+
+QString CallList::generateCallId()
 {
-	QString res = QString::number(callIdCpt++);
-	
+	int id = qrand();
+	QString res = QString::number(id);
 	return res;
 }
 
@@ -141,7 +141,7 @@ int CallList::size()
 
 Call * CallList::addDialingCall(const QString & peerName, QString account)
 {
-	Call * call = Call::buildDialingCall(getAndIncCallId(), peerName, account);
+	Call * call = Call::buildDialingCall(generateCallId(), peerName, account);
 	calls->append(call);
 	return call;
 }
diff --git a/sflphone-client-kde/src/CallList.h b/sflphone-client-kde/src/CallList.h
index 2ca3dd10b1f0d304b276bbc1db4df9c7acdda67a..e9ff5341b32a19a4822620b7e63886495eb733c7 100644
--- a/sflphone-client-kde/src/CallList.h
+++ b/sflphone-client-kde/src/CallList.h
@@ -35,7 +35,6 @@ Q_OBJECT
 private:
 
 	QVector<Call *> * calls;
-	int callIdCpt;
 
 public:
 
@@ -58,7 +57,7 @@ public:
 	Call * addRingingCall(const QString & callId);
 
 	//GSetter
-	QString getAndIncCallId();
+	QString generateCallId();
 	
 public slots:
 	void clearHistory();
diff --git a/sflphone-client-kde/src/Codec.cpp b/sflphone-client-kde/src/Codec.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..3e94070c0de39b524cf2153406c0ac2d1a2cefa9
--- /dev/null
+++ b/sflphone-client-kde/src/Codec.cpp
@@ -0,0 +1,64 @@
+/***************************************************************************
+ *   Copyright (C) 2009 by Savoir-Faire Linux                              *
+ *   Author : Jérémy Quentin                                               *
+ *   jeremy.quentin@savoirfairelinux.com                                   *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 3 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ ***************************************************************************/
+#include "Codec.h"
+
+#include "configurationmanager_interface_singleton.h"
+#include "sflphone_const.h"
+
+Codec::Codec(int payload, bool enabled)
+{
+	ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
+	QStringList details = configurationManager.getCodecDetails(payload);
+	this->payload = QString::number(payload);
+	this->enabled = enabled;
+	this->name = details[CODEC_NAME];
+	this->frequency = details[CODEC_SAMPLE_RATE];
+	this->bitrate = details[CODEC_BIT_RATE];
+	this->bandwidth = details[CODEC_BANDWIDTH];
+}
+
+QString Codec::getPayload() const
+{	return payload;	}
+QString Codec::getName() const
+{	return name;	}
+QString Codec::getFrequency() const
+{	return frequency;	}
+QString Codec::getBitrate() const
+{	return bitrate;	}
+QString Codec::getBandwidth() const
+{	return bandwidth;	}
+bool Codec::isEnabled() const
+{	return enabled;	}
+
+void Codec::setPayload(QString payload)
+{	this->payload = payload;	}
+void Codec::setName(QString name)
+{	this->name = name;	}
+void Codec::setFrequency(QString frequency)
+{	this->frequency = frequency;	}
+void Codec::setBitrate(QString bitrate)
+{	this->bitrate = bitrate;	}
+void Codec::setBandwidth(QString bandwidth)
+{	this->bandwidth = bandwidth;	}
+void Codec::setEnabled(bool enabled)
+{	this->enabled = enabled;	}
+
+
diff --git a/sflphone-client-kde/src/Codec.h b/sflphone-client-kde/src/Codec.h
new file mode 100644
index 0000000000000000000000000000000000000000..9a86d604d5a9a293cf7a1e9b2a9b59cd463d86e8
--- /dev/null
+++ b/sflphone-client-kde/src/Codec.h
@@ -0,0 +1,66 @@
+/***************************************************************************
+ *   Copyright (C) 2009 by Savoir-Faire Linux                              *
+ *   Author : Jérémy Quentin                                               *
+ *   jeremy.quentin@savoirfairelinux.com                                   *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 3 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ ***************************************************************************/
+#ifndef CODEC_H
+#define CODEC_H
+
+#include <QObject>
+#include <QtCore/QString>
+
+/**
+	@author Jérémy Quentin <jeremy.quentin@gmail.com>
+*/
+class Codec : public QObject
+{
+Q_OBJECT
+private:
+	QString payload;
+	QString name;
+	QString frequency;
+	QString bitrate;
+	QString bandwidth;
+	bool enabled;
+
+public:
+	Codec(int payload, bool enabled);
+// 	Codec(const Codec & codec);
+
+// 	~Codec();
+    
+	QString getPayload() const;
+	QString getName() const;
+	QString getFrequency() const;
+	QString getBitrate() const;
+	QString getBandwidth() const;
+	bool isEnabled() const;
+	
+	void setPayload(QString payload);
+	void setName(QString name);
+	void setFrequency(QString frequency);
+	void setBitrate(QString bitrate);
+	void setBandwidth(QString bandwidth);
+	void setEnabled(bool enabled);
+	
+	Codec & operator=(const Codec&);
+
+	
+};
+
+#endif
diff --git a/sflphone-client-kde/src/CodecListModel.cpp b/sflphone-client-kde/src/CodecListModel.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..60b7866dd52c34899ef51f2290811393bd249a90
--- /dev/null
+++ b/sflphone-client-kde/src/CodecListModel.cpp
@@ -0,0 +1,203 @@
+/***************************************************************************
+ *   Copyright (C) 2009 by Savoir-Faire Linux                              *
+ *   Author : Jérémy Quentin                                               *
+ *   jeremy.quentin@savoirfairelinux.com                                   *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 3 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ ***************************************************************************/
+#include "CodecListModel.h"
+
+#include <QtCore/QSize>
+#include <QtCore/QDebug>
+#include "configurationmanager_interface_singleton.h"
+
+CodecListModel::CodecListModel(QObject *parent)
+ : QAbstractTableModel(parent)
+{
+	this->codecs = QList<Codec *>();
+	ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
+	QStringList activeCodecList = configurationManager.getActiveCodecList();
+	setActiveCodecList(activeCodecList);
+}
+
+
+CodecListModel::~CodecListModel()
+{
+}
+
+
+QVariant CodecListModel::data ( const QModelIndex & index, int role) const
+{
+	if (!index.isValid())
+		return QVariant();
+
+	const Codec * codec = codecs[index.row()];
+	if(index.column() == 0 && role == Qt::DisplayRole)
+	{
+		return QVariant(codec->getName());
+	}
+	else if(index.column() == 0 && role == Qt::CheckStateRole)
+	{
+		return QVariant(codec->isEnabled() ? Qt::Checked : Qt::Unchecked);
+	}
+	else if(index.column() == 1 && role == Qt::DisplayRole)
+	{
+		return QVariant(codec->getFrequency());
+	}
+	else if(index.column() == 2 && role == Qt::DisplayRole)
+	{
+		return QVariant(codec->getBitrate());
+	}
+	else if(index.column() == 3 && role == Qt::DisplayRole)
+	{
+		return QVariant(codec->getBandwidth());
+	}
+	
+	return QVariant();
+}
+
+
+int CodecListModel::rowCount(const QModelIndex & parent) const
+{
+	return codecs.count();
+}
+
+int CodecListModel::columnCount(const QModelIndex & parent) const
+{
+	return 4;
+}
+
+
+QVariant CodecListModel::headerData(int section , Qt::Orientation orientation, int role) const
+{
+	if (section == 0 && orientation == Qt::Horizontal && role == Qt::DisplayRole)
+	{
+		return QVariant("Codec");
+	}
+	else if (section == 1 && orientation == Qt::Horizontal && role == Qt::DisplayRole)
+	{
+		return QVariant("Frequency");
+	}
+	else if (section == 2 && orientation == Qt::Horizontal && role == Qt::DisplayRole)
+	{
+		return QVariant("Bitrate");
+	}
+	else if (section == 3 && orientation == Qt::Horizontal && role == Qt::DisplayRole)
+	{
+		return QVariant("Bandwidth");
+	}
+	return QVariant();
+}
+
+Qt::ItemFlags CodecListModel::flags(const QModelIndex & index) const
+{
+	if (index.column() == 0)
+	{
+		return QAbstractItemModel::flags(index) | Qt::ItemIsUserCheckable;
+	}
+	return QAbstractItemModel::flags(index);
+}
+
+bool CodecListModel::setData ( const QModelIndex & index, const QVariant &value, int role)
+{
+	qDebug() << "setData";
+	if (index.isValid() && index.column() == 0 && role == Qt::CheckStateRole) {
+		codecs[index.row()]->setEnabled(value.toBool());
+		emit dataChanged(index, index);
+		return true;
+	}
+	return false;
+}
+
+bool CodecListModel::codecUp( int index )
+{
+		qDebug() << getActiveCodecList();
+	if(index > 0 && index <= rowCount())
+	{
+		codecs.swap(index - 1, index);
+		qDebug() << getActiveCodecList();
+		emit dataChanged(this->index(index - 1, 0, QModelIndex()), this->index(index, columnCount(), QModelIndex()));
+		qDebug() << getActiveCodecList();
+		return true;
+	}
+	return false;
+}
+
+bool CodecListModel::codecDown( int index )
+{
+	if(index >= 0 && index < rowCount())
+	{
+		codecs.swap(index + 1, index);
+		emit dataChanged(this->index(index, 0, QModelIndex()), this->index(index + 1, columnCount(), QModelIndex()));
+		return true;
+	}
+	return false;
+}
+
+QStringList CodecListModel::getActiveCodecList() const
+{
+	QStringList codecList;
+	for(int i = 0 ; i < rowCount() ; i++)
+	{
+		if(codecs[i]->isEnabled())
+			codecList.append(codecs[i]->getPayload());
+	}
+	return codecList;
+}
+
+void CodecListModel::setActiveCodecList(const QStringList & activeCodecListToSet)
+{
+	this->codecs = QList<Codec *>();
+	ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
+	QStringList codecList = configurationManager.getCodecList();
+	QStringList activeCodecList = activeCodecListToSet;
+	#if QT_VERSION >= 0x040500
+		activeCodecList.removeDuplicates();
+	#else
+   	for (int i = 0 ; i < activeCodecList.size() ; i++)
+		{
+			if(activeCodecList.lastIndexOf(activeCodecList[i]) != i || ! codecList.contains(activeCodecList[i]))
+			{
+				activeCodecList.removeAt(i);
+				i--;
+			}
+		}
+	#endif
+
+	QStringList codecListToDisplay = activeCodecList;
+	for (int i=0 ; i<codecList.size() ; i++)
+	{
+		if(! activeCodecList.contains(codecList[i]))
+		{
+			codecListToDisplay << codecList[i];
+		}
+	}
+	for(int i=0 ; i<codecListToDisplay.size() ; i++)
+	{
+		bool ok;
+		qDebug() << codecListToDisplay[i];
+		QString payloadStr = QString(codecListToDisplay[i]);
+		int payload = payloadStr.toInt(&ok);
+		if(!ok)	
+			qDebug() << "The codec's payload sent by the configurationManager is not a number : " << codecListToDisplay[i];
+		else
+		{
+			codecs << new Codec(payload, activeCodecList.contains(codecListToDisplay[i]));
+		}
+	}
+	
+	emit dataChanged(this->index(0, 0, QModelIndex()), this->index(rowCount(), columnCount(), QModelIndex()));
+}
diff --git a/sflphone-client-kde/src/CodecListModel.h b/sflphone-client-kde/src/CodecListModel.h
new file mode 100644
index 0000000000000000000000000000000000000000..26b63b642c12baa619abed2dedaf1054f0bf1673
--- /dev/null
+++ b/sflphone-client-kde/src/CodecListModel.h
@@ -0,0 +1,59 @@
+/***************************************************************************
+ *   Copyright (C) 2009 by Savoir-Faire Linux                              *
+ *   Author : Jérémy Quentin                                               *
+ *   jeremy.quentin@savoirfairelinux.com                                   *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 3 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ ***************************************************************************/
+#ifndef CODECLISTMODEL_H
+#define CODECLISTMODEL_H
+
+#include <QAbstractItemModel>
+#include "Codec.h"
+
+/**
+	@author Jérémy Quentin <jeremy.quentin@gmail.com>
+*/
+class CodecListModel : public QAbstractTableModel
+{
+Q_OBJECT
+private:
+	QList<Codec *> codecs;
+
+public:
+	CodecListModel(QObject *parent = 0);
+
+	~CodecListModel();
+	void setCodecs(QList<Codec *> codecs);
+
+	QVariant data ( const QModelIndex & index, int role = Qt::DisplayRole ) const;
+	int rowCount(const QModelIndex & parent = QModelIndex()) const;
+	int columnCount(const QModelIndex & parent = QModelIndex()) const;
+// 	bool insertRows(int position, int rows, const QModelIndex &parent);
+	QVariant headerData(int section , Qt::Orientation orientation, int role) const;
+	Qt::ItemFlags flags(const QModelIndex & index) const;
+	virtual bool setData ( const QModelIndex & index, const QVariant &value, int role);
+	
+	bool codecUp( int index );
+	bool codecDown( int index );
+	QStringList getActiveCodecList() const ;
+	void setActiveCodecList(const QStringList & activeCodecListToSet);
+
+signals:
+	void dataChanged(const QModelIndex &, const QModelIndex &);
+};
+
+#endif
diff --git a/sflphone-client-kde/src/Contact.cpp b/sflphone-client-kde/src/Contact.cpp
index 60d32f21a85e7232ac29269f0578b54b70588665..af3ee5ea9644a29387c583e63c4d65456de471b5 100644
--- a/sflphone-client-kde/src/Contact.cpp
+++ b/sflphone-client-kde/src/Contact.cpp
@@ -33,6 +33,7 @@ Contact::Contact(Addressee addressee, const PhoneNumber & number, bool displayPh
 	this->nickName = addressee.nickName();
 	this->phoneNumber = number.number();
 	this->type = number.type();
+	this->displayPhoto = displayPhoto;
 	if(displayPhoto)
 	{
 		this->photo = new Picture(addressee.photo());
@@ -42,7 +43,7 @@ Contact::Contact(Addressee addressee, const PhoneNumber & number, bool displayPh
 		this->photo = NULL;
 	}
 	
-	initItem(displayPhoto);
+	initItem();
 }
 
 
@@ -53,10 +54,15 @@ Contact::~Contact()
 	delete photo;
 }
 
-void Contact::initItem(bool displayPhoto)
+void Contact::initItem()
 {
 	this->item = new QListWidgetItem();
 	this->item->setSizeHint(QSize(140,CONTACT_ITEM_HEIGHT));
+	initItemWidget();
+}
+
+void Contact::initItemWidget()
+{
 	this->itemWidget = new ContactItemWidget(this, displayPhoto);
 }
 
@@ -90,13 +96,4 @@ PhoneNumber::Type Contact::getType() const
 	return type;
 }
 
-QListWidgetItem * Contact::getItem()
-{
-	return item;
-}
-    
-QWidget * Contact::getItemWidget()
-{
-	return itemWidget;
-}
 
diff --git a/sflphone-client-kde/src/Contact.h b/sflphone-client-kde/src/Contact.h
index 383aaa688e72391c83621a22d4e5573f85fe39b4..bf4f4f987ca885bf41ebd3fcf4960b76ea49a7be 100644
--- a/sflphone-client-kde/src/Contact.h
+++ b/sflphone-client-kde/src/Contact.h
@@ -28,25 +28,26 @@
 #include <kabc/picture.h>
 #include <kabc/phonenumber.h>
 
+#include "Item.h"
+#include "ContactItemWidget.h"
+
 using namespace KABC;
 
+class ContactItemWidget;
+
 /**
 	@author Jérémy Quentin <jeremy.quentin@savoirfairelinux.com>
 */
-class Contact{
+class Contact : public QObject, public Item<ContactItemWidget>{
 private:
-	QListWidgetItem * item;
-	QWidget * itemWidget;
 	QString firstName;
 	QString secondName;
 	QString nickName;
 	QString phoneNumber;
 	Picture * photo;
 	PhoneNumber::Type type;
+	bool displayPhoto;
 	
-private:
-	void initItem(bool displayPhoto);
-
 public:
 
 	//Constructors & Destructors
@@ -60,8 +61,10 @@ public:
 	QString getSecondName() const;
 	const Picture * getPhoto() const;
 	PhoneNumber::Type getType() const;
-	QListWidgetItem * getItem();
-	QWidget * getItemWidget();
+	void initItem();
+	
+protected:
+	void initItemWidget();
 
 };
 
diff --git a/sflphone-client-kde/src/ContactItemWidget.h b/sflphone-client-kde/src/ContactItemWidget.h
index a3d4e3d41ea41fb45b28ffc8bc27b69af78bc093..517d0a78dc169411fd1e1be48584c6d53cfb3a8c 100644
--- a/sflphone-client-kde/src/ContactItemWidget.h
+++ b/sflphone-client-kde/src/ContactItemWidget.h
@@ -25,6 +25,8 @@
 #include <QtGui/QLabel>
 #include "Contact.h"
 
+class Contact;
+
 /**
 	@author Jérémy Quentin <jeremy.quentin@savoirfairelinux.com>
 */
diff --git a/sflphone-client-kde/src/Item.cpp b/sflphone-client-kde/src/Item.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..705cb2948c4eefbf44912f1b598ed4c4cf23c8d9
--- /dev/null
+++ b/sflphone-client-kde/src/Item.cpp
@@ -0,0 +1,22 @@
+/***************************************************************************
+ *   Copyright (C) 2009 by Savoir-Faire Linux                              *
+ *   Author : Jérémy Quentin                                               *
+ *   jeremy.quentin@savoirfairelinux.com                                   *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 3 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ ***************************************************************************/
+#include "Item.h"
+
diff --git a/sflphone-client-kde/src/Item.h b/sflphone-client-kde/src/Item.h
new file mode 100644
index 0000000000000000000000000000000000000000..c859375c07cfbabc6091b52b67b13745106e99e9
--- /dev/null
+++ b/sflphone-client-kde/src/Item.h
@@ -0,0 +1,92 @@
+/***************************************************************************
+ *   Copyright (C) 2009 by Savoir-Faire Linux                              *
+ *   Author : Jérémy Quentin                                               *
+ *   jeremy.quentin@savoirfairelinux.com                                   *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 3 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ ***************************************************************************/
+#ifndef ITEM_H
+#define ITEM_H
+
+#include <QObject>
+#include <QListWidgetItem>
+#include <QWidget>
+
+/**
+	@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 Item
+{
+protected:
+	QListWidgetItem * item;
+	WIDGET_TYPE * itemWidget;
+	
+
+public:
+	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;
+	
+	
+};
+
+#endif
diff --git a/sflphone-client-kde/src/SortableCodecListWidget.cpp b/sflphone-client-kde/src/SortableCodecListWidget.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..27587446b7b735b6c972b8e07a930009d13fe343
--- /dev/null
+++ b/sflphone-client-kde/src/SortableCodecListWidget.cpp
@@ -0,0 +1,145 @@
+/***************************************************************************
+ *   Copyright (C) 2009 by Savoir-Faire Linux                              *
+ *   Author : Jérémy Quentin                                               *
+ *   jeremy.quentin@savoirfairelinux.com                                   *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 3 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ ***************************************************************************/
+#include "SortableCodecListWidget.h"
+
+#include <QHBoxLayout>
+#include <QVBoxLayout>
+#include <QDebug>
+
+SortableCodecListWidget::SortableCodecListWidget(QWidget *parent)
+ : QWidget(parent)
+{
+	codecTable = new QTableView(this);
+	codecTable->setObjectName("codecTable");
+// 	CodecListModel * model = new CodecListModel();
+// 	codecTable->setModel(model);
+// 	codecTable->resizeColumnsToContents();
+// 	codecTable->resizeRowsToContents();
+	codecTable->setSelectionBehavior(QAbstractItemView::SelectRows);
+	
+	codecUpButton = new KPushButton(this);
+	codecUpButton->setObjectName("codecUpButton");
+	codecUpButton->setIcon(KIcon("go-up"));
+	
+	codecDownButton = new KPushButton(this);
+	codecDownButton->setObjectName("codecDownButton");
+	codecDownButton->setIcon(KIcon("go-down"));
+	
+	QHBoxLayout * mainLayout = new QHBoxLayout(this);
+	QVBoxLayout * buttonsLayout = new QVBoxLayout();
+	
+	buttonsLayout->addWidget(codecUpButton);
+	buttonsLayout->addWidget(codecDownButton);
+	
+	mainLayout->addWidget(codecTable);
+	mainLayout->addLayout(buttonsLayout);
+	
+	QMetaObject::connectSlotsByName(this);
+}
+
+void SortableCodecListWidget::setModel(CodecListModel * model)
+{
+	codecTable->setModel(model);
+	codecTable->resizeColumnsToContents();
+	codecTable->resizeRowsToContents();	
+	connect(codecTable->selectionModel(), SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)),
+	        this,                         SLOT(updateCommands()));
+	connect(codecTable->model(),          SIGNAL(dataChanged(const QModelIndex &, const QModelIndex &)),
+	        this,                         SIGNAL(dataChanged()));
+}
+
+CodecListModel * SortableCodecListWidget::model()
+{
+	return (CodecListModel *) codecTable->model();
+}
+
+void SortableCodecListWidget::on_codecUpButton_clicked()
+{
+	qDebug() << "on_toolButton_codecUpButton_clicked";
+	CodecListModel * model = (CodecListModel *) codecTable->model();
+	int currentRow = selectedRow();
+	model->codecUp(currentRow);
+	setSelectedRow(currentRow - 1);
+}
+
+void SortableCodecListWidget::on_codecDownButton_clicked()
+{
+	qDebug() << "on_codecDownButton_clicked";
+	CodecListModel * model = (CodecListModel *) codecTable->model();
+	int currentRow = selectedRow();
+	model->codecDown(currentRow);
+	setSelectedRow(currentRow + 1);
+}
+
+void SortableCodecListWidget::updateCommands()
+{
+	qDebug() << "SortableCodecListWidget::updateCommands";
+	bool buttonsEnabled[2] = {true,true};
+	if(selectedRow() == -1)
+	{
+		buttonsEnabled[0] = false;
+		buttonsEnabled[1] = false;
+	}
+	else
+	{
+		if(selectedRow() == 0)
+		{
+			buttonsEnabled[0] = false;
+		}
+		if(selectedRow() == codecTable->model()->rowCount() - 1)
+		{
+			buttonsEnabled[1] = false;
+		}
+	}
+	codecUpButton->setEnabled(buttonsEnabled[0]);
+	codecDownButton->setEnabled(buttonsEnabled[1]);
+}
+
+QModelIndex SortableCodecListWidget::selectedIndex()
+{
+	QItemSelectionModel *selection = codecTable->selectionModel();
+	const QModelIndexList selectedIndexes = selection->selectedIndexes();
+	if ( !selectedIndexes.isEmpty() && selectedIndexes[0].isValid() )
+		return selectedIndexes[0];
+	else
+		return QModelIndex();
+ }
+
+int SortableCodecListWidget::selectedRow()
+{
+	QModelIndex index = selectedIndex();
+	if(index.isValid())
+		return index.row();
+	else
+		return -1;
+}
+ 
+void SortableCodecListWidget::setSelectedRow(int row)
+{
+	QItemSelectionModel * selection = codecTable->selectionModel();
+	QAbstractItemModel * model = codecTable->model();
+	QItemSelection newSelection = QItemSelection(model->index(row, 0, QModelIndex()), model->index(row +1 , model->columnCount(), QModelIndex()));
+	selection->clear();
+	for(int i = 0 ; i < model->columnCount() ; i++)
+	{
+		selection->select(model->index(row, i, QModelIndex()) , QItemSelectionModel::Select);
+	}
+} 
\ No newline at end of file
diff --git a/sflphone-client-kde/src/SortableCodecListWidget.h b/sflphone-client-kde/src/SortableCodecListWidget.h
new file mode 100644
index 0000000000000000000000000000000000000000..0ea9eae8fecad5859968f56d28585be317e81f66
--- /dev/null
+++ b/sflphone-client-kde/src/SortableCodecListWidget.h
@@ -0,0 +1,64 @@
+/***************************************************************************
+ *   Copyright (C) 2009 by Savoir-Faire Linux                              *
+ *   Author : Jérémy Quentin                                               *
+ *   jeremy.quentin@savoirfairelinux.com                                   *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 3 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ ***************************************************************************/
+#ifndef SORTABLECODECLISTWIDGET_H
+#define SORTABLECODECLISTWIDGET_H
+
+#include <QWidget>
+#include <KPushButton>
+#include <QTableView>
+#include "CodecListModel.h"
+
+/**
+	@author Jérémy Quentin <jeremy.quentin@gmail.com>
+*/
+class SortableCodecListWidget : public QWidget
+{
+Q_OBJECT
+private:
+	KPushButton * codecUpButton;
+	KPushButton * codecDownButton;
+	QTableView * codecTable;
+
+public:
+	SortableCodecListWidget(QWidget *parent = 0);
+	
+	virtual void setModel(CodecListModel * model);
+	virtual CodecListModel * model();
+	
+private slots:
+	void on_codecUpButton_clicked();
+	void on_codecDownButton_clicked();
+	
+public slots:
+	void updateCommands();
+	
+private:
+	QModelIndex selectedIndex();
+	int selectedRow();
+
+	void setSelectedRow(int row);
+	
+signals:
+	void dataChanged();
+
+};
+
+#endif
diff --git a/sflphone-client-kde/src/conf/ConfigurationDialog.cpp b/sflphone-client-kde/src/conf/ConfigurationDialog.cpp
index 9ed7f643854e187cf2bdcec6ebaf2725c404f57e..a6477354e10b424fe3ce3e807bf2d196239d344b 100644
--- a/sflphone-client-kde/src/conf/ConfigurationDialog.cpp
+++ b/sflphone-client-kde/src/conf/ConfigurationDialog.cpp
@@ -102,12 +102,14 @@ void ConfigurationDialogKDE::updateButtons()
 void ConfigurationDialogKDE::applyCustomSettings()
 {
 	qDebug() << "applyCustomSettings";
-	dlgAccounts->applyCustomSettings();
 // 	if(hasChanged())
 // 	{
 		ConfigurationSkeleton::self()->writeConfig();
 // 	}
+	dlgAccounts->applyCustomSettings();
+	dlgAudio->applyCustomSettings();
 	updateButtons();
+	emit changesApplied();
 }
 
 void ConfigurationDialogKDE::reload()
@@ -115,5 +117,6 @@ void ConfigurationDialogKDE::reload()
 	qDebug() << "reload";
 	ConfigurationSkeleton::self()->readConfig();
 	updateWidgets();
+	applyCustomSettings();
 	updateButtons();
 }
diff --git a/sflphone-client-kde/src/conf/ConfigurationDialog.h b/sflphone-client-kde/src/conf/ConfigurationDialog.h
index 02ac0fe0dc4b1477a9675a0651c708e21b883f6c..7fc0009b9caeb04a68cf32a5099a349c86a83ba1 100644
--- a/sflphone-client-kde/src/conf/ConfigurationDialog.h
+++ b/sflphone-client-kde/src/conf/ConfigurationDialog.h
@@ -103,6 +103,7 @@ private slots:
 
 signals:
 	void clearCallHistoryAsked();
+	void changesApplied();
 	
 };
 
diff --git a/sflphone-client-kde/src/conf/ConfigurationSkeleton.cpp b/sflphone-client-kde/src/conf/ConfigurationSkeleton.cpp
index e6f89cdd33ebc64d95def2231e93725d69c011fe..f73b8de984f9cff49cd3004f30c4fab72c76e368 100644
--- a/sflphone-client-kde/src/conf/ConfigurationSkeleton.cpp
+++ b/sflphone-client-kde/src/conf/ConfigurationSkeleton.cpp
@@ -26,9 +26,10 @@
 ConfigurationSkeleton::ConfigurationSkeleton()
  : ConfigurationSkeletonBase()
 {
-	qDebug() << "Yoooooooouuuuupppppppiiiiii";
+	qDebug() << "Building ConfigurationSkeleton";
+	codecListModel = new CodecListModel();
 	readConfig();
-	isImmutable( QString::fromLatin1 ( "alsaPlugin" ) );
+	
 }
 
 ConfigurationSkeleton * ConfigurationSkeleton::instance = NULL;
@@ -45,6 +46,11 @@ ConfigurationSkeleton::~ConfigurationSkeleton()
 {
 }
 
+CodecListModel * ConfigurationSkeleton::getCodecListModel()
+{
+	return codecListModel;
+}
+
 void ConfigurationSkeleton::readConfig()
 {
 	qDebug() << "\nReading config";
@@ -151,6 +157,7 @@ void ConfigurationSkeleton::readConfig()
 	
 	MapStringInt addressBookSettings = configurationManager.getAddressbookSettings().value();
 	qDebug() << "getAddressbookSettings() : " << addressBookSettings;
+	setEnableAddressBook(addressBookSettings[ADDRESSBOOK_ENABLE]);
 	setMaxResults(addressBookSettings[ADDRESSBOOK_MAX_RESULTS]);
 	setDisplayPhoto(addressBookSettings[ADDRESSBOOK_DISPLAY_CONTACT_PHOTO]);
 	setBusiness(addressBookSettings[ADDRESSBOOK_DISPLAY_BUSINESS]);
@@ -181,6 +188,8 @@ void ConfigurationSkeleton::writeConfig()
 	////General settings////
 	////////////////////////
 	
+	qDebug() << "Writing General settings";
+	
 	//Call history settings
 	if(enableHistory() != configurationManager.getHistoryEnabled()) configurationManager.setHistoryEnabled();
 	configurationManager.setHistoryLimit(historyMax());
@@ -192,6 +201,8 @@ void ConfigurationSkeleton::writeConfig()
 	////Display settings////
 	////////////////////////
 	
+	qDebug() << "Writing Display settings";
+	
 	//Notification settings
 	if(notifOnCalls() != configurationManager.getNotify()) configurationManager.setNotify();
 	if(notifOnMessages() != configurationManager.getMailNotify()) configurationManager.setMailNotify();
@@ -205,6 +216,8 @@ void ConfigurationSkeleton::writeConfig()
 	////Accounts settings////
 	/////////////////////////
 	
+	qDebug() << "Writing Accounts settings";
+	
 // 	saveAccountList();
 
 
@@ -216,6 +229,8 @@ void ConfigurationSkeleton::writeConfig()
 	////Audio settings////
 	//////////////////////
 	
+	qDebug() << "Writing Audio settings";
+	
 	//Audio Interface settings
 	int prevManager = configurationManager.getAudioManager();
 	int newManager = interface();
@@ -229,6 +244,7 @@ void ConfigurationSkeleton::writeConfig()
 	configurationManager.setRingtoneChoice(ringtone());
 
 	//codecs settings
+	qDebug() << "activeCodecList = " << activeCodecList();
 	configurationManager.setActiveCodecList(activeCodecList());
 	
 
@@ -252,6 +268,8 @@ void ConfigurationSkeleton::writeConfig()
 	////Record settings////
 	///////////////////////
 	
+	qDebug() << "Writing Record settings";
+	
 	QString destination = destinationFolder();
 	qDebug() << destination ;
 	configurationManager.setRecordPath(destination);
@@ -261,7 +279,10 @@ void ConfigurationSkeleton::writeConfig()
 	////Address Book settings////
 	/////////////////////////////
 	
+	qDebug() << "Writing Address Book settings";
+	
 	MapStringInt addressBookSettings = MapStringInt();
+	addressBookSettings[ADDRESSBOOK_ENABLE] = enableAddressBook();
 	addressBookSettings[ADDRESSBOOK_MAX_RESULTS] = maxResults();
 	addressBookSettings[ADDRESSBOOK_DISPLAY_CONTACT_PHOTO] = displayPhoto();
 	addressBookSettings[ADDRESSBOOK_DISPLAY_BUSINESS] = business();
@@ -273,6 +294,8 @@ void ConfigurationSkeleton::writeConfig()
 	///////Hooks settings////////
 	/////////////////////////////
 	
+	qDebug() << "Writing Hooks settings";
+	
 	MapStringString hooksSettings = MapStringString();
 	hooksSettings[HOOKS_ENABLED] = addPrefix() ? "1" : "0";
 	hooksSettings[HOOKS_ADD_PREFIX] = prepend();
@@ -285,4 +308,12 @@ void ConfigurationSkeleton::writeConfig()
 	readConfig();
 }
 
+QStringList ConfigurationSkeleton::activeCodecList() const
+{
+	return codecListModel->getActiveCodecList();
+}
 
+void ConfigurationSkeleton::setActiveCodecList(const QStringList & v)
+{
+	codecListModel->setActiveCodecList(v);
+}
diff --git a/sflphone-client-kde/src/conf/ConfigurationSkeleton.h b/sflphone-client-kde/src/conf/ConfigurationSkeleton.h
index a7f31d68b405aac9198aba9312aa939291bebc32..71386a50701c0e72979caeadd154a15cd5973b5b 100644
--- a/sflphone-client-kde/src/conf/ConfigurationSkeleton.h
+++ b/sflphone-client-kde/src/conf/ConfigurationSkeleton.h
@@ -24,6 +24,7 @@
 #include <QWidget>
 
 #include "kcfg_settings.h"
+#include "CodecListModel.h"
 
 /**
 	@author Jérémy Quentin <jeremy.quentin@gmail.com>
@@ -34,6 +35,8 @@ Q_OBJECT
 
 private:
 	static ConfigurationSkeleton * instance;
+	
+	CodecListModel * codecListModel;
 
 public:
 	ConfigurationSkeleton();
@@ -47,6 +50,10 @@ public:
 	
 	static ConfigurationSkeleton * self();
 	
+	QStringList activeCodecList() const;
+	void setActiveCodecList(const QStringList & v);
+	
+	CodecListModel * getCodecListModel();
 	
 // protected:
 
diff --git a/sflphone-client-kde/src/conf/dlgaccounts.cpp b/sflphone-client-kde/src/conf/dlgaccounts.cpp
index f0732f85e8c26f9eff9d3a0e99da26b1cc1ffcdd..9179626e67969216fa06de7aea74777ac15c4c81 100644
--- a/sflphone-client-kde/src/conf/dlgaccounts.cpp
+++ b/sflphone-client-kde/src/conf/dlgaccounts.cpp
@@ -33,7 +33,6 @@ DlgAccounts::DlgAccounts(KConfigDialog *parent)
 	setupUi(this);
 	
 	ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
-	QStyle * style = QApplication::style();
 	button_accountUp->setIcon(KIcon("go-up"));
 	button_accountDown->setIcon(KIcon("go-down"));
 	button_accountAdd->setIcon(KIcon("list-add"));
@@ -109,7 +108,6 @@ void DlgAccounts::saveAccountList()
 			}
 		}
 		qDebug() << currentId << " : " << current.isChecked();
-		configurationManager.sendRegister(currentId, current.isChecked() ? 1 : 0 );
 	}
 	//remove accounts that are in the configurationManager but not in the client
 	for (int i = 0; i < accountIds.size(); i++)
@@ -205,7 +203,7 @@ void DlgAccounts::addAccountToAccountList(Account * account)
 	qDebug() << "addAccountToAccountList";
 	QListWidgetItem * item = account->getItem();
 	QWidget * widget = account->getItemWidget();
-	connect(widget, SIGNAL(checkStateChanged()),
+	connect(widget, SIGNAL(checkStateChanged(bool)),
 	        this,   SLOT(changedAccountList()));
 	qDebug() << "item->isHidden()" << item->isHidden();
 	listWidget_accountList->addItem(item);
@@ -215,6 +213,7 @@ void DlgAccounts::addAccountToAccountList(Account * account)
 
 void DlgAccounts::changedAccountList()
 {
+	qDebug() << "changedAccountList";
 	accountListHasChanged = true;
 	emit updateButtons();
 	toolButton_accountsApply->setEnabled(hasChanged());
@@ -237,7 +236,7 @@ void DlgAccounts::on_button_accountUp_clicked()
 	QListWidgetItem * prevItem = listWidget_accountList->takeItem(currentRow);
 	Account * account = accountList->getAccountByItem(prevItem);
 	//we need to build a new item to set the itemWidget back
-	account->initAccountItem();
+	account->initItem();
 	QListWidgetItem * item = account->getItem();
 	AccountItemWidget * widget = account->getItemWidget();
 	accountList->upAccount(currentRow);
@@ -254,7 +253,7 @@ void DlgAccounts::on_button_accountDown_clicked()
 	QListWidgetItem * prevItem = listWidget_accountList->takeItem(currentRow);
 	Account * account = accountList->getAccountByItem(prevItem);
 	//we need to build a new item to set the itemWidget back
-	account->initAccountItem();
+	account->initItem();
 	QListWidgetItem * item = account->getItem();
 	AccountItemWidget * widget = account->getItemWidget();
 	accountList->downAccount(currentRow);
@@ -297,7 +296,7 @@ void DlgAccounts::on_toolButton_accountsApply_clicked()
 
 void DlgAccounts::applyCustomSettings()
 {
-	qDebug() << "applyCustomSettings";
+	qDebug() << "DlgAccounts::applyCustomSettings";
 	if(hasChanged())
 	{
 		toolButton_accountsApply->setEnabled(false);
diff --git a/sflphone-client-kde/src/conf/dlgaddressbookbase.ui b/sflphone-client-kde/src/conf/dlgaddressbookbase.ui
index 0048b161954c45f5831794baff6ecf528c610c0f..779a3dc5705b55829beaed96a867605e98ffdfe1 100644
--- a/sflphone-client-kde/src/conf/dlgaddressbookbase.ui
+++ b/sflphone-client-kde/src/conf/dlgaddressbookbase.ui
@@ -14,16 +14,38 @@
    <string>Form</string>
   </property>
   <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <widget class="QCheckBox" name="kcfg_enableAddressBook">
+     <property name="text">
+      <string>Enable address book</string>
+     </property>
+    </widget>
+   </item>
    <item>
     <widget class="QWidget" name="widget_configAddressBookGeneral" native="true">
+     <property name="enabled">
+      <bool>false</bool>
+     </property>
      <layout class="QVBoxLayout" name="verticalLayout_2">
+      <property name="leftMargin">
+       <number>0</number>
+      </property>
       <item>
        <widget class="QWidget" name="widget_maxResults" native="true">
         <layout class="QHBoxLayout" name="horizontalLayout_4">
          <property name="spacing">
           <number>-1</number>
          </property>
-         <property name="margin">
+         <property name="leftMargin">
+          <number>0</number>
+         </property>
+         <property name="topMargin">
+          <number>5</number>
+         </property>
+         <property name="rightMargin">
+          <number>5</number>
+         </property>
+         <property name="bottomMargin">
           <number>5</number>
          </property>
          <item>
@@ -68,34 +90,34 @@
         </property>
        </widget>
       </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="groupBox_displayTypes">
-     <property name="title">
-      <string>Display phone numbers of these &amp;types :</string>
-     </property>
-     <layout class="QHBoxLayout" name="horizontalLayout_7">
-      <item>
-       <widget class="QCheckBox" name="kcfg_business">
-        <property name="text">
-         <string>&amp;Work</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QCheckBox" name="kcfg_mobile">
-        <property name="text">
-         <string>&amp;Mobile</string>
-        </property>
-       </widget>
-      </item>
       <item>
-       <widget class="QCheckBox" name="kcfg_home">
-        <property name="text">
-         <string>&amp;Home</string>
+       <widget class="QGroupBox" name="groupBox_displayTypes">
+        <property name="title">
+         <string>Display phone numbers of these &amp;types :</string>
         </property>
+        <layout class="QHBoxLayout" name="horizontalLayout_7">
+         <item>
+          <widget class="QCheckBox" name="kcfg_business">
+           <property name="text">
+            <string>&amp;Work</string>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QCheckBox" name="kcfg_mobile">
+           <property name="text">
+            <string>&amp;Mobile</string>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QCheckBox" name="kcfg_home">
+           <property name="text">
+            <string>&amp;Home</string>
+           </property>
+          </widget>
+         </item>
+        </layout>
        </widget>
       </item>
      </layout>
@@ -132,12 +154,12 @@
    <slot>setValue(int)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>223</x>
-     <y>35</y>
+     <x>265</x>
+     <y>67</y>
     </hint>
     <hint type="destinationlabel">
-     <x>301</x>
-     <y>33</y>
+     <x>326</x>
+     <y>70</y>
     </hint>
    </hints>
   </connection>
@@ -148,12 +170,28 @@
    <slot>setValue(int)</slot>
    <hints>
     <hint type="sourcelabel">
-     <x>294</x>
-     <y>36</y>
+     <x>326</x>
+     <y>70</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>265</x>
+     <y>67</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>kcfg_enableAddressBook</sender>
+   <signal>toggled(bool)</signal>
+   <receiver>widget_configAddressBookGeneral</receiver>
+   <slot>setEnabled(bool)</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>92</x>
+     <y>25</y>
     </hint>
     <hint type="destinationlabel">
-     <x>215</x>
-     <y>33</y>
+     <x>91</x>
+     <y>39</y>
     </hint>
    </hints>
   </connection>
diff --git a/sflphone-client-kde/src/conf/dlgaudio.cpp b/sflphone-client-kde/src/conf/dlgaudio.cpp
index dba951041646efb354ad4631e262db625021f71c..8a29233bca28d592ca06d1e65b27886a9e6aa10d 100644
--- a/sflphone-client-kde/src/conf/dlgaudio.cpp
+++ b/sflphone-client-kde/src/conf/dlgaudio.cpp
@@ -33,25 +33,38 @@ DlgAudio::DlgAudio(KConfigDialog *parent)
 {
 	setupUi(this);
 	
-	ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
-	QStyle * style = QApplication::style();
 	KUrlRequester_ringtone->setMode(KFile::File | KFile::ExistingOnly);
 	KUrlRequester_ringtone->lineEdit()->setObjectName("kcfg_ringtone"); 
 	KUrlRequester_ringtone->lineEdit()->setReadOnly(true); 
 	
 	codecTableHasChanged = false;
-	toolButton_codecUp->setIcon(KIcon("go-up"));
-	toolButton_codecDown->setIcon(KIcon("go-down"));
-	tableWidget_codecs->verticalHeader()->hide();
-	tableWidget_codecs->setSelectionBehavior(QAbstractItemView::SelectRows);
+// 	toolButton_codecUp->setIcon(KIcon("go-up"));
+// 	toolButton_codecDown->setIcon(KIcon("go-down"));
+// 	tableWidget_codecs->verticalHeader()->hide();
+// 	tableWidget_codecs->setSelectionBehavior(QAbstractItemView::SelectRows);
+	
+	ConfigurationSkeleton * skeleton = ConfigurationSkeleton::self();
+	CodecListModel * model = skeleton->getCodecListModel();
+	sortableCodecList->setModel(model);
 	
 	updateAlsaSettings();
-	connect(box_alsaPlugin,        SIGNAL(currentIndexChanged(int)),        parent, SLOT(updateButtons()));
-	connect(tableWidget_codecs,    SIGNAL(itemChanged(QTableWidgetItem *)), this,   SLOT(codecTableChanged()));
-	connect(toolButton_codecUp,    SIGNAL(clicked()),                       this,   SLOT(codecTableChanged()));
-	connect(toolButton_codecDown,  SIGNAL(clicked()),                       this,   SLOT(codecTableChanged()));
+	connect(box_alsaPlugin,        SIGNAL(currentIndexChanged(int)),   
+	        parent,                SLOT(updateButtons()));
+// 	connect(tableWidget_codecs,    SIGNAL(itemChanged(QTableWidgetItem *)),
+// 	        this,                  SLOT(codecTableChanged()));
+// 	connect(tableWidget_codecs,    SIGNAL(currentCellChanged(int, int, int, int)),
+// 	        this,                  SLOT(updateCodecListCommands()));
+// 	connect(toolButton_codecUp,    SIGNAL(clicked()),
+// 	        this,                  SLOT(codecTableChanged()));
+// 	connect(toolButton_codecDown,  SIGNAL(clicked()),
+// 	        this,                  SLOT(codecTableChanged()));
 	
-	connect(this,                  SIGNAL(updateButtons()),                 parent, SLOT(updateButtons()));
+	connect(this,                  SIGNAL(updateButtons()),
+	        parent,                SLOT(updateButtons()));
+	
+	connect(sortableCodecList,     SIGNAL(dataChanged()),
+	        this,                  SLOT(codecTableChanged()));
+	        
 }
 
 
@@ -67,96 +80,108 @@ void DlgAudio::updateWidgets()
 	box_alsaPlugin->setCurrentIndex(box_alsaPlugin->findText(skeleton->alsaPlugin()));
 	
 	//codecList
-	qDebug() << "loadCodecs";
-	ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
-	QStringList codecList = configurationManager.getCodecList();
-	QStringList activeCodecList = skeleton->activeCodecList();
-	#if QT_VERSION >= 0x040500
-		activeCodecList.removeDuplicates();
-	#else
-   	for (int i = 0 ; i < activeCodecList.size() ; i++)
-		{
-			if(activeCodecList.lastIndexOf(activeCodecList[i]) != i)
-			{
-				activeCodecList.removeAt(i);
-				i--;
-			}
-		}
-	#endif
-
-	for (int i=0 ; i<activeCodecList.size() ; i++)
-	{
-		if(! codecList.contains(activeCodecList[i]))
-		{
-			activeCodecList.removeAt(i);
-			i--;
-		}
-	}
-	QStringList codecListToDisplay = activeCodecList;
-	for (int i=0 ; i<codecList.size() ; i++)
-	{
-		if(! activeCodecList.contains(codecList[i]))
-		{
-			codecListToDisplay << codecList[i];
-		}
-	}
-	qDebug() << "codecList = " << codecList;
-	qDebug() << "activeCodecList" << activeCodecList;
-	qDebug() << "codecListToDisplay" << codecListToDisplay;
-	tableWidget_codecs->setRowCount(0);
-	for(int i=0 ; i<codecListToDisplay.size() ; i++)
-	{
-		bool ok;
-		qDebug() << codecListToDisplay[i];
-		QString payloadStr = QString(codecListToDisplay[i]);
-		int payload = payloadStr.toInt(&ok);
-		if(!ok)	
-			qDebug() << "The codec's payload sent by the configurationManager is not a number : " << codecListToDisplay[i];
-		else
-		{
-			QStringList details = configurationManager.getCodecDetails(payload);
-			tableWidget_codecs->insertRow(i);
-			tableWidget_codecs->setVerticalHeaderItem (i, new QTableWidgetItem());
-			tableWidget_codecs->verticalHeaderItem (i)->setText(payloadStr);
-			tableWidget_codecs->setItem(i,0,new QTableWidgetItem(""));
-			tableWidget_codecs->setItem(i,1,new QTableWidgetItem(details[CODEC_NAME]));
-			tableWidget_codecs->setItem(i,2,new QTableWidgetItem(details[CODEC_SAMPLE_RATE]));
-			tableWidget_codecs->setItem(i,3,new QTableWidgetItem(details[CODEC_BIT_RATE]));
-			tableWidget_codecs->setItem(i,4,new QTableWidgetItem(details[CODEC_BANDWIDTH]));
-			tableWidget_codecs->item(i,0)->setFlags(Qt::ItemIsSelectable|Qt::ItemIsUserCheckable|Qt::ItemIsEnabled);
-			tableWidget_codecs->item(i,0)->setCheckState(activeCodecList.contains(codecListToDisplay[i]) ? Qt::Checked : Qt::Unchecked);
-			tableWidget_codecs->item(i,1)->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
-			tableWidget_codecs->item(i,2)->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
-			tableWidget_codecs->item(i,3)->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
-			tableWidget_codecs->item(i,4)->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
-
-			qDebug() << "Added to codecs : " << payloadStr << " , " << details[CODEC_NAME];
-		}
-	}
-	tableWidget_codecs->resizeColumnsToContents();
-	tableWidget_codecs->resizeRowsToContents();
+// 	qDebug() << "loadCodecs";
+// 	ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
+// 	QStringList codecList = configurationManager.getCodecList();
+// 	QStringList activeCodecList = skeleton->activeCodecList();
+// 	
+// 	qDebug() << "loadCodecs1";
+// 	#if QT_VERSION >= 0x040500
+// 	qDebug() << "loadCodecs1b";
+// 		activeCodecList.removeDuplicates();
+// 		
+// 	qDebug() << "loadCodecs1c";
+// 	#else
+// 	
+// 	qDebug() << "loadCodecs1d";
+//    	for (int i = 0 ; i < activeCodecList.size() ; i++)
+// 		{
+// 			if(activeCodecList.lastIndexOf(activeCodecList[i]) != i || ! codecList.contains(activeCodecList[i]))
+// 			{
+// 				activeCodecList.removeAt(i);
+// 				i--;
+// 			}
+// 		}
+// 		
+// 	qDebug() << "loadCodecs1e";
+// 	#endif
+// 	
+// 	qDebug() << "loadCodecs2";
+// 	QStringList codecListToDisplay = activeCodecList;
+// 	qDebug() << "loadCodecs2b";
+// 	codecList.size();
+// 	
+// 	qDebug() << "loadCodecs2c";
+// 	for (int i=0 ; i<codecList.size() ; i++)
+// 	{
+// 		
+// 	qDebug() << "loadCodecs3";
+// 		if(! activeCodecList.contains(codecList[i]))
+// 		{
+// 			
+// 	qDebug() << "loadCodecs4";
+// 			codecListToDisplay << codecList[i];
+// 		}
+// 	}
+// 	
+// 	qDebug() << "loadCodecs5";
+// 	qDebug() << "codecList = " << codecList;
+// 	qDebug() << "activeCodecList" << activeCodecList;
+// 	qDebug() << "codecListToDisplay" << codecListToDisplay;
+// 	tableWidget_codecs->setRowCount(0);
+// 	for(int i=0 ; i<codecListToDisplay.size() ; i++)
+// 	{
+// 		bool ok;
+// 		qDebug() << codecListToDisplay[i];
+// 		QString payloadStr = QString(codecListToDisplay[i]);
+// 		int payload = payloadStr.toInt(&ok);
+// 		if(!ok)	
+// 			qDebug() << "The codec's payload sent by the configurationManager is not a number : " << codecListToDisplay[i];
+// 		else
+// 		{
+// 			QStringList details = configurationManager.getCodecDetails(payload);
+// 			tableWidget_codecs->insertRow(i);
+// 			tableWidget_codecs->setVerticalHeaderItem (i, new QTableWidgetItem());
+// 			tableWidget_codecs->verticalHeaderItem (i)->setText(payloadStr);
+// 			tableWidget_codecs->setItem(i,0,new QTableWidgetItem(""));
+// 			tableWidget_codecs->setItem(i,1,new QTableWidgetItem(details[CODEC_NAME]));
+// 			tableWidget_codecs->setItem(i,2,new QTableWidgetItem(details[CODEC_SAMPLE_RATE]));
+// 			tableWidget_codecs->setItem(i,3,new QTableWidgetItem(details[CODEC_BIT_RATE]));
+// 			tableWidget_codecs->setItem(i,4,new QTableWidgetItem(details[CODEC_BANDWIDTH]));
+// 			tableWidget_codecs->item(i,0)->setFlags(Qt::ItemIsSelectable|Qt::ItemIsUserCheckable|Qt::ItemIsEnabled);
+// 			tableWidget_codecs->item(i,0)->setCheckState(activeCodecList.contains(codecListToDisplay[i]) ? Qt::Checked : Qt::Unchecked);
+// 			tableWidget_codecs->item(i,1)->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
+// 			tableWidget_codecs->item(i,2)->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
+// 			tableWidget_codecs->item(i,3)->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
+// 			tableWidget_codecs->item(i,4)->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled);
+// 
+// 			qDebug() << "Added to codecs : " << payloadStr << " , " << details[CODEC_NAME];
+// 		}
+// 	}
+// 	tableWidget_codecs->resizeColumnsToContents();
+// 	tableWidget_codecs->resizeRowsToContents();
 	codecTableHasChanged = false;
 }
 
 
 void DlgAudio::updateSettings()
 {
-// 	qDebug() << "DlgAudio::updateSettings";
+	qDebug() << "DlgAudio::updateSettings";
 	//alsaPlugin
 	ConfigurationSkeleton * skeleton = ConfigurationSkeleton::self();
 	skeleton->setAlsaPlugin(box_alsaPlugin->currentText());
 	
 	//codecList
-	QStringList activeCodecs;
-	for(int i = 0 ; i < tableWidget_codecs->rowCount() ; i++)
-	{
-		if(tableWidget_codecs->item(i,0)->checkState() == Qt::Checked)
-		{
-			activeCodecs << tableWidget_codecs->verticalHeaderItem(i)->text();
-		}
-	}
-	qDebug() << "Calling setActiveCodecList with list : " << activeCodecs ;
-	skeleton->setActiveCodecList(activeCodecs);
+// 	QStringList activeCodecs;
+// 	for(int i = 0 ; i < tableWidget_codecs->rowCount() ; i++)
+// 	{
+// 		if(tableWidget_codecs->item(i,0)->checkState() == Qt::Checked)
+// 		{
+// 			activeCodecs << tableWidget_codecs->verticalHeaderItem(i)->text();
+// 		}
+// 	}
+// 	qDebug() << "Calling setActiveCodecList with list : " << activeCodecs ;
+// 	skeleton->setActiveCodecList(activeCodecs);
 	codecTableHasChanged = false;
 }
 
@@ -208,75 +233,75 @@ void DlgAudio::updateAlsaSettings()
 	}
 }
 
-void DlgAudio::updateCodecListCommands()
-{
-	bool buttonsEnabled[2] = {true,true};
-	if(! tableWidget_codecs->currentItem())
-	{
-		buttonsEnabled[0] = false;
-		buttonsEnabled[1] = false;
-	}
-	else if(tableWidget_codecs->currentRow() == 0)
-	{
-		buttonsEnabled[0] = false;
-	}
-	else if(tableWidget_codecs->currentRow() == tableWidget_codecs->rowCount() - 1)
-	{
-		buttonsEnabled[1] = false;
-	}
-	toolButton_codecUp->setEnabled(buttonsEnabled[0]);
-	toolButton_codecDown->setEnabled(buttonsEnabled[1]);
-}
+// void DlgAudio::updateCodecListCommands()
+// {
+// 	qDebug() << "updateCodecListCommands";
+// 	bool buttonsEnabled[2] = {true,true};
+// 	if(! tableWidget_codecs->currentItem())
+// 	{
+// 		buttonsEnabled[0] = false;
+// 		buttonsEnabled[1] = false;
+// 	}
+// 	else
+// 	{
+// 		if(tableWidget_codecs->currentRow() == 0)
+// 		{
+// 			buttonsEnabled[0] = false;
+// 		}
+// 		if(tableWidget_codecs->currentRow() == tableWidget_codecs->rowCount() - 1)
+// 		{
+// 			buttonsEnabled[1] = false;
+// 		}
+// 	}
+// 	toolButton_codecUp->setEnabled(buttonsEnabled[0]);
+// 	toolButton_codecDown->setEnabled(buttonsEnabled[1]);
+// }
 
-void DlgAudio::on_tableWidget_codecs_currentCellChanged(int currentRow)
-{
-	qDebug() << "on_tableWidget_codecs_currentCellChanged";
-	int nbCol = tableWidget_codecs->columnCount();
-	for(int i = 0 ; i < nbCol ; i++)
-	{
-		tableWidget_codecs->setRangeSelected(QTableWidgetSelectionRange(currentRow, 0, currentRow, nbCol - 1), true);
-	}
-	updateCodecListCommands();
-}
 
-void DlgAudio::on_toolButton_codecUp_clicked()
-{
-	qDebug() << "on_toolButton_codecUp_clicked";
-	int currentCol = tableWidget_codecs->currentColumn();
-	int currentRow = tableWidget_codecs->currentRow();
-	int nbCol = tableWidget_codecs->columnCount();
-	for(int i = 0 ; i < nbCol ; i++)
-	{
-		QTableWidgetItem * item1 = tableWidget_codecs->takeItem(currentRow, i);
-		QTableWidgetItem * item2 = tableWidget_codecs->takeItem(currentRow - 1, i);
-		tableWidget_codecs->setItem(currentRow - 1, i , item1);
-		tableWidget_codecs->setItem(currentRow, i , item2);
-	}
-	QTableWidgetItem * item1 = tableWidget_codecs->takeVerticalHeaderItem(currentRow);
-	QTableWidgetItem * item2 = tableWidget_codecs->takeVerticalHeaderItem(currentRow - 1);
-	tableWidget_codecs->setVerticalHeaderItem(currentRow - 1, item1);
-	tableWidget_codecs->setVerticalHeaderItem(currentRow, item2);
-	tableWidget_codecs->setCurrentCell(currentRow - 1, currentCol);
-}
+// void DlgAudio::on_toolButton_codecUp_clicked()
+// {
+// 	qDebug() << "on_toolButton_codecUp_clicked";
+// 	int currentCol = tableWidget_codecs->currentColumn();
+// 	int currentRow = tableWidget_codecs->currentRow();
+// 	int nbCol = tableWidget_codecs->columnCount();
+// 	for(int i = 0 ; i < nbCol ; i++)
+// 	{
+// 		QTableWidgetItem * item1 = tableWidget_codecs->takeItem(currentRow, i);
+// 		QTableWidgetItem * item2 = tableWidget_codecs->takeItem(currentRow - 1, i);
+// 		tableWidget_codecs->setItem(currentRow - 1, i , item1);
+// 		tableWidget_codecs->setItem(currentRow, i , item2);
+// 	}
+// 	QTableWidgetItem * item1 = tableWidget_codecs->takeVerticalHeaderItem(currentRow);
+// 	QTableWidgetItem * item2 = tableWidget_codecs->takeVerticalHeaderItem(currentRow - 1);
+// 	tableWidget_codecs->setVerticalHeaderItem(currentRow - 1, item1);
+// 	tableWidget_codecs->setVerticalHeaderItem(currentRow, item2);
+// 	tableWidget_codecs->setCurrentCell(currentRow - 1, currentCol);
+// }
+// 
+// void DlgAudio::on_toolButton_codecDown_clicked()
+// {
+// 	qDebug() << "on_toolButton_codecDown_clicked";
+// 	int currentCol = tableWidget_codecs->currentColumn();
+// 	int currentRow = tableWidget_codecs->currentRow();
+// 	int nbCol = tableWidget_codecs->columnCount();
+// 	for(int i = 0 ; i < nbCol ; i++)
+// 	{
+// 		QTableWidgetItem * item1 = tableWidget_codecs->takeItem(currentRow, i);
+// 		QTableWidgetItem * item2 = tableWidget_codecs->takeItem(currentRow + 1, i);
+// 		tableWidget_codecs->setItem(currentRow + 1, i , item1);
+// 		tableWidget_codecs->setItem(currentRow, i , item2);
+// 	}
+// 	QTableWidgetItem * item1 = tableWidget_codecs->takeVerticalHeaderItem(currentRow);
+// 	QTableWidgetItem * item2 = tableWidget_codecs->takeVerticalHeaderItem(currentRow + 1);
+// 	tableWidget_codecs->setVerticalHeaderItem(currentRow + 1, item1);
+// 	tableWidget_codecs->setVerticalHeaderItem(currentRow, item2);
+// 	tableWidget_codecs->setCurrentCell(currentRow + 1, currentCol);
+// }
 
-void DlgAudio::on_toolButton_codecDown_clicked()
+
+void DlgAudio::applyCustomSettings()
 {
-	qDebug() << "on_toolButton_codecDown_clicked";
-	int currentCol = tableWidget_codecs->currentColumn();
-	int currentRow = tableWidget_codecs->currentRow();
-	int nbCol = tableWidget_codecs->columnCount();
-	for(int i = 0 ; i < nbCol ; i++)
-	{
-		QTableWidgetItem * item1 = tableWidget_codecs->takeItem(currentRow, i);
-		QTableWidgetItem * item2 = tableWidget_codecs->takeItem(currentRow + 1, i);
-		tableWidget_codecs->setItem(currentRow + 1, i , item1);
-		tableWidget_codecs->setItem(currentRow, i , item2);
-	}
-	QTableWidgetItem * item1 = tableWidget_codecs->takeVerticalHeaderItem(currentRow);
-	QTableWidgetItem * item2 = tableWidget_codecs->takeVerticalHeaderItem(currentRow + 1);
-	tableWidget_codecs->setVerticalHeaderItem(currentRow + 1, item1);
-	tableWidget_codecs->setVerticalHeaderItem(currentRow, item2);
-	tableWidget_codecs->setCurrentCell(currentRow + 1, currentCol);
+	codecTableHasChanged = false;
 }
 
 
diff --git a/sflphone-client-kde/src/conf/dlgaudio.h b/sflphone-client-kde/src/conf/dlgaudio.h
index 15c1f8f70b26d0d6dbaf22772282e9ccd9d651b8..74fe3db72b88cd2f02fb7eaf9c7a51167b539d09 100644
--- a/sflphone-client-kde/src/conf/dlgaudio.h
+++ b/sflphone-client-kde/src/conf/dlgaudio.h
@@ -46,12 +46,12 @@ public slots:
 	void updateSettings();
 	bool hasChanged();
 	void updateAlsaSettings();
+	void applyCustomSettings();
 	
 private slots:
-	void updateCodecListCommands();
-	void on_tableWidget_codecs_currentCellChanged(int currentRow);
-	void on_toolButton_codecUp_clicked();
-	void on_toolButton_codecDown_clicked();
+// 	void updateCodecListCommands();
+// 	void on_toolButton_codecUp_clicked();
+// 	void on_toolButton_codecDown_clicked();
 	void codecTableChanged();
 	
 signals:
diff --git a/sflphone-client-kde/src/conf/dlgaudiobase.ui b/sflphone-client-kde/src/conf/dlgaudiobase.ui
index 08c842887c2194360655e7bf54787777bd6f6ed9..a73315057e53ed48b8623718b5cc564acdd67920 100644
--- a/sflphone-client-kde/src/conf/dlgaudiobase.ui
+++ b/sflphone-client-kde/src/conf/dlgaudiobase.ui
@@ -95,87 +95,7 @@
        <number>2</number>
       </property>
       <item>
-       <widget class="QTableWidget" name="tableWidget_codecs">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="minimumSize">
-         <size>
-          <width>0</width>
-          <height>100</height>
-         </size>
-        </property>
-        <property name="frameShape">
-         <enum>QFrame::StyledPanel</enum>
-        </property>
-        <property name="frameShadow">
-         <enum>QFrame::Sunken</enum>
-        </property>
-        <property name="verticalScrollBarPolicy">
-         <enum>Qt::ScrollBarAsNeeded</enum>
-        </property>
-        <property name="textElideMode">
-         <enum>Qt::ElideRight</enum>
-        </property>
-        <property name="verticalScrollMode">
-         <enum>QAbstractItemView::ScrollPerPixel</enum>
-        </property>
-        <property name="horizontalScrollMode">
-         <enum>QAbstractItemView::ScrollPerPixel</enum>
-        </property>
-        <column>
-         <property name="text">
-          <string>Active</string>
-         </property>
-        </column>
-        <column>
-         <property name="text">
-          <string>Name</string>
-         </property>
-        </column>
-        <column>
-         <property name="text">
-          <string>Frequency</string>
-         </property>
-        </column>
-        <column>
-         <property name="text">
-          <string>Bitrate</string>
-         </property>
-        </column>
-        <column>
-         <property name="text">
-          <string>Bandwidth</string>
-         </property>
-        </column>
-       </widget>
-      </item>
-      <item>
-       <layout class="QVBoxLayout" name="verticalLayout_codecsOrder">
-        <property name="leftMargin">
-         <number>0</number>
-        </property>
-        <property name="rightMargin">
-         <number>0</number>
-        </property>
-        <item>
-         <widget class="QToolButton" name="toolButton_codecUp">
-          <property name="text">
-           <string/>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QToolButton" name="toolButton_codecDown">
-          <property name="text">
-           <string/>
-          </property>
-         </widget>
-        </item>
-       </layout>
+       <widget class="SortableCodecListWidget" name="sortableCodecList" native="true"/>
       </item>
      </layout>
     </widget>
@@ -202,32 +122,15 @@
           <string>ALSA settings</string>
          </property>
          <layout class="QFormLayout" name="formLayout_4">
+          <property name="fieldGrowthPolicy">
+           <enum>QFormLayout::ExpandingFieldsGrow</enum>
+          </property>
           <property name="verticalSpacing">
            <number>5</number>
           </property>
           <property name="leftMargin">
            <number>9</number>
           </property>
-          <item row="3" column="0">
-           <widget class="QLabel" name="label2_in">
-            <property name="text">
-             <string>In</string>
-            </property>
-            <property name="buddy">
-             <cstring>kcfg_alsaInputDevice</cstring>
-            </property>
-           </widget>
-          </item>
-          <item row="5" column="0">
-           <widget class="QLabel" name="label3_out">
-            <property name="text">
-             <string>Out</string>
-            </property>
-            <property name="buddy">
-             <cstring>kcfg_alsaOutputDevice</cstring>
-            </property>
-           </widget>
-          </item>
           <item row="0" column="0">
            <widget class="QLabel" name="label1_alsaPugin">
             <property name="text">
@@ -245,14 +148,34 @@
             </property>
            </widget>
           </item>
-          <item row="3" column="1">
+          <item row="2" column="0">
+           <widget class="QLabel" name="label2_in">
+            <property name="text">
+             <string>In</string>
+            </property>
+            <property name="buddy">
+             <cstring>kcfg_alsaInputDevice</cstring>
+            </property>
+           </widget>
+          </item>
+          <item row="2" column="1">
            <widget class="KComboBox" name="kcfg_alsaInputDevice">
             <property name="sizeAdjustPolicy">
              <enum>QComboBox::AdjustToContents</enum>
             </property>
            </widget>
           </item>
-          <item row="5" column="1">
+          <item row="4" column="0">
+           <widget class="QLabel" name="label3_out">
+            <property name="text">
+             <string>Out</string>
+            </property>
+            <property name="buddy">
+             <cstring>kcfg_alsaOutputDevice</cstring>
+            </property>
+           </widget>
+          </item>
+          <item row="4" column="1">
            <widget class="KComboBox" name="kcfg_alsaOutputDevice">
             <property name="sizeAdjustPolicy">
              <enum>QComboBox::AdjustToContents</enum>
@@ -308,6 +231,12 @@
    <extends>QFrame</extends>
    <header>kurlrequester.h</header>
   </customwidget>
+  <customwidget>
+   <class>SortableCodecListWidget</class>
+   <extends>QWidget</extends>
+   <header>SortableCodecListWidget.h</header>
+   <container>1</container>
+  </customwidget>
  </customwidgets>
  <resources/>
  <connections>
diff --git a/sflphone-client-kde/src/conf/dlgrecord.cpp b/sflphone-client-kde/src/conf/dlgrecord.cpp
index 3c97898f5cd30bd11aca1a278a9a2bd93482cfff..49181a1b632ff31dbce54d14ac9a6a4802810001 100644
--- a/sflphone-client-kde/src/conf/dlgrecord.cpp
+++ b/sflphone-client-kde/src/conf/dlgrecord.cpp
@@ -29,6 +29,7 @@ DlgRecord::DlgRecord(QWidget *parent)
 	KUrlRequester_destinationFolder->setMode(KFile::Directory|KFile::ExistingOnly|KFile::LocalOnly);
 	KUrlRequester_destinationFolder->setUrl(KUrl(QDir::home().path()));
 	KUrlRequester_destinationFolder->lineEdit()->setObjectName("kcfg_destinationFolder"); 
+	KUrlRequester_destinationFolder->lineEdit()->setReadOnly(true); 
 }
 
 
diff --git a/sflphone-client-kde/src/conf/sflphone-client-kde.kcfg b/sflphone-client-kde/src/conf/sflphone-client-kde.kcfg
index c90d937a82b9467862627d82d0798fc2287ed8e0..11d1fc817d6c834d4286b09c288411a43e6fcd07 100644
--- a/sflphone-client-kde/src/conf/sflphone-client-kde.kcfg
+++ b/sflphone-client-kde/src/conf/sflphone-client-kde.kcfg
@@ -2,7 +2,10 @@
 <!DOCTYPE kcfg SYSTEM "http://www.kde.org/standards/kcfg/1.0/kcfg.dtd">
 <kcfg> 
   <kcfgfile name="ConfigDialogKDE" /> 
-  <group name="main"> 
+  <group name="main">
+
+    <!-- General Settings -->
+       
     <entry name="SIPPort" type="Int"> 
       <label>Defines the port that will be used for SIP communication.</label> 
       <min> 1025 </min>
@@ -18,6 +21,9 @@
       <max> 99 </max>
       <default> 30 </default> 
     </entry> 
+    
+    <!-- Display Settings -->
+    
     <entry name="notifOnCalls" type="Bool">
     	<label>Defines whether user should be notified when receiving a call.</label>
     </entry>
@@ -30,6 +36,9 @@
     <entry name="displayOnCalls" type="Bool">
     	<label>Defines whether the main window should be displayed when receiving a message.</label>
     </entry>
+    
+    <!-- Accounts Settings -->
+    
     <!--
     <entry name="accountList" type="StringList">
     	<label>Defines the list of accounts to register, in order of preference (first registered used by default).</label>
@@ -41,6 +50,9 @@
     <entry name="stunServer" type="String">
     	<label>Defines the Stun server to use.</label>
     </entry> 
+    
+    <!-- Audio Settings -->
+    
     <entry name="interface" type="Enum">
     	<label>Defines the Stun server to use.</label>
     	<choices>
@@ -54,9 +66,11 @@
     <entry name="ringtone" type="Path">
     	<label>Defines which ringtone is used.</label>
     </entry>
+    <!-- 
     <entry name="activeCodecList" type="StringList">
     	<label>Defines which ALSA plugin to use.</label>
     </entry>
+    -->
     <entry name="alsaPlugin" type="String">
     	<label>Defines which ALSA plugin to use.</label>
     </entry>
@@ -69,6 +83,12 @@
     <entry name="pulseAudioVolumeAlter" type="Bool">
     	<label>Defines whether pulse audio can mute other applications during a call.</label>
     </entry>
+    
+    <!-- Address Book Settings -->
+    
+    <entry name="enableAddressBook" type="Bool">
+    	<label>Defines whether the search in KDE Address Book is enabled</label>
+    </entry>
     <entry name="maxResults" type="Int">
     	<label>Defines the max number of contacts to display during a search in address book.</label>
     </entry>
@@ -84,9 +104,15 @@
     <entry name="home" type="Bool">
     	<label>Defines whether to display personnal phone numbers.</label>
     </entry>
+    
+    <!-- Record Settings -->
+    
     <entry name="destinationFolder" type="Path">
     	<label>Defines the destination directory for call recordings.</label>
     </entry>
+    
+    <!-- Hooks Settings -->
+    
     <entry name="enableHooksSIP" type="Bool">
     	<label>Defines whether to enable hooks for SIP accounts.</label>
     </entry>
diff --git a/sflphone-client-kde/src/main.cpp b/sflphone-client-kde/src/main.cpp
index ae4bd9142787bf43d2ba0ce85881f4f0fe06606d..c6de33b710fe18315102c533ab8832d3b38d7251 100644
--- a/sflphone-client-kde/src/main.cpp
+++ b/sflphone-client-kde/src/main.cpp
@@ -16,6 +16,11 @@
 
 #include "conf/ConfigurationDialog.h"
 
+#include <QTableView>
+#include <QListView>
+#include "CodecListModel.h"
+#include "SortableCodecListWidget.h"
+
 
 static const char description[] = "A KDE 4 Client for SFLphone";
 
@@ -39,9 +44,7 @@ int main(int argc, char **argv)
 		   KLocalizedString(), 
 		   "http://www.sflphone.org.", 
 		   "sflphone@lists.savoirfairelinux.net");
-		about.setProgramLogo(QVariant(QImage(ICON_SFLPHONE)));
 		about.addAuthor( ki18n("Jérémy Quentin"), KLocalizedString(), "jeremy.quentin@savoirfairelinux.com" );
-		about.setProgramIconName(ICON_SFLPHONE);
 		about.setTranslator( ki18nc("NAME OF TRANSLATORS","Your names"), ki18nc("EMAIL OF TRANSLATORS","Your emails") );
 		KCmdLineArgs::init(argc, argv, &about);
 		KCmdLineOptions options;
@@ -52,11 +55,13 @@ int main(int argc, char **argv)
 		
 		//configuration dbus
 		registerCommTypes();
-		
 		SFLPhone * fenetre = new SFLPhone();
 
 		InstanceInterface & instance = InstanceInterfaceSingleton::getInstance();
 		instance.Register(getpid(), APP_NAME);
+		
+// 		SortableCodecListWidget * cl = new SortableCodecListWidget();
+// 		cl->show();
 	
 		return app.exec();
 	}
diff --git a/sflphone-client-kde/src/sflphone_const.h b/sflphone-client-kde/src/sflphone_const.h
index 06d67cef2b1cd91e6d654cf6e066bc06db16a8ce..d7810672e513f15b1127539913b788f20a93fe81 100644
--- a/sflphone-client-kde/src/sflphone_const.h
+++ b/sflphone-client-kde/src/sflphone_const.h
@@ -167,6 +167,8 @@
 #define DAEMON_CALL_STATE_INIT_CURRENT    "CURRENT"
 #define DAEMON_CALL_STATE_INIT_HOLD       "HOLD"
 #define DAEMON_CALL_STATE_INIT_BUSY       "BUSY"
+#define DAEMON_CALL_STATE_INIT_INCOMING       "INCOMING"
+#define DAEMON_CALL_STATE_INIT_RINGING       "RINGING"
 #define DAEMON_CALL_STATE_INIT_INACTIVE   "INACTIVE"
 
 #define DAEMON_CALL_TYPE_INCOMING         "0"
@@ -182,6 +184,7 @@
 #define ADDRESSBOOK_DISPLAY_BUSINESS      "ADDRESSBOOK_DISPLAY_PHONE_BUSINESS"
 #define ADDRESSBOOK_DISPLAY_HOME          "ADDRESSBOOK_DISPLAY_PHONE_HOME"
 #define ADDRESSBOOK_DISPLAY_MOBILE        "ADDRESSBOOK_DISPLAY_PHONE_MOBILE"
+#define ADDRESSBOOK_ENABLE                "ADDRESSBOOK_ENABLE"
 
 /** Hooks settings */
 #define HOOKS_ADD_PREFIX                  "PHONE_NUMBER_HOOK_ADD_PREFIX"
@@ -206,38 +209,4 @@
 
 
 
-/** Error while opening capture device */
-#define ALSA_CAPTURE_DEVICE	            0x0001
-/** Error while opening playback device */
-#define ALSA_PLAYBACK_DEVICE	            0x0010
-/** Error pulseaudio */
-#define PULSEAUDIO_NOT_RUNNING            0x0100
-
-/** Tone to play when no voice mails */
-#define TONE_WITHOUT_MESSAGE              0
-/** Tone to play when voice mails */
-#define TONE_WITH_MESSAGE                 1
-
-
-/** Notification levels */
-#define __NOTIF_LEVEL_MIN                 0
-#define __NOTIF_LEVEL_MED                 1
-#define __NOTIF_LEVEL_HIGH                2
-
-/** Messages ID for the status bar - Incoming calls */
-#define __MSG_INCOMING_CALL               0
-/** Messages ID for the status bar - Calling */
-#define __MSG_CALLING	                  1
-/** Messages ID for the status bar - Voice mails  notification */
-#define __MSG_VOICE_MAILS                 2
-/** Messages ID for the status bar - Current account */
-#define __MSG_ACCOUNT_DEFAULT             3
-
-/** Desktop notifications - Time before to close the notification*/
-#define __TIMEOUT_MODE                    "default"
-/** Desktop notifications - Time before to close the notification*/
-#define __TIMEOUT_TIME                    18000       // 30 secondes
-
-
-
 #endif
diff --git a/sflphone-client-kde/src/sflphone_kdeview.cpp b/sflphone-client-kde/src/sflphone_kdeview.cpp
index 3049235f1a1c6ee6c872963a1614be2b2bedd420..3e144e160e7174a99852d97213c1684dda79bea9 100644
--- a/sflphone-client-kde/src/sflphone_kdeview.cpp
+++ b/sflphone-client-kde/src/sflphone_kdeview.cpp
@@ -105,11 +105,16 @@ sflphone_kdeView::sflphone_kdeView(QWidget *parent)
 	connect(configDialog, SIGNAL(clearCallHistoryAsked()),
 	        callList,     SLOT(clearHistory()));
 	        
+	connect(configDialog, SIGNAL(changesApplied()),
+	        this,         SLOT(loadWindow()));
+	        
+	connect(accountList, SIGNAL(accountListUpdated()),
+	        this,        SLOT(updateStatusMessage()));
 	connect(accountList, SIGNAL(accountListUpdated()),
-	        this,     SLOT(updateStatusMessage()));
+	        this,        SLOT(updateWindowCallState()));
 	        
 	accountList->updateAccounts();
-	        
+	
 	QPalette pal = QPalette(palette());
 	pal.setColor(QPalette::AlternateBase, Qt::lightGray);
 	setPalette(pal);
@@ -146,6 +151,8 @@ void sflphone_kdeView::loadWindow()
 	updateVolumeControls();
 	updateDialpad();
 	updateSearchHistory();
+	updateAddressBookEnabled();
+	updateAddressBook();
 }
 
 
@@ -163,6 +170,19 @@ Account * sflphone_kdeView::firstRegisteredAccount()
 	}
 }
 
+QString sflphone_kdeView::firstRegisteredAccountId()
+{
+	Account * firstRegistered = firstRegisteredAccount();
+	if(firstRegistered == NULL)
+	{
+		return QString();
+	}
+	else
+	{
+		return firstRegistered->getAccountId();
+	}
+}
+
 AccountList * sflphone_kdeView::getAccountList()
 {
 	return accountList;
@@ -463,7 +483,7 @@ void sflphone_kdeView::updateWindowCallState()
 		item = listWidget_callList->currentItem();
 		if (!item)
 		{
-			qDebug() << "No item selected. Updating window.";
+			qDebug() << "No item selected.";
 			enabledActions[1] = false;
 			enabledActions[2] = false;
 			enabledActions[3] = false;
@@ -479,57 +499,57 @@ void sflphone_kdeView::updateWindowCallState()
 			switch (state)
 			{
 				case CALL_STATE_INCOMING:
-					qDebug() << "Reached CALL_STATE_INCOMING with call " << (*callList)[item]->getCallId() << ". Updating window.";
+					qDebug() << "Reached CALL_STATE_INCOMING with call " << (*callList)[item]->getCallId();
 					buttonIconFiles[0] = ICON_ACCEPT;
 					buttonIconFiles[1] = ICON_REFUSE;
 					actionTexts[0] = ACTION_LABEL_ACCEPT;
-					actionTexts[0] = ACTION_LABEL_REFUSE;
+					actionTexts[1] = ACTION_LABEL_REFUSE;
 					break;
 				case CALL_STATE_RINGING:
-					qDebug() << "Reached CALL_STATE_RINGING with call " << (*callList)[item]->getCallId() << ". Updating window.";
+					qDebug() << "Reached CALL_STATE_RINGING with call " << (*callList)[item]->getCallId();
 					enabledActions[2] = false;
 					enabledActions[3] = false;
 					break;
 				case CALL_STATE_CURRENT:
 					qDebug() << "details = " << CallManagerInterfaceSingleton::getInstance().getCallDetails(call->getCallId()).value();
-					qDebug() << "Reached CALL_STATE_CURRENT with call " << (*callList)[item]->getCallId() << ". Updating window.";
+					qDebug() << "Reached CALL_STATE_CURRENT with call " << (*callList)[item]->getCallId();
 					recordEnabled = true;
 					break;
 				case CALL_STATE_DIALING:
-					qDebug() << "Reached CALL_STATE_DIALING with call " << (*callList)[item]->getCallId() << ". Updating window.";
+					qDebug() << "Reached CALL_STATE_DIALING with call " << (*callList)[item]->getCallId();
 					enabledActions[2] = false;
 					enabledActions[3] = false;
 					enabledActions[4] = false;
 					buttonIconFiles[0] = ICON_ACCEPT;
 					break;
 				case CALL_STATE_HOLD:
-					qDebug() << "Reached CALL_STATE_HOLD with call " << (*callList)[item]->getCallId() << ". Updating window.";
+					qDebug() << "Reached CALL_STATE_HOLD with call " << (*callList)[item]->getCallId();
 					buttonIconFiles[2] = ICON_UNHOLD;
 					actionTexts[2] = ACTION_LABEL_UNHOLD;
 					break;		
 				case CALL_STATE_FAILURE:
-					qDebug() << "Reached CALL_STATE_FAILURE with call " << (*callList)[item]->getCallId() << ". Updating window.";
+					qDebug() << "Reached CALL_STATE_FAILURE with call " << (*callList)[item]->getCallId();
 					enabledActions[0] = false;
 					enabledActions[2] = false;
 					enabledActions[3] = false;
 					enabledActions[4] = false;
 					break;
 				case CALL_STATE_BUSY:
-					qDebug() << "Reached CALL_STATE_BUSY with call " << (*callList)[item]->getCallId() << ". Updating window.";
+					qDebug() << "Reached CALL_STATE_BUSY with call " << (*callList)[item]->getCallId();
 					enabledActions[0] = false;
 					enabledActions[2] = false;
 					enabledActions[3] = false;
 					enabledActions[4] = false;
 				break;
 				case CALL_STATE_TRANSFER:
-					qDebug() << "Reached CALL_STATE_TRANSFER with call " << (*callList)[item]->getCallId() << ". Updating window.";
+					qDebug() << "Reached CALL_STATE_TRANSFER with call " << (*callList)[item]->getCallId();
 					buttonIconFiles[0] = ICON_EXEC_TRANSF;
 					actionTexts[3] = ACTION_LABEL_GIVE_UP_TRANSF;
 					transfer = true;
 					recordEnabled = true;
 					break;
 				case CALL_STATE_TRANSF_HOLD:
-					qDebug() << "Reached CALL_STATE_TRANSF_HOLD with call " << (*callList)[item]->getCallId() << ". Updating window.";
+					qDebug() << "Reached CALL_STATE_TRANSF_HOLD with call " << (*callList)[item]->getCallId();
 					buttonIconFiles[0] = ICON_EXEC_TRANSF;
 					buttonIconFiles[2] = ICON_UNHOLD;
 					actionTexts[3] = ACTION_LABEL_GIVE_UP_TRANSF;
@@ -553,10 +573,10 @@ void sflphone_kdeView::updateWindowCallState()
 		item = listWidget_callHistory->currentItem();
 		buttonIconFiles[0] = ICON_ACCEPT;
 		actionTexts[0] = ACTION_LABEL_CALL_BACK;
-		actionTexts[1] = ACTION_LABEL_GIVE_UP_SEARCH;
+// 		actionTexts[1] = ACTION_LABEL_GIVE_UP_SEARCH;
 		if (!item)
 		{
-			qDebug() << "No item selected. Updating window.";
+			qDebug() << "No item selected.";
 			enabledActions[0] = false;
 			enabledActions[1] = false;
 			enabledActions[2] = false;
@@ -570,19 +590,19 @@ void sflphone_kdeView::updateWindowCallState()
 			enabledActions[3] = false;
 			enabledActions[4] = false;
 		}
-		if(!lineEdit_searchHistory->text().isEmpty())
-		{
-			enabledActions[1] = true;
-		}
+// 		if(!lineEdit_searchHistory->text().isEmpty())
+// 		{
+// 			enabledActions[1] = true;
+// 		}
 	}
 	if(stackedWidget_screen->currentWidget() == page_addressBook)
 	{
 		item = listWidget_addressBook->currentItem();
 		buttonIconFiles[0] = ICON_ACCEPT;
-		actionTexts[1] = ACTION_LABEL_GIVE_UP_SEARCH;
+// 		actionTexts[1] = ACTION_LABEL_GIVE_UP_SEARCH;
 		if (!item)
 		{
-			qDebug() << "No item selected. Updating window.";
+			qDebug() << "No item selected.";
 			enabledActions[0] = false;
 			enabledActions[1] = false;
 			enabledActions[2] = false;
@@ -596,12 +616,14 @@ void sflphone_kdeView::updateWindowCallState()
 			enabledActions[3] = false;
 			enabledActions[4] = false;
 		}
-		if(!lineEdit_addressBook->text().isEmpty())
-		{
-			enabledActions[1] = true;
-		}
+// 		if(!lineEdit_addressBook->text().isEmpty())
+// 		{
+// 			enabledActions[1] = true;
+// 		}
 	}
 	
+	qDebug() << "Updating Window.";
+	
 	action_accept->setEnabled(enabledActions[0]);
 	action_refuse->setEnabled(enabledActions[1]);
 	action_hold->setEnabled(enabledActions[2]);
@@ -622,6 +644,8 @@ void sflphone_kdeView::updateWindowCallState()
 	
 	action_transfer->setChecked(transfer);
 	action_record->setChecked(recordActivated);
+
+	qDebug() << "Window updated.";
 }
 
 void sflphone_kdeView::updateSearchHistory()
@@ -664,23 +688,37 @@ void sflphone_kdeView::updateAddressBook()
 	{
 		QListWidgetItem * item = listWidget_addressBook->takeItem(0);
 		qDebug() << "take item " << item->text();
+		delete item;
 	}
-	QString textSearched = lineEdit_addressBook->text();
-	if(textSearched.isEmpty())
-	{
-		label_addressBookFull->setVisible(false);
-		return;
-	}
-	bool full = false;
-	QVector<Contact *> contactsFound = findContactsInKAddressBook(textSearched, full);
-	qDebug() << "Full : " << full;
-	label_addressBookFull->setVisible(full);
-	for(int i = 0 ; i < contactsFound.size() ; i++)
+	if(isAddressBookEnabled())
 	{
-		Contact * contact = contactsFound[i];
-		addContactToContactList(contact);
+		if(loadAddressBook())
+		{
+			QString textSearched = lineEdit_addressBook->text();
+			if(textSearched.isEmpty())
+			{
+				label_addressBookFull->setVisible(false);
+				return;
+			}
+			bool full = false;
+			QVector<Contact *> contactsFound = findContactsInKAddressBook(textSearched, full);
+			qDebug() << "Full : " << full;
+			label_addressBookFull->setVisible(full);
+			for(int i = 0 ; i < contactsFound.size() ; i++)
+			{
+				Contact * contact = contactsFound[i];
+				addContactToContactList(contact);
+			}
+			alternateColors(listWidget_addressBook);
+		}
+		else
+		{
+			lineEdit_addressBook->setText(i18n("Address book loading..."));
+			lineEdit_addressBook->setEnabled(false);
+			label_addressBookFull->setVisible(false);
+		}
 	}
-	alternateColors(listWidget_addressBook);
+	
 }
 
 void sflphone_kdeView::alternateColors(QListWidget * listWidget)
@@ -703,8 +741,7 @@ QVector<Contact *> sflphone_kdeView::findContactsInKAddressBook(QString textSear
 	int maxResults = addressBookSettings[ADDRESSBOOK_MAX_RESULTS];
 	int typesDisplayed = phoneNumberTypesDisplayed();
 	bool displayPhoto = addressBookSettings[ADDRESSBOOK_DISPLAY_CONTACT_PHOTO];
-	
-	AddressBook * ab = KABC::StdAddressBook::self();
+	AddressBook * ab = KABC::StdAddressBook::self(true);
 	QVector<Contact *> results = QVector<Contact *>();
 	AddressBook::Iterator it;
 	full = false;
@@ -1337,7 +1374,6 @@ void sflphone_kdeView::on_action_addressBook_triggered(bool checked)
 
 void sflphone_kdeView::on_action_mailBox_triggered()
 {
-	ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
 	Account * account = firstRegisteredAccount();
 	QString mailBoxNumber = account->getAccountDetail(ACCOUNT_MAILBOX);
 	Call * call = callList->addDialingCall();
@@ -1415,6 +1451,46 @@ void sflphone_kdeView::on1_volumeChanged(const QString &device, double value)
 		updateVolumeBar();
 }
 
+void sflphone_kdeView::enableAddressBook()
+{
+	qDebug() << "\nenableAddressBook\n";
+	lineEdit_addressBook->clear();
+	lineEdit_addressBook->setEnabled(true);
+}
 
+bool sflphone_kdeView::loadAddressBook()
+{
+	qDebug() << "loadAddressBook";
+	AddressBook * ab = StdAddressBook::self(true);
+	if(ab->loadingHasFinished())
+	{
+		return true;
+	}
+	else
+	{
+		connect(ab,         SIGNAL(addressBookChanged(AddressBook *)),
+		        this,       SLOT(enableAddressBook()));
+		return false;
+	}
+}
+
+
+void sflphone_kdeView::updateAddressBookEnabled()
+{
+	action_addressBook->setVisible(isAddressBookEnabled());
+	if(! isAddressBookEnabled() && stackedWidget_screen->currentWidget() == page_addressBook)
+	{
+		stackedWidget_screen->setCurrentWidget(page_callList);	
+		action_history->setChecked(false);
+	}
+}
+
+
+bool sflphone_kdeView::isAddressBookEnabled()
+{
+	ConfigurationManagerInterface & configurationManager = ConfigurationManagerInterfaceSingleton::getInstance();
+	MapStringInt addressBookSettings = configurationManager.getAddressbookSettings().value();
+	return addressBookSettings[ADDRESSBOOK_ENABLE];
+}
 
 #include "sflphone_kdeview.moc"
diff --git a/sflphone-client-kde/src/sflphone_kdeview.h b/sflphone-client-kde/src/sflphone_kdeview.h
index 41bdde02f89c710300c73f5ce30f2117da0db658..a9a4e72a779d9a108cc77ea07bd5e586e07c799c 100644
--- a/sflphone-client-kde/src/sflphone_kdeview.h
+++ b/sflphone-client-kde/src/sflphone_kdeview.h
@@ -81,11 +81,6 @@ public:
 	//Constructors & Destructors
 	sflphone_kdeView(QWidget *parent);
 	virtual ~sflphone_kdeView();
-	/**
-	 * Called at construction. Updates all the display
-	 * according to the settings.
-	 */
-	void loadWindow();
 	
 	//Getters
 	/**
@@ -97,6 +92,15 @@ public:
 	 * @return the account to use if an outgoing call is placed.
 	 */
 	static Account * firstRegisteredAccount();
+	/**
+	 *   Seeks the ID of the account to use.
+	 *   If priorAccountId is defined and the corresponding
+	 *   account exists and is registered, uses this one, else,
+	 *   asks the first registered of accountList.
+	 *   If there is no account registered, returns an empty string.
+	 * @return the ID of the account to use if an outgoing call is placed.
+	 */
+	static QString firstRegisteredAccountId();
 	
 	static AccountList * getAccountList();
 	QErrorMessage * getErrorWindow();
@@ -109,6 +113,12 @@ public:
 	*/
 	int phoneNumberTypesDisplayed();
 	
+	/**
+	 * 
+	 * @return true if the address book is enabled in config
+	 */
+	bool isAddressBookEnabled();
+	
 	//Updates
 	QVector<Contact *> findContactsInKAddressBook(QString textSearched, bool & full);
 	
@@ -218,7 +228,34 @@ private slots:
 	void updateDialpad();
 	
 public slots:
+	/**
+	 * Updates all the display
+	 * according to the settings.
+	 */
+	void loadWindow();
+	
+	
 	void updateStatusMessage();
+	/**
+	 *   Enable the address book search line edit.
+	 *   To be called once the address book loading has finished.
+	 */
+	void enableAddressBook();
+	/**
+	 *   Loads the address book asynchronously.
+	 *   Calls enableAddressBook() once the address book
+	 *   loading has finished if it is not allready loaded.
+	 * @return true if address book has finished loading
+	 */
+	bool loadAddressBook();
+	
+	/**
+	 *   Chooses to enable/disable (show/hide) the address book 
+	 *   button according to the configuration's setting, and 
+	 *   returns to the main window if is in address book
+	 *   whereas it is disabled.
+	 */
+	void updateAddressBookEnabled();
 	
 	
 	virtual void keyPressEvent(QKeyEvent *event)
diff --git a/sflphone-client-kde/src/ui/sflphone_kdeview_base.ui b/sflphone-client-kde/src/ui/sflphone_kdeview_base.ui
index b739d849aefbcbff6c35a58c62e5818efc44ac6b..831907f40781fcc0f789bdd4304d5a5cfe5cee87 100644
--- a/sflphone-client-kde/src/ui/sflphone_kdeview_base.ui
+++ b/sflphone-client-kde/src/ui/sflphone_kdeview_base.ui
@@ -66,6 +66,12 @@
        </item>
        <item>
         <widget class="KLineEdit" name="lineEdit_addressBook">
+         <property name="enabled">
+          <bool>false</bool>
+         </property>
+         <property name="text">
+          <string>Address book loading...</string>
+         </property>
          <property name="showClearButton" stdset="0">
           <bool>true</bool>
          </property>
diff --git a/sflphone-common/VERSION b/sflphone-common/VERSION
index 517317e95fb23bda5f1c305dfaa84bfa8021a824..bc440692c3b559a2d3fe749ce99f8993b879252f 100644
--- a/sflphone-common/VERSION
+++ b/sflphone-common/VERSION
@@ -1 +1 @@
-0.9.6~beta
+0.9.6~rc1
diff --git a/sflphone-common/configure.ac b/sflphone-common/configure.ac
index b39dc0343faa0146a480fe1388fc95212f2c7c65..92c734e3d61ae39012220437756c563118fd5a26 100644
--- a/sflphone-common/configure.ac
+++ b/sflphone-common/configure.ac
@@ -2,7 +2,7 @@ dnl SFLPhone - configure.ac for automake 1.9 and autoconf 2.59
 dnl
 	dnl Process this file with autoconf to produce a configure script.
 	AC_PREREQ(2.59)
-	AC_INIT([SFLphone],[0.9.6~beta],[sflphoneteam@savoirfairelinux.com],[sflphone])
+	AC_INIT([SFLphone],[0.9.6~rc1],[sflphoneteam@savoirfairelinux.com],[sflphone])
 	AC_COPYRIGHT([[Copyright (c) Savoir-Faire Linux 2004-2009]])
 AC_REVISION([$Revision$])
 
diff --git a/sflphone-common/libs/pjproject-1.0.3/configure.ac b/sflphone-common/libs/pjproject-1.0.3/configure.ac
new file mode 100644
index 0000000000000000000000000000000000000000..bf1644033a4f5cb86b7e9dc8e49804bfa092ee58
--- /dev/null
+++ b/sflphone-common/libs/pjproject-1.0.3/configure.ac
@@ -0,0 +1,5 @@
+dnl Dummy configure.ac for autotools
+
+AC_INIT
+LT_INIT
+AC_OUTPUT
diff --git a/sflphone-common/libs/pjproject-1.0.3/pjsip-apps/bin/samples/hack b/sflphone-common/libs/pjproject-1.0.3/pjsip-apps/bin/samples/hack
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/sflphone-common/src/global.h b/sflphone-common/src/global.h
index d08d9ce8524dddad65ddb2831421baf27eaa2d62..a6053980b86bb7f1947ff03ca7b9da1f55dee94c 100644
--- a/sflphone-common/src/global.h
+++ b/sflphone-common/src/global.h
@@ -32,7 +32,7 @@
 #include <map>
 #include <vector>
 
-#define SFLPHONED_VERSION "0.9.6~beta"		/** Version number */
+#define SFLPHONED_VERSION "0.9.6~rc1"		/** Version number */
 
 #define HOMEDIR	(getenv ("HOME"))		/** Home directory */