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 1fcbbb32a26db9784bd0ff1751789448cf1a0051..da44ae52f633f8ef95329b5019bb3cdfba37dd9b 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 89dc63a1b0dae9b016ff19ef78eb987f0db8f861..a1cbc3c04ba985cefbf4af95c31f9baf8983a77e 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 f7d57fcd09fd5d523923ab7ded3aa53b1d3bb222..d8a946740558f8bd8effee33aa236a25270a3737 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 7e1c705bbf1c9701845cbd4753bc54915c11c0e8..6cae504c5a3953557cc8b1e6bb42a1e8906aaf28 100644
--- a/sflphone-client-kde/po/ru/sflphone-client-kde.po
+++ b/sflphone-client-kde/po/ru/sflphone-client-kde.po
@@ -3,774 +3,1531 @@
 # This file is distributed under the same license as the sflphone package.
 # Hussein Abdallah <hussein.abdallah@savoirfairelinux.com>, 2009
 # 
-#, fuzzy
-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 "Создать бесплатный 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
+#, 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 "Создать бесплатный 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 "Записать"
diff --git a/sflphone-client-kde/po/sflphone-client-kde.pot b/sflphone-client-kde/po/sflphone-client-kde.pot
index 89dc63a1b0dae9b016ff19ef78eb987f0db8f861..a1cbc3c04ba985cefbf4af95c31f9baf8983a77e 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 89dc63a1b0dae9b016ff19ef78eb987f0db8f861..a1cbc3c04ba985cefbf4af95c31f9baf8983a77e 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 89dc63a1b0dae9b016ff19ef78eb987f0db8f861..a1cbc3c04ba985cefbf4af95c31f9baf8983a77e 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/CMakeLists.txt b/sflphone-client-kde/src/CMakeLists.txt
index 0d71a14d5c3e6b32874df54db4d44e29ea5d71e6..1513094c6247e19af0d06a12d5c57d0874592765 100644
--- a/sflphone-client-kde/src/CMakeLists.txt
+++ b/sflphone-client-kde/src/CMakeLists.txt
@@ -54,9 +54,9 @@ SET(	   sflphone_client_kde_SRCS
 	conf/dlghooks.cpp
 	conf/ConfigurationSkeleton.cpp
 	Dialpad.cpp
-# 	Codec.cpp
-# 	CodecListModel.cpp
-# 	SortableCodecListWidget.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 8b235c5cf5d7e9b03eda78b54f067622c89d5fc2..efb34db0da9ab6b59166ceb24edb7f62736ac8c4 100644
--- a/sflphone-client-kde/src/Call.cpp
+++ b/sflphone-client-kde/src/Call.cpp
@@ -358,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 ) {	
@@ -593,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;
 	}
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/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 a2efb52bbb623d837d97b7d6b67e21422a8420a6..9179626e67969216fa06de7aea74777ac15c4c81 100644
--- a/sflphone-client-kde/src/conf/dlgaccounts.cpp
+++ b/sflphone-client-kde/src/conf/dlgaccounts.cpp
@@ -296,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 0700c61bfb418e8ea04748dbbd78a302157c8f5d..8a29233bca28d592ca06d1e65b27886a9e6aa10d 100644
--- a/sflphone-client-kde/src/conf/dlgaudio.cpp
+++ b/sflphone-client-kde/src/conf/dlgaudio.cpp
@@ -38,25 +38,33 @@ DlgAudio::DlgAudio(KConfigDialog *parent)
 	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(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(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(sortableCodecList,     SIGNAL(dataChanged()),
+	        this,                  SLOT(codecTableChanged()));
+	        
 }
 
 
@@ -72,88 +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 || ! 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];
-		}
-	}
-	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;
 }
 
@@ -205,69 +233,75 @@ void DlgAudio::updateAlsaSettings()
 	}
 }
 
-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::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_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 cad1b9ee65a39f0e20183a3616e353115d6c04a1..74fe3db72b88cd2f02fb7eaf9c7a51167b539d09 100644
--- a/sflphone-client-kde/src/conf/dlgaudio.h
+++ b/sflphone-client-kde/src/conf/dlgaudio.h
@@ -46,11 +46,12 @@ public slots:
 	void updateSettings();
 	bool hasChanged();
 	void updateAlsaSettings();
+	void applyCustomSettings();
 	
 private slots:
-	void updateCodecListCommands();
-	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 3679d8c79da33d1f7d00ba9924d287776ea97c8d..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>
@@ -311,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 23853b339751d74b5fcc37be72497c252f6a15aa..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";
 
@@ -50,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 aa08c6e4e096ca92afacc8df1b30fdad59b25621..d7810672e513f15b1127539913b788f20a93fe81 100644
--- a/sflphone-client-kde/src/sflphone_const.h
+++ b/sflphone-client-kde/src/sflphone_const.h
@@ -184,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"
@@ -208,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 b40fde0d20be6596ed34ec38ea203530a8666dee..3e144e160e7174a99852d97213c1684dda79bea9 100644
--- a/sflphone-client-kde/src/sflphone_kdeview.cpp
+++ b/sflphone-client-kde/src/sflphone_kdeview.cpp
@@ -105,13 +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()));
+	        this,        SLOT(updateStatusMessage()));
 	connect(accountList, SIGNAL(accountListUpdated()),
-	        this,     SLOT(updateWindowCallState()));
+	        this,        SLOT(updateWindowCallState()));
 	        
 	accountList->updateAccounts();
-	        
+	
 	QPalette pal = QPalette(palette());
 	pal.setColor(QPalette::AlternateBase, Qt::lightGray);
 	setPalette(pal);
@@ -148,6 +151,8 @@ void sflphone_kdeView::loadWindow()
 	updateVolumeControls();
 	updateDialpad();
 	updateSearchHistory();
+	updateAddressBookEnabled();
+	updateAddressBook();
 }
 
 
@@ -498,7 +503,7 @@ void sflphone_kdeView::updateWindowCallState()
 					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();
@@ -683,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)
@@ -722,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;
@@ -1433,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 ddcc22354e92b93caa56d47de0e49692d7575240..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
 	/**
@@ -118,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);
 	
@@ -227,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/src/config/config.cpp b/sflphone-common/src/config/config.cpp
index 9c6bb914baf03d73aaa73f94d6f6b2b5340730e5..4f8c02c8de554f762e1963133d452c67122e1654 100644
--- a/sflphone-common/src/config/config.cpp
+++ b/sflphone-common/src/config/config.cpp
@@ -22,6 +22,9 @@
 #include "../global.h"
 #include <fstream>
 #include <cstdlib>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <errno.h>
 
 namespace Conf
 {
@@ -255,7 +258,11 @@ ConfigTree::saveConfigTree (const std::string& fileName)
     }
 
     file.close();
-
+    
+    if(chmod(fileName.c_str(), S_IRUSR | S_IWUSR)) {
+        _debug("Failed to set permission on configuration file because: %s\n",strerror(errno));
+    }
+    
     return true;
 }
 
@@ -267,7 +274,7 @@ int
 ConfigTree::populateFromFile (const std::string& fileName)
 {
     bool out = false;
-
+    
     if (fileName.empty()) {
         return 0;
     }
@@ -332,7 +339,11 @@ ConfigTree::populateFromFile (const std::string& fileName)
     }
 
     file.close();
-
+    
+    if(chmod(fileName.c_str(), S_IRUSR | S_IWUSR)) {
+        _debug("Failed to set permission on configuration file because: %s\n",strerror(errno));
+    }
+    
     return 1;
 }
 
diff --git a/sflphone-common/src/config/config.h b/sflphone-common/src/config/config.h
index 0872889486659d2a7db64634106f36fcb58ce3a0..0fa75a24acd2e580d1ddb457179f8091507f6d3b 100644
--- a/sflphone-common/src/config/config.h
+++ b/sflphone-common/src/config/config.h
@@ -155,7 +155,7 @@ class ConfigTree
          * List of sections. Each sections has an ItemList as child
          */
         SectionMap _sections;
-
+        
         friend class ConfigTreeIterator;
 
     public:
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 */
 
diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index 7a49b2c04a3948237400173cfd5e3859ec6f01c7..345fb7df667cac41ccbd41ddfaa2c03bea97e44a 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -1293,7 +1293,7 @@ ManagerImpl::createSettingsPath (void)
 {
     _path = std::string (HOMEDIR) + DIR_SEPARATOR_STR + "." + PROGDIR;
 
-    if (mkdir (_path.data(), 0755) != 0) {
+    if (mkdir (_path.data(), 0600) != 0) {
         // If directory	creation failed
         if (errno != EEXIST) {
             _debug ("Cannot create directory: %s\n", strerror (errno));
@@ -1952,31 +1952,7 @@ void ManagerImpl::setAudioManager (const int32_t& api)
 
     switchAudioManager();
     return;
-
-    /*
-        int manager;
-
-        _debug(" ManagerImpl::setAudioManager :: %i \n",api);
-
-        manager = api;
-        if( manager == PULSEAUDIO )
-        {
-            if(app_is_running("pulseaudio") != 0)
-            {
-                // The pulseaudio daemon is not running
-                manager = ALSA;
-                notifyErrClient(PULSEAUDIO_NOT_RUNNING);
-            }
-        }
-
-        if(manager == api)
-        {
-            // it means that we can change the audio manager
-            setConfig( PREFERENCES , CONFIG_AUDIO , api) ;
-            switchAudioManager();
-        }
-    */
-
+    
 }
 
 int32_t
diff --git a/sflphone-common/src/sdp.cpp b/sflphone-common/src/sdp.cpp
index 9256b238b8ca8db8dd1cf6341e296940d5b1c4da..8c79cb36dd98489ccf568fc3bf27e12335a36aff 100644
--- a/sflphone-common/src/sdp.cpp
+++ b/sflphone-common/src/sdp.cpp
@@ -180,7 +180,6 @@ int Sdp::receiving_initial_offer (pjmedia_sdp_session* remote)
     // pjmedia_sdp_neg_create_w_remote_offer with the remote offer, and by providing the local offer ( optional )
 
     pj_status_t status;
-    pjmedia_sdp_neg_state state;
 
     _debug ("Receiving initial offer\n");
 
@@ -200,13 +199,68 @@ int Sdp::receiving_initial_offer (pjmedia_sdp_session* remote)
     status = pjmedia_sdp_neg_create_w_remote_offer (_pool,
              get_local_sdp_session(), remote, &_negociator);
 
-    state = pjmedia_sdp_neg_get_state (_negociator);
-
     PJ_ASSERT_RETURN (status == PJ_SUCCESS, 1);
 
     return PJ_SUCCESS;
 }
 
+pj_status_t Sdp::check_sdp_answer(pjsip_inv_session *inv, pjsip_rx_data *rdata) 
+{
+    static const pj_str_t str_application = { "application", 11 };
+    static const pj_str_t str_sdp = { "sdp", 3 };
+    pj_status_t status;
+    pjsip_msg * message = NULL;
+    pjmedia_sdp_session * remote_sdp = NULL;
+    
+    if (pjmedia_sdp_neg_get_state(inv->neg) == PJMEDIA_SDP_NEG_STATE_LOCAL_OFFER) {
+    
+        message = rdata->msg_info.msg;
+    
+        if(message == NULL) {
+            _debug("No message");
+            return PJMEDIA_SDP_EINSDP;
+        }
+
+        if (message->body == NULL) {
+            _debug("Empty message body\n");
+            return PJMEDIA_SDP_EINSDP;
+        }
+
+        if (pj_stricmp(&message->body->content_type.type, &str_application) || pj_stricmp(&message->body->content_type.subtype, &str_sdp)) {
+            _debug("Incoming Message does not contain SDP\n");
+            return PJMEDIA_SDP_EINSDP;
+        }
+
+        // Parse the SDP body.
+        status = pjmedia_sdp_parse(rdata->tp_info.pool, (char*)message->body->data, message->body->len, &remote_sdp);
+        if (status == PJ_SUCCESS) {
+            status = pjmedia_sdp_validate(remote_sdp);
+        }
+
+        if (status != PJ_SUCCESS) {
+            _debug("SDP cannot be validated\n");
+            return PJMEDIA_SDP_EINSDP;
+        }
+    
+        // This is an answer
+        _debug("Got SDP answer %s\n", pjsip_rx_data_get_info(rdata));
+        status = pjmedia_sdp_neg_set_remote_answer(inv->pool, inv->neg, remote_sdp);
+        
+        if (status != PJ_SUCCESS) {
+            _debug("An error occured while processing remote answer %s\n", pjsip_rx_data_get_info(rdata));
+            return PJMEDIA_SDP_EINSDP;
+        }
+        
+        // Prefer our codecs to remote when possible
+        pjmedia_sdp_neg_set_prefer_remote_codec_order(inv->neg, 0);
+        
+        status = pjmedia_sdp_neg_negotiate(inv->pool, inv->neg, 0);
+        _debug("Negotiation returned with status %d PJ_SUCCESS being %d\n", status, PJ_SUCCESS); 
+    }
+    
+    return status;
+}
+
 void Sdp::sdp_add_protocol (void)
 {
     this->_local_offer->origin.version = 0;
@@ -298,7 +352,7 @@ void Sdp::clean_session_media()
     _session_media.clear();
 }
 
-void Sdp::set_negociated_offer (const pjmedia_sdp_session *sdp)
+void Sdp::set_negotiated_sdp (const pjmedia_sdp_session *sdp)
 {
 
     int nb_media, nb_codecs;
@@ -308,7 +362,6 @@ void Sdp::set_negociated_offer (const pjmedia_sdp_session *sdp)
     std::string type, dir;
     CodecsMap codecs_list;
     CodecsMap::iterator iter;
-    AudioCodec *codec_to_add;
     pjmedia_sdp_attr *attribute;
     pjmedia_sdp_rtpmap *rtpmap;
 
diff --git a/sflphone-common/src/sdp.h b/sflphone-common/src/sdp.h
index ec3178955b57c5370872d43ada2c92302f9f18af..fcd28db15eabc1aabfc0b0d91292829037572204 100644
--- a/sflphone-common/src/sdp.h
+++ b/sflphone-common/src/sdp.h
@@ -25,6 +25,8 @@
 #include <pjmedia/sdp_neg.h>
 #include <pjsip/sip_transport.h>
 #include <pjlib.h>
+#include <pjsip_ua.h>
+#include <pjmedia/errno.h>
 #include <pj/pool.h>
 #include <pj/assert.h>
 
@@ -97,6 +99,17 @@ class Sdp {
          */
         int receiving_initial_offer( pjmedia_sdp_session* remote );
         
+        /*
+         * On receiving a message, check if it contains SDP and negotiate. Should be used for
+         * SDP answer and offer but currently is only used for answer.
+         * SDP negociator instance with the remote offer.
+         *
+         * @param inv       The  the invitation
+         * @param rdata     The remote data
+         */
+        
+        pj_status_t check_sdp_answer(pjsip_inv_session *inv, pjsip_rx_data *rdata);
+        
         /*
          * Remove all media in the session media vector.
          */
@@ -138,7 +151,7 @@ class Sdp {
          *
          * @param sdp   the negociated offer
          */
-        void set_negociated_offer( const pjmedia_sdp_session *sdp );
+        void set_negotiated_sdp ( const pjmedia_sdp_session *sdp );
 
         /*
          * Attribute the specified port to every medias provided
diff --git a/sflphone-common/src/sipvoiplink.cpp b/sflphone-common/src/sipvoiplink.cpp
index af41b6d268c760870fcca500204e488df9331432..7d402327517b2d17505b39c2e501abd055f32681 100644
--- a/sflphone-common/src/sipvoiplink.cpp
+++ b/sflphone-common/src/sipvoiplink.cpp
@@ -503,7 +503,6 @@ SIPVoIPLink::newOutgoingCall (const CallID& id, const std::string& toUrl)
 
     SIPCall* call = new SIPCall (id, Call::Outgoing, _pool);
 
-
     if (call) {
         account = dynamic_cast<SIPAccount *> (Manager::instance().getAccount (Manager::instance().getAccountFromCall (id)));
 
@@ -520,7 +519,6 @@ SIPVoIPLink::newOutgoingCall (const CallID& id, const std::string& toUrl)
 
         setCallAudioLocal (call, getLocalIPAddress(), useStun(), getStunServer());
 
-
         try {
             _debug ("CREATE NEW RTP SESSION FROM NEWOUTGOINGCALL\n");
             _audiortp->createNewSession (call);
@@ -528,9 +526,6 @@ SIPVoIPLink::newOutgoingCall (const CallID& id, const std::string& toUrl)
             _debug ("Failed to create rtp thread from newOutGoingCall\n");
         }
 
-
-
-
         call->initRecFileName();
 
         _debug ("Try to make a call to: %s with call ID: %s\n", toUrl.data(), id.data());
@@ -560,8 +555,6 @@ SIPVoIPLink::newOutgoingCall (const CallID& id, const std::string& toUrl)
 bool
 SIPVoIPLink::answer (const CallID& id)
 {
-
-    int i;
     SIPCall *call;
     pj_status_t status;
     pjsip_tx_data *tdata;
@@ -1415,7 +1408,6 @@ bool get_dns_server_addresses (std::vector<std::string> *servers)
         nameservers.push_back (inet_ntoa (address));
     }
 
-    //nameservers.push_back ("192.168.50.3");
     *servers = nameservers;
 
     return true;
@@ -1427,8 +1419,6 @@ pj_status_t SIPVoIPLink::enable_dns_srv_resolver (pjsip_endpoint *endpt, pj_dns_
     pj_status_t status;
     pj_dns_resolver *resv;
     std::vector <std::string> dns_servers;
-    pj_uint16_t port = 5353;
-    pjsip_resolver_t *res;
     int scount, i;
 
     // Create the DNS resolver instance
@@ -1706,13 +1696,10 @@ int SIPVoIPLink::createUDPServer (void)
     pj_sockaddr_in bound_addr;
     pjsip_host_port a_name;
     char tmpIP[32];
-    pj_sock_t sock;
-
 
     // Init bound address to ANY
     pj_memset (&bound_addr, 0, sizeof (bound_addr));
 
-
     bound_addr.sin_addr.s_addr = pj_htonl (PJ_INADDR_ANY);
     bound_addr.sin_port = pj_htons ( (pj_uint16_t) _localPort);
     bound_addr.sin_family = PJ_AF_INET;
@@ -1875,22 +1862,17 @@ void SIPVoIPLink::handle_reinvite (SIPCall *call)
     }
 }
 
-
-/*******************************/
-/*   CALLBACKS IMPLEMENTATION  */
-/*******************************/
-
+// This callback is called when the invite session state has changed
 void call_on_state_changed (pjsip_inv_session *inv, pjsip_event *e)
 {
-
     _debug ("--------------------- call_on_state_changed --------------------- %i\n", inv->state);
 
     SIPCall *call;
     AccountID accId;
     SIPVoIPLink *link;
     pjsip_rx_data *rdata;
-
-
+    pj_status_t status;
+    
     /* Retrieve the call information */
     call = reinterpret_cast<SIPCall*> (inv->mod_data[_mod_ua.id]);
 
@@ -1900,7 +1882,7 @@ void call_on_state_changed (pjsip_inv_session *inv, pjsip_event *e)
     //Retrieve the body message
     rdata = e->body.tsx_state.src.rdata;
 
-
+    
     /* If this is an outgoing INVITE that was created because of
      * REFER/transfer, send NOTIFY to transferer.
      */
@@ -1961,84 +1943,79 @@ void call_on_state_changed (pjsip_inv_session *inv, pjsip_event *e)
                 }
             }
         }
-    } else {
+        
+        return;
+    }
+    
+    // The call is ringing - We need to handle this case only on outgoing call
+    if (inv->state == PJSIP_INV_STATE_EARLY && e->body.tsx_state.tsx->role == PJSIP_ROLE_UAC) {
+        call->setConnectionState (Call::Ringing);
+        Manager::instance().peerRingingCall (call->getCallId());
+    } 
+    // After 2xx is sent/received.
+    else if (inv->state == PJSIP_INV_STATE_CONNECTING) {
+        status = call->getLocalSDP()->check_sdp_answer (inv, rdata);    
+        if (status != PJ_SUCCESS) {
+            _debug("Failed to check_incoming_sdp in call_on_state_changed\n");
+            return;
+        }
+    }
+    // After we sent or received a ACK - The connection is established
+    else if (inv->state == PJSIP_INV_STATE_CONFIRMED) {
 
-        // The call is ringing - We need to handle this case only on outgoing call
-        if (inv->state == PJSIP_INV_STATE_EARLY && e->body.tsx_state.tsx->role == PJSIP_ROLE_UAC) {
-            call->setConnectionState (Call::Ringing);
-            Manager::instance().peerRingingCall (call->getCallId());
+        /* If the call is a direct IP-to-IP call */
+        if (call->getCallConfiguration () == Call::IPtoIP) {
+            link = SIPVoIPLink::instance ("");
+        } else {
+            accId = Manager::instance().getAccountFromCall (call->getCallId());
+            link = dynamic_cast<SIPVoIPLink *> (Manager::instance().getAccountLink (accId));
         }
 
-        // We receive a ACK - The connection is established
-        else if (inv->state == PJSIP_INV_STATE_CONFIRMED) {
+        if (link)
+            link->SIPCallAnswered (call, rdata);
+    }
+    else if (inv->state == PJSIP_INV_STATE_DISCONNECTED) {
+        _debug ("------------------- Call disconnected ---------------------\n");
+        _debug ("State: %i, Disconnection cause: %i\n", inv->state, inv->cause);
 
-            /* If the call is a direct IP-to-IP call */
-            if (call->getCallConfiguration () == Call::IPtoIP) {
-                link = SIPVoIPLink::instance ("");
-            } else {
+        switch (inv->cause) {
+                /* The call terminates normally - BYE / CANCEL */
+            case PJSIP_SC_OK:
+            case PJSIP_SC_DECLINE:
+            case PJSIP_SC_REQUEST_TERMINATED:
                 accId = Manager::instance().getAccountFromCall (call->getCallId());
                 link = dynamic_cast<SIPVoIPLink *> (Manager::instance().getAccountLink (accId));
-            }
-
-            if (link)
-                link->SIPCallAnswered (call, rdata);
-        }
-
-        else if (inv->state == PJSIP_INV_STATE_DISCONNECTED) {
-            int count = 0;
-            _debug ("------------------- Call disconnected ---------------------\n");
-            _debug ("State: %i, Disconnection cause: %i\n", inv->state, inv->cause);
-
-            switch (inv->cause) {
-                    /* The call terminates normally - BYE / CANCEL */
-
-                case PJSIP_SC_OK:
-
-                case PJSIP_SC_DECLINE:
-
-                case PJSIP_SC_REQUEST_TERMINATED:
-
-                    accId = Manager::instance().getAccountFromCall (call->getCallId());
-                    link = dynamic_cast<SIPVoIPLink *> (Manager::instance().getAccountLink (accId));
-
-                    if (link) {
-                        link->SIPCallClosed (call);
-                    }
-
-                    break;
-
-                    /* The call connection failed */
-
-                case PJSIP_SC_NOT_FOUND:            /* peer not found */
-
-                case PJSIP_SC_REQUEST_TIMEOUT:      /* request timeout */
-
-                case PJSIP_SC_NOT_ACCEPTABLE_HERE:  /* no compatible codecs */
 
-                case PJSIP_SC_NOT_ACCEPTABLE_ANYWHERE:
-
-                case PJSIP_SC_UNSUPPORTED_MEDIA_TYPE:
-
-                case PJSIP_SC_UNAUTHORIZED:
-
-                case PJSIP_SC_REQUEST_PENDING:
-                    accId = Manager::instance().getAccountFromCall (call->getCallId());
-                    link = dynamic_cast<SIPVoIPLink *> (Manager::instance().getAccountLink (accId));
+                if (link) {
+                    link->SIPCallClosed (call);
+                }
 
-                    if (link) {
-                        link->SIPCallServerFailure (call);
-                    }
+                break;
+             /* The call connection failed */
+            case PJSIP_SC_NOT_FOUND:            /* peer not found */
+            case PJSIP_SC_REQUEST_TIMEOUT:      /* request timeout */
+            case PJSIP_SC_NOT_ACCEPTABLE_HERE:  /* no compatible codecs */
+            case PJSIP_SC_NOT_ACCEPTABLE_ANYWHERE:
+            case PJSIP_SC_UNSUPPORTED_MEDIA_TYPE:
+            case PJSIP_SC_UNAUTHORIZED:
+            case PJSIP_SC_REQUEST_PENDING:
+                accId = Manager::instance().getAccountFromCall (call->getCallId());
+                link = dynamic_cast<SIPVoIPLink *> (Manager::instance().getAccountLink (accId));
 
-                    break;
+                if (link) {
+                    link->SIPCallServerFailure (call);
+                }
 
-                default:
-                    _debug ("sipvoiplink.cpp - line %d : Unhandled call state. This is probably a bug.\n", __LINE__);
-                    break;
-            }
+                break;
+            default:
+                _debug ("sipvoiplink.cpp - line %d : Unhandled call state. This is probably a bug.\n", __LINE__);
+                break;
         }
     }
+  
 }
 
+// This callback is called after SDP offer/answer session has completed.
 void call_on_media_update (pjsip_inv_session *inv, pj_status_t status)
 {
     _debug ("--------------------- call_on_media_update --------------------- \n");
@@ -2048,38 +2025,42 @@ void call_on_media_update (pjsip_inv_session *inv, pj_status_t status)
     
     SIPVoIPLink * link = NULL;
     SIPCall * call;
-
-    if (status != PJ_SUCCESS) {
-        _debug ("Error while negociating the offer\n");
-        return;
-    }
-
-    // Get the new sdp, result of the negociation
-    pjmedia_sdp_neg_get_active_local (inv->neg, &local_sdp);
-    pjmedia_sdp_neg_get_active_remote(inv->neg, &remote_sdp);
-     
+    
     call = reinterpret_cast<SIPCall *> (inv->mod_data[getModId() ]);
 
     if (!call) {
         _debug ("Call declined by peer, SDP negociation stopped\n");
         return;
     }
-        
-    // Clean the resulting sdp offer to create a new one (in case of a reinvite)
-    call->getLocalSDP()->clean_session_media();
-    
-    // Set the fresh negociated one
-    call->getLocalSDP()->set_negociated_offer (local_sdp);
 
-    // Set remote ip / port  
-    call->getLocalSDP()->set_media_transport_info_from_remote_sdp (remote_sdp); 
-    
     link = dynamic_cast<SIPVoIPLink *> (Manager::instance().getAccountLink(AccountNULL));
     if(link == NULL) {
         _debug ("Failed to get sip link\n");
         return;
     }
     
+    if (status != PJ_SUCCESS) {
+        _debug ("Error while negotiating the offer\n");
+        link->hangup(call->getCallId());
+        Manager::instance().callFailure(call->getCallId());
+        return;
+    }
+
+    // Get the new sdp, result of the negotiation
+    pjmedia_sdp_neg_get_active_local  (inv->neg, &local_sdp);
+    pjmedia_sdp_neg_get_active_remote (inv->neg, &remote_sdp);
+        
+    // Clean the resulting sdp offer to create a new one (in case of a reinvite)
+    call->getLocalSDP()->clean_session_media();
+    
+    // Set the fresh negotiated one, no matter if that was an offer or answer.
+    // The local sdp is updated in case of an answer, even if the remote sdp 
+    // is kept internally.
+    call->getLocalSDP()->set_negotiated_sdp (local_sdp);
+
+    // Set remote ip / port  
+    call->getLocalSDP()->set_media_transport_info_from_remote_sdp (remote_sdp); 
+        
     try {    
         call->setAudioStart (true);
         link->getAudioRtp()->start();
@@ -2107,11 +2088,8 @@ void call_on_tsx_changed (pjsip_inv_session *inv, pjsip_transaction *tsx, pjsip_
 
 void regc_cb (struct pjsip_regc_cbparam *param)
 {
-
-    //AccountID *id = static_cast<AccountID *> (param->token);
     SIPAccount *account;
 
-    //_debug("UserAgent: Account ID is %s, Register result: %d, Status: %d\n", id->data(), param->status, param->code);
     account = static_cast<SIPAccount *> (param->token);
 
     if (!account)
@@ -2167,11 +2145,10 @@ void regc_cb (struct pjsip_regc_cbparam *param)
 
 }
 
+// Optional function to be called to process incoming request message.
 pj_bool_t
 mod_on_rx_request (pjsip_rx_data *rdata)
 {
-
-
     pj_status_t status;
     pj_str_t reason;
     unsigned options = 0;
@@ -2325,7 +2302,6 @@ mod_on_rx_request (pjsip_rx_data *rdata)
 
     get_remote_sdp_from_offer (rdata, &r_sdp);
 
-// 	_debug("r_sdp = %s\n", r_sdp);
     status = call->getLocalSDP()->receiving_initial_offer (r_sdp);
 
     if (status!=PJ_SUCCESS) {
@@ -2334,7 +2310,6 @@ mod_on_rx_request (pjsip_rx_data *rdata)
         return false;
     }
 
-
     call->setConnectionState (Call::Progressing);
 
     call->setPeerNumber (peerNumber);
@@ -2364,7 +2339,6 @@ mod_on_rx_request (pjsip_rx_data *rdata)
         return true;
     }
 
-
     // Specify media capability during invite session creation
     status = pjsip_inv_create_uas (dialog, rdata, call->getLocalSDP()->get_local_sdp_session(), 0, &inv);